sonnenblen.de - Das unabhängige Sun User Forum

Software => Programmieren, Kompilieren => Thema gestartet von: escimo am 03. Januar 2007, 13:54:31

Titel: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 03. Januar 2007, 13:54:31
Hallo zusammen,

ich habe auf meiner SPARCstation 20 (1x SM71) Solaris 2.5.1 frisch installiert. Nun möchte ich die GCC 2.95.3 (nur diese Version) für ein Paar Programmierübungen einsetzen.

Die GCC 2.95.3 werde ich mir im Laufe der nächsten Tage von sunfreeware.com (http://sunfreeware.com) auf den Rechner holen. Vorallem mit einem Assembler möchte ich ein wenig rumspielen.

Meine Fragen:
Kann ich den bei Solaris enthaltenen Assembler zusammen mit der GCC (benötige nur C/C++ Compiler) zusammen einsetzen?
Welche Pakete (Minimal-Variante bitte) werden zusätzlich zur GCC 2.95.3 noch benötigt beziehungsweise muss ich mir außerdem noch beschaffen?

Ich würde mich auf ein Paar Postings von Euch sehr freuen.

Viele Grüße
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 11. Januar 2007, 23:55:41
Hallo wieder,

bis auf den Fakt, dass meine SS20 jetzt (2x SM51) hat, ist noch nix passiert.

Keine Ideen? Nein? Na dann schreibe ich mir eben selbst was...

Hallo escimo.
Zitat
Kann ich den bei Solaris enthaltenen Assembler zusammen mit der GCC (benötige nur C/C++ Compiler) zusammen einsetzen?
Ungewiss.

Zitat
Welche Pakete (Minimal-Variante bitte) werden zusätzlich zur GCC 2.95.3 noch benötigt beziehungsweise muss ich mir außerdem noch beschaffen?
Wie wäre es mit folgenden zusätzlichen Paketen:


Grüße

Immer diese Selbstgespräche...tzzz... :)

Gruß
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: Jonny am 12. Januar 2007, 18:57:15
Wenn man nix wissen tut, dann tut man auch nicht rum texten.

Ich hätte dir gerne was geantwortet, aber wegen des vorigen Satzes lasse ich es lieber ;D
Dein Selbstgespräch war doch ganz aufschlussreich.
Das hättest du auch gleich alles installieren können ;D ;D

Gruß
Jonny
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 12. Januar 2007, 23:26:17
Zitat
Das hättest du auch gleich alles installieren können
Wenn ich mal Zeit habe das mit ein Paar Patches auf ein Rohling zu knallen, werde ich das auch sofort nachholen, Jonny. ;)

Die SS20 hat weder einen Browser, noch ist diese am internen Netzwerk angeschlossen. Erst wenn die Ultra 80 mit QFE-Adapter einsatzbereit ist, kann das System wirklich dauerhaft im Daten-Netzwerk betrieben werden ohne jedesmal das entsprechende Datenkabel umstecken zu müssen.

Grüße
escimo

Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 22. Januar 2007, 18:25:54
Kleines Update, neues Problem... :-\

Am Wochenende habe ich mir endlich mal die benötigten Paket von sunfreeware.com (http://sunfreeware.com) besorgt. Zunächst war alles auf dem Notebook (Win2k Pro). Dann habe ich die ganzen gepackten Dateien (auch noch ein Paar Patches) mit PowerArchiver in einer fette TAR "zusammengeschnürrt" und per FTP auf die SS20 "geschoben".

Das die betagte UNIX-Variante von tar mit langen Dateinamen nicht zurecht kommt, war mir bedauerlicherweise kurzzeitig entschwunden. Also habe ich versucht das tar-Paket von sunfreeware.com zunächste mittels ...
# pkgadd -d ./tar-1.16-sol25-sparc-local
... zu installieren.

Nix da! Jetzt hat er was an dem Header des Paketes "auszusetzen". Habt ihr einen Tipp, was ich falsch mache? ???

Selbst wenn ich alle Dateien einzeln per FTP auf die SS20 transferiere, weis ich nicht, ob die Pakete sich installieren lassen. Ich werde heute noch Probe-Installationen von einigen der besorgten Pakete durchführen.

"Die genaue Fehlermeldung zur Installation von tar mit pkgadd folgt heute noch (ca. 21 Uhr)."

...und hier ist 'se (Problem ist bereits behoben)
# pkgadd -d ./tar-1.16-sol25-sparc-local

The following packages are available:
  1  SMCtar     tar
                (sparc) 1.16

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: 1

Processing package instance <SMCtar> from </home/schaarst/tar-1.16-sol25-sparc-local>

tar
(sparc) 1.16

This appears to be an attempt to install the same architecture and
version of a package which is already installed.  This installation
will attempt to overwrite this package.

cpio: Bad magic number/header.
1 errors
pkgadd: ERROR: attempt to process datastream failed
    - process </usr/bin/cpio -icdumD -C 512> failed, exit code 1
pkgadd: ERROR: unable to unpack datastream

Installation of <SMCtar> failed (internal error).
No changes were made to the system.
#

Gruß
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: claus am 22. Januar 2007, 18:32:43
Das ftp von windows nach Solaris hat mir schon so manches Paket ruiniert. Wenn sonst keiner einen Hinweis hat, versuchs mal mit winscp (und eben scp).

Claus
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: Jonny am 22. Januar 2007, 20:14:08
Winscp ist gut, aber grotten langsam.
Hast du FTP auf den Binary Mode geschaltet? (winscp macht das auch manchmal falsch)

Gruß
Jonny
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 22. Januar 2007, 21:31:58
Hi zusammen,

also das lag wirklich an dem FTP-Tool von Win2k. Allerdings...

@Jonny: Ja, der "binary mode" hätte auch funktioniert. Ich habe es nochmal getestet. Den Modus sollte ich mir mal bei Binärdateien angewöhnen ;)

Habe das aber vorher mit dem FileZilla, dessen Installer noch auf meiner Festplatte zu finden war, nochmals transferiert. Da hat es auch geklappt und ich konnte inzwischen schon gtar, zlib, patch, gzip installieren.

Danke für die Hilfestellung zu diesem Problem.

Gruß
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 22. Januar 2007, 22:55:40
Das Teilproblem mit dem Volume Manager habe ich nach <<hier (http://www.sonnenblen.de/index.php/topic,4278.msg24554.html#msg24554)>> in eine neues Thema ausgelagert.

Ich installiere derweilen Patches und danach noch weitere Freeware-Pakete ... ;)

Gruß
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: claus am 22. Januar 2007, 23:11:48
Winscp ist gut, aber grotten langsam.
Hast du FTP auf den Binary Mode geschaltet? (winscp macht das auch manchmal falsch)

Gruß
Jonny

Danke für den Tip. ICh hatte halt einmal Probleme mit standard-Windows ftp, danach hab ich einfach immer winscp genommen, die Zeit wars mir wert, dafür hat es immer funktioniert. Werde mir das jetzt per Email schicken, damit es in meinem "MERKE" Ordner landet.

Claus
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 30. Januar 2007, 22:15:24
Da die eingebildete "Volume-Manager"-Problematik zu keinem Zeitpunkt wirklich existent gewesen zu sein scheint, kann ich mit der ursprünglichen Software-Konfiguration fortfahren.

Zum weiteren Verlauf: Jetzt kommen erst mal die Patches dran! Das kann dauern  :-\

Gruß
escimo

Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 31. Januar 2007, 23:51:14
So. Nachdem der Patch-Cluster nach einigen Stunden mal fertig war - ab ca. 0100 bis ca. 0500, wo ich dann von dem Summen der 2.1 GB Seagate-Festplatte wieder aufgewacht bin :-X - kann ich morgen daran gehen einige zusätzliche SFW-Pakete zu installieren.

Dabei werde ich den GCC 2.7.2 installieren, um mir den Rest inklusive GCC 2.95.3 aus den Sources "eigenhändig" zu übersetzen und unter /opt/sfw installieren zu lassen.

Sollte alles glatt gehen, kann ich mich endlich daran versuchen, "Assembler-Schnick-Schnack" mit der Tastatur "einzuhacken".

Weitere Zwischenstände mit Ergebnissen folgen.

Gute Nacht zusammen.
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 06. Februar 2007, 00:52:16
Es ist verwurstelt:

Warum werden die Umgebungsvariablen speziell die Pfad-Einträge unter /etc/profile für den Benutzer root nur im Konsolen-Login gültig, nicht aber im CDE?

Als Hinweis: Benutzer root nutzt die Bourne shell (sh) und es existiert keine lokale .profile-Datei. D.h., ich will das System zwingen die /etc/profile zu nutzen.
In der Konsole/Terminal unter CDE möchte ich aber auch nicht jedesmal alles von Hand setzen beziehungsweise durch ein Script setzen lassen.

Will jetzt nicht mehr nachschaun...bin müde und gehe in die Heia.

Gute Nacht.
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 07. Februar 2007, 23:07:00
Zwei temporäre Lösungen habe ich jetzt parat für das PATH-Problem:
1. symbolischer Link für die Datei .profile auf /etc/profile
2. Einlesen der /etc/profile mit der Bourne Shell mit vorangestellten Punkt (.) :
    # . /etc/profile
Die C-Shell nutzt source anstelle des Punktes (.).
Leider weis ich immer noch nicht, wo und wann genau die /etc/profile bei CDE eingebunden wird. Auch die Anpassung der .dtprofile mit dem Setzen der Umgebungsvariablen DTSOURCEPROFILE=true bringt da nicht viel, da es bei meinem root keine lokale Datei .profile gibt. Allerdings kann ich durch setzen des symbolischen Links das ganze manuell umgehen. Ich untersuche das bei Gelegenheit weiter aber jetzt gibt es dringendere Anliegen.

