Analyse: 64-Bit-Kompatibilitaetsprobleme #5
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "analysis/64bit-compatibility"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Zusammenfassung
Systematische Untersuchung aller Quelldateien auf Probleme die auf 64-Bit-Systemen (LP64:
long=8 Byte,pointer=8 Byte) auftreten, auf 32-Bit aber nicht.Kritische Befunde
LONG/ULONG falsch dokumentiert
typedef unsigned long ULONG; /* 32 Bit */— der Kommentar ist auf 64-Bit falsch.longist dort 8 Byte. Betrifft alle Strukturen die ULONG verwenden.Binaere Inkompatibilitaet der Statistikdateien
Drei Strukturen werden direkt per
fwrite/freadgespeichert und enthaltenULONG/time_t:STAT(MH-Tabelle): ~68 Byte (32-Bit) vs ~128 Byte (64-Bit)PORTSTAT: 38 Byte vs 66 ByteTGRAPH: proportional ~2x groesserEine auf einem System geschriebene
.STA-Datei kann auf dem anderen nicht korrekt gelesen werden.Warnungen
l3rtt.c:220: Zeiger als ULONG uebergeben — funktioniert zufaelligstrlen()→int-Cast an mehreren StellenInhalt
doc/64bit_kompatibilitaet.md: Vollstaendige Analyse mit Loesungsvorschlaegendoc/install_uebersicht.md: Dokumentation der Makefile-InstallationszieleTest plan
sizeof(ULONG)auf Zielsystem pruefen:printf("%zu\n", sizeof(unsigned long))uint32_tmigriert werden soll (bricht .STA-Kompatibilitaet)🤖 Generated with Claude Code
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.