configure seltsame Ergebnisse

...für und mit Amiga OS4

Moderator: OS4Welt-Team

Antworten
Benutzeravatar
FlynnTheAvatar
Beiträge: 72
Registriert: 23. Juni 2022 11:19
Hat sich bedankt: 3 Mal
Danksagung erhalten: 3 Mal

configure seltsame Ergebnisse

Beitrag von FlynnTheAvatar »

Hallo,

mir ist aufgefallen, dass die AC_CHECK_SIZE tests von configure falsche Ergebnisse zurückliefern, wenn ich es auf AmigaOS 4.1 FE 2 ausführe:

Code: Alles auswählen

/RAM Disk/test> ./configure
configure: creating cache /dev/null
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /SDK/Local/C/grep
checking for egrep... /SDK/Local/C/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... no
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking size of char... 1
checking size of short... 1
checking size of int... 1
checking size of long... 1
checking size of long long... 8
checking size of void *... 8
configure: not updating unwritable cache /dev/null
configure: creating ./config.status
/RAM Disk/test> ./configure
configure: creating cache /dev/null
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /SDK/Local/C/grep
checking for egrep... /SDK/Local/C/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... no
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking size of char... 1
checking size of short... 2
checking size of int... 2
checking size of long... 2
checking size of long long... 2
checking size of void *... 4
configure: not updating unwritable cache /dev/null
configure: creating ./config.status
/RAM Disk/test>
Einmal ist das long 1 Byte, dann 2 Bytes, aber richtig wären 4 Bytes. Die anderen Typen sind nicht besser. Das ist unabhängig vom gcc (habe 4.2.4, 5.5.0 und 8.3.0 getestet). Wenn ich das manuell in einem C-Programm mache, kommt immer das richtige Ergebnis. Genauso, wenn ich das mit einem Crosscompiler versuche.

Hat jemand eine Idee, was der Fehler ist?

Anbei ist ein minimales Configure-Skript plus das C-Testprogramm:
test.lha
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
AmigaOne X5000/20, 2.0 Ghz, 4 GB RAM, 240 + 120 GB SSD, Radeon RX 550, ESI Juli@, SIL 3114
Amiga 500, ACA 500+, ACA1221LC, AmigaOS 1.3 + 3.2.2.1
Amiga 500, Checkmate 1500, Vampire 500V2, AmigaOS 3.2.1 (WIP)
Benutzeravatar
FlynnTheAvatar
Beiträge: 72
Registriert: 23. Juni 2022 11:19
Hat sich bedankt: 3 Mal
Danksagung erhalten: 3 Mal

Re: configure seltsame Ergebnisse

Beitrag von FlynnTheAvatar »

Okay, ich habe es rausgefunden. Ich bin mir allerdings nicht sicher, woran genau das liegt.

Aber es scheint so zu sein, dass configure die Ergebnisse der vorherigen Tests ausliest. Jeder Test kompiliert ein kleines Programm, das das Ergebnis in die Datei conftest.val schreibt. Configure holt sich dann den Wert aus der Datei. Nach dem Test wird alles weggeworfen (gelöscht).

Wenn ich nach jedem Size-Test in der configure-Datei eine Pause mache (sleep 1), kommen die richtigen Ergebnisse. Vielleicht sind die Tests so schnell, dass DOS oder das FS nicht hinterherkommt und den Filehandle auf die vorherige Datei zurückgibt. Ein "sync" reicht nicht.
AmigaOne X5000/20, 2.0 Ghz, 4 GB RAM, 240 + 120 GB SSD, Radeon RX 550, ESI Juli@, SIL 3114
Amiga 500, ACA 500+, ACA1221LC, AmigaOS 1.3 + 3.2.2.1
Amiga 500, Checkmate 1500, Vampire 500V2, AmigaOS 3.2.1 (WIP)
Benutzeravatar
cygnusEd
Beiträge: 158
Registriert: 9. August 2010 10:48
Kontaktdaten:

Re: configure seltsame Ergebnisse

Beitrag von cygnusEd »

FlynnTheAvatar hat geschrieben: 15. Juli 2022 11:55 ...
Wenn ich nach jedem Size-Test in der configure-Datei eine Pause mache (sleep 1), kommen die richtigen Ergebnisse. Vielleicht sind die Tests so schnell, dass DOS oder das FS nicht hinterherkommt und den Filehandle auf die vorherige Datei zurückgibt. Ein "sync" reicht nicht.
Ein ähnliches Problem hatte ich vor einiger Zeit auch mal festgestellt und dann in meiner Version von "rm" für AmiCygnix eine kleine Schleife eingebaut, die dann mehrere Versuche macht, die Datei zu löschen (3x mit 1/50 Sek. Delay).
Bei mir klappt das jedenfalls besser.

Wenn Du magst, kannst Du mal die neueste Version ausprobieren. Das Programm hat nur unwichtige Abhängigkeiten zu AmiCygnix. Wenn also der "Cygnix:" Assign fehlt, einfach einen nach "RAM:" anlegen.

Ist vielleicht nicht die Lösung, aber wäre mal interessant, ob es dann funktioniert.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
X-5000 PPC 5020/2 GHZ, Fractal Define XL R2-Tower, OS 4.1 final upd. 2, 4 GB, Radeon HD 7770, ESI Juli@ XTe
SAM 460ex/1,15 GHZ, OS 4.1 final, 2 GB, Radeon HD 6450
Amiga 4000D/040 25 Mhz, OS 3.9 BB2, 272 MB, X-Surf, 250 MB ZIP
Benutzeravatar
cygnusEd
Beiträge: 158
Registriert: 9. August 2010 10:48
Kontaktdaten:

Re: configure seltsame Ergebnisse

Beitrag von cygnusEd »

Ich muss mal etwas zurück rudern. Mit Deinem configure Skript und meinem "rm" klappt es nur wenig besser.
Es ist ja auch sogar so, dass bei jedem Start von "configure" ein anderes Ergebnis heraus kommt, unabhängig von der "rm" Version.

Also sieht aus wie ein Problem mit der abc-shell.
X-5000 PPC 5020/2 GHZ, Fractal Define XL R2-Tower, OS 4.1 final upd. 2, 4 GB, Radeon HD 7770, ESI Juli@ XTe
SAM 460ex/1,15 GHZ, OS 4.1 final, 2 GB, Radeon HD 6450
Amiga 4000D/040 25 Mhz, OS 3.9 BB2, 272 MB, X-Surf, 250 MB ZIP
Benutzeravatar
FlynnTheAvatar
Beiträge: 72
Registriert: 23. Juni 2022 11:19
Hat sich bedankt: 3 Mal
Danksagung erhalten: 3 Mal

Re: configure seltsame Ergebnisse

Beitrag von FlynnTheAvatar »

Vielen Dank für das neue "rm". Das funktioniert deutlich besser als die Standardversion von AmiCygnix. Aber wie du schon gemerkt hast, hilft das leider auch nicht. Nicht sicher, ob das an der abc-shell oder etwas anderes liegt.

Leider kann ich keinen Cross-Compiler auf meinem Raspberry Pi bauen, wenigstens nicht mit dem aktuellen Stand von adtools. Echt zu viele Baustellen auf dem Amiga...
AmigaOne X5000/20, 2.0 Ghz, 4 GB RAM, 240 + 120 GB SSD, Radeon RX 550, ESI Juli@, SIL 3114
Amiga 500, ACA 500+, ACA1221LC, AmigaOS 1.3 + 3.2.2.1
Amiga 500, Checkmate 1500, Vampire 500V2, AmigaOS 3.2.1 (WIP)
Antworten