Software > Software (16-/32-Bit)
Fortran (gfortran) für ST
czietz:
Ich bin auch etwas weitergekommen:
In C funktioniert, das hinzufügen eines CR, weil ein Aufruf wie...
printf("The answer to life, the universe and everything is %d\n", 42);
... durch __stdio_text_write() geschickt wird, was das CR hinzufügt.
Die Fortran-Laufzeitbibliothek hingegen kippt den String (da HAVE_CRLF nicht definiert ist) nur mit einem LF versehen in write() ein. Das hätte zwar grundsätzlich die Möglichkeit, ein CR hinzuzufügen. Es scheitert aber daran, dass die Datei nicht mit (flags & RAW) geöffnet ist. Das ist offenbar ein bekannter Bug in MiNTLib: "BUG: under TOS, CRMOD doesn't work unless RAW is on or SIGINT is being caught".
Macht halt Fortran-Programme kaputt. >:(
Thorsten Otto:
--- Zitat von: czietz am Di 26.02.2019, 19:03:33 ---Macht halt Fortran-Programme kaputt. >:(
--- Ende Zitat ---
Ja, müsste man sich wohl nochmal genauer anschauen. Betrifft ja alle Programme, die über write() as ausgeben. Wobei mir der code sowieso suspekt vorkommt: wenn RAW gesetzt ist, wird CRMOD berücksichtigt, sonst nicht? Würde eigentlich erwarten, daß es genau andersrum ist.
BTW.: denke habe das ursprüngliche Problem in strip gefunden: bei -x werden auch die __CTOR_LIST__/__DTOR_LIST__ (für constructors/destructors) entfernt. Muss ich noch verifizieren, und noch rausfinden warum das nur bei der 64bit-version passiert, aber in der fortran-bibliothek werden dort u.a. auch die units initialisiert, denke mal das dürfte die Ursache für die Probleme sein.
Thorsten Otto:
Update: problem in binutils behoben (Archive auf der Download-Seite sind auch aktuaiisiert). Es war nicht unbedingt ein bug (das Symbol war lokal, und wurde gelöscht weil ich in dem Kommando -x verwendet habe), habe die binutils aber trotzdem geändert, weil es eigentlich eine nicht-so-gute Idee ist die zu löschen. Die 32-bit und 64-bit Versionen haben sich da übrigens gleich verhalten, warum die 32bit Version trotzdem funktioniert hat, ist mir eigentlich nicht so ganz klar, aber seis drum ;)
Wers testen möchte, auf http://tho-otto.de/crossmint.php sind jetzt für alle Systeme auch Fortran-Compiler vorhanden (als extra-Archiv). Und mit alle meine ich: auch native für MiNT.
Das oben beschriebene Phänomen mit Linefeed ist noch nicht behoben, tritt aber nur unter TOS auf .
czietz:
Sorry, falscher Thread!
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln