mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 19:53:32 +08:00
[AArch64] Define BE loader name.
This commit is contained in:
parent
91cbd0bc72
commit
b67e7fe0f9
@ -1,3 +1,15 @@
|
||||
2014-01-20 Marcus Shawcroft <marcus.shawcroft@linaro.org>
|
||||
|
||||
* sysdeps/aarch64/configure.ac: New file.
|
||||
* sysdeps/aarch64/configure: New file.
|
||||
* sysdeps/aarch64/shlib-versions: Define ld-linux-aarch64_be.so.1
|
||||
* sysdeps/unix/sysv/linux/aarch64/Makefile (abi-variants)
|
||||
(abi-lp64-options, abi-lp64-condition, abi-lp64-ld-soname)
|
||||
(abi-lp64_be-options, abi-lp64_be-condition)
|
||||
(abi-lp64_be-ld-soname) Define.
|
||||
* sysdeps/unix/sysv/linux/aarch64/ldconfig.h
|
||||
(SYSDEP_KNOWN_INTERPRETER_NAMES): Add ld-linux-aarch64_be.so.1
|
||||
|
||||
2014-01-07 Marcus Shawcroft <marcus.shawcroft@linaro.org>
|
||||
|
||||
[BZ #16387]
|
||||
|
174
ports/sysdeps/aarch64/configure
vendored
Normal file
174
ports/sysdeps/aarch64/configure
vendored
Normal file
@ -0,0 +1,174 @@
|
||||
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
|
||||
# Local configure fragment for sysdeps/aarch64.
|
||||
|
||||
# We check to see if the compiler and flags are
|
||||
# selecting the big endian ABI and if they are then
|
||||
# we set libc_cv_aarch64_be to yes which causes
|
||||
# HAVE_AARCH64_BE to be defined in config.h and
|
||||
# in include/libc-symbols.h and thus available to
|
||||
# shlib-versions to select the appropriate name for
|
||||
# the dynamic linker via %ifdef.
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
|
||||
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
|
||||
if ${ac_cv_path_GREP+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if test -z "$GREP"; then
|
||||
ac_path_GREP_found=false
|
||||
# Loop through the user's path and test for each of PROGNAME-LIST
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_prog in grep ggrep; do
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
|
||||
{ test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
|
||||
# Check for GNU ac_path_GREP and select it if it is found.
|
||||
# Check for GNU $ac_path_GREP
|
||||
case `"$ac_path_GREP" --version 2>&1` in
|
||||
*GNU*)
|
||||
ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
|
||||
*)
|
||||
ac_count=0
|
||||
$as_echo_n 0123456789 >"conftest.in"
|
||||
while :
|
||||
do
|
||||
cat "conftest.in" "conftest.in" >"conftest.tmp"
|
||||
mv "conftest.tmp" "conftest.in"
|
||||
cp "conftest.in" "conftest.nl"
|
||||
$as_echo 'GREP' >> "conftest.nl"
|
||||
"$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
|
||||
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
|
||||
as_fn_arith $ac_count + 1 && ac_count=$as_val
|
||||
if test $ac_count -gt ${ac_path_GREP_max-0}; then
|
||||
# Best one so far, save it but keep looking for a better one
|
||||
ac_cv_path_GREP="$ac_path_GREP"
|
||||
ac_path_GREP_max=$ac_count
|
||||
fi
|
||||
# 10*(2^10) chars as input seems more than enough
|
||||
test $ac_count -gt 10 && break
|
||||
done
|
||||
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
|
||||
esac
|
||||
|
||||
$ac_path_GREP_found && break 3
|
||||
done
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
if test -z "$ac_cv_path_GREP"; then
|
||||
as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
|
||||
fi
|
||||
else
|
||||
ac_cv_path_GREP=$GREP
|
||||
fi
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
|
||||
$as_echo "$ac_cv_path_GREP" >&6; }
|
||||
GREP="$ac_cv_path_GREP"
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
|
||||
$as_echo_n "checking for egrep... " >&6; }
|
||||
if ${ac_cv_path_EGREP+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
|
||||
then ac_cv_path_EGREP="$GREP -E"
|
||||
else
|
||||
if test -z "$EGREP"; then
|
||||
ac_path_EGREP_found=false
|
||||
# Loop through the user's path and test for each of PROGNAME-LIST
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_prog in egrep; do
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
|
||||
{ test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
|
||||
# Check for GNU ac_path_EGREP and select it if it is found.
|
||||
# Check for GNU $ac_path_EGREP
|
||||
case `"$ac_path_EGREP" --version 2>&1` in
|
||||
*GNU*)
|
||||
ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
|
||||
*)
|
||||
ac_count=0
|
||||
$as_echo_n 0123456789 >"conftest.in"
|
||||
while :
|
||||
do
|
||||
cat "conftest.in" "conftest.in" >"conftest.tmp"
|
||||
mv "conftest.tmp" "conftest.in"
|
||||
cp "conftest.in" "conftest.nl"
|
||||
$as_echo 'EGREP' >> "conftest.nl"
|
||||
"$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
|
||||
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
|
||||
as_fn_arith $ac_count + 1 && ac_count=$as_val
|
||||
if test $ac_count -gt ${ac_path_EGREP_max-0}; then
|
||||
# Best one so far, save it but keep looking for a better one
|
||||
ac_cv_path_EGREP="$ac_path_EGREP"
|
||||
ac_path_EGREP_max=$ac_count
|
||||
fi
|
||||
# 10*(2^10) chars as input seems more than enough
|
||||
test $ac_count -gt 10 && break
|
||||
done
|
||||
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
|
||||
esac
|
||||
|
||||
$ac_path_EGREP_found && break 3
|
||||
done
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
if test -z "$ac_cv_path_EGREP"; then
|
||||
as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
|
||||
fi
|
||||
else
|
||||
ac_cv_path_EGREP=$EGREP
|
||||
fi
|
||||
|
||||
fi
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
|
||||
$as_echo "$ac_cv_path_EGREP" >&6; }
|
||||
EGREP="$ac_cv_path_EGREP"
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for big endian" >&5
|
||||
$as_echo_n "checking for big endian... " >&6; }
|
||||
if ${libc_cv_aarch64_be+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#ifdef __AARCH64EB__
|
||||
yes
|
||||
#endif
|
||||
|
||||
_ACEOF
|
||||
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||
$EGREP "yes" >/dev/null 2>&1; then :
|
||||
libc_cv_aarch64_be=yes
|
||||
else
|
||||
libc_cv_aarch64_be=no
|
||||
fi
|
||||
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 $libc_cv_aarch64_be = yes; then
|
||||
$as_echo "#define HAVE_AARCH64_BE 1" >>confdefs.h
|
||||
|
||||
config_vars="$config_vars
|
||||
default-abi = lp64_be"
|
||||
else
|
||||
config_vars="$config_vars
|
||||
default-abi = lp64"
|
||||
fi
|
22
ports/sysdeps/aarch64/configure.ac
Normal file
22
ports/sysdeps/aarch64/configure.ac
Normal file
@ -0,0 +1,22 @@
|
||||
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
|
||||
# Local configure fragment for sysdeps/aarch64.
|
||||
|
||||
# We check to see if the compiler and flags are
|
||||
# selecting the big endian ABI and if they are then
|
||||
# we set libc_cv_aarch64_be to yes which causes
|
||||
# HAVE_AARCH64_BE to be defined in config.h and
|
||||
# in include/libc-symbols.h and thus available to
|
||||
# shlib-versions to select the appropriate name for
|
||||
# the dynamic linker via %ifdef.
|
||||
AC_CACHE_CHECK([for big endian],
|
||||
[libc_cv_aarch64_be],
|
||||
[AC_EGREP_CPP(yes,[#ifdef __AARCH64EB__
|
||||
yes
|
||||
#endif
|
||||
], libc_cv_aarch64_be=yes, libc_cv_aarch64_be=no)])
|
||||
if test $libc_cv_aarch64_be = yes; then
|
||||
AC_DEFINE(HAVE_AARCH64_BE)
|
||||
LIBC_CONFIG_VAR([default-abi], [lp64_be])
|
||||
else
|
||||
LIBC_CONFIG_VAR([default-abi], [lp64])
|
||||
fi
|
@ -1,2 +1,7 @@
|
||||
aarch64.*-.*-linux.* DEFAULT GLIBC_2.17
|
||||
|
||||
%ifdef HAVE_AARCH64_BE
|
||||
aarch64.*-.*-linux.* ld=ld-linux-aarch64_be.so.1
|
||||
%else
|
||||
aarch64.*-.*-linux.* ld=ld-linux-aarch64.so.1
|
||||
%endif
|
||||
|
@ -22,3 +22,18 @@ endif
|
||||
ifeq ($(subdir),stdlib)
|
||||
gen-as-const-headers += ucontext_i.sym
|
||||
endif
|
||||
|
||||
abi-variants := lp64
|
||||
abi-variants += lp64_be
|
||||
|
||||
ifeq (,$(filter $(default-abi),$(abi-variants)))
|
||||
Unknown ABI, must be one of $(abi-variants)
|
||||
endif
|
||||
|
||||
abi-lp64-options := -U__AARCH64EB__
|
||||
abi-lp64-condition := !defined __AARCH64EB__
|
||||
abi-lp64-ld-soname := ld-linux-aarch64.so.1
|
||||
|
||||
abi-lp64_be-options := -D__AARCH6464EB__
|
||||
abi-lp64_be-condition := defined __AARCH64EB__
|
||||
abi-lp64_be-ld-soname := ld-linux-aarch64_be.so.1
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
#define SYSDEP_KNOWN_INTERPRETER_NAMES \
|
||||
{ "/lib/ld-linux-aarch64.so.1", FLAG_ELF_LIBC6 }, \
|
||||
{ "/lib/ld-linux-aarch64_be.so.1", FLAG_ELF_LIBC6 }, \
|
||||
{ "/lib/ld-linux.so.3", FLAG_ELF_LIBC6 }, \
|
||||
{ "/lib/ld-linux-armhf.so.3", FLAG_ELF_LIBC6 },
|
||||
#define SYSDEP_KNOWN_LIBRARY_NAMES \
|
||||
|
Loading…
Reference in New Issue
Block a user