GCC neu kompilieren

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
tenju
Posts: 6
Joined: 2007-06-19 15:32
Location: Eibertingen

GCC neu kompilieren

Post by tenju » 2007-06-19 15:52

Hallo zusammen,

Ich bin schon länger auf der Suche nach einer Lösung zu meinem Problem und hoffe hier Antwort zu bekommen.

Folgendes:

Ich habe hier nen RootServer, einen Intel Pentium D, SuSE 9.3 auf einer x86_64 Architektur, auf ich die GCC gerne neu kompilieren würde. Momentan läuft darauf eine 3.3.5 Version, die ich gerne auf 4.2.0 updaten würde. Als Folge dessen wollte ich dann noch ein neues Python installieren, gefolgt von Zope und einigen anderen Applikationen, was in erster Linie nicht so wichtig ist.

Nun bleibt die Neukompilierung aber schon beim "configure" mit folgendem Fehler hängen:

Code: Select all

checking whether the C compiler (gcc  ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
Selbst wenn ich andere Pakete kompilieren will (Bsp: Python) kommt das selbe dabei raus. Beim durchforsten der Logs bin ich dann auch folgendes gestossen:

Code: Select all

ld: skipping incompatible /usr/lib/libm.so when searching for -lm
ld: skipping incompatible /usr/lib/libm.a when searching for -lm
ld: cannot find -lm
Dieser Fehler ist auch leicht reproduzierbar wenn ich den Befehl "ld -lm" eingebe oder ein kleines Testscript per GCC aufrufe. Alles führt auf diese Hinweise zurück. Da GCC sowohl 32Bit als auch 64Bit kompatibel ist, laut Developer, und die Libs aus einem x86_64 Package kommen frage ich mich was diese "Inkompatibilität" verursachen soll, wenn es sich denn um eine handelt.

Meine Frage nun: kennt jemand dieses Problem? Weiss jemand wie man das beheben oder umgehen kann?

THX for help :)

philwo
Posts: 24
Joined: 2006-05-12 02:05

Re: GCC neu kompilieren

Post by philwo » 2007-06-19 16:17

Ich habe hier nen RootServer, einen Intel Pentium D, SuSE 9.3 auf einer x86_64 Architektur, auf ich die GCC gerne neu kompilieren würde. Momentan läuft darauf eine 3.3.5 Version, die ich gerne auf 4.2.0 updaten würde. Als Folge dessen wollte ich dann noch ein neues Python installieren, gefolgt von Zope und einigen anderen Applikationen, was in erster Linie nicht so wichtig ist.
Das würde ich lassen. Ein GCC-Upgrade von 3.3.5 auf 4.2.0 geht sowas von definitiv schief, denn

1. Umgehst du damit das Paketmanagement-System von SuSE.
2. Hat sich zwischen den beiden GCC-Versionen gerade im Bereich C++ die ABI geändert - 4.2.0 Programme können keine 3.3.5 Libs benutzen.
3. Trauen sich das nicht mal die Gentoo-User ^^ Bzw. auch da ist es mit viel Aufwand verbunden und die sind immerhin in der Lage ihr ganzes System danach einmal mit dem neuen GCC durchzukompilieren.

Update lieber dein gesamtes System auf ein neues SuSE, ich glaube 9.3 wird sowieso nicht mehr sehr lange unterstützt.. das ist bestimmt weniger Arbeit und bringt mehr. :)

Evtl. kommen die Fehlermeldungen auch von dem krassen Versionssprung von 3.x auf 4.x, da bin ich mir aber nicht so sicher.

Edit:
Na, was sag ich: http://www.heise.de/newsticker/meldung/91395 :D

oxygen
RSAC
Posts: 2179
Joined: 2002-12-15 00:10
Location: Bergheim

Re: GCC neu kompilieren

Post by oxygen » 2007-06-19 16:24

philwo wrote: 1. Umgehst du damit das Paketmanagement-System von SuSE.
2. Hat sich zwischen den beiden GCC-Versionen gerade im Bereich C++ die ABI geändert - 4.2.0 Programme können keine 3.3.5 Libs benutzen.
3. Trauen sich das nicht mal die Gentoo-User ^^ Bzw. auch da ist es mit viel Aufwand verbunden und die sind immerhin in der Lage ihr ganzes System danach einmal mit dem neuen GCC durchzukompilieren.
Davon abgesehen dass 2. & 3. so nicht richtig sind, stimme ich vollkommen damit überein, dass es keinen Sinn macht ein Server mit SuSE 9.3 weiter zu betreiben. Nicht nur, dass ein Upgrade auf 10.2 z.B. einfacher und schneller geht als das manuelle kompilieren des gcc, ist es vorallem auch aus Sicherheitsgründen sehr zu empfehlen.

tenju
Posts: 6
Joined: 2007-06-19 15:32
Location: Eibertingen

Re: GCC neu kompilieren

Post by tenju » 2007-06-19 16:32

