Arrange so that glibc uses 'TRIPLET-objdump -f' rather than 'objdump -f' to determine the 'OUTPUT_FORMAT' value in libc.so when cross-compiling. Patch submitted upstream: <https://sourceware.org/pipermail/libc-alpha/2021-July/128333.html>. diff --git a/aclocal.m4 b/aclocal.m4 index c195c4db56..13a791ffde 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -118,8 +118,6 @@ AS=`$CC -print-prog-name=as` LD=`$CC -print-prog-name=ld` AR=`$CC -print-prog-name=ar` AC_SUBST(AR) -OBJDUMP=`$CC -print-prog-name=objdump` -AC_SUBST(OBJDUMP) OBJCOPY=`$CC -print-prog-name=objcopy` AC_SUBST(OBJCOPY) GPROF=`$CC -print-prog-name=gprof` diff --git a/configure b/configure index 9619c10991..fe0eda1cd5 100755 --- a/configure +++ b/configure @@ -655,7 +655,6 @@ LD AS GPROF OBJCOPY -OBJDUMP AR LN_S INSTALL_DATA @@ -690,6 +689,7 @@ sysheaders ac_ct_CXX CXXFLAGS CXX +OBJDUMP READELF CPP cross_compiling @@ -2962,6 +2962,98 @@ else READELF="$ac_cv_prog_READELF" 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. ac_ext=cpp @@ -4553,8 +4645,6 @@ AS=`$CC -print-prog-name=as` LD=`$CC -print-prog-name=ld` AR=`$CC -print-prog-name=ar` -OBJDUMP=`$CC -print-prog-name=objdump` - OBJCOPY=`$CC -print-prog-name=objcopy` GPROF=`$CC -print-prog-name=gprof` diff --git a/configure.ac b/configure.ac index 34ecbba540..924af12738 100644 --- a/configure.ac +++ b/configure.ac @@ -52,6 +52,7 @@ fi AC_SUBST(cross_compiling) AC_PROG_CPP AC_CHECK_TOOL(READELF, readelf, false) +AC_CHECK_TOOL(OBJDUMP, objdump, false) # We need the C++ compiler only for testing. AC_PROG_CXX