In den Codebasis von GCC, die für die Entwicklung des GCC 15 verwendet wird, wurde eine Änderung vorgenommen, die die Unterstützung von ABI ARM64 ILP32 (-mabi=ilp32) als veraltet einstuft. ILP32 ähnelt der Subarchitektur x32 für x86_64-Systeme und ermöglicht ebenfalls die Verwendung von 32-Bit-Zeigern sowie einer 32-Bit-Speicheradressierungsmodell, während der Prozessor im 64-Bit-Modus mit Unterstützung für 64-Bit-Register und erweiterte Anweisungen arbeitet. Eine Einschränkung von ABI ILP32 ist die Unfähigkeit, mehr als 4 GB Speicher aus einer Anwendung anzusprechen.
Ursprünglich wurde ABI ILP32 entwickelt, um den Übergang von 32-Bit-Anwendungen auf 64-Bit-Prozessoren der Architektur AArch64 zu erleichtern, hat aber nicht die gewünschte Verbreitung gefunden. Die Unterstützung für ILP32 wurde nicht im Linux-Kernel oder in der Systembibliothek Glibc angenommen. Die Portierungen von Linaro und Debian für ILP32 wurden separat entwickelt, befinden sich jedoch seit über fünf Jahren im Stillstand. Von den wenigen Systemen, die ILP32 unterstützen, ist das Betriebssystem watchOS zu nennen, das auf Apple Watch-Geräten verwendet wird, jedoch wird GCC für dieses OS nicht unterstützt.
Quelle: opennet.ru
