|
NKC Forum |
| Author | Topic: Projekt C-Crosscompiler | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
retroniker Stammgast ![]() ![]() ID # 243 |
Posted on January 04, 2026 08:21 PM (#182)
Quote
PM E-mail
Hallo andi,
vielen Dank für die schnelle Antwort. Dann weiß ich was zu tun ist. Hab ich also doch was falsch gemacht ... das sah mir doch ganz danach aus ... Vielen Dank ----------------------- 68008/GDP64HS/BootRAM68k/KEYr4/IOEenh mit 2xSD-Karte/Sound3/UHR3/IOEenh mit Joystick/BUS3 |
||||||||
Posts: 190 | Member since: February 2025 | IP address: not saved | |||||||||
|
andi Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on January 04, 2026 08:46 PM (#183)
Quote
PM E-mail
Hallo,
noch ein Nachtrag zum GCC compiler framework. Ich hab gesehen dass da defaultmäßig die Math-Library (libm.a) nciht gelinkt wird (da sind sin(), cos(), sqrt(), ...) drin. Um das zu beheben muss ein Eintrag im Linker-Script geändert werden Bei Zeile 9 muss am Ende "-lm" angehängt werden. https://github.com/avg67/nkc/blob/main/SW/SysGCC-delta/m68k-elf/nkc_common/rm_ram1.ld#L9 Dadurch wird die Math library mitgelinkt und die entsprechenden Funktionen können dann aufgerufen werden (https://www.w3schools.com/c/c_ref_math.php) Getestet mit SysGCC unter Windows |
||||||||
Posts: 522 | Member since: May 2021 | IP address: not saved | |||||||||
|
redo Stammgast ![]() ![]() ID # 245 |
Posted on January 16, 2026 09:24 AM (#184)
Quote
PM E-mail HP
Hallo,
ich möchte euch eine mögliche Lösung für die Installation des Crosscompilers für den 68000er unter Linux weitergeben. install-gcc.sh Diesen Shellscript hatte ich im letzten Jitsi-Treffen besprochen und Andi zum Testen übermittelt. Andi hatte noch eine kleine Änderung bezgl. des nkc_common und konnte den Crosscompiler so auf seinem Linux problemlos installieren. Das hat mich sehr gefreut. Dieser Script baut auf dem gcc-4.8.0 mit der (in der Zeit) passenden Newlib 2.0.0 auf, die ja zu den kleinen Dateigrößen für die ausführbaren Dateien führt. Hier auch in Anlehnung an den SysGCC für Windows aus dem Github von Andi. ZU beachten, dieser Script installiert nur C, kein C++ (das könnte ja nachgereicht werden). Ich selbst habe den Script bei mir auf Debian 12 Bookworm mit dem gcc-12 aufgeschrieben (Fremdhilfe sei dank) und vielfach Stufe für Stufe getestet. Meine Empfehlung ist auch, im Main immer nur einen Schritt nach dem Nächsten, beginnend mit prepare_directories; zu beginnen. Eventuelle Fehler in der Ausführung sind dann besser erkennbar. Ich hoffe und freue mich, wenn es euch nützt. 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 January 16, 2026 09:33 AM (#185)
Quote
PM E-mail
Das finde ich schick. Prima!
Hilft sicher dem/der Nächsten und Übernächsten... ![]() ----------------------- Definitiv sind Frösche und Himbeeren am besten! |
||||||||
Posts: 583 | Member since: July 2022 | IP address: not saved | |||||||||
|
Creep Voll in Gange ![]() ![]() ![]() ID # 169 |
Posted on January 16, 2026 10:18 AM (#186)
Quote
PM E-mail
Danke! Das werde ich mir zeitnah ansehen. Nach ersten Experimenten mit Crosscompiler vor ein paar Jahren fange ich praktisch wieder bei Null an.
Heute will ich mir einen Mini-PC (Lenovo Thinkcenter mit i5) als Linuxserver mit Ubuntu einrichten, auf dem dann alle Entwicklungsumgebungen installiert werden. Auch cc65 usw. Dann kann ich darauf von PC, Laptop u.a. drauf arbeiten. Wue früher bei der Arbeit. |
||||||||
Posts: 746 | Member since: January 2017 | IP address: not saved | |||||||||
|
Creep Voll in Gange ![]() ![]() ![]() ID # 169 |
Posted on January 18, 2026 11:23 PM (#187)
Quote
PM E-mail
Hallo Jürgen,
ich versuche gerade, mit dem install-gcc.sh die Toolchain unter Ubuntu aufzusetzen. Dabei laufe ich in Errors. Eigentlich eine Warning, daß "makeinfo" fehlt. Das habe ich aber dann mit "sudo apt-get install textinfo" eigentlich nachinstalliert. Trotzdem wird es noch als missing angezeigt. Und danach wird gleich mit den Errors abgebrochen. Kannst Du mir da vielleicht einen Tip geben, wo ich suchen muß? Gruß Rene make[3]: Entering directory '/home/rene/gcc-build/newlib/etc' /home/rene/gcc-build/src/newlib-2.0.0/missing makeinfo --split-size=5000000 --split-size=5000000 --no-split -I/home/rene/gcc-build/src/newlib-2.0.0/etc -o standards.info /home/rene/gcc-build/src/newlib-2.0.0/etc/standards.texi WARNING: `makeinfo' is missing on your system. You should only need it if you modified a `.texi' or `.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy `make' (AIX, DU, IRIX). You might want to install the `Texinfo' package or the `GNU make' package. Grab either from any GNU archive site. make[3]: *** [Makefile:161: standards.info] Error 1 make[3]: Leaving directory '/home/rene/gcc-build/newlib/etc' make[2]: *** [Makefile:72: info] Error 1 make[2]: Leaving directory '/home/rene/gcc-build/newlib/etc' make[1]: *** [Makefile:3087: all-etc] Error 2 make[1]: Leaving directory '/home/rene/gcc-build/newlib' make: *** [Makefile:828: all] Error 2 |
||||||||
Posts: 746 | Member since: January 2017 | IP address: not saved | |||||||||
|
redo Stammgast ![]() ![]() ID # 245 |
Posted on January 19, 2026 12:11 AM (#188)
Quote
PM E-mail HP
Hallo Rene,
Makeinfo soll nicht mitlaufen. Dafür gibt es entsprechende Schalter, die im Scipt gesetzt sind. Welches Linux und welchen gcc für Stage 1 setzt Du ein? Ich habe bewusst Debian 12 Bookworm mit dem gcc-12, einem älteren gcc verwendet, da neuere gcc mit dem alten gcc-4.8.0 nicht mehr so gut umgehen können. Ich sehe mir den Script gerne nochmal an und melde mich? 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 | |||||||||
|
Creep Voll in Gange ![]() ![]() ![]() ID # 169 |
Posted on January 19, 2026 12:20 AM (#189)
Quote
PM E-mail
Hallo Jürgen,
ich habe ein frisch installiertes Ubuntu 23.04.3 LTS vor mir. Einfach, weil ich das von der Arbeit schon gewohnt bin und das auch dort auf dem Server lief. Der GCC wäre dann: gcc --version gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0 Ich bin nur verwundert, daß ja makeinfo eigentlich installiert ist und sich auch aufrufen läßt, das Makefile im newlib es aber anscheinend nicht findet. Ja, Fehlersuche ist nicht so mein Ding, und für die Entwicklungsumgebung selbst war damals jemand anderes im Team verantwortlich. Ich war froh, wenn ich einfach nur neuen Code schreiben konnte... Gruß Rene |
||||||||
Posts: 746 | Member since: January 2017 | IP address: not saved | |||||||||
|
redo Stammgast ![]() ![]() ID # 245 |
Posted on January 19, 2026 10:21 AM (#190)
Quote
PM E-mail HP
Hallo Rene,
versuche mal den Schalter --disable-docs den Du in das configure von Build Newlib mit einbaust. Ergänzen kannst Du MAKEINFO=true in der make -j1 Zeile vom build new_newlib, was den Bau der Manuals hart verhindern soll. Habe ich aber nicht getestet. Bei meinem Debian war wohl auch texinfo, was benötigt wird, falls man mit Manuals installieren will, vorinstalliert. Aber nagele mich da nicht fest. Ich habe das auch nicht überprüft. 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 | |||||||||
|
Creep Voll in Gange ![]() ![]() ![]() ID # 169 |
Posted on January 20, 2026 01:27 AM (#191)
Quote
PM E-mail
Hallo Jürgen,
bin leider erst jetzt dazu gekommen, das noch schnell zu testen. Leider ohne Erfolg. Verstehe ich nicht. Und das ist wohl das Problem. Da muß ich mich mal intensiver einlesen, um wirklich zu verstehen, was im Script und nachher in den Makefiles wirklich passiert. Muß ja funktionieren. Vor allem,, weil makeinfo ja eigentlich vorhanden ist... Gruß Rene |
||||||||
Posts: 746 | Member since: January 2017 | IP address: not saved | |||||||||
|
redo Stammgast ![]() ![]() ID # 245 |
Posted on January 20, 2026 02:41 PM (#192)
Quote
PM E-mail HP
Hallo Rene,
ja bitte. Frage noch: Die Newlib wird mit dem gcc-4.8.0 erstellt. Wurde die Stage 1 sauber installiert? Verwendest Du genau das: declare -r BinutilsVer="2.24"; declare -r GccVer="4.8.0"; declare -r NewlibVer="2.0.0"; Das entspräche der Vorgabe vom SysGCC und entspricht auch der zeitlich korrekten Einordnung. Z.B. scheiterte ein versuch mit newlib-2.5.0 deshalb. Ach ja, ich verwende Make 4.3 (make --version) auf dem Debian 12. Ich sehe, dass es hier Unterschiede zwischen den Ausgangsplattformen und den jeweiligen gcc's gibt. Das ist mit Windows bestimmt einfacher, aber ein mögliches Ziel ist ja genau von dem wegzukommen, zumindest für mich. Bin gespannt, wie Du es löst. Stellst Du die Korrekturen für Dein Ubuntu 23.04.3 LTS auch hier ein? Nach meiner Ansicht gibt es nicht so viele Debian Anhänger. Die meisten, was ich gelesen habe, nehmen Ubuntu oder Mint. Ich hatte mich ursprünglich für das Nürnberger SuseLinux LEAP entschieden, bin aber dann zurück zu Debian. Ich verwende diese Variante wegen der Updatesicherheit und wegen der Vermeidung des sog. PPA-Zirkus (zusätzliche Pakete außerhalb der offiziellen Repos, die u.U. vollen Zugriff auf das System erhalten und bei Systemwechseln zu zusätzlichem Aufwand führen können, Sicherheit gefährdend - Info recherchiert). 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 | |||||||||
|
retroniker Stammgast ![]() ![]() ID # 243 |
Posted on January 21, 2026 03:17 PM (#193)
Quote
PM E-mail
Hallo,
da ich ja nicht so fit bin im Programmieren, bin ich grad mal wieder am Einarbeiten und habe hier ein kleines Programm, das an der Linux-Maschine keine Probleme macht (also mit gcc compiliert), aber am NKC mit dem m68k-gcc macht es Probleme. Der Code stammt im wesentlichen aus einem Buch vom Galileo Verlag für C++, den ich in C umgeschrieben habe. Folgendes: Ich kann den Code ohne Gemecker (noch nicht mal Anmerkungen) des Compilers erstellen und linken. Dann übertrage ich das mit mtools auf den NKC und kann es dort auch starten und es läuft soweit gut. Aber, wenn ich den NKC neu starte, läuft es nicht mehr und stürzt beim Starten ab. (Kalt- Warmstart) Ich habe jetzt wirklich schon viele Stunden investiert, um drauf zu kommen, was es sein könnte. Und ich habe so Einiges gefunden und verbessert. Ich vermute, dass es mit der Speicherfreigabe zu tun hat. 2D-char-array mit 9x9 Feldern (... das kann schon viel sein ). Wenn ich das allerdings runterkürze auf 3x3 Felder kommt der Fehler trotzdem ... ich weiß nicht mehr weiter. Bei dem Thema malloc etc. kenn ich mich aber halt gar nicht aus ... wenn es das überhaupt ist.Hat mir jemand einen Tipp? Aber bitte nicht zu viel investieren, ich will das Forum hier ja nicht mit Fragen zu C-Programmierung belasten. Das könnte ich ja auch woanders platzieren. test.c Vielen Dank ----------------------- 68008/GDP64HS/BootRAM68k/KEYr4/IOEenh mit 2xSD-Karte/Sound3/UHR3/IOEenh mit Joystick/BUS3 |
||||||||
Posts: 190 | Member since: February 2025 | IP address: not saved | |||||||||
|
andi Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on January 21, 2026 07:16 PM (#194)
Quote
PM E-mail
Hallo,
also ich kann auf meinem NKC den von dir beschriebenen Fehler nicht reproduzieren. Da läuft das Programm wie es soll und ich kann es so oft starten wie ich will, auch nach einem Reset. An der Speicherverwaltung kann es nicht liegen weil es eine solche nur im GCC Framework gibt. Jados hat intern zwar schon eine Speicherverwaltung, aber ein Programm kann von Jados keinen Speicher anfordern, sondern muss das selber machen. Es kann Jados lediglich fragen wieviel Speicher zur Verfügung steht. Das macht der GCC-Startup-code und macht damit seine eigene Speicherverwaltung (malloc /free). Was sein kann (bei C passiert das sehr leicht) ist dass du mit einem Pointer irgendwo im Speicher herum schreibst und was wichtiges überschreibst. Dann stürzt das Programm auch ab. Sind schwer zu finden solche Fehler. Aber auf den ersten Blick hab ich davon nciht gesehen in deinem Programm. Ebenso kein dynamisch allokierter Speicher (malloc). Beschreib mal genau was du machst (welche Schritte) damit der Absturz passiert |
||||||||
Posts: 522 | Member since: May 2021 | IP address: not saved | |||||||||
|
retroniker Stammgast ![]() ![]() ID # 243 |
Posted on January 21, 2026 08:40 PM (#195)
Quote
PM E-mail
Hallo andi,
... hm ... seltsam. Also nochmal kurz zur Präzisierung: Nach Übertrag auf ein LW in Jados, dann starten, sauber beenden und NKC ausstecken und neu starten. Also im Grunde, wie wenn ich am nächsten Tag nochmal spielen möchte (also nicht nur einen Reset ... das geht nämlich bei mir auch). Du machst das auf einem FPGA NKC oder klassische HW? Zeiger? muss ich mal akribisch schauen, denke aber nicht, dass ich das gemacht habe ... wenn dann unbewusst ausversehen einen Stern eingetragen ... Aber vielen Dank schon mal ![]() ----------------------- 68008/GDP64HS/BootRAM68k/KEYr4/IOEenh mit 2xSD-Karte/Sound3/UHR3/IOEenh mit Joystick/BUS3 |
||||||||
Posts: 190 | Member since: February 2025 | IP address: not saved | |||||||||
|
retroniker Stammgast ![]() ![]() ID # 243 |
Posted on January 21, 2026 08:54 PM (#196)
Quote
PM E-mail
...
Schritte nochmal ganz genau: - Prog wird compiliert und gelinkt. - vom Linux Rechner kopiert auf die SD des NKC - SD einstecken im NKC - NKC mit der SD starten - mittels mtools auf Laufwerk X: (da habe ich meine Testprogs) - Prog starten und bespielen ... danach mit 00 raus gehen. Gerne auch noch einmal rein - es startet wieder, das geht mehrfach, aber wenn: - Prog ist beendet und ich sehe wieder das X: - exit aus Jados - Stecker ziehen ![]() - Neustart / Jados / X: - Prog starten ... hier startet es nicht NKC stürzt ab. Es kommen bei Kalt- Warmstart unterschiedliche Hinweise in der 1. Zeile über Kalt- Warmstart: "Adressfehler", oder auch "Befehlscode A Emulator" ... vielleicht auch noch andere, ... Edit: Wenn ich das Prog. neu mittels mtools noch einmal rüber hole auf x: - dann läuft es wieder, bis zum nächsten Neustart ----------------------- 68008/GDP64HS/BootRAM68k/KEYr4/IOEenh mit 2xSD-Karte/Sound3/UHR3/IOEenh mit Joystick/BUS3 |
||||||||
Posts: 190 | Member since: February 2025 | IP address: not saved | |||||||||
|
andi Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on January 21, 2026 09:23 PM (#197)
Quote
PM E-mail
Hallo,
Das schaut am ehesten nach einem Problem mit deiner SD-Karte aus, auf keinen Fall hat das was mit dem Compiler zu tun. Hast du noch eine andere die du testen kannst? Ich denke da kippen ein paar bits um wodurch das Programm nicht mehr richtig funktioniert. Probier mal ein anderes Laufwerk als X (z.B. A) Welche SD-Karte benutzt du da (Hersteller, Größe)? |
||||||||
Posts: 522 | Member since: May 2021 | IP address: not saved | |||||||||
|
retroniker Stammgast ![]() ![]() ID # 243 |
Posted on January 21, 2026 09:44 PM (#198)
Quote
PM E-mail
hm ...
![]() die macht aber bei den ganzen andreren Progs keine Zicken. spacinv3, tetris, etc. Vielleicht hab ich noch eine andere ----------------------- 68008/GDP64HS/BootRAM68k/KEYr4/IOEenh mit 2xSD-Karte/Sound3/UHR3/IOEenh mit Joystick/BUS3 |
||||||||
Posts: 190 | Member since: February 2025 | IP address: not saved | |||||||||
|
retroniker Stammgast ![]() ![]() ID # 243 |
Posted on January 21, 2026 09:51 PM (#199)
Quote
PM E-mail
Halt.. das ist die Karte mit der ich die Dateien mittels mtools vom PC rüberhole
Die hier unten ist die mit dem Jados-Image ![]() ----------------------- 68008/GDP64HS/BootRAM68k/KEYr4/IOEenh mit 2xSD-Karte/Sound3/UHR3/IOEenh mit Joystick/BUS3 |
||||||||
Posts: 190 | Member since: February 2025 | IP address: not saved | |||||||||
|
retroniker Stammgast ![]() ![]() ID # 243 |
Posted on January 21, 2026 10:00 PM (#200)
Quote
PM E-mail ![]() Sehr guter Tipp von Dir andi !!! Ich habe das Laufwerk gewechselt und bin auf G: und alles funktioniert wie es soll ---> Wahnsinn ![]() Wie bist du drauf gekommen? Vielen herzlichen Dank ... schon wieder ![]() ----------------------- 68008/GDP64HS/BootRAM68k/KEYr4/IOEenh mit 2xSD-Karte/Sound3/UHR3/IOEenh mit Joystick/BUS3 |
||||||||
Posts: 190 | Member since: February 2025 | IP address: not saved | |||||||||
|
Creep Voll in Gange ![]() ![]() ![]() ID # 169 |
Posted on January 24, 2026 10:11 AM (#201)
Quote
PM E-mail
Woran erkenne ich das? --> Ahh, steht ja in Deinem Script. Sollte also passen. Nach dem Ausführen Deines Scripts befinden sich in meinem home die neuen Unterverzeichnisse gcc-build und working. Im gcc-build sind binutils, gcc-stage1, newlib und src. Im working ist m68k-gcc.
Wo müßte ich das einstellen? Wie gesagt, ich führe nur Dein Script aus.
Wenn ich einmal durch bin, würde ich das gern tun. Ich denke, es wäre sinnvoll, einen nkc-wiki Eintrag zu erstellen, der dem Neueinsteiger erklärt, wie man auf einem frisch installierten Linux from scratch den Compiler installiert inkl. kleinem hello-world Projekt. Das wäre das Ziel.
Bei uns in der Firma wurde erst Fedora, dann Ubuntu benutzt. Vorgabe aus Japan. So bin ich damit zumindest etwas vertrauter. Privat hatte ich in den 90ern mit DLD Linux angefangen, später dann lange Zeit SuSE. Trotzdem kenne ich mich nicht unbedingt in den Tiefen von Linux aus. Arbeite aber dran. Und bei mir können leider immer ein paar Tage vergehen, bis ich wieder zum Ausprobieren kommen. Das fördert den Lerneffekt natürlich nicht. Mittelfristig will ich den kleinen "Linux Server" auch von außen zugänglich machen, um auch im Urlaub draufzukommen. Aber das muß dann natürlich gesichert sein. Dann könnte ich Dir auch einen Zugang geben, um mal kurz drüber zuschauen. Gruß Rene |
||||||||
Posts: 746 | Member since: January 2017 | IP address: not saved |
| https://nkcforum.de | Board rules | Privacy policy
Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts
Site created in 0.034552 seconds
Processed 19 files
gzip compression enabled
2498.83 KiB memory usage




Posted on January 04, 2026





). Wenn ich das allerdings runterkürze auf 3x3 Felder kommt der Fehler trotzdem ... ich weiß nicht mehr weiter. Bei dem Thema malloc etc. kenn ich mich aber halt gar nicht aus ... wenn es das überhaupt ist.

