[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Dieser Abschnitt enthält Informationen über den Amiga-Port des GNU C Compilers generell und die Installation insbesondere.
1.1 Aktuelle Version | Die aktuelle gcc-Version | |
1.2 Hardwareanforderungen | ||
1.3 Wer hat es gemacht? | ||
1.4 Wo finde ich die gcc-Quelltexte? | ||
1.5 Inline-Dateien | Wie erzeuge ich Inline-Dateien? | |
1.6 Wie konvertiere ich die Amiga-Libraries für den gcc? | ||
1.7 Wie installiere ich den gcc? | ||
1.8 Wichtige Informationsquellen |
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Die aktuelle gcc-Version (im Folgenden als <gcc-aktuell> bezeichnet) ist 2.5.8. Die Version 2.6 ist in Arbeit und wird unter anderem eine neue Version der beliebten ixemul.library (die Unix-Systemaufrufe auf dem Amiga emuliert) sowie eine absolut neue C-Library enthalten, die die ixemul.library nicht mehr benötigt.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Jeder Amiga (vom A1000 bis zum A4000/40) ist prinzipiell in der Lage, die GNU-Utilities für AmigaDOS zu benutzen. Allerdings braucht man wenigstens 4MB RAM, um kleinere oder mittlere Projekte zu übersetzen, für größere (z.B. für gcc selbst) entsprechend mehr. Gigamem arbeitet mit gcc zusammen, es *könnte* also evtl. auch mit weniger gehen. Dazu braucht man aber eine MMU. @xref{68EC0xx}.
Eine volle Installation mitsamt C++ und Objective-C, inline-Dateien und Commodore Includes (@pxref{Include-Dateien}) benötigt ca. 20 MB Platz auf der Festplatte.
Gcc arbeitet auch unter Kickstart 1.2/1.3, die volle Funktionalität ist aber erst ab Kickstart 2.x+ vorhanden. Eine schnelle CPU (z.B. 68030@25MHz oder besser) ist ebenfalls sinnvoll.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Gcc und damit zusammenhängende Software wurde von den folgenden Personen auf den Amiga portiert (see section Wichtige Informationsquellen):
Gcc v2.2.2: Markus Wild Gcc v2.3.3: Markus Wild Gcc v2.4.5: Philippe Brand, Lars Hecking, Fred Fish Gcc v2.5.0 und später: Philippe Brand, Fred Fish, Leonard Norrgard Ixemul.library: Markus Wild, Leonard Norrgard, R. Luebbert Libnix: Matthias Fleischer, Gunther Nikl Gerlib: Gerhard Müller
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Alle gcc-Quelltexte und alle Binärdateien findet man auf:
+33-1-60037015 HST Dual v32 terbo 4800-21600 +33-1-60037713 SupraFax v32bis 4800-14400 +33-1-60037716 Tornado v22bis 1200-2400
in Topic ‘Development’, Area ‘Gcc’ (are 156).
Den originalen GNU-Quelltext bekommt man
Diese Archive sollten alles Nötige enthalten, mit Ausnahme der Quelltexte der ixemul.library. Diese erhält man ebenfalls auf dem Aminet, Directory ‘dev/gcc’. (Zur Zeit ist die Version 40 der ixemul.library in Arbeit. Die Quelltexte werden am gleichen Ort sein.)
Durch Richard Stallman, Free Software Foundation, ist festgelegt:
"The GPL says that any distribution of binaries must contain either the source code or a written offer to supply source code (see the GPL for details of what is required)."
Übersetzt: Die GPL (GNU General Public License) legt fest, daß jede Distribution entweder den Quelltext oder das schriftliche (oder geschriebene?) Angebot, diese zu liefern, enthalten muß. (Näheres siehe in der GPL.)
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Die Inline-Dateien für den gcc kann man aus den originalen FD-Dateien von Commodore wie folgt erzeugen (@xref{Include-Dateien}, @pxref{Pragmas}):
CLI> Assign INCLUDE: GCC:os-include CLI> Assign FD: INCLUDE:fd CLI> Makedir INCLUDE:inline CLI> cd USR:bin/geninline CLI> gen31
Dies sollte alle Inline-Dateien in ‘GCC:os-include/inline’ erzeugen. Falls man die 2.0- bzw. 3.0-Includes besitzt, sollte man gen20 bzw. gen30 benutzen. Inline-Dateien für OS3.1 (rev 40.13) sind in <gcc-aktuell> enthalten. See section Aktuelle Version. (1)
Auch mit dem Programm fd2inline kann man Inline-Dateien erzeugen:
CLI> fd2inline <fd_file> <proto_file>
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Linklibraries im Amigastil wie amiga.lib können von gcc nicht ohne weiteres verwendet werden. Man muß sie zunächst mit hunk2gcc, einem Programm von Markus Wild, übersetzen.
Dazu braucht man zunächst eine aktuelle Kopie der amiga.lib (aus dem NDU, @pxref{Include-Dateien}). Nachdem man sich ein Directory für die konvertierten Dateien erstellt hat, wechselt man mit cd in dieses Directory und gibt das Folgende ein:
hunk2gcc amiga.lib [..further libs if you like..]
Dies erzeugt ein Objektfile wie a.out für jedes einzelne Modul, das die Library enthält. Diese Module muß man anschließend in einer gcc-Library zusammenfassen:
ar qc libamiga.a obj.* ranlib libamiga.a
Das Programm ranlib fügt eine Symboltabelle in die Library ein. (Dadurch wird der Zugriff auf die Library sehr viel schneller.)
Solange man keine reinen AmigaDOS-Funktionen verwendet, kann man auch eine Pseudo-Library erzeugen:
cat "int dummy;" >dummy.c gcc -c dummy.c ar crv libamiga.a dummy.o mv libamiga.a gcc:lib
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Zunächst eine wichtige Bemerkung von Philippe Brand: Die meist gestellte Frage im Zusammenhang mit gcc-2.5.8 ist
"Warum kann ich keine C++-Programme übersetzen?"
Das liegt daran, daß ich einen Fehler bei der gcc-Distribution gemacht habe. Anstelle der 2.5.8-Versionen der C++- und Objective-C-Compiler habe ich die Version 2.5.7 verwendet. Um dies zu beheben, gibt es zwei Möglichkeiten:
Auf dem Aminet befindet sich auch die Datei ‘dev/gcc/gcc258ud1.lha’, die einige korrigierte Libraries, Includes usw. enthält ...
Und vergessen Sie nicht, die Datei ‘gcc258-readme.lha’ ebenfalls von Aminet zu kopieren.
CLI> cd Disk_mit_viel_freiem_Platz: CLI> lha x gcc258-x.lha
Dabei steht x für die Zahlen 1 bis 4, evtl. auch 5 bis 6, falls Sie auch die Quelltexte installieren wollen.
Von der Workbench aus wird nun das Programm GCC-Install gestartet. Dies ist das von Vielen gewünschte Installer-Skript für den gcc. Man muss also nur die Archivdateien entpacken, der Rest (Erzeugen von Umgebungsvariablen, Assigns, Kopieren der Shared-Libraries usw.) wird vom Installationsskript erledigt.
Bei dieser Gelegenheit:
Installer and Installer project icon © Copyright 1991-93 Commodore-Amiga, Inc. All Rights Reserved. Reproduced and distributed under license from Commodore.
Bitte verwenden Sie unbedingt die ixemul.library in der Revision 45 und nicht die Revision 47! Letztere ignoriert ‘ENV:’.
Um gcc zu verwenden, brauchen Sie einen Stack von wenigstens 50000 Bytes. Dies sollte für die meisten Anwendungen ausreichen. Wollen Sie allerdings gcc selbst übersetzen, dann sollten Sie wenigstens 250000 Bytes rechnen, für noch komplexere Dinge entsprechend mehr. Auch ar und ranlib brauchen einen großen Stack, wenigstens 200000 bis 300000 Bytes, abhängig von der Größe der Library.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Der aktuelle Betreuer des Amiga-Ports von gcc ist:
Philippe BRAND Fidonet: Ramses The Amiga Flying BBS 2:320/104.21 Email: phb@colombo.telesys-innov.fr (ONLY for personnal email). Ftp: colombo.telesys-innov.fr:/pub/amigados-gnu or /pub/incoming/uploads for uploads.
Es gibt auch eine Mail-Liste in Finnland. @xref{Mail-Listen}. Philippe Brand wird im Normalfall Fragen an diese Liste weiterleiten.
[Top] | [Contents] | [Index] | [ ? ] |
Perl Skripte haben Schwierigkeiten, die Include-Dateien von AmigaDOS korrekt zu behandeln. Hier wäre etwas freiwillige Arbeit nötig ...
[Top] | [Contents] | [Index] | [ ? ] |
This document was generated on January 9, 2023 using texi2html 5.0.
The buttons in the navigation panels have the following meaning:
Button | Name | Go to | From 1.2.3 go to |
---|---|---|---|
[ << ] | FastBack | Beginning of this chapter or previous chapter | 1 |
[ < ] | Back | Previous section in reading order | 1.2.2 |
[ Up ] | Up | Up section | 1.2 |
[ > ] | Forward | Next section in reading order | 1.2.4 |
[ >> ] | FastForward | Next chapter | 2 |
[Top] | Top | Cover (top) of document | |
[Contents] | Contents | Table of contents | |
[Index] | Index | Index | |
[ ? ] | About | About (help) |
where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:
This document was generated on January 9, 2023 using texi2html 5.0.