]> git.ipfire.org Git - thirdparty/glibc.git/commit
aarch64: Add ILP32 support
authorSteve Ellcey <sellcey@caviumnetworks.com>
Mon, 14 Aug 2017 14:16:05 +0000 (15:16 +0100)
committerAndreas Schwab <schwab@suse.de>
Sun, 7 Mar 2021 14:42:44 +0000 (15:42 +0100)
commit64fe0e2788f81307875278c09741036c8c1c07fc
treec25c03a3e127131cbdae7e2f538bef2bffc7d21e
parentf85ae45c27616352712c8129735de100c3dff360
aarch64: Add ILP32 support

Add support for the ILP32 abi variant to aarch64.

2017-09-01  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
    Yury Norov  <ynorov@caviumnetworks.com>
    Steve Ellcey  <sellcey@caviumnetworks.com>

* elf/cache.c (print_entry): Add FLAG_AARCH64_LIB32.
* 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/nptl/bits/pthreadtypes-arch.h
(__PTHREAD_RWLOCK_INT_FLAGS_SHARED): Set to 1.
* sysdeps/aarch64/preconfigure (machine): Check for ilp32/lp64.
* sysdeps/aarch64/tls-macros.h (TLS_IE): Remove register specification
for __result and 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-condition, abi-lp64_be-condition): Check for __WORDSIZE
equal to 64.
(abi-ilp32-condition, 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/configure: Regenerate.
* sysdeps/unix/sysv/linux/aarch64/ilp32/Implies: New file.
* sysdeps/unix/sysv/linux/aarch64/ilp32/c++-types.data: Likewise.
* sysdeps/unix/sysv/linux/aarch64/ilp32/kernel_stat.h: Likewise.
* sysdeps/unix/sysv/linux/aarch64/ilp32/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/aarch64/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/aarch64/bits/statfs.h: Likewise.
* sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h: Likewise.
* sysdeps/unix/sysv/linux/aarch64/bits/utmp.h: Likewise.
* sysdeps/unix/sysv/linux/aarch64/bits/utmpx.h: Likewise.
* sysdeps/unix/sysv/linux/aarch64/kernel-features.h: Likewise.
* 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: Likewise.
* sysdeps/unix/sysv/linux/aarch64/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/aarch64/c++-types.data: Likewise.
* sysdeps/unix/sysv/linux/aarch64/ldd-rewrite.sed: Likewise.
* sysdeps/unix/sysv/linux/aarch64/ipc_priv.h (__IPC_64): Check __ILP32
when setting.
* sysdeps/unix/sysv/linux/arm/readelflib.c (process_elf_file):
Check for EM_AARCH64 when processing ELFCLASS32 object.
* sysdeps/unix/sysv/linux/bits/fcntl-linux.h (F_GETLK, F_SETLCK,
F_SETLKW): Check for __OFF_T_MATCHES_OFF64_T when defining.
31 files changed:
elf/cache.c
sysdeps/aarch64/configure
sysdeps/aarch64/configure.ac
sysdeps/aarch64/ilp32/Implies [moved from sysdeps/aarch64/Implies with 79% similarity]
sysdeps/aarch64/ilp32/Implies-after [new file with mode: 0644]
sysdeps/aarch64/lp64/Implies [new file with mode: 0644]
sysdeps/aarch64/lp64/Implies-after [new file with mode: 0644]
sysdeps/aarch64/preconfigure
sysdeps/aarch64/tls-macros.h
sysdeps/generic/ldconfig.h
sysdeps/unix/sysv/linux/aarch64/Implies
sysdeps/unix/sysv/linux/aarch64/Makefile
sysdeps/unix/sysv/linux/aarch64/bits/stat.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/aarch64/bits/statfs.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/aarch64/bits/utmp.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/aarch64/bits/utmpx.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/aarch64/configure
sysdeps/unix/sysv/linux/aarch64/configure.ac
sysdeps/unix/sysv/linux/aarch64/ilp32/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/aarch64/ilp32/c++-types.data [new file with mode: 0644]
sysdeps/unix/sysv/linux/aarch64/ilp32/kernel_stat.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/aarch64/ilp32/shlib-versions [new file with mode: 0644]
sysdeps/unix/sysv/linux/aarch64/kernel-features.h
sysdeps/unix/sysv/linux/aarch64/ldd-rewrite.sed [new file with mode: 0644]
sysdeps/unix/sysv/linux/aarch64/lp64/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/aarch64/lp64/c++-types.data [moved from sysdeps/unix/sysv/linux/aarch64/c++-types.data with 100% similarity]
sysdeps/unix/sysv/linux/aarch64/lp64/ioctl.S [moved from sysdeps/unix/sysv/linux/aarch64/ioctl.S with 100% similarity]
sysdeps/unix/sysv/linux/aarch64/lp64/shlib-versions [moved from sysdeps/unix/sysv/linux/aarch64/shlib-versions with 100% similarity]
sysdeps/unix/sysv/linux/arm/readelflib.c
sysdeps/unix/sysv/linux/bits/fcntl-linux.h