[ << ] | [ < ] | [ 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 September 19, 2022 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 September 19, 2022 using texi2html 5.0.