รหัสฐาน GCC ที่ใช้ในการสร้างสาขา GCC 15 ได้รับการแก้ไขเพื่อเลิกรองรับ ARM64 ILP32 ABI (-mabi=ilp32) ILP3 มีลักษณะคล้ายกับสถาปัตยกรรมย่อย x32 สำหรับระบบ x86_64 และยังอนุญาตให้ใช้พอยน์เตอร์ 32 บิตและโมเดลการกำหนดแอดเดรสหน่วยความจำ 32 บิตในขณะที่รันโปรเซสเซอร์ในโหมด 64 บิตพร้อมรองรับรีจิสเตอร์ 64 บิตและคำสั่งเพิ่มเติม ข้อจำกัดของ ILP32 ABI คือไม่สามารถระบุหน่วยความจำมากกว่า 4 GB จากแอปพลิเคชันได้
เดิมที ILP32 ABI ถูกออกแบบมาเพื่อลดความซับซ้อนในการพอร์ตแอปพลิเคชัน 32 บิตไปยังโปรเซสเซอร์ AArch64 64 บิต แต่ก็ไม่ได้รับความนิยมอย่างแพร่หลาย และไม่เคยมีการนำ ILP32 มาใส่ไว้ในเคอร์เนลเลย Linux และไลบรารีระบบ Glibc ส่วนพอร์ต Linaro นั้นได้รับการพัฒนาแยกต่างหาก Debian สำหรับ ILP32 นั้นถูกละทิ้งไปนานกว่าห้าปีแล้ว หนึ่งในระบบที่ยังคงรองรับ ILP32 คือ watchOS ซึ่งเป็นระบบปฏิบัติการที่ใช้ในอุปกรณ์ Apple Watch แต่ GCC ไม่ได้รับการสนับสนุนสำหรับระบบปฏิบัติการนี้
ที่มา: opennet.ru
