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

amiga-news.de Forum > Programmierung > Crosscompiling mit dem gcc [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

27.07.2003, 21:36 Uhr

hawe
Posts: 130
Nutzer
Hallo zusammen,
den gc gibt es ja für viele Zielsysteme. Ist es möglich, damit auf einem PPC Bineries für einen 186er DOS-Zielsystem zu erstellen?
Wenn ja, wo finde ich eine verständliche. möglichst in deutsch, Anleitung (nicht diesen man-pages oder geek gadgets Krampf)?

cu
hawe
--
cu
hawe

[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 18:54 Uhr

_PAB_
Posts: 3016
Nutzer
186er gibt es nicht...

Ist eher simpel zB:
gcc test.c -o test --target i386

[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 19:15 Uhr

hawe
Posts: 130
Nutzer
Zitat:
Original von _PAB_:
186er gibt es nicht...

Ist eher simpel zB:
gcc test.c -o test --target i386


Bedeutet das i386 ist schon in jedem gcc drin?
Wo finde ich denn die nötigen Linkerlibs für DOS?

Den Codesatz umschalten für den x186 kann ich nicht oder läuft der i386 auch für den 186er? Ich frage nur, weil der Borland C Compiler da einen Schalter hat. Nur ist es mir zu lästig immer erst die DOS Emulation zu starten.

cu
hawe

--
cu
hawe

[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 21:34 Uhr

_PAB_
Posts: 3016
Nutzer
Ich würde mich mal an die GCC-Mailingliste wenden.
Allerdings hatte offenbar schonmal jemand solch ein Problem:
http://www.elilabs.com/xgccarc/01-00/archive/0033.html

Vielleicht fragst Du den mal, ob er es lösen konnte...

[ - Antworten - Zitieren - Direktlink - ]

01.08.2003, 22:51 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von hawe:
Den Codesatz umschalten für den x186 kann ich nicht oder läuft der i386 auch für den 186er?


Nur mal so als Gedankenanstoß: Meinst Du vielleich 8086, wenn Du 186 sagst?
Wie _PAB_ schon sagte: 186er gibt es nicht...

mfg



--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

02.08.2003, 06:32 Uhr

hawe
Posts: 130
Nutzer
Zitat:
Original von _PAB_:
Ich würde mich mal an die GCC-Mailingliste wenden.
...
Vielleicht fragst Du den mal, ob er es lösen konnte...


Danke für die Tipps. Mache mich da mal auf die Suche. Wenns nicht mit dem gcc gehen sollte, kennst Du eine Alternative die ich dann auf dem Amiga compelieren könnte, vbbcc vielleicht?

--
Nachtrag: Schade, hat nicht geklappt. mail delivery failed.



[ Dieser Beitrag wurde von hawe am 02.08.2003 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

02.08.2003, 06:45 Uhr

hawe
Posts: 130
Nutzer
Zitat:
Nur mal so als Gedankenanstoß: Meinst Du vielleich 8086, wenn Du 186 sagst?
Wie _PAB_ schon sagte: 186er gibt es nicht...


Nein, IMO ist der 186 von der Entwicklung vergleichbar wie der 86010 bei den 68k's. In dem Borland C Compiler kann ich 16Bit Instruktionsätze für folgende CPUs wählen: 8086, 80186, 80286, 80386, i486.
Weiterhin gibt es dor die Möglichkeit folgende 32Bit Instructionsätze zu wählen: 80386, i486 und Pentium.

Wo aber jetzt die genauen Unterschiede der einzelene Modelle liegen kann ich Dir nicht sagen. Ehrlich gesagt ist mir das auch ziemlich egal. Diese Embedded - Ding was ich hier liegen habe hat eine 80186 Core ohne FPU und dafür möchte ich Code erzeugen.

Es muss nicht zwingend der gcc sein. Wenn Du eine Alternative kennst die ich mir auf dem Amiga mit relativ wenig Aufwand compelieren kann ist mir das auch recht. Von mir aus kann es auch Pascal oder Basic sein. C oder C++ ist nicht zwingend, würde die sache aber vereinfachen da die RTOS API- und Hardwareincludes für als C-Header files vorliegen.
--
cu
hawe

[ - Antworten - Zitieren - Direktlink - ]

18.08.2003, 11:14 Uhr

Solar
Posts: 3680
Nutzer
Der Intel 80186 existiert: http://www.intel.com/design/intarch/prodbref/272222.htm.


Um für diese CPU Binaries zu erstellen, brauchst Du einen Cross-Compiler, d.h. einen Compiler mit Host PPC und Target 80186. Das ist im Wesentlichen ein Vier-Schritt-Prozeß:

1) Compilieren der GNU binutils für das gewünschte Target;

2) Compilieren eines statisch gelinkten GCC ohne Header für das gewünschte Target (hierfür brauchst Du die binutils);

3) Compilieren einer C-Bibliothek für das gewünschte Target (hierfür brauchst Du den GCC und die binutils aus Schrit 1) und 2) );

