old mode 100644
new mode 100755
@@ -163,12 +163,19 @@ rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_aarch64_be" >&5
$as_echo "$libc_cv_aarch64_be" >&6; }
+
+if test $aarch64_config_abi = ilp32; then
+ $as_echo "#define HAVE_AARCH64_ILP32 1" >>confdefs.h
+
+fi
+
if test $libc_cv_aarch64_be = yes; then
$as_echo "#define HAVE_AARCH64_BE 1" >>confdefs.h
- config_vars="$config_vars
-default-abi = lp64_be"
+ libc_aarch64_be=_be
else
- config_vars="$config_vars
-default-abi = lp64"
+ libc_aarch64_be=
fi
+
+config_vars="$config_vars
+default-abi = ${aarch64_config_abi}${libc_aarch64_be}"
@@ -14,9 +14,16 @@ AC_CACHE_CHECK([for big endian],
yes
#endif
], libc_cv_aarch64_be=yes, libc_cv_aarch64_be=no)])
+
+if test $aarch64_config_abi = ilp32; then
+ AC_DEFINE(HAVE_AARCH64_ILP32)
+fi
+
if test $libc_cv_aarch64_be = yes; then
AC_DEFINE(HAVE_AARCH64_BE)
- LIBC_CONFIG_VAR([default-abi], [lp64_be])
+ libc_aarch64_be=_be
else
- LIBC_CONFIG_VAR([default-abi], [lp64])
+ libc_aarch64_be=
fi
+
+LIBC_CONFIG_VAR([default-abi], [${aarch64_config_abi}${libc_aarch64_be}])
@@ -1,6 +1,15 @@
case "$machine" in
aarch64*)
base_machine=aarch64
- machine=aarch64
+ case "$CC $CFLAGS $CPPFLAGS " in
+ *" -mabi=ilp32 "*) aarch64_config_abi=ilp32 ;;
+ *" -mabi=lp64 "*) aarch64_config_abi=lp64 ;;
+ *) aarch64_config_abi=default ;;
+ esac
+ case $aarch64_config_abi in
+ default) machine=aarch64/lp64 aarch64_config_abi=lp64 ;;
+ ilp32) machine=aarch64/ilp32 ;;
+ lp64) machine=aarch64/lp64 ;;
+ esac
;;
esac
old mode 100644
new mode 100755
@@ -1,9 +1,23 @@
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux/aarch64.
-arch_minimum_kernel=3.7.0
-
-test -n "$libc_cv_slibdir" ||
+if test $aarch64_config_abi = ilp32; then
+ arch_minimum_kernel=3.19.0
+ test -n "$libc_cv_slibdir" ||
+case "$prefix" in
+/usr | /usr/)
+ libc_cv_slibdir=/libilp32
+ libc_cv_rtlddir=/lib
+ if test "$libdir" = '${exec_prefix}/lib'; then
+ libdir='${exec_prefix}/libilp32';
+ # Locale data can be shared between 32-bit and 64-bit libraries.
+ libc_cv_localedir='${exec_prefix}/lib/locale'
+ fi
+ ;;
+esac
+else
+ arch_minimum_kernel=3.7.0
+ test -n "$libc_cv_slibdir" ||
case "$prefix" in
/usr | /usr/)
libc_cv_slibdir=/lib64
@@ -15,3 +29,5 @@ case "$prefix" in
fi
;;
esac
+fi
+
@@ -1,6 +1,11 @@
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/unix/sysv/linux/aarch64.
-arch_minimum_kernel=3.7.0
+if test $aarch64_config_abi = ilp32; then
+ arch_minimum_kernel=3.19.0
+ LIBC_SLIBDIR_RTLDDIR([libilp32], [lib])
+else
+ arch_minimum_kernel=3.7.0
+ LIBC_SLIBDIR_RTLDDIR([lib64], [lib])
+fi
-LIBC_SLIBDIR_RTLDDIR([lib64], [lib])