Vielleicht ist es wirklich keine so schlechte Idee die GCC so zu lassen wie sie ist. Mit der Idee hatte ich mich auch schon angefreudet, nur bleibt das Problem weiterhin bestehen das ich keine neuen Pakete via GCC kompilieren kann, weil GCC einfach nicht läuft, selbst die alte Version. Es war ja so das ich schon bei "configure"-versuch der neuen GCC gescheitert bin. Wichtig ist aber nun mal das ich verschieden Dienste via GCC neu kompilieren muss, sonst bleib ich ja quasi in der Zeit stehen. Das ich damit aus dem Paketmanager ausbreche ist schon klar, aber SuSE bringt ja eh nix mehr für 9.3; da muss man eben alles selbst von Quelle kompilieren, wo ich wieder bei meinem Problem bin.

Wie ich ja schon sagte, wenn ich beispielsweise Python neu kompilieren will (was ja nicht allzu aufwändig ist) schlägt es haargenau mit den oben genannten Hinweisen fehl. Andere Versuche, mit anderen Quellen berichteten das selbe.

An ein Systemupdate hab ich auch schon gedacht, nur kommt das auch verschiedenen Gründen im Moment gar nicht in Frage. Ein Softupgrade von 9.3 auf 10 wäre mit sehr vielen Problemen verbunden und die ganze Maschine neu aufzusetzen würde einen zu langen Ausfall mit sich ziehen.

THX for help :)

oxygen
RSAC
Posts: 2179
Joined: 2002-12-15 00:10
Location: Bergheim

Re: GCC neu kompilieren

Post by oxygen » 2007-06-19 16:38

tenju wrote:An ein Systemupdate hab ich auch schon gedacht, nur kommt das auch verschiedenen Gründen im Moment gar nicht in Frage. Ein Softupgrade von 9.3 auf 10 wäre mit sehr vielen Problemen verbunden und die ganze Maschine neu aufzusetzen würde einen zu langen Ausfall mit sich ziehen.
Früher oder später kommt eine Neuinstallation auf dich zu. Entweder du planst alles durch und kannst das ganze z.b. in einer virtuellen Maschine testen um die Ausfallzeit möglichst niedrig zu halten.
Oder du lernst es auf die harte Tour, wenn die Kiste gehackt wird. Dann ist Ausfallzeit dein geringstes Problem.

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: GCC neu kompilieren

Post by daemotron » 2007-06-19 16:46

Installier doch gcc und linux-headers einfach noch mal neu über yast. Vermutlich hat sich einfach nur eine Abhängigkeit nicht richtig aufgelöst bzw. fehlt irgendwo ein symlink. Vielleicht fehlen Dir aber auch noch andere Tools wie autoconf/automake und Konsorten... In welche Pakete das ganze Zeugs bei Suse verteilt ist, weiß ich allerdings nicht aus'm Kopf raus.

Trotzdem solltest Du auf jeden Fall ein Upgrade von 9.3 auf eine der neueren Versionen in Betracht ziehen - das Risiko eines ungstopften Sicherheitslochs ist einfach zu groß.

@philwo: Mit verschiedenen Compilerversionen übersetzte Programme und Libs sind so lange kein Problem, wie Du nicht massenweise mit Compiler-Flags um Dich geschmissen hast... (Stichwort z. B. march bzw. mtune etc.). Kritischer ist da schon die Verwendung von dynamisch gelinkten Binaries, die auf einem System mit anderer glibc-Version gebaut wurden 8)
Last edited by daemotron on 2007-06-20 11:00, edited 1 time in total.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: GCC neu kompilieren

Post by Joe User » 2007-06-19 16:58

Sind alle notwendigen Developer-Pakete installiert? Welche Pakete hast Du bereits manuell installiert/upgedatet? Mit welchen [C|CXX|LD]FLAGS hast Du die Pakete kompiliert?
Bringe bitte Deine Developer-Pakete auf den Auslieferungsstand zurück (Backup anlegen!!!) ftp://ftp.gwdg.de/pub/linux/suse/discon ... 6/9.3/suse und versuche anschliessend den Fehler zu reproduzieren.

tenju
Posts: 6
Joined: 2007-06-19 15:32
Location: Eibertingen

Re: GCC neu kompilieren

Post by tenju » 2007-06-20 16:05

Update lieber dein gesamtes System auf ein neues SuSE, ich glaube 9.3 wird sowieso nicht mehr sehr lange unterstützt
Wenn man vom Teufel spricht: Der Support ist heute eingestellt worden.
Installier doch gcc und linux-headers einfach noch mal neu über yast. Vermutlich hat sich einfach nur eine Abhängigkeit nicht richtig aufgelöst bzw. fehlt irgendwo ein symlink. Vielleicht fehlen Dir aber auch noch andere Tools wie autoconf/automake und Konsorten... In welche Pakete das ganze Zeugs bei Suse verteilt ist, weiß ich allerdings nicht aus'm Kopf raus.
Hatte ich schon gemacht, wobei es mir da bald den Server zerschossen hatte, weil so viel von der GCC abhängig war. Die ganzen Tools die nötig waren sind auch drauf (binutils, etc..)
Sind alle notwendigen Developer-Pakete installiert? Welche Pakete hast Du bereits manuell installiert/upgedatet? Mit welchen [C|CXX|LD]FLAGS hast Du die Pakete kompiliert?
Bringe bitte Deine Developer-Pakete auf den Auslieferungsstand zurück (Backup anlegen!!!) ftp://ftp.gwdg.de/pub/linux/suse/discon ... 6/9.3/suse und versuche anschliessend den Fehler zu reproduzieren.
Ich hab alle Devel Pakete installiert die ich bekommen konnte. Installiert war vorher GCC 3.3.5 mit den C und c++ compiler. glibc ist in Version 2.3.4 (incl. devel) drauf. Von Hand hatte ich noch nicht viel installiert weil ich glücklicherweise immer passende RPM's gefunden hab die ich dann via YaST draufhauen konnte. Händisch kamen da nur so ne Sachen nach wie LibCPDF, Razor, libgimpprint, usw... nichts weltbewegendes. Ich werde aber trotzdem mal alles versuchen zurückzusetzen, bzw. versuchen den Fehler zu simulieren auf einer Testmaschine. Will die Produktionsmaschine nicht kompromettieren.

