Nel codice sorgente del GCC, utilizzato per il ramo GCC 15, è stata apportata una modifica che classifica come obsoleto il supporto per l'ABI ARM64 ILP32 (-mabi=ilp32). L'ILP32 ricorda la sottoarchitettura x32 per i sistemi x86_64 e consente anche l'uso di puntatori a 32 bit e di un modello di indirizzamento della memoria a 32 bit, mentre il processore opera in modalità a 64 bit con supporto per registri a 64 bit e istruzioni avanzate. Una limitazione dell'ABI ILP32 è l'impossibilità di indirizzare oltre 4 GB di memoria da un'applicazione.
Inizialmente, l'ABI ILP32 è stato sviluppato per facilitare il porting delle applicazioni a 32 bit sui processori a 64 bit AArch64, ma non ha ottenuto una diffusione adeguata. Il supporto per l'ILP32 non è mai stato adottato nel kernel Linux e nella libreria di sistema Glibc. I porting Linaro e Debian per l'ILP32 si sono sviluppati separatamente, ma sono ormai trascurati da oltre cinque anni. Tra i pochi sistemi che supportano l'ILP32 si segnala il sistema operativo watchOS, utilizzato nei dispositivi Apple Watch, ma GCC non è supportato per questo OS.
Fonte: opennet.ru
