mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-08 14:20:07 +00:00
Correctly determine libc.so 'OUTPUT_FORMAT' when cross-compiling.
Commit 87d583c6e8
replaces the sed script
with an "objdump -f" invocation to determine the 'OUTPUT_FORMAT' bit of
the libc.so linker script.
However, when cross-compiling, for example from x86_64-linux-gnu to
aarch64-linux-gnu, "objdump -f" would report the wrong
format ("elf64-little"). Conversely, "aarch64-linux-gnu-objdump -f"
reports "elf64-littleaarch64" as expected.
This patch changes 'configure.ac' to use AC_CHECK_TOOL rather than
'$CC -print-prog-name=objdump' to determine the value of the OBJDUMP
variable. That way, OBJDUMP is set to TRIPLET-objdump when
cross-compiling for TRIPLET.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
This commit is contained in:
parent
8c77e26ba8
commit
361d6454c0
2
aclocal.m4
vendored
2
aclocal.m4
vendored
@ -122,8 +122,6 @@ AS=`$CC -print-prog-name=as`
|
|||||||
LD=`$CC -print-prog-name=$LDNAME`
|
LD=`$CC -print-prog-name=$LDNAME`
|
||||||
AR=`$CC -print-prog-name=ar`
|
AR=`$CC -print-prog-name=ar`
|
||||||
AC_SUBST(AR)
|
AC_SUBST(AR)
|
||||||
OBJDUMP=`$CC -print-prog-name=objdump`
|
|
||||||
AC_SUBST(OBJDUMP)
|
|
||||||
OBJCOPY=`$CC -print-prog-name=objcopy`
|
OBJCOPY=`$CC -print-prog-name=objcopy`
|
||||||
AC_SUBST(OBJCOPY)
|
AC_SUBST(OBJCOPY)
|
||||||
GPROF=`$CC -print-prog-name=gprof`
|
GPROF=`$CC -print-prog-name=gprof`
|
||||||
|
96
configure
vendored
96
configure
vendored
@ -649,7 +649,6 @@ LD
|
|||||||
AS
|
AS
|
||||||
GPROF
|
GPROF
|
||||||
OBJCOPY
|
OBJCOPY
|
||||||
OBJDUMP
|
|
||||||
AR
|
AR
|
||||||
LN_S
|
LN_S
|
||||||
INSTALL_DATA
|
INSTALL_DATA
|
||||||
@ -685,6 +684,7 @@ sysheaders
|
|||||||
ac_ct_CXX
|
ac_ct_CXX
|
||||||
CXXFLAGS
|
CXXFLAGS
|
||||||
CXX
|
CXX
|
||||||
|
OBJDUMP
|
||||||
READELF
|
READELF
|
||||||
CPP
|
CPP
|
||||||
cross_compiling
|
cross_compiling
|
||||||
@ -2963,6 +2963,98 @@ else
|
|||||||
READELF="$ac_cv_prog_READELF"
|
READELF="$ac_cv_prog_READELF"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test -n "$ac_tool_prefix"; then
|
||||||
|
# Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
|
||||||
|
set dummy ${ac_tool_prefix}objdump; ac_word=$2
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||||
|
$as_echo_n "checking for $ac_word... " >&6; }
|
||||||
|
if ${ac_cv_prog_OBJDUMP+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
if test -n "$OBJDUMP"; then
|
||||||
|
ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
|
||||||
|
else
|
||||||
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||||
|
for as_dir in $PATH
|
||||||
|
do
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
test -z "$as_dir" && as_dir=.
|
||||||
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
|
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
|
||||||
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
|
break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
OBJDUMP=$ac_cv_prog_OBJDUMP
|
||||||
|
if test -n "$OBJDUMP"; then
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
|
||||||
|
$as_echo "$OBJDUMP" >&6; }
|
||||||
|
else
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
if test -z "$ac_cv_prog_OBJDUMP"; then
|
||||||
|
ac_ct_OBJDUMP=$OBJDUMP
|
||||||
|
# Extract the first word of "objdump", so it can be a program name with args.
|
||||||
|
set dummy objdump; ac_word=$2
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||||
|
$as_echo_n "checking for $ac_word... " >&6; }
|
||||||
|
if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
if test -n "$ac_ct_OBJDUMP"; then
|
||||||
|
ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
|
||||||
|
else
|
||||||
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||||
|
for as_dir in $PATH
|
||||||
|
do
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
test -z "$as_dir" && as_dir=.
|
||||||
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
|
ac_cv_prog_ac_ct_OBJDUMP="objdump"
|
||||||
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
|
break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
|
||||||
|
if test -n "$ac_ct_OBJDUMP"; then
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
|
||||||
|
$as_echo "$ac_ct_OBJDUMP" >&6; }
|
||||||
|
else
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$ac_ct_OBJDUMP" = x; then
|
||||||
|
OBJDUMP="false"
|
||||||
|
else
|
||||||
|
case $cross_compiling:$ac_tool_warned in
|
||||||
|
yes:)
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||||||
|
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||||||
|
ac_tool_warned=yes ;;
|
||||||
|
esac
|
||||||
|
OBJDUMP=$ac_ct_OBJDUMP
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
OBJDUMP="$ac_cv_prog_OBJDUMP"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# We need the C++ compiler only for testing.
|
# We need the C++ compiler only for testing.
|
||||||
ac_ext=cpp
|
ac_ext=cpp
|
||||||
@ -4580,8 +4672,6 @@ AS=`$CC -print-prog-name=as`
|
|||||||
LD=`$CC -print-prog-name=$LDNAME`
|
LD=`$CC -print-prog-name=$LDNAME`
|
||||||
AR=`$CC -print-prog-name=ar`
|
AR=`$CC -print-prog-name=ar`
|
||||||
|
|
||||||
OBJDUMP=`$CC -print-prog-name=objdump`
|
|
||||||
|
|
||||||
OBJCOPY=`$CC -print-prog-name=objcopy`
|
OBJCOPY=`$CC -print-prog-name=objcopy`
|
||||||
|
|
||||||
GPROF=`$CC -print-prog-name=gprof`
|
GPROF=`$CC -print-prog-name=gprof`
|
||||||
|
@ -52,6 +52,7 @@ fi
|
|||||||
AC_SUBST(cross_compiling)
|
AC_SUBST(cross_compiling)
|
||||||
AC_PROG_CPP
|
AC_PROG_CPP
|
||||||
AC_CHECK_TOOL(READELF, readelf, false)
|
AC_CHECK_TOOL(READELF, readelf, false)
|
||||||
|
AC_CHECK_TOOL(OBJDUMP, objdump, false)
|
||||||
|
|
||||||
# We need the C++ compiler only for testing.
|
# We need the C++ compiler only for testing.
|
||||||
AC_PROG_CXX
|
AC_PROG_CXX
|
||||||
|
Loading…
Reference in New Issue
Block a user