Un changement a été apporté à la base de code de GCC, utilisée pour former la branche GCC 15, déclassant le support de l'ABI ARM64 ILP32 (-mabi=ilp32). ILP32 ressemble à la sous-architecture x32 pour les systèmes x86_64 et permet également d'utiliser des pointeurs 32 bits et un modèle d'adressage mémoire 32 bits, tout en fonctionnant sur un processeur en mode 64 bits avec prise en charge des registres 64 bits et des instructions étendues. La contrainte de l'ABI ILP32 est l'incapacité d'adresser plus de 4 Go de mémoire à partir d'une application.
À l'origine, l'ABI ILP32 a été conçu pour faciliter le transfert d'applications 32 bits vers des processeurs 64 bits AArch64, mais il n'a pas été largement adopté. Le support de ILP32 n'a jamais été intégré dans le noyau Linux ni dans la bibliothèque système Glibc. Des portages distincts ont été développés pour Linaro et Debian concernant ILP32, mais ils sont dans un état abandonné depuis plus de cinq ans. Parmi les rares systèmes supportant ILP32, on note le système d'exploitation watchOS, utilisé sur les appareils Apple Watch, mais GCC n'est pas pris en charge sur cet OS.
Source : opennet.ru
