Monday 16 January 2017

Gcc 2 95 Binary Optionen

Die Binäroption - format gibt an, dass die Eingabedatei, in diesem Fall Stub. Ist ein roher binärer Blob von Daten. Der Befehl, den Sie anzeigen, nimmt diesen Blob und wickelt ihn in einer Elf-Datei, ähnlich zu anderen Objekten, die vom Compiler erstellt wurden, und zum Verknüpfen in ein Programm. Diese Art von Trick ist auch nützlich, wenn Sie ein ROM-Programmierung Tool, zum Beispiel, dass Elf-Daten anstelle von Roh-Binaries erwartet. Der Blob wird im. data-Bereich platziert und drei Symbole (aka-Variablen) werden für Sie erstellt: binarystubstart binarystubend binarystubsize Wenn Sie stub-image. o mit einem C-Programm verknüpfen, können Sie auf diese Daten zugreifen (Sie können einen beliebigen Zeigertyp auswählen): Verwendung des GNU-CC-Compilers auf AIX GCC-Grundlagen Der GCC-Compiler ist Bestandteil des Free Software Foundations GNU Projects. GCC wird durch eine Open-Source-Umgebung wie alle GNU-Tools entwickelt und unterstützt viele Plattformen, einschließlich AIX. GCC steht für GNU Compiler Collection und unterstützt viele Sprachen wie C, C, Objective C, Fortran und Java. In diesem Artikel werden wir diskutieren GCC-Versionen 3.3.4 und alle Versionen von 3.4 auf AIX-Versionen 5.1, 5.2 und 5.3. Vergleichen von GCC-Compiler mit XL C C Compiler XL C C Enterprise Edition V7.0 für AIX ist die Folgeversion von VisualAge174 C Professional V6.0 für AIX. In diesem Abschnitt beschreiben wir, warum Sie den GCC-Compiler auf AIX verwenden können, wenn Sie den XL C C Compiler verwenden. Der XL-Compiler hat große Unterstützung für die neuesten internationalen und industriellen Programmiersprache-Standards. Der XL C C-Compiler verfügt über neue integrierte Funktionen für die Gleitkommadivision, neue Pragmas und zusätzliche neue Compileroptionen. Eine wesentliche Eigenschaft von IBM XL C C Advanced Edition V7.0 für AIX ist die weitere Kompatibilität mit GCC. Um bei der Portierung von Code, der ursprünglich für GCC geschrieben wurde, zu helfen, wird eine Untermenge von Funktionen in Verbindung mit GNU C C von XL C C unterstützt. Wichtig ist, dass der XL C C-Compiler für PowerPC-Systeme, einschließlich POWER5, optimiert ist. Aber es gibt einige Situationen, wenn die Verwendung der GCC-Compiler möglicherweise attraktiver. Wenn Anwendungen unter Verwendung von Standard-APIs geschrieben und unter Verwendung von GNU gcc oder g-Compilern kompiliert werden, die sie über mehrere Plattformen portieren, ist viel einfacher zu erreichen. GCC hat mehrere Sprachen-Frontends, die das Analysieren mehrerer Sprachen erleichtern. GCC ist ein tragbarer Compiler und läuft auf den meisten heute verfügbaren Plattformen und unterstützt die meisten kommerziellen 64-Bit-CPUs. GCC ist ein nativer Compiler, der auch jedes Programm kompilieren kann, indem es ausführbare Dateien für ein anderes System erstellt als das von GCC selbst verwendete. Dadurch kann die Software für eingebettete Systeme kompiliert werden, die keinen Compiler ausführen können. GCC ist in C mit einem starken Fokus auf Portabilität geschrieben und kann kompilieren, so kann es an neue Systeme leicht angepasst werden. Schließlich GCC gibt Ihnen die Freiheit, bestehende GCC und andere GNU-Software von anderen entwickelt zu verbessern. Da Entwickler versuchen, ihre Anwendungen auf vielen Plattformen zu unterstützen, mit verschiedenen Compilern auf verschiedenen Plattformen können zahlreiche Kopfschmerzen verursachen. Wenn Sie stattdessen den GCC-Compiler verwenden, der auf einer Vielzahl von Plattformen unterstützt wird, reduziert er die Kopfschmerzen beim Portieren von Anwendungen von einer Plattform zur anderen. GCC kann Ihre Arbeit leichter machen, indem Sie eine gemeinsame Compilerumgebung über Plattformen hinweg bereitstellen. G ist jetzt näher an der vollen Übereinstimmung mit dem ISO ANSI C Standard. Beachten Sie, dass das Standard-AIX-Betriebssystem die GCC-Make-Dateien nicht versteht. Wenn Sie versuchen, GCC-Compiler auf AIX zu laden, müssen Sie eine GNU-Datei erstellen. Sie können make - v drucken, um zu sehen, was Sie auf GCC aufbauen müssen. AIX 5L Binäre Kompatibilität IBM bietet binäre Kompatibilität unter den Versionen AIX 5.1, AIX 5.2 und AIX 5.3 des Betriebssystems. Daher werden Anwendungen, die auf AIX 5.1 oder auf AIX 5.2 ausgeführt werden, auf 5.3 as-is ausgeführt, wenn sie den in der IBMs AIX 5L-Binärkompatibilitätsanweisung auf www-1.ibm-Servern aix os-Kompatibilität aufgeführten Kriterien folgen. Mit dem gesagt, ISVs variieren wild auf die Prozesse, die sie verwenden, um Unterstützung eines neuen Betriebssystems Release-Ebene hinzuzufügen. Viele der Top-ISVs führen ihre Anwendungen durch eine Form von Tests. In den meisten Fällen werden sie führen sie durch eine Teilmenge ihrer endgültigen Prüfverfahren vor dem Hinzufügen von Unterstützung. Viele andere ISVs überprüfen jedoch unsere Binärkompatibilitätsdetails und fügen Unterstützung hinzu, die auf ihren Anwendungen basiert, die unserer Aussage entsprechen. In beiden Fällen besteht keine Notwendigkeit, die Anwendung neu zu kompilieren, um sie nach AIX 5.3 zu erhalten. Installieren von GCC auf AIX Die Installation von GCC auf AIX ist einfach, wenn Sie über die verfügbaren Binärdateien für die Version verfügen, die Sie auf Ihrem AIX-System installieren möchten. Die Binärdateien können von den folgenden Standorten aus ftpd zu Ihrem AIX-System heruntergeladen werden: Bull AIX Freeware Hudson Valley Community Open Open Source-Software AIX 5L und 6 Open Source-Pakete IBM AIX Toolbox für Linux-Anwendungen Nach dem Herunterladen des entsprechenden Binär-Formats Datei, chmod die heruntergeladene Datei in den ausführbaren Modus, und führen Sie dann SMIT zu installieren. Unterstützung für AIX 5.2 wurde in GCC Version 3.3 hinzugefügt. Die IBM AIX Toolbox für Linux-Anwendungen verfügt über GCC 3.3.2-Binärdateien, die für AIX 5.1 und 5.2 verfügbar sind. Die BULL Freeware Seite hat auch GCC Version 3.3.2 Binärdateien für AIX 5.2. Wenn Sie eine neuere GCC-Version benötigen, müssen Sie zunächst eine verfügbare GCC-Binärdatei auf Ihrem System installieren. Sobald Sie GCC installiert haben, können Sie es verwenden, um die neuere GCC-Version auf Ihrem AIX-System zu kompilieren. Weitere Informationen finden Sie unter Ressourcen, um den vollständigen Satz von GCC-Installationsanweisungen und Host Targetspezifische Installationshinweise für GCC zu finden. Es ist wichtig, dass Sie den plattformspezifischen Anweisungen genau folgen. Lesen Sie die Anweisungen sorgfältig durch, bevor Sie mit dem Erstellen und Installieren beginnen. Möglicherweise finden Sie GCC-Berichte hilfreich, um sicherzustellen, dass Sie GCC 4.3.x erfolgreich installiert haben (siehe Ressourcen). Zu diesem Zeitpunkt gibt es Build-Berichte für AIX 5.3. Stellen Sie sicher, dass Sie eine Version von GCC installieren, die der auf dem System installierten AIX-Version entspricht. GCC installiert private Kopien von einigen Header-Dateien, die ordnungsgemäß mit AIX-System-Header-Dateien für GCC ordnungsgemäß zu funktionieren integrieren müssen, ansonsten kann der Compiler Fehlermeldungen über Header-Dateien erzeugen. Die Header-Dateien sollten neu erstellt werden, wenn sie nicht übereinstimmen. Sie können den Header-Datei-Cache löschen, um eine neue Version von GCC aus Quellen mit einer alten Version zu erstellen, aber GCC sollte nicht ohne den Header-Datei-Cache betrieben werden. GCC-Compiler-Optionen Es gibt eine Vielzahl von Compiler-Optionen auf GCC, von der Optimierung von Code, Einstellung oder Unterdrückung ISO-ANSI-Standard-Code-Kompilierung, Debugging-Optionen, Template-Code-Kompilierung Optionen. GCC bietet auch einige Compiler-Optionen für die pSeries (früher bekannt als RS 6000) und PowerPC-Plattformen. Eine vollständige Beschreibung der verfügbaren Optionen für POWER - und PowerPC-Ziele finden Sie unter gcc. gnu. org onlinedocs gcc-3.4.3 gcc RS002f6000-und-PowerPC-Optionen. htmlRS002f6000-und-PowerPC-Optionen. Hier werden wir durch ein paar der Optionen, die wir für die meisten relevant sind. Von den Optionen, die den Prozessortyp festlegen, z. B. - mcpu und - mtune. Ist es am besten, die Vorgaben zu verwenden, die GCC bereitstellt. Unter AIX 4.3 und AIX 5.1 ist der Standardwert - mcpucommon - dieser Code wird für alle Mitglieder der pSeries (RS 6000) Prozessorfamilien verwendet. Auf AIX 5.2 und höher ist die Voreinstellung - mcpupowerpc - dieser Code wird auf pSeries PowerPC Prozessoren funktionieren. GCC nimmt einen neuen Prozessortyp an, der dem AIX-Release als Prozessormodell für Scheduling-Zwecke zugeordnet ist. Sie sollten - mcpupower verwenden. - mcpupower2. - mcpupowerpc. - mcpupower4. Etc. für eine bestimmte Prozessor oder Klasse von Prozessoren zu optimieren. Verwenden Sie den - power nicht. - mpowerpc. - mpower2. Oder - mpowerpc64. Obwohl sie verfügbar sind, sind sie nicht für Endbenutzer gedacht. Die Verwendung von - mpower2 oder anderen Optionen kann zu unvorhersehbaren Ergebnissen führen, da sich der Compiler möglicherweise nicht in einem sich selbst konsistenten Zustand für diesen Zielprozessor befindet. Um eine Anwendung im 64-Bit-Modus zu kompilieren, sollte man die Option - maix64 verwenden. Die den 64-Bit-AIX-ABI wie zum Beispiel: 64-Bit-Zeiger, 64-Bit-Langstrecken-Typ und die zur Unterstützung dieser Infrastruktur erforderliche Infrastruktur ermöglicht. Die Angabe von - maix64 bedeutet - mpowerpc64 und - mpowerpc. Während - maix32 deaktiviert die 64-Bit-ABI und impliziert - mno-powerpc64. GCC ist standardmäßig auf - maix32. Wenn Sie eine Linker-Fehlermeldung erhalten, die besagt, dass Sie den verfügbaren TOC-Inhalt (Table of Contents) überschritten haben, können Sie die Menge an TOC-Speicherplatz reduzieren, der von - mminimal-toc verwendet wird. Standardmäßig verwendet GCC - mfull-toc, das mindestens einen TOC-Eintrag für jede eindeutige nicht-automatische Variablenreferenz in Ihrem Programm zuweist. GCC legt auch Gleitpunktkonstanten im TOC an. Allerdings sind nur 16.384 Einträge im TOC verfügbar, und es ist möglich, das TOC zu überlaufen. Durch die Angabe von - mminimal-toc GCC wird für jede Funktion nur ein TOC-Eintrag definiert. - pthread kompiliert und verknüpft Ihren Anwendungscode mit der POSIX-Thread-Bibliothek, genau wie in VisualAge (oder XL) C C. Mit VisualAge (oder XL) CC können Sie auch mit xlcr oder xlCr kompilieren und verknüpfen, um Thread-Unterstützung zu erhalten , Aber diese Option existiert nicht mit GCC. Der Thread-Code sollte daher mit - pthread für GCC verknüpft werden. Die Option - pthread setzt Flags sowohl für den Präprozessor als auch für den Linker. Die Option - g erzeugt Debugging-Informationen, die auf - gxcoff auf Stufe 2 gesetzt werden. Die Debug-Informationen können einige Erweiterungen enthalten, die für den GNU Debugger (GDB) vorgesehen sind. Um Debugging-Informationen kompatibler mit AIX dbx zu erzeugen, kann man die Option - gxcoff verwenden. GCC für AIX unterstützt nicht - msoft-float vollständig. Es wird die Verwendung von Gleitkomma-Registern in GCC deaktivieren, aber GCC-Unterstützungsbibliotheken und AIX-Bibliotheken werden weiterhin Gleitkommaregister verwenden. - mlittle-endian und - mcall-linux sind in der AIX-Konfiguration nicht gültig. In der Dokumentation sind alle Optionen für alle GCC rs6000-Ziele aufgelistet. Nicht alle Optionen sind in jeder Konfiguration verfügbar. Um Optionen direkt an den nativen AIX-Linker zu übergeben, verwenden Sie - Wl, ltlinker optiongt. G und GCC Compiler-Optionen Eine vollständige Beschreibung der gcc-spezifischen Compiler-Optionen finden Sie unter gcc. gnu. org onlinedocs gcc-3.4.3 gcc C-Dialect-Options. htmlC20Dialect20Options. Diese Optionen sind auch auf AIX gleich wie andere UNIX-Systeme. Die häufigste Optimierungsoption ist - O2. Die eine Anzahl von Optimierungen ermöglicht, um die Leistung der resultierenden ausführbaren Datei oder Bibliothek zu verbessern. - O3 ermöglicht mehr Optimierungen, die die Leistung auf Kosten der zusätzlichen Kompilierzeit verbessern können. - Os ermöglicht Optimierungen, die die Leistung erhöhen, versucht jedoch, die Codegröße zu minimieren. Zusätzliche Optimierungsoptionen, die für rechenintensive wissenschaftliche Anwendungen nützlich sind, umfassen - funroll-loops und - ffast-math. - ffast-math ermöglicht dem Compiler erlaubt dem Compiler die Leistung auf Kosten der genauen IEEE und ISO-Konformität für mathematische Funktionen zu verbessern. Gemeinsam genutzte Bibliotheken auf AIX - und System V-Systemen Betrachten wir zunächst die Unterschiede zwischen AIX - und System V-Systemen in Bezug auf gemeinsame Bibliotheken. Anschließend diskutieren wir, wie Sie mit GCC gemeinsam genutzte Bibliotheken auf AIX-Systemen erstellen können. AIX und System V haben unterschiedliche Ansichten von gemeinsamen Objekten. AIX sieht in der Regel gemeinsam genutzte Objekte als vollständig verknüpfte und aufgelöste Entitäten, wobei die Symbolreferenzen bei der Verbindungszeit aufgelöst werden und nicht zur Ladezeit zurückgebracht werden können. System V sieht sie sehr ähnlich zu gewöhnlichen Objektdateien, wo die Auflösung aller globalen Symbole zur Laufzeit durch den Linker ausgeführt wird. Allerdings hat AIX die Möglichkeit, eine Laufzeitverknüpfung (RTL) durchzuführen, so dass Symbole bis zum Loadtime nicht definiert werden können, wenn eine Suche unter allen geladenen Modulen ausgeführt wird, um die notwendigen Definitionen zu finden. Ein gemeinsam genutztes Modul in AIX kann eine Objektdatei oder ein Archivdatei-Member sein, das gemeinsam genutzte Module und oder gewöhnliche Objektdateien enthalten kann. In System V sind gemeinsame Bibliotheken immer normale Dateien, die mit speziellen Optionen erstellt wurden. In AIX werden im Allgemeinen alle Linker eingegebene freigegebene Objekte nur dann als abhängige Elemente der Ausgabedatei aufgeführt, wenn ein Verweis auf ihre Symbole vorhanden ist. AIX nutzt auch Export-Dateien, um explizit Symbole zu exportieren. In System V werden die Namen aller freigegebenen Bibliotheken, die in der Befehlszeile aufgelistet sind, in der Ausgabedatei zur möglichen Verwendung zur Ladezeit gespeichert. Die Option - brtl bewirkt jedoch, dass ab AIX 4.2 in allen derzeit verfügbaren Versionen von AIX (4.3, 5.1 und 5.2) alle gemeinsam genutzten Objekte (außer Archivmitgliedern) in der Befehlszeile als abhängige Objekte in der Ausgabe aufgelistet werden Datei. Weitere Informationen finden Sie unter AIX Linking and Loading Mechanisms (PDF 184KB). Mit GCC erstellt gcc - shared eine gemeinsame Bibliothek. Der Linker exportiert automatisch einige Symbole, aber Sie können AIXs ld - bexpall verwenden, um weitere Symbole zu exportieren. Symbole mit Unterstrichen werden immer noch nicht automatisch exportiert. Auf AIX 5.2 oder AIX 5.1 auf Wartungsniveau 2 ist es möglich, die neue Option - bexpfull link zu verwenden, die alle Symbole exportiert und Symbole nicht überspringt, die mit einem Unterstrich beginnen (wie C-Mangled-Namen). Für die vollständige Kontrolle, ihr Bestes, um eine Exportdatei zu erstellen. Wenn Sie mit AIXs-Exportdateien nicht vertraut sind, können Sie AIX Linking and Loading Mechanisms (PDF 184KB) verwenden. Gcc - shared erstellt ein AIX-artiges, eng gebundenes gemeinsames Objekt, wie es kurz im Abschnitt AIX vs SystemV beschrieben ist. Gcc - shared ruft den AIX-Linker mit - bM: SRE-bnoentry auf. Daher müssen Sie nicht duplizieren diese beiden AIX-Optionen. Verwenden von - brtl. Sucht der AIX-Linker nach Bibliotheken mit den Erweiterungen. a und. so, wie libfoo. a und libfoo. so. Ohne - brtl. Der AIX-Linker sucht nur nach libfoo. a. Sie können libfoo. a einfach durch die Archivierung eines gemeinsam genutzten Objekts oder auch durch Umbenennung des gemeinsam genutzten Objekts als libfoo. a erstellen - AIX kümmert sich nicht, solange das Dateisuffix. a ist. Um eine AIX-Laufzeitverknüpfung zu verwenden, sollten Sie das gemeinsam genutzte Objekt mithilfe von gcc - shared - Wl, - G erstellen und mit der Bibliothek Extras erstellen, indem Sie die Option - Wl hinzufügen. - brtl auf die Link-Zeile. Technisch können Sie die Option - shared verlassen, aber es schadet nicht und reduziert Verwirrung. Wenn Sie ein gemeinsames Objekt mit GCC erstellen möchten, müssen Sie nur gcc - shared und eventuell die Option - bexpfull oder eine mit - Wl referenzierte Exportdatei verwenden. - bE: ltexport filenamegt. exp. Es ist so einfach. Mögliche Probleme bei der Verwendung von GCC G auf AIX Hier sind ein paar mögliche Probleme, die Sie bei der Verwendung von GCC oder G auf AIX entdecken können. Für jedes, haben wir zuerst das Problem beschrieben, und dann zeigen wir die Lösung für diese Frage. Sie können den GNU-Linker nicht auf AIX verwenden, da dies falsch verknüpfte Binärdateien verursacht. Standardmäßig wird der AIX-Linker verwendet, wenn GCC auf AIX verwendet wird. Sie sollten nur den Standard-AIX-Linker verwenden. Beim Kompilieren und Verknüpfen mit - pthread sollte der Bibliotheks-Suchpfad - L usr lib-Threads am Anfang des Pfads enthalten. Überprüfen Sie die Ausgabe von dump - Hv, Import File Strings, Eintrag 0, um zu sehen, was die Pfade sind. Das threads Unterverzeichnis sollte immer vor usr lib und lib kommen. Ausführen der gcc - o foo. - L Pfad - lmylib funktioniert nicht. Es kann nicht öffnen die Bibliothek, weil es für eine statische Bibliothek libmylib. a anstelle von libmylib. so sucht. Wenn die Erweiterung. so in. a geändert wird, funktioniert es gut - es kompiliert und läuft. Sowohl Archivbibliotheken als auch gemeinsam genutzte Bibliotheken auf AIX können eine Erweiterung. a haben. Dies wird erklären, warum Sie cant Link mit einem. So und warum es funktioniert mit dem Namen geändert in. a. Wenn eine 64-Bit-C-Anwendung unter Verwendung von C-Shared-Bibliotheken und Ausnahmebehandlung ausgeführt wird, stürzt die Anwendung ab. GCC 3.4.3 behebt einen Fehler, der verhindert, dass C-Ausnahmebehandlung in freigegebenen Bibliotheken ordnungsgemäß im 64-Bit-Modus funktioniert. Das Verknüpfen einer Anwendung mit einem Archiv von Objektdateien (normale Bibliothek, nicht gemeinsam genutzte Bibliothek) erzeugt Fehlermeldungen über nicht aufgelöste Symbole. Dies kann auftreten, wenn eine Bibliothek Objektdateien mit Verweisen auf Symbole außerhalb der Bibliothek enthält, die der Programmierer dachte, dass der Linker ignorieren würde. GCC bietet einen Wrapper um den System-Linker, der alle Objektdateien und nicht-gemeinsam genutzten Bibliotheken auf Konstruktoren und Destruktoren untersucht. Dies geschieht, bevor der Linker die Möglichkeit hat, nicht benötigte Objektdateien in der Bibliothek zu überspringen, da eine Funktion oder Daten nur in einem Konstruktor oder Destruktor referenziert werden können. Der Scan kann Konstruktoren und Destruktoren finden, die die Anwendung normalerweise nicht verweist, was zusätzliche Symboldefinitionen erfordert, um die Verbindung zu erfüllen. Die Alternative würde die von der Anwendung benötigten Konstruktoren und Destruktoren fehlen, da einige Objektdateien in der Bibliothek unnötig erschienen und ausgelassen wurden, aber tatsächlich benötigte Konstruktoren und Destruktoren geliefert wurden. Diese Unterlassung würde dazu führen, dass die Anwendung zu brechen. Beim Versuch, GCC auf AIX zu kompilieren, werden Assembler-Fehlermeldungen schließlich resultieren. Um dies zu beheben, stellen Sie sicher, dass Sie nicht eine alte Version des GNU-Assembler verwenden, die bestimmte PowerPC-Mnemonics nicht versteht. Es wird empfohlen, den AIX-Assembler zu verwenden, wie in den AIX-Installationsanweisungen auf der GNU GCC-Website beschrieben. Manchmal erhalten Sie diese Fehlermeldung während der Verknüpfung: Dieser Fehler weist höchstwahrscheinlich darauf hin, dass die Festplatte voll ist oder dass die ULIMIT-Umgebungsvariable nicht zulässt, dass die Datei so groß ist, wie sie sein muss. G tut nicht Namensmangel in der gleichen Weise wie VisualAge (oder XL) C. Dies bedeutet, dass Objektdateien, die mit einem Compiler kompiliert wurden, nicht mit anderen verwendet werden können. Der GNU-Assembler (GAS) unterstützt keine PIC. Um PIC-Code zu generieren, müssen Sie einen anderen Assembler, wie die native AIX-Assembler bin als verwenden. Auf AIX, kompilieren Code des Formulars: wird der Linker ein undefiniertes Symbol foo berichten. Obwohl dieses Verhalten sich von den meisten anderen Systemen unterscheidet, handelt es sich nicht um einen Fehler, da die Neu-Definition einer externen Variablen als statisch in ANSI C undefiniert ist. In GCC-Versionen vor GCC 3.4 werden nicht alle Strukturen nach Wert übergeben. GCC 3.4 hat nun bessere ABI Unterstützung für Struktur Argument übergeben. Während diese Änderung GCC näher an die AIX-ABI-Kompatibilität bringt, können diese Änderungen zu Inkompatibilitäten mit Code führen, der durch frühere Versionen kompiliert wurde. Weitere Informationen finden Sie unter gcc. gnu. org gcc-3.4 powerpc-abi. html. Wenn GCC für eine bestimmte Version von AIX erstellt wird, erzeugt es einige Dateien, die für diese Version des Betriebssystems und seiner Headerdateien spezifisch sind. Dies kann Probleme bei der Verwendung von GCC auf einer neueren Version des Betriebssystems, auch nur Bootstrapping des Compilers auf dem neueren Betriebssystem verursachen. Ein Beispiel für dieses Problem tritt beim Erstellen von GCC auf AIX 5.2 mit GCC kompiliert für AIX 5.1 (oder früher) auf. AIX 5.2 unterstützt die atoll () - Funktion, aber GCC, das für AIX 5.1 gebaut wird, enthält eine zwischengespeicherte Kopie von stdlib. h, die nicht den Prototyp für diese Funktion enthält. Der Rückgabewert einer unprototypisierten Funktion ist standardmäßig int statt lang long, was dazu führt, dass GCC falsch einige Zeichenfolgen konvertiert. Zum Starten von GCC auf AIX 5.2 muss die feste stdlib. h-Headerdatei im GCC-Cache entfernt werden, damit die AIX 5.2-Headerdatei verwendet wird. Die Systemheader-Datei kann von dem älteren Build von GCC zum Booten des Compilers verwendet werden. Ein Beispiel Heres ein Beispiel für eine groß genug Stapelgröße pro Thread und die entsprechende Makefile mit GCC, um ein Programm mit pthreads zu kompilieren. Das Array wird dem Stack zugeordnet, nicht im Datenbereich. Das Problem ist die Stapelgröße pro Thread. Sie müssen geeignete pthread-Funktionen verwenden, um die Standard-Thread-Stack-Größe zu erhöhen. Ohne den Code ifdef AIX unten, wird dieser Code coredump. Beziehen Sie sich auf den vollständigen Satz von GCC-Installationsanweisungen und gcc. gnu. org install specific. html-ibm-aix für plattformspezifische Anweisungen. Möglicherweise finden Sie GCC-Berichte nützlich, um sicherzustellen, dass Sie erfolgreich installiert GCC. Weitere Informationen zum GNU-Projekt und zum GCC-Compiler finden Sie auf der offiziellen Website unter gcc. gnu. org. Eine Liste der neuen Funktionen in GCC Version 4.2 finden Sie unter gcc. gnu. org gcc-4.2 changes. html. Ebenso ist die Liste der neuen Funktionen in GCC Version 4.3 auf gcc. gnu. org gcc-4.3 changes. html. Holen Sie sich Produkte und Technologien


No comments:

Post a Comment