NKC Forum
Register | FAQ | Search | Who is online? | Member list | Today's posts | Calendar | Login



Author Topic: Projekt C-Crosscompiler
retroniker
Stammgast
**
ID # 243


  Posted on December 27, 2025 04:58 PM (#142)  |  Quote Quote   PM PM   E-mail E-mail
Hallo Andi,
das hört sich ja bestens an ... zumal ich auch LM 21.3 habe :) ... sollte also gar kein Problem sein. Freu mich drauf

Schöne Grüße
daniel

-----------------------
68008/GDP64HS/BootRAM68k/KEYr4/IOEenh mit 2xSD-Karte/Sound3/UHR3/IOEenh mit Joystick/BUS3 ;)

Posts: 190 | Member since: February 2025 | IP address: not saved
redo
Stammgast
**
ID # 245


  Posted on December 27, 2025 05:49 PM (#143)  |  Quote Quote   PM PM   E-mail E-mail   HP HP
Hallo,
ihr habt mich ja jetzt angesteckt. Eine Frage hätte ich noch?

Unter Suselinux Leap 16 installierte ich in

$HOME/opt/m68k-elf jetzt Gnu gcc 4.8.0 mit binutil 2.24 und newlib 2.0

Soll ich das nkc_common (das delta aus sysgcc/m68k-elf) mit den dazugehörenden unterverzeichnissen jetzt dorthin nach ?/opt/m68k-elf installieren?

Danke für eure Tipps.
VG Jürgen

-----------------------
Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend!

Posts: 236 | Member since: June 2025 | IP address: not saved
tuti
Voll in Gange
***
ID # 225


  Posted on December 27, 2025 07:42 PM (#144)  |  Quote Quote   PM PM   E-mail E-mail
Letzten Endes ist es gar nicht so wichtig wo das genau liegt. Es muss die Compiler-Umgebung mit allen Binaries, Includes u.s.w. finden. Daher hatte @retroniker das nach /opt kopiert und den Pfad erweitert. Habe ich dann auch so gemacht. Und das Ergebnis - die nkc.a - kannst du ggf. auch manuell kopieren. Oder das Makefile geeignet anpassen.

Für mein Empfinden ist das jetzt aber eh von eher akademischem Interesse. Da @andi eine funktionierende Version hinbekommen hat, werde ich wohl lieber auf das Package warten und dann mit einer gemeinsamen und einheitlichen Version weitermachen...

-----------------------
Definitiv sind Frösche und Himbeeren am besten!

Posts: 583 | Member since: July 2022 | IP address: not saved
redo
Stammgast
**
ID # 245


  Posted on December 27, 2025 07:56 PM (#145)  |  Quote Quote   PM PM   E-mail E-mail   HP HP
Ja natürlich ist das nicht so wichtig. Mir hat gefallen, dass ich als Anfänger das soweit hingekriegt habe und hatte eben noch eine unbeantwortete Frage.

Auch die nkc_common hab ich wohl hingekriegt. Und, ich konnte mich mit dem Suselinux anfreunden, dass ich neu statt dem Debian aufgesetzt hatte.

Das home/opt habe ich gewählt, um nicht mit dem aktuellen System gcc zu kollidieren und ich konnte auf sudo verzichten. Außerdem ist es isoliert.

Vg Jürgen

-----------------------
Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend!

Posts: 236 | Member since: June 2025 | IP address: not saved
andi
Voll in Gange
***
ID # 213


  Posted on December 27, 2025 11:05 PM (#146)  |  Quote Quote   PM PM   E-mail E-mail
Hallo,

Hier ist das zip-file mit dem Linux GCC
Leider war er zu groß für github, darum in meiner Dropbox
https://www.dropbox.com/scl/fi/y7fcbq5rey1hdpyei36az/m68k-gcc.zip?rlkey=m5oersd8qn5tr9u0kij6u3sea&st=7112oo8l&dl=0

Bei mir ist er in folgendem Pfad installiert: ~/working/m68k-gcc/
Sollte aber auch in anderen Pfaden funktionieren (lediglich das makefile von nkc_common muss angepasst werden - für "make install")
Es muss ein Suchpfad auf "~/working/m68k-gcc/bin" gesetzt werden (export PATH="$PATH:~/working/m68k-gcc/bin/" )
Zur Info: Das Compiler exe heisst hier "m68k-linux-gcc"
Weiters ist hier NUR ein C-Compiler enthalten (KEIN C++-Compiler wie unter Windows)

Posts: 522 | Member since: May 2021 | IP address: not saved
tuti
Voll in Gange
***
ID # 225


  Posted on December 27, 2025 11:23 PM (#147)  |  Quote Quote   PM PM   E-mail E-mail
Und das schreibst du um die Zeit wo ich müde werde und mit dem Zubettgehen liebäugele... :rolleyes:

Überredet! Muss ich noch ausprobieren... :D

-----------------------
Definitiv sind Frösche und Himbeeren am besten!

Posts: 583 | Member since: July 2022 | IP address: not saved
tuti
Voll in Gange
***
ID # 225


  Posted on December 27, 2025 11:42 PM (#148)  |  Quote Quote   PM PM   E-mail E-mail
Habe es schnell geladen und "installiert" (unter ~/m68k-gcc; klappt in der Tat auch).

Alles prima. Die Datei wird wirklich größer als mit meiner 4.8.0. Aber sie funktioniert dafür auch. Im Gegensatz zu meiner... :rolleyes:


Ein bisschen Kosmetik:

Die Pfade im Post oben sind vermutlich aber mit "m" gemeint, also ~/working/m68k-gcc. So steht es zumindest im Makefile von nkc_common. Ich habe das eh angepasst.

Ebenso heißt der gcc auch mit "m", also m68k-linux-gcc.

Und der PATH muss bis ins "bin" reichen, also export PATH="$PATH:~/working/m68k-gcc/bin"

Alles Kleinigkeiten. Das Ding funktioniert! Morgen probiere ich mal, meinen VGMPLAYR zu übersetzen. Und mit der neuen Umgebung würde ich das auch mal weiterbasteln wollen. Sollte ja eigentlich mal ein "Moon Patrol" werden... :eek:


Vielen, vielen Dank, @andi!!! :D

-----------------------
Definitiv sind Frösche und Himbeeren am besten!

Posts: 583 | Member since: July 2022 | IP address: not saved
retroniker
Stammgast
**
ID # 243


  Posted on December 28, 2025 12:33 PM (#149)  |  Quote Quote   PM PM   E-mail E-mail
Hi andi und alle anderen,
auch bei mir funktioniert das prima. Das File hat ca. 46kB.
(Jados-test)

Aufgefallen ist mir noch, dass die datumsangabe nicht gestimmt hat. Ich habe die UHR3 mit einem DALLAS laufen, die auch die korrekte Zeit/Datum am GP ausgibt. Das File hat aber irgendwas anderes geladen - das scheint irgendwie random geladen zu werden - jedes Mal eine andere Zeit/Datum ... aber ist ja mal nicht so wichtig.

hey andi .... Vielen, vielen Dank ... das ist echt super! :D

Eine Frage noch: Was ist das für ein python-script das mit load.sh geladen wird. (wird das überhaupt geladen?)

Schöne Grüße

-----------------------
68008/GDP64HS/BootRAM68k/KEYr4/IOEenh mit 2xSD-Karte/Sound3/UHR3/IOEenh mit Joystick/BUS3 ;)

Posts: 190 | Member since: February 2025 | IP address: not saved
redo
Stammgast
**
ID # 245


  Posted on December 28, 2025 07:27 PM (#150)  |  Quote Quote   PM PM   E-mail E-mail   HP HP
Hallo Andi,
habe jetzt meine eigenen Versuche mit dem gcc 4.8.0 abgebrochen (alles gelöscht) und Deine Umgebung geladen. Mein Versuch mit Jados_test scheitert allerdings:

redo@redo-hp:~/working/m68k-gcc/Examples/Jados_test> make
m68k-linux-gcc -c -g -O3 -m68000 -Wall -fomit-frame-pointer -nostartfiles -std=gnu99 -Dndrcomp -DUSE_JADOS test.c -o obj/test.o
test.c: In function 'main':
test.c:30:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
*((uint32_t* )bfr) = jd_vers;
^
m68k-linux-gcc -g -O3 -m68000 -Wall -fomit-frame-pointer -nostartfiles -std=gnu99 -Dndrcomp -DUSE_JADOS -c -o ./obj/crt0.o ../../nkc_common/crt0.c
m68k-linux-gcc -g -O3 -m68000 -Wall -fomit-frame-pointer -nostartfiles -std=gnu99 -Dndrcomp -DUSE_JADOS -T ../../nkc_common/rm_ram1.ld -Wl,-Map,./_out/test.map -o _out/test.elf ./obj/test.o
/home/redo/working/m68k-gcc/bin/../lib/gcc/m68k-elf/6.3.0/../../../../m68k-elf/bin/ld: /home/redo/working/m68k-gcc/bin/../libexec/gcc/m68k-elf/6.3.0/liblto_plugin.so: error loading plugin: /home/redo/working/m68k-gcc/bin/../libexec/gcc/m68k-elf/6.3.0/liblto_plugin.so: Die Datei ist zu kurz
collect2: error: ld returned 1 exit status
make: *** [Makefile:101: _out/test.elf] Fehler 1


Installation nach Deinem Muster. Make Version 4.4.1. nkc_common kann ich übersetzen und installieren. Mit -Os kommt der derefencing type-punned nicht, aber die Meldung zur zu kurzen Datei bleibt.

Was meinst Du?

VG Jürgen

-----------------------
Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend!

Posts: 236 | Member since: June 2025 | IP address: not saved
andi
Voll in Gange
***
ID # 213


  Posted on December 28, 2025 07:44 PM (#151)  |  Quote Quote   PM PM   E-mail E-mail
Hallo,

oh das sieht nach inkompatiblitäten mit deinem Linux aus. Das stürzt offenbar der Linker ab.
Welches Linux hast du denn installiert?
Oder beim extrahieren des zip-files ist was schief gegangen.
Kennt sich jemand besser mit Linux aus als ich?

Und wegen der nicht mehr funktionierenden - das sieht nach inkompatiblitäten mit der neuen libc aus. Muss ich untersuchen.

Posts: 522 | Member since: May 2021 | IP address: not saved
tuti
Voll in Gange
***
ID # 225


  Posted on December 28, 2025 08:38 PM (#152)  |  Quote Quote   PM PM   E-mail E-mail
Diese Warnung kommt bei mir in der Tat auch. Aber was macht man erst einmal mit Warnungen? Ignorieren... :D

@redo: Wie sieht denn das liblto_plugin.so bei dir aus?

So ist es hier:

torsten@duesentrieb:~/m68k-gcc/libexec/gcc/m68k-elf/6.3.0$ ls -al
insgesamt 235132
drwxrwxr-x 4 torsten torsten 4096 Dez 26 22:32 .
drwxrwxr-x 3 torsten torsten 4096 Dez 26 22:32 ..
-rwxrwxr-x 1 torsten torsten 119954784 Dez 26 22:32 cc1
-rwxrwxr-x 1 torsten torsten 2732488 Dez 26 22:32 collect2
drwxrwxr-x 2 torsten torsten 4096 Dez 26 22:32 install-tools
-rwxrwxr-x 1 torsten torsten 1031 Dez 26 22:32 liblto_plugin.la
lrwxrwxrwx 1 torsten torsten 22 Dez 27 22:28 liblto_plugin.so -> liblto_plugin.so.0.0.0
lrwxrwxrwx 1 torsten torsten 22 Dez 27 22:28 liblto_plugin.so.0 -> liblto_plugin.so.0.0.0
-rwxrwxr-x 1 torsten torsten 317080 Dez 26 22:32 liblto_plugin.so.0.0.0

-rwxrwxr-x 1 torsten torsten 114491744 Dez 26 22:32 lto1
-rwxrwxr-x 1 torsten torsten 3237632 Dez 26 22:32 lto-wrapper
drwxrwxr-x 2 torsten torsten 4096 Dez 26 22:32 plugin


Nicht, dass diesen Symlinks was Böses widerfahren ist...

-----------------------
Definitiv sind Frösche und Himbeeren am besten!

Posts: 583 | Member since: July 2022 | IP address: not saved
redo
Stammgast
**
ID # 245


  Posted on December 28, 2025 08:51 PM (#153)  |  Quote Quote   PM PM   E-mail E-mail   HP HP
Hallo Andi,
es ist SuseLinux Leap 16 (aktuellste Version) mit KDE.

Die Zipp habe ich zweimal geladen und installiert. Keine Fehlermeldung aufgetaucht.

Mit der gcc 4.8.0 Variante, die ich gebaut hatte, hatte das geklappt (Jados_test 35k). Ich dachte vielleicht auch wieder an die Make Version... hatten wir schon mal beim MSYS2.

Ich habe dann noch unter Debian 12 (Bookworm) mit Gnome getestet. Hier konnten die Compiler nicht gestartet werden: Fehler im Format der Binärdatei.

Frage noch am Rande: Warum hast Du Dich für diesen gcc (6.3.0) und binutils (2.34) entschieden und nicht für den 4.8.0 mit Newlib 2.0?

Und, welches Linux setzt Du hier ein?

VG Jürgen

-----------------------
Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend!

Posts: 236 | Member since: June 2025 | IP address: not saved
redo
Stammgast
**
ID # 245


  Posted on December 28, 2025 09:15 PM (#154)  |  Quote Quote   PM PM   E-mail E-mail   HP HP
Hallo Torsten,
ja danke, Die symbolischen Links sind verloren gegangen. Ich habe die aktualisiert. Das verändert die Fehlersituation dorthin:

m68k-linux-gcc -c -g -O3 -m68000 -Wall -fomit-frame-pointer -nostartfiles -std=gnu99 -Dndrcomp -DUSE_JADOS -lm test.c -o obj/test.o
test.c: In function 'main':
test.c:30:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
*((uint32_t* )bfr) = jd_vers;
^
m68k-linux-gcc -g -O3 -m68000 -Wall -fomit-frame-pointer -nostartfiles -std=gnu99 -Dndrcomp -DUSE_JADOS -lm -c -o ./obj/crt0.o /home/redo/working/m68k-gcc/nkc_common/crt0.c
m68k-linux-gcc -g -O3 -m68000 -Wall -fomit-frame-pointer -nostartfiles -std=gnu99 -Dndrcomp -DUSE_JADOS -lm -T /home/redo/working/m68k-gcc/nkc_common/rm_ram1.ld -Wl,-Map,./_out/test.map -o _out/test.elf ./obj/test.o
/home/redo/working/m68k-gcc/bin/../lib/gcc/m68k-elf/6.3.0/../../../../m68k-elf/bin/ld:/home/redo/working/m68k-gcc/bin/../lib/gcc/m68k-elf/6.3.0/../../../../m68k-elf/lib/libnkc.a: file format not recognized; treating as linker script
/home/redo/working/m68k-gcc/bin/../lib/gcc/m68k-elf/6.3.0/../../../../m68k-elf/bin/ld:/home/redo/working/m68k-gcc/bin/../lib/gcc/m68k-elf/6.3.0/../../../../m68k-elf/lib/libnkc.a:0: syntax error
collect2: error: ld returned 1 exit status
make: *** [Makefile:101: _out/test.elf] Fehler 1


nkc_common habe ich neu übersetzt und installiert. Kein Fehler feststellbar.

Ja... schwierig... Welches Linux verwendest Du?

VG Jürgen

-----------------------
Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend!

Posts: 236 | Member since: June 2025 | IP address: not saved
tuti
Voll in Gange
***
ID # 225


  Posted on December 28, 2025 10:21 PM (#155)  |  Quote Quote   PM PM   E-mail E-mail
Hm? Das libnkc.a ist (war?) auch ein symbolischer Link in den m68000-Ordner darunter.

Hast du alle Links verloren? Warum? Wie packst du das ZIP aus?

Ich habe hier ein Linux Mint. Version habe ich gerade nicht zu Hand. Die, die aktuell war als ich im Sommer "fußkrank" war... :)


Was Lustiges für die Runde: Spiele mit meinem VGMPLAY. Musste ein paar Typ-Sachen anpassen. Trotzdem muckt das Ding nicht. Gerade kommt mir die Erkenntnis (gespickt in anderem Code): Das ist doch ein 68020, verdammt! Da passt die Port-Adresse ja gar nicht!

Stichwort:
define CPU 2 //1=68008 2=68000 4=68020

:rolleyes:

-----------------------
Definitiv sind Frösche und Himbeeren am besten!

Posts: 583 | Member since: July 2022 | IP address: not saved
tuti
Voll in Gange
***
ID # 225


  Posted on December 28, 2025 10:51 PM (#156)  |  Quote Quote   PM PM   E-mail E-mail
Kaum macht mans richtig, geht's auch. War aber 68000 und nicht 68020. Man sieht das den Tang-Nano-Kisten ja auch gar nicht mehr an... :D

Hat schon mal jemand über eine dynamische Erkennung der CPU gegrübelt? So in der Richtung, dass man an den drei möglichen Adressen etwas tut und dann liest was passiert ist? Ein Register der GDP? In der Hoffnung, dass die im Falle eines Spieles o.Ä. schon immer da sein wird.

-----------------------
Definitiv sind Frösche und Himbeeren am besten!

Posts: 583 | Member since: July 2022 | IP address: not saved
retroniker
Stammgast
**
ID # 243


  Posted on December 28, 2025 11:32 PM (#157)  |  Quote Quote   PM PM   E-mail E-mail
@redo
SuseLinux und LinuxMint kommen aus unterschiedlichen "Familien". Suse war auch früher schon ein extra "Weg" und LinuxMint, ubuntu, Knoppix ... gehört zu Debian Distribution.
Die Pfade und die ganze Ordnung im System ist bissl anders. Ich weiß nicht sicher, ob es daran liegt, oder ob das auf Terminal-Ebene in diesem Fall egal ist.
Du hattest doch vor kurzem noch Debian, oder?
Unter LinuxMint musste ich, um andis Umgebung zum laufen zu bringen, noch nicht mal die libnkc.a neu comilieren. Ich hab wieder einfach alles nach /opt gepackt und die test.c mit makefile im homeverzeichnis gelassen ... makefile bissl angepaast (Pfade) und schon ging das.
Ob das unter suse auch so geht, ... hmm?? Hat es bei dir ein opt-verzeichnis? In jedem Fall müßte es ein usr-verzeichnis haben.
Schöne Grüße
daniel

-----------------------
68008/GDP64HS/BootRAM68k/KEYr4/IOEenh mit 2xSD-Karte/Sound3/UHR3/IOEenh mit Joystick/BUS3 ;)

Posts: 190 | Member since: February 2025 | IP address: not saved
redo
Stammgast
**
ID # 245


  Posted on December 28, 2025 11:45 PM (#158)  |  Quote Quote   PM PM   E-mail E-mail   HP HP
Hallo Daniel,
ich hatte mich jetzt auf SuseLinux wegen der Nähe und einer Empfehlung eingelassen. Ja, vorher lief Debian mit Gnome. Ich werde wohl dahin zurückkehren. Auf die Ubuntus wollte ich mich nicht einlassen, da es dort bei Upgrades zu Problemen mit freier Software kommen kann.
Scheinbar ist es unter Windows einfacher, weil eben nur(!) Windows. Eine einheitliche und zentrale Entwicklungsumgebung ist schon sinnvoll.
Bei mir wird es in der HOME Umgebung installiert.
Zur load.sh. Die bezieht sich uf Andis Umgebung. Er verwendet eine Netzwerkanbindung. Bei mir läuft es über die dl.py und den FTDI auf den TangNano.
Ich baue das morgen um und melde mich wieder?.
VG Jürgen

-----------------------
Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend!

Posts: 236 | Member since: June 2025 | IP address: not saved
andi
Voll in Gange
***
ID # 213


  Posted on December 29, 2025 12:37 AM (#159)  |  Quote Quote   PM PM   E-mail E-mail
Hallo Daniel,
Du kannt aber auch bei deiner selber compilierten Umgebung bleiben. Ich hab inzwischen rausgefunden woran das Problem mit der Ausgabe nur bei Tastendruck liegt.
Und zwar einer der letzten Updates bei newlib_stubs.c muss rückgängig gemacht werden. Die drei auskommentierten Zeilen müssen wieder rein https://github.com/avg67/nkc/blob/main/SW/SysGCC-delta/m68k-elf/nkc_common/newlib_stubs.c#L176
Das Problem ist die Art wie die neueren Newlibs stdin und stdout behandeln. Diese werden in einer großen Schleife gleichzeitig abgearbeitet. Dabei darf keine Funktion blockieren (auf ein Zeichen warten). sonst blockiert stdin den stdout. War ursprünglich richtig implementiert und durch den Fix funktioniert es mit der neueren newlib nicht mehr.
Als sideeffekt geht der cursor nicht weil das ein riner SW-Seitiger Cursor ist der nur auftaucht wenn GP-CI auf ein Zeichen wartet.
Sorry dafür.

Posts: 522 | Member since: May 2021 | IP address: not saved
andi
Voll in Gange
***
ID # 213


  Posted on December 29, 2025 12:51 AM (#160)  |  Quote Quote   PM PM   E-mail E-mail
Die GDP-FPGA hat aber auch einen HW-Cursor. Den werd ich mal als Ersatz aktivieren (war bisher immer abgeschaltet)

Posts: 522 | Member since: May 2021 | IP address: not saved
redo
Stammgast
**
ID # 245


  Posted on December 29, 2025 09:21 AM (#161)  |  Quote Quote   PM PM   E-mail E-mail   HP HP
Guten Morgen,
der Nachricht von Andi folgend, könnte ich ja doch beim SuseLinux bleiben. Dann bräuchte ich nur den Hinweis, welche Versionen ich von gcc, Newlib und binutils verwenden soll, damit es bei uns jeweils ähnliche Bedingungen sind. Und weiter wären die verwendeten Schalter in der Build-Umgebung für configure natürlich wichtig.

Dann würde ich meinen Build nochmal aufsetzen. Könntet ihr das hier nochmal schreiben? Besten Dank.

VG Jürgen

PS: Habe auf dem Weg den Kate Editor entdeckt. Damit könnte ich den vs-code ersetzen. Was nehmt ihr als Editor für die Programmentwicklung?

-----------------------
Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend!

Posts: 236 | Member since: June 2025 | IP address: not saved



| https://nkcforum.de | Board rules | Privacy policy


Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts


Site created in 0.042205 seconds
Processed 18 files
gzip compression enabled
2491.52 KiB memory usage