This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 2/2] Enable ILP32 mode on aarch64
- From: Yury Norov <ynorov at caviumnetworks dot com>
- To: Steve Ellcey <sellcey at caviumnetworks dot com>
- Cc: <libc-alpha at sourceware dot org>
- Date: Thu, 1 Dec 2016 11:02:12 +0530
- Subject: Re: [PATCH 2/2] Enable ILP32 mode on aarch64
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp.mailfrom=Yuri dot Norov at caviumnetworks dot com;
- References: <1480445512.14808.18.camel@caviumnetworks.com>
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
On Tue, Nov 29, 2016 at 10:51:52AM -0800, Steve Ellcey wrote:
> 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/shmctl.c: Ditto.
This shouldn't be here. Adhemerval has consolidation series, and we
build ilp32 on top of it, and we don't need custom implementations
for that syscalls. Currently aarch64/ilp32 doesn't provide any custom
syscall or function implementation - that's what Joseph asked.
Yury