Ich hab aber jetzt mal ne Nacht drüber geschlafen. Und die Bestätigung von offizieller Seite das es keine Patches mehr geben wird für Suse 9.3, sagen mir es wird Zeit umzusteigen. Ich denke da an ein Debian System welches eher meinen Bedürfnissen entspricht (Paketmanager, Updates, Patches, Upgrades, ... gefällt mir wirklich gut). Ich habe bes. keine Lust die Maschine als Schweizer Käse in der Serverlandschaft zu sehen. Und alle Patches immer zusammensuchen dazu habe ich auch nicht die Lust und Zeit. In der Zeit kann ich besseres anfangen....

Trotzdem danke für eure Hilfe und Eure Meinungen ;)

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: GCC neu kompilieren

Post by Joe User » 2007-06-20 17:38

<eigenwerbung>
Wenn Du eh auf eine andere Distribution mit besserem Paketmanagment umsteigen möchtest, solltest Du auch mal Gentoo ins Auge fassen. Für ein Basissystem mit den "üblichen Diensten" habe ich http://www.rootforum.org/wiki/howto/gentoo verfasst ;)
</eigenwerbung>

tenju
Posts: 6
Joined: 2007-06-19 15:32
Location: Eibertingen

Re: GCC neu kompilieren

Post by tenju » 2007-06-20 17:58

Danke für den Tipp. Doch leider muss ich mich da ein wenig an meinen Anbieter halten und der bietet nur SuSE, Debian, RedHat oder WindowsServer (*würg*) an.

Zudem bräuchte ich dann noch ein paar Howtos mehr:

-PostgreSQL
-Python
-Zope
-Bind
-EXIM
-SSH
-SAMBA
...

und noch ein paar Kleinigkeiten.... Will ich dir aber nich antun ;)
Debian hört sich da schon sehr gut an, sollte alles machbar sein.

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: GCC neu kompilieren

Post by daemotron » 2007-06-20 18:14

Python ist auf Gentoo eh dabei (das Paketmanagement wurde darin geschrieben). Joe's Anleitung kannst Du einfach aus dem Rettungssystem durchziehen - das klappt perfekt. Und für die genannten Dienste kannst Du auch Debian-Howtos verwenden. Musst halt nur "apt-get" durch "emerge" ersetzen :wink: Allerdings finden sich für diese gängigen Dinger auch Howtos für Gentoo...

Das einzige, was an Gentoo echt nerven kann, sind Updates der Toolchain-Pakete... :roll: (nehme ich trotzdem gerne in Kauf, funktioniert halt einfach - bei anderes Distris kanns einem halt so wie Dir ergehen *scnr*)

thorsten
RSAC
Posts: 732
Joined: 2003-02-01 13:14
Location: Fuldatal

Re: GCC neu kompilieren

Post by thorsten » 2007-06-21 10:11

Wenn du Plone/Zope unter debian nutzen willst, gebe ich dir einen Tipp: Nimm den unified Installer und installiere das Gespann python/zope/plone zusammen in ein Verzeichnis.
Das erspart dir beim Upgraden eine Menge Arbeit (das sage ich dir aus eigener Erfahrung ;))
Wenn du ein älteres Plone laufen hast, schau bezgl. der Migration hier vorbei.

tenju
Posts: 6
Joined: 2007-06-19 15:32
Location: Eibertingen

Re: GCC neu kompilieren

Post by tenju » 2007-06-21 17:36

Nur ne kleine Sache die mir aufgefallen ist. vielleicht ists bei den neuen Versionen von GCC schon behoben.

GCC kennt scheinbar keine Intel Prozessoren die 64Bit unterstützen, sondern nur die AMD Prozessoren. Falls jemand sich mit dem Problem rumschlägt sollte er mal versuchen die Makefile mit "-mcpu=k8 und march=k8" zu ergänzen. K8 ist der Standardwert für x86_64 Architekturen (also 64Bit). Wohlbemerkt das "-march=x86_64" nicht funktionieren wird, da GCC diesen Wert nicht kennt.

NB: GCC 3.3.5

Das aber nur als Info

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: GCC neu kompilieren

Post by Joe User » 2007-06-21 17:50