Beim Kompilieren von GCC 2.95.3 mit GCC 2.95.3 (ja selbe Version ;)), ist der Build fehlgeschlagen, da es mit dem native make - wie in der Doku angegeben - leider zu Problemen gekommen ist. Werde also erst mal die GNU-Variante von make und einige andere GNU-Tools nachinstallieren. :-/

Gruß
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 08. Februar 2007, 13:57:00
Habe zwecks der Umgebungsvariablen PATH unter CDE nochmals geschaut:

Das Programm "Console" (?) nutzt die in der /etc/profile gesetzten Pfad-Angaben auch ohne lokal gesetzte .profile Datei.

Das Programm "Terminal" (dtterm) greift auf die /etc/profile nicht zurück. Warum nicht, und wie doch, dass muss ich erst noch rausfinden. ???
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 11. Februar 2007, 21:26:13
Jetzt hab ich es fast:

Das Programm hinter dem Menü-Eintrag "Terminal" und "Console" ist identisch. Lediglich die Aufrufoptionen des dahinter-liegenden Programms dtterm (als Terminal-Emulator) ist unterschiedlich:

Im CDE: Workspace Menü :: Programs :: Terminal ...
startet in etwa...
Code: (bash) [Auswählen]
dtterm -title "Terminal" +lsDie Option +ls legt fest, dass eine Standard-Shell gestartet werden soll, keine Login-Shell. D.h., diese Option verhindert letztlich das Einlesen der systemweiten...
sowie der lokalen...
-Konfigurationsdateien. Dies ist die Standard-Einstellung (Default). Die CDE-Action ist unter /usr/dt/config/$LANG/sys.dtwmrc eingetragen und unter /usr/dt/appconfig/appmanager/$LANG/Desktop_Tools/ als Eintrag Dtterm hinterlegt.

Im CDE: Workspace Menü :: Programs :: Console ...
startet in etwa...
Code: (bash) [Auswählen]
dtterm -title "Console" -lsDie Option -ls legt fest, dass die zu startende Shell eine Login-Shell ist.  Die CDE-Action ist ebenfalls unter /usr/dt/config/$LANG/sys.dtwmrc eingetragen und unter /usr/dt/appconfig/appmanager/$LANG/Desktop_Tools/ als Eintrag DttermConsole hinterlegt.

Mit dem Kommando dtsearchpath lassen sich alle von CDE konfigurierten Umgebungsvariablen anzeigen. Leider nicht die $PATH-Variable für die Action Dtterm.  ???

Gruß
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 11. Februar 2007, 23:13:27
Der Pfad wird in der /usr/dt/bin/Xsession gesetzt. Leider nicht so was "echo $PATH" mit der Anwendung dtterm (Terminal) zurückgibt

Ich habe dann versucht nach einem Suchpfad rekursiv mit folgendem Befehl zu "greppen":

Code: (bash) [Auswählen]
find /usr -type f -print | xargs fgrep -n "/usr/contrib/bin"Als Ergebnis gibt die Befehlsfolge die Datei /usr/dt/bin/dtlogin, Zeile 505 an.

...mmh...Das bringt mich nicht wirklich weiter.
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 15. März 2007, 18:39:44
Demnächst geht es hier weiter, da ich demnächst wieder etwas mehr Zeit habe.

Dann wird dieser Text hier aktualisiert.

