È stata apportata una modifica al codice sorgente di GCC utilizzato per creare il ramo GCC 15, che classifica il supporto per l'ABI ARM64 ILP32 (-mabi=ilp32) come obsoleto. ILP32 è simile alla subarchitettura x32 per sistemi x86_64 e consente di utilizzare puntatori a 32 bit e una modalità di indirizzamento della memoria a 32 bit, mentre il processore opera in modalità 64 bit con supporto per registri a 64 bit e istruzioni avanzate. Una limitazione dell'ABI ILP32 è l'impossibilità per le applicazioni di indirizzare più di 4 GB di memoria.
Originariamente, l'ABI ILP32 è stato sviluppato per semplificare il porting di applicazioni a 32 bit su processori a 64 bit AArch64, ma non ha trovato una diffusione adeguata. Il supporto per ILP32 non è mai stato adottato nel kernel Linux e nella libreria di sistema Glibc. Sono stati sviluppati separatamente i porting di Linaro e Debian per ILP32, ma sono stati abbandonati da oltre cinque anni. Tra i rari sistemi che supportano ILP32, c'è il sistema operativo watchOS utilizzato nei dispositivi Apple Watch, ma GCC non è supportato per questo OS.
Fonte: opennet.ru
