Software > Programmieren, Kompilieren
GCC 2.95.3 für Solaris 2.5.1
escimo:
Ich muss diese Leiche Schänden. Das kann ich nicht SO stehenlassen:
Der Inhalt des Paketes ist schlichtweg Schrott! Ich habe es gerade mal auf der Sun-4/75 (SS2) unter Solaris 2.5.1 (schnarch) getestet.
Ich baue nix neu, bevor das erste Paket nicht funktioniert.
Beim Aufruf des Binary "gcc" wird korrekt versucht, weitere Binaries (u.a. "cpp0" , "cc1") aufzurufen, die im Ausführungspfad ($PATH) gesucht werden. Nur diese Binaries befinden sich leider unterhalb (...)/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/ - Wie auch immer die _dort_ hingeraten sind, ist mir noch schleierhaft. ???
Ich werde den C Compiler noch mal neu übersetzen, wenn es dadurch möglich wird, die Binary-Lokalisierung auf das Verzeichnis bin/ im Paket-Stammverzeichnis festzulegen.
Als absolute Notlösung, falls alle Stricke reisen, wird "gefriemelt". - Uarrhh, ich hasse "friemeln". :(
dornroeschen:
--- Zitat von: escimo am 15. Februar 2009, 05:35:54 ---Beim Aufruf des Binary "gcc" wird korrekt versucht, weitere Binaries (u.a. "cpp0" , "cc1") aufzurufen, die im Ausführungspfad ($PATH) gesucht werden. Nur diese Binaries befinden sich leider unterhalb (...)/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/ - Wie auch immer die _dort_ hingeraten sind, ist mir noch schleierhaft. ???
--- Ende Zitat ---
Ähemmm, sorry, genau dort gehören sie beim gcc2 hin. Diese Probleme entstehen, wenn der Compiler
[x] nicht im Installationspfad ( configure --prefix=)
[x] nicht unterhalb /usr (Default Suchpfad)
[x] nicht unterhalb /usr/local (Default Suchpfad)
zu liegen kommt. In diesem Fall kann die Option -B (info gcc) dafür sorgen, dass die Binaries (und alles andere was sich im o.g. Verzeichnis noch tummelt und *benötigt* wird, wie Includes und interne Libs) trotzdem gefunden werden. Für ein Package ist das natürlich keine Dauer-Lösung.
Rainer
escimo:
Danke für den Hinweis Rainer.
--- Zitat von: escimo am 19. April 2007, 10:24:11 ---
--- Zitat ---# ../gcc-2.95.3/configure --prefix=/opt/gnu --with-local-prefix=/opt/gnu
--- Ende Zitat ---
--- Ende Zitat ---
Wie kann ich während des Aufrufes schauen, in welchen Verzeichnissen das Binary gcc schaut? Dann (ver)sucht gcc die drei anderen Binaries eventuell unterhalb des Verzeichnisses /opt/gnu (zu finden)?
EDIT:
Im folgenden kann ermittelt werden, welche Aufrufe (Zugriffe) gcc _wo_ durchführt:
sx@toosy: % truss -t access gcc -S hello.c
access("hello.c", 4)
access("/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/specs", 4) = 0
access("/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/specs", 4) Err#2 ENOENT
access("/var/tmp/", 7)
access("/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/cpp0", 1) = 0
Received signal #18, SIGCLD [default]
siginfo: SIGCLD CLD_EXITED pid=047 status=0x0000
access("/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/cc1", 1) = 0
Received signal #18, SIGCLD [default]
siginfo: SIGCLD CLD_EXITED pid=048 status=0x0000
access("/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/cc1", 1) = 0
Da haben wir den Salat. Der Fehler ist mir also erst bei der Paketierung unterlaufen, indem ich mutwillig das Stammverzeichnis für die Installation auf /usr/local/ "umgebogen" habe. :-\
Man kann sich dennoch relativ einfach (mit den entsprechenden Rechten) helfen:
# ln -s /usr/local /opt/gnu (da prefix=/opt/gnu angegeben wurde)
# pkgadd -d ./GNUccomp_2.95.3 [...]
# exit
$ cd $HOME
$ vi .cshrc (hinzufügen von /usr/local/bin im Pfad)
$ source .cshrc
$ gcc -o hello hello.c
$ ./hello (Ausgabe von "Hello toosy")
dornroeschen:
--- Zitat von: escimo am 15. Februar 2009, 16:40:43 ---Danke für den Hinweis Rainer.
--- Zitat von: escimo am 19. April 2007, 10:24:11 ---
--- Zitat ---# ../gcc-2.95.3/configure --prefix=/opt/gnu --with-local-prefix=/opt/gnu
--- Ende Zitat ---
--- Ende Zitat ---
Wie kann ich während des Aufrufes schauen, in welchen Verzeichnissen das Binary gcc schaut? Dann (ver)sucht gcc die drei anderen Binaries eventuell unterhalb des Verzeichnisses /opt/gnu (zu finden)?
--- Ende Zitat ---
Versuch mal
--- Code: ---gcc -v -xc /dev/null
--- Ende Code ---
-v gibt die ganzen Suchpfade mit aus
Rainer
escimo:
Ui. Jetzt habe ich zu lange etwas im alten Beitrag hinzugefügt. ;D
Hey, dein "gcc"-Aufruf mit der Language-Option -xc (für "C") und -v (verbose) auf /dev/null ist eine super Idee. So geht es auch. ;)
Danke dir.
Stephan
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln