amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > OS3.x nativer GCC [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

21.06.2009, 12:19 Uhr

inermis
Posts: 37
Nutzer
Hallo,

welchen Compiler (GCC) nutzt Ihr für die native (Kein Crosscompiler) Entwicklung unter OS3.x?

Ich hatte einen ähnlichen Thread schon mal gestartet, leider unter einem etwas verunglücktem Titel (*). Wollte es aber noch mal genau wissen, v.A. um die Unterschiede abgrenzen zu können...

Zur Auswahl stehen

- Die GCC Umgebung aus CubicIDE
- adtools (ist nur OS4?! und AROS?)
- Amiga_OS_68k_devtools (von Bernd, ist aber für Cross?!)
- GG mit GCC 2.96.x oder
- GG mit GCC 3.3.x / 3.4.x aus dem Alpha-Zweig

Viele Grüße ;)

* http://www.amiga-news.de/forum/thread.php?id=30914&start=1&BoardID=7#315046

[ - Antworten - Zitieren - Direktlink - ]

21.06.2009, 15:39 Uhr

Sperrmuell
Posts: 161
Nutzer
GCC aus dem Cubic Paket.

[ - Antworten - Zitieren - Direktlink - ]

21.06.2009, 16:51 Uhr

inermis
Posts: 37
Nutzer
@Sperrmuell:

Dann den GCC 3.3, oder?

Ich hatte mal mit dem GCC 3.3 aus GG gespielt und der Compiler hat teilweise willkürliche Ergebnisse geliefert. Identisches Programm, compilliert und gelinkt funktionierte entweder korrekt, machte "merkwürdige" Dinge, oder brachte das System zum Abschmieren. Das ganze war ziemlich lästig.

Nutzt Dietmar bei Cubic eigentlich die GG Umgebung, bzw. was hat er anders gemacht?

Ich wollte mir dann einen aktuelleren GCC selbst compillieren, aber es gab kein Hunk mehr bei 68K, oder so ähnlich. Ich hatte das ganze dann damals gelassen, weil das ziemlich in GCC Internas ging.

Nur so als Hintergrund, um zu zeigen, warum ich die ganze Zeit auf dem Thema rumreite. Deswegen interessiert mich auch, wo noch irgendjemand was mit nativen GCC Umgebungen macht, bzw. was genau eben adtools und Amiga_OS_68k_devtools für Projekte sind - und letzlich, warum die Entwicklungen nicht im offiziellen GCC Sourcetree stattfinden..

[ - Antworten - Zitieren - Direktlink - ]

22.06.2009, 13:01 Uhr

inermis
Posts: 37
Nutzer
Sonst keiner ... ? :sleep:

[ - Antworten - Zitieren - Direktlink - ]

22.06.2009, 14:13 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Ich benutze 2.95.3. Sollte aber kein Masstab sein.

--
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

22.06.2009, 14:55 Uhr

Sperrmuell
Posts: 161
Nutzer
Ich nutze auch den 2.95er, schalte aber ab und zu auf 3.3, denn nicht alles lässt sich mit dem 2.95er übersetzen.

[ - Antworten - Zitieren - Direktlink - ]

22.06.2009, 18:28 Uhr

gni
Posts: 1106
Nutzer
Zitat:
inermis:
welchen Compiler (GCC) nutzt Ihr für die native (Kein Crosscompiler) Entwicklung unter OS3.x?

