[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