[PATCH 2/2] Enable ILP32 mode on aarch64
Steve Ellcey
sellcey@caviumnetworks.com
Tue Nov 29 18:52:00 GMT 2016
This is the final patch to enable ILP32 mode for aarch64.  It contains
the structural changes in the aarch64 directories to support both modes
as well as configure and make changes.
This patch (combined with the earlier one) does not cause any regressions
in the LP64 mode.  I get 7 fails with or without the ILP32 patches in my
tree.  I do get some failures in ILP32 mode that are not there in LP64 mode,
in that mode I get a total of 22 failures.  I will be working on these failures
but I would like to get this code checked in while I work on them so that other
people might be able to investigate them as well.
If you want to build and run aarch64 ILP32 code, you will need some non-glibc
patches.  The kernel patches for ILP32 have been submitted but are not yet
checked in.  You can find them here:
 http://lists.infradead.org/pipermail/linux-arm-kernel/2016-October/462993.html
There is also a binutils patch you will probably want, that is here:
 https://sourceware.org/ml/binutils/2016-11/msg00335.html
And there are two GCC patches that are here:
 https://gcc.gnu.org/ml/gcc-patches/2016-10/msg00522.html
 https://gcc.gnu.org/ml/gcc-patches/2016-04/msg01726.html
OK to checkin?
Steve Ellcey
sellcey@caviumnetworks.com
2016-11-29  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
    Yury Norov  <ynorov@caviumnetworks.com>
    Steve Ellcey  <sellcey@caviumnetworks.com>
* sysdeps/aarch64/configure.ac (HAVE_AARCH64_ILP32): New define.
(default-abi): Allow for ilp32 ABI.
* sysdeps/aarch64/configure: Regenerate.
* sysdeps/aarch64/Implies: Deleted.
* sysdeps/aarch64/ilp32/Implies: New file.
* sysdeps/aarch64/ilp32/Implies-after: New file.
* sysdeps/aarch64/lp64/Implies: New file.
* sysdeps/aarch64/lp64/Implies-after: New file.
* sysdeps/aarch64/preconfigure (machine): Check for ilp32/lp64.
* sysdeps/aarch64/tls-macros.h (TLS_IE): Ifdef for ILP32.
* sysdeps/generic/ldconfig.h (FLAG_AARCH64_LIB32): New define.
* sysdeps/unix/sysv/linux/aarch64/Implies: Remove generic and
wordsize-64 entries.
* sysdeps/unix/sysv/linux/aarch64/Makefile (abi-variants): Add
new variants for ilp32 and ilp32_be.
(abi-lp64-options, abi-lp64_be-options): define __LP64__ and
undefine __ILP32__.
(abi-lp64-condition, abi-lp64_be-condition): Check for __WORDSIZE
equal to 64.
(abi-ilp32-options, abi-ilp32-condition, abi-ilp32_be-options,
abi-ilp32_be-condition): New.
* sysdeps/unix/sysv/linux/aarch64/configure.ac (arch_minimum_kernel):
Use different value for ILP32.
(LIBC_SLIBDIR_RTLDDIR): Modify for ILP32.
* sysdeps/unix/sysv/linux/aarch64/ilp32/Implies: Ditto.
* sysdeps/unix/sysv/linux/aarch64/bits/stat.h: New file.
* sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h: Ditto.
* sysdeps/unix/sysv/linux/aarch64/bits/utmp.h: Ditto.
* sysdeps/unix/sysv/linux/aarch64/bits/utmpx.h: Ditto.
* sysdeps/unix/sysv/linux/aarch64/ilp32/kernel_stat.h: Ditto.
* sysdeps/unix/sysv/linux/aarch64/ilp32/msgctl.c: Ditto.
* sysdeps/unix/sysv/linux/aarch64/ilp32/semctl.c: Ditto.
* sysdeps/unix/sysv/linux/aarch64/ilp32/shlib-versions: Ditto.
* sysdeps/unix/sysv/linux/aarch64/ilp32/shmctl.c: Ditto.
* sysdeps/unix/sysv/linux/aarch64/kernel-features.h: Ditto.
* sysdeps/unix/sysv/linux/aarch64/Implies: Add unix/sysv/linux/aarch64.
* sysdeps/unix/sysv/linux/aarch64/ioctl.S: Move to lp64 directory.
* sysdeps/unix/sysv/linux/aarch64/mmap.c: Ditto.
* sysdeps/unix/sysv/linux/aarch64/shlib-versions: Ditto.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: aarch64-ilp32-final.patch
Type: text/x-patch
Size: 33586 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20161129/59d5c158/attachment.bin>
More information about the Libc-alpha
mailing list