[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1 Der GNU C Compiler: Allgemeine Informationen und Installation

Dieser Abschnitt enth�lt Informationen �ber den Amiga-Port des GNU C Compilers generell und die Installation insbesondere.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1 Aktuelle Version

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] [ ? ]

1.2 Hardwareanforderungen

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] [ ? ]

1.3 Wer hat es gemacht?

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] [ ? ]

1.4 Wo finde ich die gcc-Quelltexte?

Alle gcc-Quelltexte und alle Bin�rdateien findet man auf:

  1. Aminet (wuarchive.wustl.edu und Mirror wie ftp.luth.se) in /pub/aminet/dev/gcc (@pxref{FTP})
  2. Ramses The Amiga Flying BBS:
    	+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

  1. von denselben FTP-Servern wie die Binaries
  2. gnu.prep.ai.mit.edu (18.71.0.38) in ‘/pub/gnu
  3. Ramses The Amiga Flying BBS in Topic ‘AmigaUnix/Unix/Linux/NetBSD’, Area ‘Gnu Source Code

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] [ ? ]

1.5 Inline-Dateien

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] [ ? ]

1.6 Wie konvertiere ich die Amiga-Libraries f�r den gcc?

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] [ ? ]

1.7 Wie installiere ich den gcc?

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.

  1. Falls dies die erste gcc-Installation ist:
    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.

  2. Falls bereits eine �ltere gcc-Version vorhanden ist: L�schen Sie einfach das alte gcc-Directory und f�hren Sie dann eine Neuinstallation durch. Es hat sich zu viel ge�ndert. (Ein Backup vorher ist aber sicher keine schlechte Idee.)

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] [ ? ]

1.8 Wichtige Informationsquellen

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] [ ? ]

Footnotes

(1)

Perl Skripte haben Schwierigkeiten, die Include-Dateien von AmigaDOS korrekt zu behandeln. Hier w�re etwas freiwillige Arbeit n�tig ...


[Top] [Contents] [Index] [ ? ]

About This Document

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.