Direkt unter 68k übersetze ich mittlerweile sehr selten. Dauert mir einfach zu lange :)
Zitat:
- Die GCC Umgebung aus CubicIDE
Dort wird eine der Versionen aus dem Alpha-Zweig verwendet.
Zitat:
- adtools (ist nur OS4?! und AROS?)
OS4 wird komplett unterstützt. Die dortigen binutils haben auch vollständige m68k-Unterstützung, dh. alles was man für m68k-amigaos als Target braucht ist vorhanden.
Zitat:
- Amiga_OS_68k_devtools (von Bernd, ist aber für Cross?!)
Diesen Versionen fehlen alle speziellen Amiga-Features. Laut Bernd braucht man diese Dinge aber auch nicht. Darüber gibt es jedoch unterschiedliche Auffassungen ;) Unproblematisch sind diese neuen GCC Versionen auch nicht [1,2].
FWIW, ich denke GCC 4.3/4.4 als Cross-Compiler ist gut "genug". Native willst Du nicht wirklich: unter FreeBSD (x86) sind die Compiler um die 5MB groß (gmp und mpfr sind statisch eingelinkt, so wie es bei einem nativen GCC für AmigaOS/68k auch sein würde). Ich habe auch nie probiert, wie aufwändig es wäre 4.3/4.4 zum laufen zu bekommen. 4.2 sollte gehen, aber bis auf ein triviales C "Hello world" habe ich nichts weiter übersetzt.
Zitat:
- GG mit GCC 2.96.x
Gab es nie für GG.
Zitat:
- GG mit GCC 3.3.x / 3.4.x aus dem Alpha-Zweig
Das diese Versionen im Alpha-Zweig zu finden sind, liegt nur daran, das es keine neueren GG-Snapshots gegeben hat. IMHO sind diese beiden Versionen ohne Probleme benutzbar, auch wenn sie mittlerweile ein Paar Jahre auf dem Buckel haben.
Zitat:
Ich hatte mal mit dem GCC 3.3 aus GG gespielt und der Compiler hat teilweise willkürliche Ergebnisse geliefert. Identisches Programm, compilliert und gelinkt funktionierte entweder korrekt, machte "merkwürdige" Dinge, oder brachte das System zum Abschmieren. Das ganze war ziemlich lästig.
Ich habe nicht den blaßesten Schimmer wie so ein Verhalten entstehen könnte.
Zitat:
Nutzt Dietmar bei Cubic eigentlich die GG Umgebung, bzw. was hat er anders gemacht?
Der Compiler benötigt eine gewisse Umgebung, dh. Assigns und Verzeichnise + Dateien unterhalb dieser Assigns. Die braucht es immer, egal ob reines GG oder Cubic.
Zitat:
Nur so als Hintergrund, um zu zeigen, warum ich die ganze Zeit auf dem Thema rumreite. Deswegen interessiert mich auch, wo noch irgendjemand was mit nativen GCC Umgebungen macht
Mir reicht (meist) ein Cross-Compiler. Für neue(r)e GCC-Versionen sind echte m68ks schlicht nicht leistungsfähig genug. Und mit 128MB/256MB kommt man vermutlich auch nicht weit, vor allem bei C++.
Zitat:
bzw. was genau eben adtools und Amiga_OS_68k_devtools für Projekte sind
adtools war/ist der Versuch Entwicklungswerkzeuge für verschiedene Spielarten von AmigaOS in einen Projekt zu bündeln. Nur die OS4 Unterstützung ist (halbwegs) vollständig, dh. binutils und GCC. Für m68k gibt es nur binutils. Die binutils enthalten auch Code für MorphOS, aber ob der funktioniert, weis ich nicht. Zu AROS kann ich gar nix sagen.
devtools ist eines der vielen Projekte von Bernd Roesch. Es ist sein Versuch neuere GCC Versionen als 3.4 für AmigaOS/68k nutzbar zu machen. Diesen dort verfügbaren Versionen fehlen alle speziellen Amiga-Features wie baserel Modus, stackcheck bzw. stackextenion Modus, Registerargumente (nur C), etc. Bernd vertritt die Auffassung das das alles nur unnötiger Ballast ist, den niemand braucht. Für mich definiert sich ein Amiga-Compiler aber genau dadurch, das er diese Feature hat.
Zitat:
und letzlich, warum die Entwicklungen nicht im offiziellen GCC Sourcetree stattfinden..
Weil es sehr schwierig ist, die Anpassungen von OS4 bzw AmigaOS/68k in die offiziellen Quellen zu bekommen. Zum einem muß jemand den Code später auch pflegen oder er wird wieder entfernt. Zum anderen erfordern die Amiga-Feature Änderungen an generischen Quellen und das ist ein echtes Hindernis.

[ - Antworten - Zitieren - Direktlink - ]

23.06.2009, 09:07 Uhr

inermis
Posts: 37
Nutzer
@gni:

Ok, danke ;-) das war genau der Überblick, der mir fehlte...

Zitat:
Diesen dort verfügbaren Versionen fehlen alle speziellen Amiga-Features wie baserel Modus, stackcheck bzw. stackextenion Modus, Registerargumente (nur C), etc.

Waren diese Features jemals im offiziellem GCC Tree enthalten, oder kamen die erst in der GG Version? Im vermute mal, nur bei GG?

