As a follow-up to the recent news around GCC considering deprecating ARM64 ILP32 support, the free software developers have indeed decided to move ahead in deprecating this 32-bit ABI for ARM64.
As summed up in the prior article, ARM64 ILP32 is a 32-bit ABI for Armv8 akin to the x32 efforts in the x86_64 world from a number of years ago. But the mainline Linux kernel and GNU C Library never ended up seeing mainline ILP32 support and the GCC compiler support for this 32-bit ABI has been of very limited use.
One of the rare areas where ARM64 ILP32 is known to be used is with the Apple Watch on watchOS, but GCC currently doesn’t have mainline support there. A developer has expressed interest in pursuing that support but it’s not even clear this Linux-focused ILP32 support would be of much re-use there. Plus the code via Git can be easily restored later if such work actually materializes.
So as such with the newest GCC Git code, ARM64 ILP32 via the “-mabi=ilp32” option is now deprecated:
“ILP32 was originally intended to make porting to AArch64 easier. Support was never merged in the Linux kernel or GLIBC, so it has been unsupported for many years. There isn’t a benefit in keeping unsupported features forever, so deprecate it now (and it could be removed in a future release).”
This deprecation is happening with the GCC 15 compiler due out this year. It’s then possible next year with GCC 16 that the deprecated support could be removed from the compiler.