4) Compilieren eines "vollständigen" GCC für das gewünschte Target.

Achte darauf, daß sich die ABIs teilweise geändert haben, insbesondere für C++. Evtl. brauchst Du eine "betagte" Version von gcc / g++, um mit existierendem Code (z.B. dem Embedded-OS) zu interagieren.

Die Namen unterstützter Targets bekommst Du u.a. auf der GCC-Homepage (http://gcc.gnu.org). Ein Beispiel für die Schritte 1) und 2) bekommst Du auf meiner Projektseite (http://www.pro-pos.org/wiki/HowToCrossCompile), allerdings ist das "nur" ein Cross-Compiler i686-pc-cygwin auf i586-elf. Das Verfahren ist aber prinzipiell dasselbe.

Schritt 3) hängt dann stark davon ab, welche C-Lib Du nehmen willst (glibc, newlib, Something Completely Different (tm)).

[ - Antworten - Zitieren - Direktlink - ]

25.08.2003, 18:14 Uhr

hawe
Posts: 130
Nutzer
Hallo Solar,

Zitat:
Original von Solar:
Der Intel 80186 existiert: http://www.intel.com/design/intarch/prodbref/272222.htm.



Um für diese CPU Binaries zu erstellen, brauchst Du einen Cross-Compiler, d.h. einen Compiler mit Host PPC und Target 80186. Das ist im Wesentlichen ein Vier-Schritt-Prozeß:

1) Compilieren der GNU binutils für das gewünschte Target;


danke für Deine Antwort. Irgendwie scheitert das ganze Vorhaben wohl daran das ich kein vernünftigen BINUTILS etc. für das Target 8086 bzw. x186 auftreiben kann. Ist alles irgendwie nicht richtig fertig geworden.
LCC sieht erst einmal vielversprechend aus. Mal sehen wie weit ich damit komme.


--
cu
hawe

[ - Antworten - Zitieren - Direktlink - ]

26.08.2003, 08:37 Uhr

Solar
Posts: 3680
Nutzer
Zitat:
Original von hawe:
Irgendwie scheitert das ganze Vorhaben wohl daran das ich kein vernünftigen BINUTILS etc. für das Target 8086 bzw. x186 auftreiben kann.


Au, verdammt... Du hast ja recht! Sorry, GCC binutils (und somit gcc) unterstützen "nur" vom 80386 aufwärts... für die 16-bit-Ableger der x86-Familie wirst Du Dich nach einer anderen Lösung umsehen müssen, und für einen Crosscompiler sehe ich da ziemlich schwarz. Wahrscheinlich bist Du mit Bochs (x86-Emulator, auch für PPC erhältlich) und einem DOS-Compiler/Assembler, der unter Bochs läuft, am besten bedient.

Sorry für die Verwirrung.

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Crosscompiling mit dem gcc [ - Suche - Neue Beiträge - Registrieren - Login - ]


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