Zitat:
Ich habe auch nie probiert, wie aufwändig es wäre 4.3/4.4 zum laufen zu bekommen. 4.2 sollte gehen, aber bis auf ein triviales C "Hello world" habe ich nichts weiter übersetzt.

Also ohne Amiga-Features. Hat sich ab 4.2 irgendetwas prinzipielles geändert?

D.h. wenn ich mir eine eigene Crossumgebung erstellen möchte, könnte ich z.B. die Binutils aus den adtools nehmen und eben die letzten verfügbaren Sources aus GG? Ich nehme an, entsprechend hat das auch Zerohero [1] gemacht? Wäre dann also GCC 3.4. (Oder eben einen aktuelleren Compiler, dann aber ohne Amiga-Features.)

:bounce:

----

[1] http://www.zerohero.se/cross/os3.html

[ - Antworten - Zitieren - Direktlink - ]

23.06.2009, 11:27 Uhr

gni
Posts: 1106
Nutzer
Zitat:
inermis:
Zitat:
Diesen dort verfügbaren Versionen fehlen alle speziellen Amiga-Features wie baserel Modus, stackcheck bzw. stackextenion Modus, Registerargumente (nur C), etc.
Waren diese Features jemals im offiziellem GCC Tree enthalten, oder kamen die erst in der GG Version? Im vermute mal, nur bei GG?
Das sind alles in reine GG-Erweiterungen, dh. in den offiziellen Quellen von binutils und GCC ist das Target m68k-amigaos nicht bekannt und damit fehlen alle diese Feature. Diese Erweiterungen werden durch Patches "nachgerüstet".
Zitat:
Zitat:
Ich habe auch nie probiert, wie aufwändig es wäre 4.3/4.4 zum laufen zu bekommen. 4.2 sollte gehen, aber bis auf ein triviales C "Hello world" habe ich nichts weiter übersetzt.
Also ohne Amiga-Features.
Äh, nein. Neuere Ports als 3.4.0 mit allen Erweiterungen sind nur nicht verfügbar gemacht worden. Unter anderem deshalb weil ich mit GCC4 nicht zufrieden bin. In einem Punkt hat(te) Bernd allerdings recht: für "moderne" C++ Quellen braucht es einen aktuellen GCC, unabhängig davon wie gut der erzeugte Code ist. Ich verwende den C++ Compiler jedoch schlichtweg nicht.
Zitat:
Hat sich ab 4.2 irgendetwas prinzipielles geändert?
Schau auf der GCC Hompage ins Manual von neueren Versionen. Eine prinzipielle Änderung betrifft die Nutzung von gmp und mpfr. Die sind seit 4.3 zwingend zum Erstellen des GCC erforderlich. Zur Qualität dieser Versionen bezüglich Codegüte kann ich nichts konkretes sagen. Die vorigen GCC4 Versionen waren jedoch in meinen Tests nicht besser als GCC3, eher schlechter.
Zitat:
D.h. wenn ich mir eine eigene Crossumgebung erstellen möchte, könnte ich z.B. die Binutils aus den adtools nehmen und eben die letzten verfügbaren Sources aus GG? Ich nehme an, entsprechend hat das auch Zerohero [1] gemacht? Wäre dann also GCC 3.4.
Ja und ja. FWIW, die binutils in adtools sind das Aktuellste was für AmigaOS/68k verfügbar ist. Eine "bessere" Version gibt es nicht, da fast alle späteren Änderungen der GG Version 2.9.1 dort eingepflegt worden sind. Das "fast" bezieht sich darauf, das ich in meiner 2.9.1 Version Backports für GAS und den Demangler aus den Trunk-binutils eingepflegt habe.
Zitat:
(Oder eben einen aktuelleren Compiler, dann aber ohne Amiga-Features.)
Prinzipiell richtig. m68k-amigaos als Target geht aber nur, wenn Du entweder Bernds Quellen verwendest oder selber dem configure der GCC Versionen m68k-anigaos als Target bekannt machst.

[ - Antworten - Zitieren - Direktlink - ]

23.06.2009, 12:26 Uhr

inermis
Posts: 37
Nutzer
@gni:

Ok, super!
Danke für die Infos ;-)

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > OS3.x nativer GCC [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1997-2019 by amiga-news.de - alle Rechte vorbehalten.
.