Aktualisierung: Da geänderte Beiträge nicht zu "Ungelesenen Beiträgen" zählen habe ich bezüglich einer Zwischenfrage ein neuen Beitrag an dieses Thema angehängt. - Entschuldigung.  :-[

Gruß
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 26. März 2007, 00:27:08
So es geht weiter...

Allerdings zunächst mit einer Frage, für die ich kein neues Thema aufgrund der Häufigkeit erstellen möchte:

Ist es möglich, mit einem TurboGXplus (http://www.sunshack.org/data/sh/2.1/infoserver.central/data/syshbk/Devices/Graphics/GRAPH_TurboGXplus.html)-Framebuffer im Zusammenhang mit einem Sync-fähigen TFT LCD-Display (z.B. Samsung SyncMaster 214T = 21" TFT) Aulösungen und Bildwiederholfrequenzen einzustellen, die außerhalb der Sun-Standards liegen (z.B. VESA-Einstellung 1280x1024@60Hz bei 63,981 kHz)?

Ich habe die Beiträge aus älteren Themen bereits durchgelesen. Dennoch lässt sich aus keinem der Kommentare, Ratschläge und Hinweise eine eindeutige Aussage ableiten.

Ich würde mich wie immer auf etwas Hilfe sehr freuen.

Gruß
escimo

Anmerkung: Ich plane in naher Zukunft einen TFT LCD (wahrscheinlich angegebenen Samsung SyncMaster 214T) zu kaufen. Nur sollte meine SS20 davon auch profitieren können, wenn ich den CRT ausrangiere (Sony Multiscan E400 wäre kostenlos abzugeben). ;)
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: claus am 26. März 2007, 07:35:23
Soweit ich das verstanden habe, sind die angegebenen Auflösungen die einzigen, die auch wirklich funktionieren, habs aber mangels Monitor(*) nie verifizieren können.

Claus

(*) = nach diversen vielen Monaten Arbeit auf Suns, über SSH, ist im Augenblick das Einrichten von CDE  ein interessantes Problem.
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 27. März 2007, 23:39:39
Danke für deine Antwort Claus.

Echt mal Mist mit dem Unwissen. Ich könnte mir in den Arsch beißen. Das kann ich dann wohl wirklich nur probieren. Ähhh... :-\
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 18. April 2007, 10:37:25
So...ich habe die Schnauze schon wieder richtig voll.  :-\

# uname -a
SunOS sypho 5.5.1 Generic_103640-42 sun4m sparc SUNW,SPARCstation-20

Hier mal mein generelles Vorgehen zum Übersetzen des GNU C-Compilers:

Wir nehmen an die Quellen liegen im Verzeichnis /opt/temp/gcc-2.95.3/ , der Compiler zum Übersetzen ist unter /usr/local/ installiert.
Hier noch weiterführende Informationen zu den installierten und genutzten Tools für das Kompilier-Vorhaben:
# pkginfo | grep SMC
application SMCgcc342      gcc
application SMCliconv      libiconv
application SMClintl       libintl
application SMCmake        make
Auch hier habe ich es mir vorerst ersparrt, die binutils, automake, autoconf und andere GNU-Tools zu installieren. Ich möchte einen Großteil der Tools von Solaris einsetzen lassen, wie z.B. m4, lex, as oder ar, die sich im Verzeichnis /usr/ccs/bin/ befinden.

# make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

# gcc --version
This program built for sparc-sun-solaris2.5.1
gcc (GCC) 3.4.2
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Wie ihr sicher bemerkt habt, bin ich doch dazu übergegangen einen neuere Compiler-Suite (3.4.2 anstatt 2.95.3 oder 2.7.2) zu nutzen, da ich die libgcc (ftp://ftp.sunfreeware.com/pub/freeware/sparc/2.5/libgcc-3.3-sol25-sparc-local.gz)_s.o benötige, die bei 2.95.3 und 2.7.2 nicht enthalten ist, aber zum Beipsiel von GNU make benötigt wird.

Her mal ein Paar Ausgaben, wenn was nicht vorhanden ist:
...
ld.so.1: make: fatal: libiconv.so.2: open failed: No such file or directory
Killed
# pkgadd -d /home/bli/sun551/*/libiconv-...
...
ld.so.1: make: fatal: libintl.so.3: open failed: No such file or directory
Killed
#  pkgadd -d /home/bla/sun551/*/libintl-...
ld.so.1: make: fatal: libgcc_s.so.1: open failed: No such file or directory
Killed
#  pkgadd -d /home/blo/sun551/*/libgcc-...

Umgebungsvariablen habe ich wie folgt unter CDE in einem dtterm-Fenster als root (su) gesetzt:
# PATH=/usr/local/bin:/usr/ccs/bin:$PATH; export PATH
# LD_LIBRARY_PATH=/usr/local/lib:/usr/ccs/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
# MANPATH=/usr/local/man:$MANPATH; export MANPATH
# CXX=`which gcc`; export CXX
# CC=`which gcc`; export CC

So jetzt geht es los:
# mkdir /opt/temp/gcc-sun4
# cd /opt/temp/gcc-sun4
# ../gcc-2.95.3/configure --help
...bla...
# more ../gcc-2.95.3/gcc/INSTALL
...
We _highly_ recommend that GCC be built using GNU make;
...interessant...
Den Inhalt zur Datei ../gcc-2.95.3/gcc/INSTALL findet hier auch online hier (http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_3.html).

Schritt 1: das configure-Script
# ../gcc-2.95.3/configure --prefix=/opt/gnu --with-local-prefix=/opt/gnu

Created "Makefile" in /opt/temp/gcc-sun4 using "mh-frag"
Configuring libiberty...
creating cache ../config.cache
checking host system type... sparc-sun-solaris2.5.1
checking build system type... sparc-sun-solaris2.5.1
checking for ar... ar
checking for ranlib... ranlib
checking for gcc... /usr/local/bin/gcc
checking whether we are using GNU C... yes
checking whether /usr/local/bin/gcc accepts -g... yes
checking for POSIXized ISC... no
checking for a BSD compatible install... ../../gcc-2.95.3/libiberty/../install-sh -c
checking how to run the C preprocessor... /usr/local/bin/gcc -E
checking for sys/file.h... yes
checking for sys/param.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for unistd.h... yes
checking for strings.h... yes
checking for sys/time.h... yes
checking for sys/resource.h... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking whether the C compiler (/usr/local/bin/gcc -g -O2 ) works... yes
checking whether the C compiler (/usr/local/bin/gcc -g -O2 ) is a cross-compiler... no
checking for asprintf... no
checking for atexit... yes
checking for basename... no
checking for bcmp... yes
checking for bcopy... yes
checking for bzero... yes
checking for calloc... yes
checking for clock... yes
checking for getcwd... yes
checking for getpagesize... yes
checking for index... yes
checking for insque... yes
checking for memchr... yes
checking for memcmp... yes
checking for memcpy... yes
checking for memmove... yes
checking for memset... yes
checking for mkstemps... no
checking for putenv... yes
checking for random... yes
checking for rename... yes
checking for rindex... yes
checking for setenv... no
checking for sigsetmask... no
checking for strcasecmp... yes
checking for strchr... yes
checking for strdup... yes
checking for strncasecmp... yes
checking for strrchr... yes
checking for strstr... yes
checking for strtod... yes
checking for strtol... yes
checking for strtoul... yes
checking for tmpnam... yes
checking for vasprintf... no
checking for vfprintf... yes
checking for vprintf... yes
checking for vsprintf... yes
checking for waitpid... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for ANSI C header files... yes
checking for pid_t... yes
checking for vfork.h... no
checking for working vfork... yes
checking for sys_errlist... yes
checking for sys_nerr... yes
checking for sys_siglist... no
checking for getrusage... yes
checking for on_exit... no
checking for psignal... yes
checking for strerror... yes
checking for strsignal... yes
checking for sysconf... yes
checking for times... yes
checking for sbrk... yes
checking for gettimeofday... yes
updating cache ../config.cache
creating ./config.status
creating Makefile
creating testsuite/Makefile
creating config.h
Configuring texinfo...
loading cache ../config.cache
checking for a BSD compatible install... ../../gcc-2.95.3/texinfo/../install-sh -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... missing
checking for working autoconf... missing
checking for working automake... missing
checking for working autoheader... missing
checking for working makeinfo... missing
checking for gcc... (cached) /usr/local/bin/gcc
checking whether the C compiler (/usr/local/bin/gcc -g -O2 ) works... yes
checking whether the C compiler (/usr/local/bin/gcc -g -O2 ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether /usr/local/bin/gcc accepts -g... (cached) yes
checking how to run the C preprocessor... (cached) /usr/local/bin/gcc -E
checking whether /usr/local/bin/gcc needs -traditional... no
checking for a BSD compatible install... ../../gcc-2.95.3/texinfo/../install-sh -c
checking for ranlib... (cached) ranlib
checking for texconfig... false
checking for POSIXized ISC... no
checking for minix/config.h... no
checking whether to enable maintainer-specific portions of Makefiles... no
checking for Cygwin32 environment... no
checking for Mingw32 environment... no
checking for executable suffix... no
checking for sigblock... no
checking for sigblock in -lbsd... no
checking for tputs in -lncurses... no
checking for tputs in -lcurses... yes
checking for ANSI C header files... (cached) yes
checking for fcntl.h... yes
checking for pwd.h... yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for termcap.h... no
checking for termio.h... yes
checking for termios.h... yes
checking for unistd.h... (cached) yes
checking for sys/fcntl.h... yes
checking for sys/file.h... (cached) yes
checking for sys/ptem.h... yes
checking for sys/time.h... (cached) yes
checking for sys/ttold.h... yes
checking for sys/wait.h... (cached) yes
checking for off_t... yes
checking return type of signal handlers... void
checking for working const... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for working alloca.h... (cached) yes
checking for alloca... (cached) yes
checking for vprintf... (cached) yes
checking for setvbuf... yes
checking for getcwd... (cached) yes
checking for memset... (cached) yes
checking for bzero... (cached) yes
checking for strchr... (cached) yes
checking for strcasecmp... (cached) yes
checking for sigprocmask... yes
checking for sigsetmask... (cached) no
checking for memcpy... (cached) yes
checking for memmove... (cached) yes
checking for strdup... (cached) yes
checking for strerror... (cached) yes
checking for inline... inline
checking for size_t... yes
checking for unistd.h... (cached) yes
checking for getpagesize... (cached) yes
checking for working mmap... yes
checking for argz.h... no
checking for limits.h... yes
checking for locale.h... yes
checking for nl_types.h... yes
checking for malloc.h... yes
checking for string.h... (cached) yes
checking for unistd.h... (cached) yes
checking for values.h... yes
checking for sys/param.h... (cached) yes
checking for getcwd... (cached) yes
checking for munmap... yes
checking for putenv... (cached) yes
checking for setenv... (cached) no
checking for setlocale... yes
checking for strchr... (cached) yes
checking for strcasecmp... (cached) yes
checking for __argz_count... no
checking for __argz_stringify... no
checking for __argz_next... no
checking for stpcpy... no
checking for LC_MESSAGES... yes
checking whether NLS is requested... yes
checking whether included gettext is requested... no
checking for libintl.h... yes
checking for gettext in libc... no
checking for bindtextdomain in -lintl... yes
checking for gettext in libintl... no
checking whether catgets can be used... no
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
found xgettext programs is not GNU xgettext; ignore it
checking for catalogs to be installed...  de fr
updating cache ../config.cache
creating ./config.status
creating Makefile
creating doc/Makefile
creating info/Makefile
creating intl/Makefile
creating lib/Makefile
creating makeinfo/Makefile
creating po/Makefile.in
creating util/Makefile
creating config.h
linking ../../gcc-2.95.3/texinfo/intl/libgettext.h to intl/libintl.h
Configuring gcc...
loading cache ../config.cache
checking LIBRARY_PATH variable... ok
checking GCC_EXEC_PREFIX variable... ok
checking host system type... sparc-sun-solaris2.5.1
checking target system type... sparc-sun-solaris2.5.1
checking build system type... sparc-sun-solaris2.5.1
checking for gcc... (cached) /usr/local/bin/gcc
checking whether the C compiler (/usr/local/bin/gcc -g -O2 ) works... yes
checking whether the C compiler (/usr/local/bin/gcc -g -O2 ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether /usr/local/bin/gcc accepts -g... (cached) yes
checking whether make sets ${MAKE}... (cached) yes
checking whether a default assembler was specified... no
checking whether a default linker was specified... no
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking for flex... lex
checking for yywrap in -ll... yes
checking whether ln works... yes
checking whether ln -s works... yes
checking for volatile... yes
checking for ranlib... (cached) ranlib
checking for bison... no
checking for byacc... no
checking for a BSD compatible install... ../../gcc-2.95.3/gcc/../install-sh -c
checking how to run the C preprocessor... (cached) /usr/local/bin/gcc -E
checking for ANSI C header files... (cached) yes
checking whether time.h and sys/time.h may both be included... yes
checking whether string.h and strings.h may both be included... yes
checking for sys/wait.h that is POSIX.1 compatible... (cached) yes
checking for limits.h... (cached) yes
checking for stddef.h... yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for time.h... yes
checking for fcntl.h... (cached) yes
checking for unistd.h... (cached) yes
checking for stab.h... no
checking for sys/file.h... (cached) yes
checking for sys/time.h... (cached) yes
checking for sys/resource.h... (cached) yes
checking for sys/param.h... (cached) yes
checking for sys/times.h... yes
checking for sys/stat.h... yes
checking for direct.h... no
checking for thread.h... yes
checking for pthread.h... yes
checking for gnatbind... no
checking whether cpp understands the stringify operator... yes
checking for inttypes.h... no
checking for strtoul... (cached) yes
checking for bsearch... yes
checking for strerror... (cached) yes
checking for putenv... (cached) yes
checking for popen... yes
checking for bcopy... (cached) yes
checking for bzero... (cached) yes
checking for bcmp... (cached) yes
checking for index... (cached) yes
checking for rindex... (cached) yes
checking for strchr... (cached) yes
checking for strrchr... (cached) yes
checking for kill... yes
checking for getrlimit... yes
checking for setrlimit... yes
checking for atoll... yes
checking for atoq... no
checking for sysconf... (cached) yes
checking for isascii... yes
checking for gettimeofday... (cached) yes
checking for strsignal... (cached) yes
checking for putc_unlocked... yes
checking for fputc_unlocked... no
checking for fputs_unlocked... no
checking for vprintf... (cached) yes
checking whether the printf functions support %p... yes
checking for pid_t... (cached) yes
checking for vfork.h... (cached) no
checking for working vfork... (cached) yes
checking whether malloc must be declared... no
checking whether realloc must be declared... no
checking whether calloc must be declared... no
checking whether free must be declared... no
checking whether bcopy must be declared... no
checking whether bzero must be declared... no
checking whether bcmp must be declared... no
checking whether index must be declared... no
checking whether rindex must be declared... no
checking whether getenv must be declared... no
checking whether atol must be declared... no
checking whether sbrk must be declared... no
checking whether abort must be declared... no
checking whether atof must be declared... no
checking whether strerror must be declared... no
checking whether getcwd must be declared... no
checking whether getwd must be declared... yes
checking whether strsignal must be declared... no
checking whether putc_unlocked must be declared... yes
checking whether fputs_unlocked must be declared... yes
checking whether strstr must be declared... no
checking whether getrlimit must be declared... no
checking whether setrlimit must be declared... no
checking for sys_siglist declaration in signal.h or unistd.h... no
checking if mkdir takes one argument... no
Using `../../gcc-2.95.3/gcc/config/sparc/sparc.c' to output insns.
Using `../../gcc-2.95.3/gcc/config/sparc/sparc.md' as machine description file.
Using `../../gcc-2.95.3/gcc/config/sparc/sol2-sld.h' as target machine macro file.
Using the following host machine macro files:
../../gcc-2.95.3/gcc/config/xm-siglist.h
../../gcc-2.95.3/gcc/config/sparc/xm-sysv4.h
../../gcc-2.95.3/gcc/config/sparc/xm-sol2.h
checking for strerror in -lcposix... no
checking for working const... (cached) yes
checking for inline... (cached) inline
checking for off_t... (cached) yes
checking for size_t... (cached) yes
checking for working alloca.h... (cached) yes
checking for alloca... (cached) yes
checking for unistd.h... (cached) yes
checking for getpagesize... (cached) yes
checking for working mmap... (cached) yes
checking for argz.h... (cached) no
checking for limits.h... (cached) yes
checking for locale.h... (cached) yes
checking for nl_types.h... (cached) yes
checking for malloc.h... (cached) yes
checking for string.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... (cached) yes
checking for getcwd... (cached) yes
checking for munmap... (cached) yes
checking for putenv... (cached) yes
checking for setenv... (cached) no
checking for setlocale... (cached) yes
checking for strchr... (cached) yes
checking for strcasecmp... (cached) yes
checking for strdup... (cached) yes
checking for __argz_count... (cached) no
checking for __argz_stringify... (cached) no
checking for __argz_next... (cached) no
checking for LC_MESSAGES... (cached) yes
checking whether NLS is requested... no
checking assembler alignment features...
checking assembler subsection support...
checking assembler instructions...
Using the Haifa scheduler.
updating cache ../config.cache
creating ./config.status
creating Makefile
creating intl/Makefile
creating po/Makefile.in
creating fixinc/Makefile
creating cp/Makefile
creating f/Makefile
creating java/Makefile
creating auto-host.h
linking ../../gcc-2.95.3/gcc/intl/libgettext.h to intl/libintl.h
Merged sparc/x-sysv4.
Merged sparc/t-sol2 and t-install-cpp.
Created `ch/Makefile'.
Merged sparc/x-sysv4.
Merged sparc/t-sol2 and t-install-cpp.
Created `objc/Makefile'.
creating libintl.h
Configuring etc...
loading cache ../config.cache
checking for a BSD compatible install... ../../gcc-2.95.3/etc/../install-sh -c
creating ./config.status
creating Makefile

Schritt 2 und 3 lager ich in den/die nächsten Beitrag/Beiträge aus, da mich die Forensoftware höflich über eine Begrenzung informiert hat: "Beitrag hat die max. Länge erreicht (20000 Zeichen)." Wenn das so ist...
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 18. April 2007, 10:53:56
Schritt 2: das Komilieren mit make (gekürzt ;))
# make LANGUAGES="c"

make[1]: Entering directory `/opt/temp/gcc-sun4/libiberty'
if [ x"no" = xyes ] && [ ! -d pic ]; then \
    mkdir pic; \
  else true; fi
touch stamp-picdir
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/argv.c -o pic/argv.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/argv.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/choose-temp.c -o pic/choose-temp.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/choose-temp.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/concat.c -o pic/concat.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/concat.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/cplus-dem.c -o pic/cplus-dem.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/cplus-dem.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/fdmatch.c -o pic/fdmatch.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/fdmatch.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/fnmatch.c -o pic/fnmatch.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/fnmatch.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/getopt.c -o pic/getopt.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/getopt.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/getopt1.c -o pic/getopt1.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/getopt1.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/getruntime.c -o pic/getruntime.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/getruntime.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/hex.c -o pic/hex.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/hex.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/floatformat.c -o pic/floatformat.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/floatformat.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/objalloc.c -o pic/objalloc.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/objalloc.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/obstack.c -o pic/obstack.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/obstack.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/pexecute.c -o pic/pexecute.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/pexecute.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/spaces.c -o pic/spaces.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/spaces.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/splay-tree.c -o pic/splay-tree.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/splay-tree.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/strerror.c -o pic/strerror.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/strerror.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/strsignal.c -o pic/strsignal.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/strsignal.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/xatexit.c -o pic/xatexit.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/xatexit.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/xexit.c -o pic/xexit.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/xexit.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/xmalloc.c -o pic/xmalloc.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/xmalloc.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/xstrdup.c -o pic/xstrdup.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/xstrdup.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/xstrerror.c -o pic/xstrerror.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/xstrerror.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/asprintf.c -o pic/asprintf.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/asprintf.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/basename.c -o pic/basename.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/basename.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/mkstemps.c -o pic/mkstemps.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/mkstemps.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/setenv.c -o pic/setenv.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/setenv.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/sigsetmask.c -o pic/sigsetmask.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/sigsetmask.c
test x"no" != xyes || \
    /usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/vasprintf.c -o pic/vasprintf.o
/usr/local/bin/gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/vasprintf.c
rm -f libiberty.a
ar rc libiberty.a \
    argv.o choose-temp.o concat.o cplus-dem.o fdmatch.o fnmatch.o getopt.o getopt1.o getruntime.o hex.o floatformat.o objalloc.o obstack.o pexecute.o spaces.o splay-tree.o strerror.o strsignal.o xatexit.o xexit.o xmalloc.o xstrdup.o xstrerror.o  asprintf.o basename.o mkstemps.o setenv.o sigsetmask.o vasprintf.o
true libiberty.a

...
...
...

make[1]: Leaving directory `/opt/temp/gcc-sun4/gcc'
Configuring in sparc-sun-solaris2.5.1/libio
Configuring in sparc-sun-solaris2.5.1/libiberty
creating cache ./config.cache
checking host system type... sparc-sun-solaris2.5.1
checking build system type... sparc-sun-solaris2.5.1
checking for ar... ar
checking for ranlib... true
checking for gcc... /opt/temp/gcc-sun4/gcc/xgcc -B/opt/temp/gcc-sun4/gcc/ -B/opt/gnu/sparc-sun-solaris2.5.1/bin/
checking whether we are using GNU C... yes
checking whether /opt/temp/gcc-sun4/gcc/xgcc -B/opt/temp/gcc-sun4/gcc/ -B/opt/gnu/sparc-sun-solaris2.5.1/bin/ accepts -g... yes
checking for POSIXized ISC... no
checking for a BSD compatible install... ../../../gcc-2.95.3/libiberty/../install-sh -c
checking how to run the C preprocessor... /opt/temp/gcc-sun4/gcc/xgcc -B/opt/temp/gcc-sun4/gcc/ -B/opt/gnu/sparc-sun-solaris2.5.1/bin/ -E
checking for sys/file.h... yes
checking for sys/param.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for unistd.h... yes
checking for strings.h... yes
checking for sys/time.h... yes
checking for sys/resource.h... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking whether the C compiler (/opt/temp/gcc-sun4/gcc/xgcc -B/opt/temp/gcc-sun4/gcc/ -B/opt/gnu/sparc-sun-solaris2.5.1/bin/ -g -O2 ) works... yes
checking whether the C compiler (/opt/temp/gcc-sun4/gcc/xgcc -B/opt/temp/gcc-sun4/gcc/ -B/opt/gnu/sparc-sun-solaris2.5.1/bin/ -g -O2 ) is a cross-compiler... no
checking for asprintf... no
checking for atexit... yes
checking for basename... no
checking for bcmp... yes
checking for bcopy... yes
checking for bzero... yes
checking for calloc... yes
checking for clock... yes
checking for getcwd... yes
checking for getpagesize... yes
checking for index... yes
checking for insque... yes
checking for memchr... yes
checking for memcmp... yes
checking for memcpy... yes
checking for memmove... yes
checking for memset... yes
checking for mkstemps... no
checking for putenv... yes
checking for random... yes
checking for rename... yes
checking for rindex... yes
checking for setenv... no
checking for sigsetmask... no
checking for strcasecmp... yes
checking for strchr... yes
checking for strdup... yes
checking for strncasecmp... yes
checking for strrchr... yes
checking for strstr... yes
checking for strtod... yes
checking for strtol... yes
checking for strtoul... yes
checking for tmpnam... yes
checking for vasprintf... no
checking for vfprintf... yes
checking for vprintf... yes
checking for vsprintf... yes
checking for waitpid... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for ANSI C header files... yes
checking for pid_t... yes
checking for vfork.h... no
checking for working vfork... yes
checking for sys_errlist... yes
checking for sys_nerr... yes
checking for sys_siglist... no
checking for getrusage... yes
checking for on_exit... no
checking for psignal... yes
checking for strerror... yes
checking for strsignal... yes
checking for sysconf... yes
checking for times... yes
checking for sbrk... yes
checking for gettimeofday... yes
updating cache ./config.cache
creating ./config.status
creating Makefile
creating testsuite/Makefile
creating config.h
Adding multilib support to Makefile in ../../../gcc-2.95.3/libiberty
multidirs=
with_multisubdir=
make[1]: Entering directory `/opt/temp/gcc-sun4/sparc-sun-solaris2.5.1/libiberty'

...
...
...

rm -f libiberty.a
ar rc libiberty.a \
    argv.o choose-temp.o concat.o cplus-dem.o fdmatch.o fnmatch.o getopt.o getopt1.o getruntime.o hex.o floatformat.o objalloc.o obstack.o pexecute.o spaces.o splay-tree.o strerror.o strsignal.o xatexit.o xexit.o xmalloc.o xstrdup.o xstrerror.o  asprintf.o basename.o mkstemps.o setenv.o sigsetmask.o vasprintf.o
true libiberty.a
rm -f needed-list; touch needed-list; \
  for f in atexit calloc memchr memcmp memcpy memmove memset rename strchr strerror strrchr strstr strtol strtoul tmpnam vfprintf vprintf vfork waitpid bcmp bcopy bzero; do \
    for g in asprintf.o basename.o mkstemps.o setenv.o sigsetmask.o vasprintf.o ; do \
      case "$g" in \
        *$f*) echo $g >> needed-list ;; \
      esac; \
    done; \
  done
echo argv.o choose-temp.o concat.o cplus-dem.o fdmatch.o fnmatch.o getopt.o getopt1.o getruntime.o hex.o floatformat.o objalloc.o obstack.o pexecute.o spaces.o splay-tree.o strerror.o strsignal.o xatexit.o xexit.o xmalloc.o xstrdup.o xstrerror.o > required-list
make[2]: Entering directory `/opt/temp/gcc-sun4/sparc-sun-solaris2.5.1/libiberty/testsuite'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/opt/temp/gcc-sun4/sparc-sun-solaris2.5.1/libiberty/testsuite'
make[2]: Entering directory `/opt/temp/gcc-sun4/sparc-sun-solaris2.5.1/libiberty'
if [ -z "" ]; then \
    true; \
  else \
    rootpre=`pwd`/; export rootpre; \
    srcrootpre=`cd ../../../gcc-2.95.3/libiberty; pwd`/; export srcrootpre; \
    lib=`echo ${rootpre} | sed -e 's,^.*/\([^/][^/]*\)/$,\1,'`; \
    compiler="/opt/temp/gcc-sun4/gcc/xgcc -B/opt/temp/gcc-sun4/gcc/ -B/opt/gnu/sparc-sun-solaris2.5.1/bin/"; \
    for i in `${compiler} --print-multi-lib 2>/dev/null`; do \
      dir=`echo $i | sed -e 's/;.*$//'`; \
      if [ "${dir}" = "." ]; then \
        true; \
      else \
        if [ -d ../${dir}/${lib} ]; then \
    flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
    if (cd ../${dir}/${lib}; make "AR=ar" "AR_FLAGS=rc" "CC=/opt/temp/gcc-sun4/gcc/xgcc -B/opt/temp/gcc-sun4/gcc/ -B/opt/gnu/sparc-sun-solaris2.5.1/bin/" "CFLAGS=-g -O2" "LIBCFLAGS=-g -O2" "EXTRA_OFILES=" "HDEFINES=" "INSTALL=/bin/sh /opt/temp/gcc-2.95.3/install-sh -c" "INSTALL_DATA=/bin/sh /opt/temp/gcc-2.95.3/install-sh -c -m 644" "INSTALL_PROGRAM=/bin/sh /opt/temp/gcc-2.95.3/install-sh -c " "LDFLAGS=" "LOADLIBES=" "RANLIB=true" "SHELL=/bin/sh" "prefix=/opt/gnu" "exec_prefix=/opt/gnu" "libdir=/opt/gnu/lib" "libsubdir=/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3" "tooldir=/opt/gnu/sparc-sun-solaris2.5.1" \
        CFLAGS="-g -O2 ${flags}" \
        CXXFLAGS="-g -O2 ${flags}" \
        LIBCFLAGS="-g -O2 ${flags}" \
        LIBCXXFLAGS="-g -O2 -fno-implicit-templates ${flags}" \
        LDFLAGS=" ${flags}" \
        all); then \
      true; \
    else \
      exit 1; \
    fi; \
        else true; \
        fi; \
      fi; \
    done; \
  fi
make[2]: Leaving directory `/opt/temp/gcc-sun4/sparc-sun-solaris2.5.1/libiberty'
make[1]: Leaving directory `/opt/temp/gcc-sun4/sparc-sun-solaris2.5.1/libiberty'
Configuring in sparc-sun-solaris2.5.1/libstdc++
Configuring in sparc-sun-solaris2.5.1/libf2c
creating cache ./config.cache
checking if compiler f771 has been built... no
Configuring in sparc-sun-solaris2.5.1/libchill
creating cache ./config.cache
checking if compiler cc1chill has been built... no
Configuring in sparc-sun-solaris2.5.1/libobjc
creating cache ./config.cache
checking if compiler cc1obj has been built... no
mmhhh ... 1 Stunde und 10 Minuten später ... das sieht ganz gut aus.

Schritt 3: die Installation des Kompilats
# make install

/bin/sh ../gcc-2.95.3/mkinstalldirs /opt/gnu /opt/gnu
make[1]: Entering directory `/opt/temp/gcc-sun4/gcc'
(cd intl && make all)
make[2]: Entering directory `/opt/temp/gcc-sun4/gcc/intl'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/opt/temp/gcc-sun4/gcc/intl'
cd ch; make "AR_FLAGS_FOR_TARGET=rc" "AR_FOR_TARGET=ar" "BISON=bison" "BISONFLAGS=" "CFLAGS=-g -O2" "CLIB=" "GCC_FOR_TARGET=/opt/temp/gcc-sun4/gcc/xgcc -B/opt/temp/gcc-sun4/gcc/ -B/opt/gnu/sparc-sun-solaris2.5.1/bin/ -I/opt/gnu/sparc-sun-solaris2.5.1/include" "LDFLAGS=" "LEX=lex" "LEXFLAGS=" "LN=ln" "LN_S=ln -s" "MAKEINFO=/opt/temp/gcc-sun4/texinfo/makeinfo/makeinfo " "MAKEINFOFLAGS=" "RANLIB_FOR_TARGET=true" "RANLIB_TEST_FOR_TARGET=[ -f true ] || ( [ "sparc-sun-solaris2.5.1" = "sparc-sun-solaris2.5.1" ] && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] )" "SHELL=/bin/sh" "STAGE_PREFIX=" "exeext=" "build_exeext=" "objext=.o" "exec_prefix=/opt/gnu" "prefix=/opt/gnu" "local_prefix=/opt/gnu" "gxx_include_dir=/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/../../../..`echo /opt/gnu | sed -e 's|^/opt/gnu||' -e 's|/[^/]*|/..|g'`/include/g++-3" "tooldir=/opt/gnu/sparc-sun-solaris2.5.1" "gcc_tooldir=/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/../../../../sparc-sun-solaris2.5.1" "bindir=/opt/gnu/bin" "libsubdir=/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3" "datadir=/opt/gnu/share" "distdir=../tmp/\$(subdir)" "localedir=/opt/gnu/share/locale" "CC=/usr/local/bin/gcc" "CHILLFLAGS=-g -O2" "CHILL_FOR_TARGET=/opt/temp/gcc-sun4/gcc/xgcc -B/opt/temp/gcc-sun4/gcc/ -B/opt/gnu/sparc-sun-solaris2.5.1/bin/ -L/opt/temp/gcc-sun4/gcc/ch/runtime/" "CHILL_LIB=-lchill" "GNUCHILL_VERSION=1.5.2" ../cc1chill
make[2]: Entering directory `/opt/temp/gcc-sun4/gcc/ch'
/usr/local/bin/gcc -c  -DIN_GCC -DSVR4  -g -O2     -I. -I.. -I../../../gcc-2.95.3/gcc/ch -I../../../gcc-2.95.3/gcc/ch/.. -I../../../gcc-2.95.3/gcc/ch/../config -I../../../gcc-2.95.3/gcc/ch/../../include ../../../gcc-2.95.3/gcc/ch/decl.c
make[2]: Leaving directory `/opt/temp/gcc-sun4/gcc/ch'
make[1]: Leaving directory `/opt/temp/gcc-sun4/gcc'

# ls /opt/gnu
#
... Chill? Wieso? Davon habe ich nichts für die Übersetztung (LANGUAGES="c") ausgewählt ...

Kann mir jemand mal einen Tipp geben, was ich hier falsch gemacht habe?
Jedenfalls möchte ich einzig den C Compiler (evtl. noch C++ Compiler) übersetzen. Die restlichen Compiler sind mir "Wurst". ;)

Viele Grüße
Stephan
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 19. April 2007, 10:24:11
Habe gestern den ganzen Vorgang nocheinmal wiederholt, nachdem ich mich bei Linux From Scratch (http://archive.linuxfromscratch.org/lfs-museum/3.3/LFS-BOOK-3.3-HTML/chapter06/gcc.html) nochmal kundig gemacht habe. Da ist mir mein Fehler doch glatt ins Auge gefallen:  ::)


Zitat
# ../gcc-2.95.3/configure --prefix=/opt/gnu --with-local-prefix=/opt/gnu
# rm -Rf /opt/temp/gcc-sun4/*
# cd /opt/temp/gcc-sun4
# ../gcc-2.95.3/configure --prefix=/opt/gnu --enable-shared --enable-languages=c --enable-threads=solaris
...
# make bootstrap LANGUAGES="c"
...
# make install
...
# ls /opt/gnu
bin   include   info   lib   man   sun-sparc-solaris2.5.1
Und obwohl die Option "--enable-languages=c" notiert ist, habe ich sie erstmal ignoriert, weil ich von der INSTALL-Datei "vernebelt" gewesen bin.  :-\

Beim make habe ich noch "bootstrap (http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_3.html)" hinzugefügt, da...
Zitat
If you do not have to install any additional GNU tools, you may use the command
  make bootstrap LANGUAGES=language-list BOOT_CFLAGS=option-list
instead of making `stage1', `stage2', and performing the two compiler builds.

Der übernächste Schritt ist nun die Erstellung eines Paketes (http://www.sunfreeware.com/pkgadd.html), was aufgrund der Dokumentationen auch nicht weiter schwer fallen sollte.

"Übernächst"? Wieso? - Ganz einfach. Ich muss den Compiler noch auf Funktionsfähigkeit testen. Am besten an einem anderen kleinen C-Programm.

Gruß
Stephan
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 26. Juni 2007, 01:53:48
Die "Tests"  sind vorerst abgeschlossen.  ;D - Immehin konnte ich mich durchringen wenigstens ein kleines C-Programm einzutippen und zu übersetzen:

sypho% sh
$ cd $HOME/source
$ PATH=/opt/gnu/bin:.:$PATH; export PATH
$ LD_LIBRARY_PATH=/opt/gnu/lib:/usr/lib:.:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
$ gcc -S hello.c
$ gcc -o hello hello.c

Programm 1 als C-Source:
Code: (c) [Auswählen]
#include <stdio.h>

int main()
{
  printf("hello sypho !\n");
  return 0;
}

Programm 1 als Assembler-Source:
Code: (asm) [Auswählen]
.file "hello.c"
gcc2_compiled.:
.section ".rodata"
.align 8
.LLC0:
.asciz "hello sypho !\n"
.section ".text"
.align 4
.global main
.type main,#function
.proc 04
main:
!#PROLOGUE# 0
save %sp, -112, %sp
!#PROLOGUE# 1
sethi %hi(.LLC0), %o1
or %o1, %lo(.LLC0), %o0
call printf, 0
nop
mov 0, %i0
b .LL2
nop
.LL2:
ret
restore
.LLfe1:
.size main,.LLfe1-main
.ident "GCC: (GNU) 2.95.3 20010315 (release)"

Programm 1 Output:
sypho% pwd
/home/schaarst/source
sypho% hello
hello sypho !
sypho%

Demnächst noch was zum Erstellen eines System-V Paketes für den C-Compiler, wie SunOS 5.x sie standardmäßig verwendet...***gähn***    :-[

Gruß
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 08. Juli 2007, 23:39:56
...Bevor es zum Paketbau kommt noch eine Kleinigkeit. Die folgenden Verzeichnisse existieren nach erfolgter Kompilierung und Installation in das Verzeichnis /opt/gnu:

   # ls /opt/gnu
   bin   include   info   lib   man   sun-sparc-solaris2.5.1


Da habe ich noch ein klein wenig frisiert...
   # rm -Rf include/ info/ sun-sun-sparc-solaris2.5.1/
...so dass nur noch....
   # ls /opt/gnu
   bin   lib   man

...übrig bleiben. Danach habe ich die Test(s) gefahren.

Ich hoffe, dass hinterlässt kein instabiles Compiler-System. Bis jetzt hat jeder Übersetzungslauf ohne erkennbare Fehler bzw. ein Fehlverhalten funktioniert. :-\

Innerhalb der nächsten Woche dann endlich der Beitrag, wie man nun den C-Compiler in ein Paket schnürrt.

Gruß
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 27. Juli 2007, 21:19:41
Für ungeduldige Leser...

Interessanter Weise gab es zum Thema Paketbau dazu von Christopher Atlan (Lordy) schon eine FAQ unter [Gewusst wie...] -> Anleitung zum Bau von Solaris Installationspaketen (http://www.sonnenblen.de/faq/paketbau.html)

Die Variante bezogen auf das "GNU C-Compiler 2.95.3"-Kompilat ist in Arbeit und folgt demnächst.

escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 12. August 2007, 02:51:56
Ich sitze gerade am Paketbau und der "Kurz"-Dokumentation. Mir ist beim Wuseln aufgefallen, dass ich das include-Verzeichnis eventuell doch noch benötige, obwohl es unter /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include auch vorhanden ist.

Diesen Konfigurationsschalter "--with-local-prefix=/opt/gnu" habe ich ja beim zweiten erfolgreichen Compilerlauf nicht angegeben. Das bedeutet aber, dass der Compiler jetzt standardmäßig unter /usr/local/include nach einigen Headern - zusätzlich zu /usr/include - sucht.

Unter $GCCSRC/gcc-2.95.3/gcc/INSTALL (http://gcc.gnu.org/install/configure.html) steht dazu...
Zitat
--with-local-prefix=dirname
    Specify the installation directory for local include files. The default is /usr/local. Specify this option if you want the compiler to search directory dirname/include for locally installed header files instead of /usr/local/include.

    You should specify --with-local-prefix only if your site has a different convention (not /usr/local) for where to put site-specific files.

    The default value for --with-local-prefix is /usr/local regardless of the value of --prefix. Specifying --prefix has no effect on which directory GCC searches for local header files. This may seem counterintuitive, but actually it is logical.

    The purpose of --prefix is to specify where to install GCC. The local header files in /usr/local/include—if you put any in that directory—are not part of GCC. They are part of other programs—perhaps many others. (GCC installs its own header files in another directory which is based on the --prefix value.)

    Both the local-prefix include directory and the GCC-prefix include directory are part of GCC's “system include” directories. Although these two directories are not fixed, they need to be searched in the proper order for the correct processing of the include_next directive. The local-prefix include directory is searched before the GCC-prefix include directory. Another characteristic of system include directories is that pedantic warnings are turned off for headers in these directories.

    Some autoconf macros add -I directory options to the compiler command line, to ensure that directories containing installed packages' headers are searched. When directory is one of GCC's system include directories, GCC will ignore the option so that system directories continue to be processed in the correct order. This may result in a search order different from what was specified but the directory will still be searched.

    GCC automatically searches for ordinary libraries using GCC_EXEC_PREFIX. Thus, when the same installation prefix is used for both GCC and packages, GCC will automatically search for both headers and libraries. This provides a configuration that is easy to use. GCC behaves in a manner similar to that when it is installed as a system compiler in /usr.

    Sites that need to install multiple versions of GCC may not want to use the above simple configuration. It is possible to use the --program-prefix, --program-suffix and --program-transform-name options to install multiple versions into a single directory, but it may be simpler to use different prefixes and the --with-local-prefix option to specify the location of the site-specific files for each version. It will then be necessary for users to specify explicitly the location of local site libraries (e.g., with LIBRARY_PATH).

    The same value can be used for both --with-local-prefix and --prefix provided it is not /usr. This can be used to avoid the default search of /usr/local/include.

    Do not specify /usr as the --with-local-prefix! The directory you use for --with-local-prefix must not contain any of the system's standard header files. If it did contain them, certain programs would be miscompiled (including GNU Emacs, on certain targets), because this would override and nullify the header file corrections made by the fixincludes script.

    Indications are that people who use this option use it based on mistaken ideas of what it is for. People use it as if it specified where to install part of GCC. Perhaps they make this assumption because installing GCC creates the directory.

Obwohl das Paket später nach /usr/local installiert werden können soll, benötige ich eventuell doch dieses Verzeichnis und sei es nur ein symbolischer Link.

Die Frage ist, wie ich diese Klippe am sichersten umschiffen kann!?  ???
   
Gruß
escimo

Titel: Paket GNU C-Compiler 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 18. August 2007, 02:23:25
Geschafft!

Die Klippe habe ich mal nicht umschifft, sondern "ratze fatze" Klippe sein lassen, damit ich das Paket fertigstellen konnte. Nun ist es soweit und obwohl ich ein mittelgroßes Problem mit dem Kommando pkgmk hatte, habe ich es heute - ehm gestern - während der Zugfahrt von Frankfurt endlich geschafft das Paket zu erstellen. :D

Hier ist das Paket für jeden, der es mal ausprobieren möchte: GNUccomp_2.95.3.Z (http://www.shaenox.de/files/GNUccomp_2.95.3.Z)

I Hinweise zum angebotenen Paket

II Meine Anforderungen an das Paket
Aber wiederholen wir zunächst nochmal ein Paar Fakten und stellen einige Anforderungen an unser neues zu erstellendes Paket:

III Literatur zum Bau von Paketen

"So, jetzt geht es langsam los..."  ;)

1 Einstieg in den Bau von SVR4-Paketen (Solaris)
1.1 Wozu Pakete
Pakete dienen dem Ausliefern von Anwendungs-Software. Sie werden in der Regel von dem Entwicklern geplant und erstellt, nachdem ein Softwareprodukt fertiggestellt wurde. So kann im weiteren Verlauf sichergestellt werden, dass die Software mit standardisierten Mitteln verteilt und installiert werden kann.

1.2 Was ist ein Paket:
Ein Paket ist eine Sammlung von Dateien und Verzeichnissen, die in einem definierten Format vorliegen. Dieses Format stimmt mit den Vorgaben des ABI (Application Binary Interface), das einen Zusatz zur System-V Schnittstellendefinition bildet, überein.

Für gewöhnlich wird ein Software-Produkt in einem bis mehreren Paketen ausgeliefert. Der Paketinhalt wird in zwei Kategorien gegliedert:

1.3 Inhalt eines Paketes
Zweck eines Paketes ist die Auslieferung von Software einer Kategorie als Paketobjekt. Folgende Arten von Paketobjekten werden unterstützt:

Um ein Paket mit zur Verfügung stehenden Kommandos (z.B. pkgmk) erstellen zu können, müssen zusätzlich zu den Paketobjekten (der eigentlichen Software) nächst einige dieser Kontroldateien erstellt werden:

Alle Installationsscripte sind optional und können bei Bedarf erstellt werden. Zu ihnen zählen unter anderem:

1.4 Allgemeine Anforderungen an ein Paket
Überlegungen vor dem Bau eines Paketes für ein Softwareprodukt (future TODO's):

Welchen Anforderungen sollten Pakete entsprechen:

Soviel zu Teil I. Die Beschreibung zum konkreten [WIE] (Teil II) folgt später ... *gähn* ... heute...

Bis dahin.

Gruß
escimo
Titel: Teil IIa: Paket GNU C-Compiler 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 18. August 2007, 15:37:37
...ausgeschlafen und immer noch hungrig geht's weiter... Zugegeben, das Paket ist alles andere als perfekt. - Es ist ein Anfang.   ;)

2 Erstellung eines SVR4-Paketes
2.1 Schritte zur Erstellung eines Paketes

2.1 Organisation der Verzeichnisstruktur und Anpassungen der Paketobjekte
Da die Verzeichnisstruktur bereits angepasst wurde (-> siehe hier (http://www.sonnenblen.de/index.php/topic,4238.msg26958.html#msg26958)), fehlt noch die Vergabe entsprechender Privilegien auf die Paketobjekte für die spätere Zielplattform/-installation. In diesem Beispiel wurde das Paket nach /opt/gnu installiert, was für ein Paketbau keine gute Idee war. Somit ist zusätzlich ein su erforderlich.

sypho% cd /opt/gnu
sypho% su
Password:
# chown -R bin:bin ./*
# chmod -R 755 ./*
# ^D
logout
sypho%

Folgende Richtlinien sind zu beachten:

2.2 Erstellung der Informationsdatei pkginfo
Die Informationsdatei pkginfo ist eine ASCII-Datei die einige Eigenschaften (Charakteristika) des Paketes beschreibt, die für den weiteren Installationsverlauf benötigt werden. Da es hier keinerlei mitgelieferten Automatismus (Skript o.ä.) gibt, der einen das Tippen teilweise abnimmt, muss man mit seinem bevorzugten Editor die Datei selbst zusammenstellen:

sypho% cd $HOME
sypho% pwd
/home/schaarst
sypho% mkdir InfoFiles
sypho% cd InfoFiles
sypho% pwd
/home/schaarst
sypho% vi pkginfo

 Jeder Eintrag beziehungsweise jede Zeile besteht aus einem Schlüssel-Werte-Paar im Format "PARAM=Value". Bei mehr als einer Wertangabe muss diese in einfache oder doppelte Anführungszeichen eingeschlossen werden ("Wert1 Wert" oder 'Wert1 Wert 2'). Sollten Sonderzeichen verwendet werden, so muss dieses im Format "\x" erfolgen.
Folgende Standard-Parameter müssen in der Datei pkginfo definiert werden: PKG, NAME, ARCH, VERSION und CATEGORY. Folgende Einträge habe ich hinzugefügt:

Code: (bash) [Auswählen]
PKG="GNUccomp"
NAME="GNU C Compiler (created on Solaris 2.5.1)"
ARCH="sparc"
VERSION="2.95.3"
CATEGORY="application"
DESC="GNU C Compiler for program development on the Solaris 2.5.1 Operating Environment and compatible operating systems on SPARC V8 platforms."
VENDOR="Free Software Foundation, Inc."
EMAIL="escimome-please@yahoo.de"
PSTAMP="escimo for sonnenblen.de"
ISTATES="S 2"
RSTATES="S 2"
BASEDIR="/usr/local"

Erklärung zu den Parametern in der pkginfo-Datei:
Darüberhinaus gibt es auch noch andere Parameter wie CLASSES, auf die an dieser Stelle nicht näher eingegangen wird.

2.3 Erzeugen der Informationsdatei prototype
Die Informationsdatei prototype ist ebenfalls eine ASCII-Datei. Sie dient dem formatierten/spezifischen Listen aller Objekte eines Paketes und weiterer Informationen, die für das Kommando pkgmk benötigt werden. Dabei beschreibt jede Zeile ein einzelnes Objekt des Paketes nach einem festgelegten Format. Grundsätzlich lässt sich die prototype-Datei auch von Hand erstellen, was aber unter Umständen je nach Paketinhalt und -größe sehr zeitaufwändig werden kann. Das ist nötig, wenn der Paketinhalt vorher nicht organisiert und in einer Hierarchie zusammengefasst wurde. Für unseren Fall bedienen wir uns dem Kommando pkgproto, da wir die notwendigen Datei-Organisierung bereits vorgenommen haben:

sypho% cd $HOME
sypho% pwd
/home/schaarst
sypho% mkdir InfoFiles
sypho% cd /opt/gnu
sypho% pwd
/opt/gnu
sypho% pkgproto bin lib man > /home/schaarst/InfoFiles/prototype

Die Anweisung "pkgproto bin lib man > /home/schaarst/InfoFiles/prototype"  erstellt eine Datei mit der Bezeichnung "prototype" im Verzeichnis /home/schaarst/InfoFiles. Die 3 Pfad-Parameter im Format "Path1[=Path2]" dienen der Angabe des Pfades, wo sich Paketobjekte befinden. Wird die Option "=Path2" an Path1 angehängt, wird die Pfadangabe von Path1 mit der von Path2 in der prototype-Datei substituiert.

Folgenden Inhalt hat die prototype-Datei nach Ausführung der Anweisung:
d none bin 0755 bin bin
s none bin/cc=gcc
f none bin/protoize 0755 bin bin
f none bin/unprotoize 0755 bin bin
f none bin/gcov 0755 bin bin
f none bin/cpp 0755 bin bin
f none bin/gcc 0755 bin bin
d none lib 0755 bin bin
d none lib/gcc-lib 0755 bin bin
d none lib/gcc-lib/sparc-sun-solaris2.5.1 0755 bin bin
d none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3 0755 bin bin
d none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include 0755 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/math.h 0644 bin bin
d none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/sys 0755 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/sys/stream.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/curses.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/assert.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/syslimits.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/stdarg.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/stddef.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/varargs.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-alpha.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-h8300.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-i860.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-i960.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-mips.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-m88k.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-mn10200.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-mn10300.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-pa.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-pyr.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-sparc.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-clipper.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-spur.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-m32r.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-sh.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-v850.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/proto.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-arc.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/iso646.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-ppc.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-c4x.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/stdbool.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/limits.h 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/README 0644 bin bin
d none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/v7 0755 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/fixed 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/cc1 0755 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/collect2 0755 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crt1.o 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crti.o 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crtn.o 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/gcrt1.o 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/gmon.o 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crtbegin.o 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crtend.o 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/specs 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/SYSCALLS.c.X 0644 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/cpp0 0755 bin bin
f none lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/libgcc.a 0644 bin bin
f none lib/libiberty.a 0644 bin bin
d none man 0755 bin bin
d none man/man1 0755 bin bin
f none man/man1/gcc.1 0444 bin bin
f none man/man1/cccp.1 0444 bin bin

Nehmen wir uns mal den Eintrag "f none bin/gcc 0755 bin bin" aus der Datei prototype und erklären deren Bedeutung:

Bevor wir das Paket mit dem Kommando pkgmk aufrufen können, müssen wir dem in der prototype-Datei noch eintragen, wo die pkginfo-Datei zu finden ist. Dazu kann wieder der bevorzugte Editor benutzt werden, der bei mir nicht unbedingt vi ist ;D aber überall vorhanden ist.

sypho% cd $HOME/InfoFiles
sypho% pwd
/home/schaarst/InfoFiles
sypho% ls
pkginfo     prototype
sypho% vi prototype

Code: (bash) [Auswählen]
i pkginfoDurch Einfügen von "i pkginfo" (include) wird dem Kommando pkgmk vermittelt, dass sich die Datei pkginfo im selben Verzeichnis befindet wie die prototype-Datei. Sollte die pkginfo-Datei in einem anderen Verzeichnis liegen, kann im Format "pkginfo=<Pfad>" auch ein alternativer Pfad (relativ oder absolut) angegeben werden. Darüberhinaus können auch weitere solcher Einträge genutzt werden, wie z.B.

2.4 Erzeugen des Paketes mit dem Kommando pkgmk
Jetzt kommt der kritische Schritt: Das automatisierte Erzeugen des Paketes mit dem Kommando pkgmk. Folgende Aufgaben erledigt das pkgmk-Kommando für uns:

Versuchen wir es mal:
sypho% cd $HOME/InfoFiles
sypho% pwd
/home/schaarst/InfoFiles
sypho% pkgmk
## pkgmap wird erzeugt aus Package-Prototypdatei.
FEHLER in /home/schaarst/InfoFiles/prototype:
    Kein Objekt für <bin/protoize> in root-Verzeichnis gefunden
    Kein Objekt für ...
    ...
pkgmk: ERROR: Erzeugen von pkgmap aus Prototypdatei nicht möglich
## Packaging war nicht erfolgreich.
sypho%
Das war wohl nichts. Da habe ich mich wieder mal total unfähig gestellt. Zuerst wollte ich die Ausgabe "Kein Objekt für <...> in root-Verzeichnis gefunden" nicht verstehen.  :(

Immer wieder wird es gesagt, notwendigerweise muss man es sich auch ab und zu selbst eingestehen: "Du Vollidiot. Lesen was da steht."  ::)

/!\ Nicht schon wieder: "Beitrag hat die max. Länge erreicht (20000 Zeichen)."

...  ;)
Titel: Teil IIb: Paket GNU C-Compiler 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 18. August 2007, 17:32:41
Weiter geht's. Hat ja keiner behauptet, dass es in drei Sätzen ohne jegliche Erklärung erklärt ist. ;)
Die nächsten 20000 Zeilen warten - LOL. :D

...(2.4)...

Versuchen wir folgende Anweisung (pkgmk-Zeile):
sypho% cd $HOME
sypho% pwd
/home/schaarst
sypho% pkgmk -o -d /home/schaarst -f InfoFiles/prototype -r /opt/gnu GNUccomp
## pkgmap wird erzeugt aus Package-Prototypdatei.
## pkginfo-Datei wird verarbeitet.
    WARNUNG: Parameter <CLASSES> gesetzt auf "none"
## Versuche 65 Einträge in pkgmap als Volume-Datenmenge abzulegen.Teil  1 -- 18471 Blöcke, 62 Einträge
## Packaging eines Teils.
/home/schaarst/GNUccomp/pkgmap
/home/schaarst/GNUccomp/pkginfo
/home/schaarst/GNUccomp/reloc/bin/cpp
/home/schaarst/GNUccomp/reloc/bin/gcc
/home/schaarst/GNUccomp/reloc/bin/gcov
/home/schaarst/GNUccomp/reloc/bin/protoize
/home/schaarst/GNUccomp/reloc/bin/unprotoize
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/SYSCALLS.c.X
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/cc1
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/collect2
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/cpp0
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crt1.o
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crtbegin.o
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crtend.o
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crti.o
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crtn.o
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/gcrt1.o
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/gmon.o
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/README
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/assert.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/curses.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/fixed
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/iso646.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/limits.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/math.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/proto.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/stdarg.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/stdbool.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/stddef.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/sys/stream.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/syslimits.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-alpha.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-arc.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-c4x.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-clipper.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-h8300.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-i860.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-i960.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-m32r.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-m88k.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-mips.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-mn10200.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-mn10300.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-pa.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-ppc.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-pyr.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-sh.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-sparc.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-spur.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-v850.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/varargs.h
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/libgcc.a
/home/schaarst/GNUccomp/reloc/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/specs
/home/schaarst/GNUccomp/reloc/lib/libiberty.a
/home/schaarst/GNUccomp/reloc/man/man1/cccp.1
/home/schaarst/GNUccomp/reloc/man/man1/gcc.1
## Steuerungs-Skripts werden überprüft.
## Packaging beendet.
sypho% ls -f $HOME/GNUccomp
pkginfo   pkgmap   reloc
sypho% ls $HOME/GNUccomp/reloc
bin   lib   man
Siehe da -  alles da, alles drin, alles gut. Es scheint funktioniert haben.

Die Anweisung im Detail:

2.5 Verifikation des erzeugten Paketes
Zum Testen des im Verzeichnis-Format vorliegenden, erzeugten Paketes können die Kommandos /usr/sbin/pkgchk, /usr/bin/pkginfo und /usr/bin/pkgparam genutzt werden. Auch eine Installation unter Einsatz des Kommandos pkgadd ist möglich.

Nutzung des Kommandos /usr/sbin/pkgchk:
sypho% pwd
/home/schaarst
sypho% /usr/sbin/pkgchk -v -d . GNUccomp
Nicht installiertes Verzeichnis-Format-Package <GNUccomp> aus </export/home/schaarst> wird geprüft
## Steuerungs-Skripts werden geprüft.
## Package-Objekte werden geprüft.
bin/cpp
bin/gcc
bin/gcov
bin/protoize
bin/unprotoize
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/SYSCALLS.c.X
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/cc1
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/collect2
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/cpp0
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crt1.o
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crtbegin.o
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crtend.o
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crti.o
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/crtn.o
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/gcrt1.o
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/gmon.o
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/README
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/assert.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/curses.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/fixed
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/iso646.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/limits.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/math.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/proto.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/stdarg.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/stdbool.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/stddef.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/sys/stream.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/syslimits.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-alpha.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-arc.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-c4x.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-clipper.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-h8300.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-i860.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-i960.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-m32r.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-m88k.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-mips.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-mn10200.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-mn10300.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-pa.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-ppc.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-pyr.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-sh.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-sparc.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-spur.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/va-v850.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/include/varargs.h
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/libgcc.a
lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.3/specs
lib/libiberty.a
man/man1/cccp.1
man/man1/gcc.1
pkginfo
## Prüfung beendet.
sypho%
Alles in Ordnung.

Nutzung des Kommandos /usr/bin/pkginfo:
%sypho pwd
/home/schaarst/
sypho% pkginfo -d . GNUccomp
application GNUccomp GNU C Compiler (created on Solaris 2.5.1)
sypho%
Interessant.

Nutzung des Kommandos /usr/bin/pkgparam:
%sypho pwd
/home/schaarst/
sypho% pkgparam -v -d . GNUccomp VERSION ARCH DESC PSTAMP
VERSION="2.95.3"
ARCH="sparc"
DESC="GNU C Compiler for program development on the Solaris 2.5.1 Operating Environment and compatible operating systems on SPARC V8 platforms."
PSTAMP="escimo for sonnenblen.de"
sypho%
Wer ist escimo, was ist sonnenblen.de?  ???  ;D

2.6 Transfer des Paketes auf ein Distributionsmedium
Schließlich wollen wir das Paket auch anderen Interessenten zugänglich machen. Jetzt haben wir zwei Möglichkeiten:
In Ordnung, wir nehmen das Kommando pkgtrans und übertragen das Paket als Daten-Strom (data stream) in eine Datei.  ;)

Folgende Übersetzungen können mit dem Kommando pkgtrans an einem installierbaren Paket durchgeführt werden:

Nutzung des Kommandos /usr/bin/pkgtrans:
sypho% cd $HOME
sypho% pwd
/home/schaarst
sypho% ls GNUc*
GNUccomp
sypho% pkgtrans -o -s . GNUccomp_2.95.3 GNUccomp
Transferring <GNUccomp> package instance.
sypho%
Erledigt. Besser wäre allerdings ein Paketname wie "GNUccomp2.95.3-solaris2.5.1-sparc" gewesen, was aber kein Problem ist, wie die Anweisung im Detail zeigt:

Jezt sollte man das Paket noch etwas "quetschen" auch komprimieren genannt. Das kann man ganz einfach mit dem Kommando compress erledigen. Wer lieber GZIP oder BZIP2 nutzen möchte, auch kein Problem:
sypho% s -l ./GNUccomp_2.95.3
-rw-r--r--   1 schaarst users    9318400 Aug 17 16:57 GNUccomp_2.95.3
sypho% compress -f ./GNUccomp_2.95.3
sypho% ls -l ./GNUccomp_2.95.3.Z
-rw-r--r--   1 schaarst users    4024344 Aug 17 17:00 GNUccomp_2.95.3.Z
sypho%

3 Installation/Deinstallation des erstellten Compiler-Paketes
...Das kann ja wohl wieder jeder, oder? ;)

Das war es dann. Wir sind durch.  ::)

So jetzt habe ich mir mein Mittagessen redlich verdient. - Hunger! :'(
Es würde mich auch sehr interessieren, wer diese "kurze" Dokumentation als nützlich empfand.

Grüße und bis demnächst.
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 04. September 2007, 22:20:34
Zitat
Es würde mich auch sehr interessieren, wer diese "kurze" Dokumentation als nützlich empfand.
Hat jemand das Paket (http://www.shaenox.de/files/GNUccomp_2.95.3.Z) mal testen können?  :'(

Wie schätzt ihr die "kurze" Doku zur Software-Übersetzung (GNU C-Compiler) und zum Paketbau ein? Kann diese als "Schnell-Referenz" dienen?

Gruß
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: Freud-Schiller am 05. September 2007, 09:33:51
ha ich werde es testen :) mein 630MP läuft unter solaris 2.5.1 und hat sogar netboot funktion. am wochenende mach ich es. Viele Grüße David
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 05. September 2007, 20:08:14
Super, danke David. :D
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 12. September 2007, 17:17:26
In naher Zukunft - also so in 1-2 Monaten - plane ich noch den C++ Compiler zu übersetzen. Dann versuche ich auch mal beide Compiler (C und C++) in ein Paket zu bündeln.

@David: Hast du das Paket auf deiner 630MP schon mal testen können?

Gruß
escimo
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 15. Februar 2009, 05:35:54
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".  :(
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: dornroeschen am 15. Februar 2009, 12:18:44
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. ???

Ähemmm, sorry, genau dort gehören sie beim gcc2 hin. Diese Probleme entstehen, wenn der Compiler



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
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 15. Februar 2009, 16:40:43
Danke für den Hinweis Rainer.

Zitat
# ../gcc-2.95.3/configure --prefix=/opt/gnu --with-local-prefix=/opt/gnu
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")
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: dornroeschen am 15. Februar 2009, 17:00:46
Danke für den Hinweis Rainer.

Zitat
# ../gcc-2.95.3/configure --prefix=/opt/gnu --with-local-prefix=/opt/gnu
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)?

Versuch mal
gcc -v -xc  /dev/null

-v gibt die ganzen Suchpfade mit aus

Rainer
Titel: Re: GCC 2.95.3 für Solaris 2.5.1
Beitrag von: escimo am 15. Februar 2009, 17:22:57
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