From: Alan Modra Date: Wed, 28 Sep 2022 04:07:31 +0000 (+0930) Subject: egrep in binutils X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=67d1991b785bdfef1d70cddfa0202b99b43ccce9;p=binutils-gdb.git egrep in binutils Apparently some distros have a nagging egrep that helpfully tells you egrep is deprecated and to use "grep -E". The nag message causes a ld testsuite failure. What's more the advice isn't that good. The "-E" flag may not be available with older versions of grep. This patch fixes bare invocation of egrep within binutils, replacing it with the autoconf $EGREP or with grep. config/ * lib-ld.m4 (AC_LIB_PROG_LD_GNU): Require AC_PROG_EGREP and invoke $EGREP. (AC_LIB_PROG_LD): Likewise. binutils/ * configure: Regenerate. * embedspu.sh: Replace egrep with grep. gold/ * testsuite/Makefile.am (flagstest_compress_debug_sections.check): Replace egrep with grep. * testsuite/Makefile.in: Regenerate. * testsuite/bnd_ifunc_1.sh: Replace egrep with $EGREP. * testsuite/bnd_ifunc_2.sh: Likewise. * testsuite/bnd_plt_1.sh: Likewise. * testsuite/discard_locals_test.sh: Likewise. * testsuite/gnu_property_test.sh: Likewise. * testsuite/no_version_test.sh: Likewise. * testsuite/pr18689.sh: Likewise. * testsuite/pr26936.sh: Likewise. * testsuite/retain.sh: Likewise. * testsuite/split_i386.sh: Likewise. * testsuite/split_s390.sh: Likewise. * testsuite/split_x32.sh: Likewise. * testsuite/split_x86_64.sh: Likewise. * testsuite/ver_test_pr16504.sh: Likewise. intl/ * configure: Regenerate. ld/ * testsuite/ld-elfvers/vers.exp (test_ar): Replace egrep with grep. --- diff --git a/binutils/configure b/binutils/configure index 0d6bde7b4a5..7a45037a82f 100755 --- a/binutils/configure +++ b/binutils/configure @@ -13851,7 +13851,7 @@ else # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. - if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + if "$acl_cv_path_LD" -v 2>&1 < /dev/null | $EGREP '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break @@ -13879,7 +13879,7 @@ if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then +if $LD -v 2>&1 &5; then acl_cv_prog_gnu_ld=yes else acl_cv_prog_gnu_ld=no diff --git a/binutils/embedspu.sh b/binutils/embedspu.sh index 42fcd063371..361206f7d88 100644 --- a/binutils/embedspu.sh +++ b/binutils/embedspu.sh @@ -108,9 +108,11 @@ main () READELF="$prog" # Sanity check the input file - if ! ${READELF} -h ${INFILE} | grep 'Class:.*ELF32' >/dev/null 2>/dev/null \ - || ! ${READELF} -h ${INFILE} | grep 'Type:.*EXEC' >/dev/null 2>/dev/null \ - || ! ${READELF} -h ${INFILE} | egrep 'Machine:.*(SPU|17)' >/dev/null 2>/dev/null + match="Class:.*ELF32 +Type:.*EXEC +Machine:.*SPU +Machine:.*17" + if test `${READELF} -h ${INFILE} | grep "${match}" | wc -l` != 3 then echo "${INFILE}: Does not appear to be an SPU executable" exit 1 diff --git a/config/lib-ld.m4 b/config/lib-ld.m4 index 11d0ce77342..73cf9571b57 100644 --- a/config/lib-ld.m4 +++ b/config/lib-ld.m4 @@ -12,9 +12,10 @@ dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then +if $LD -v 2>&1 &5; then acl_cv_prog_gnu_ld=yes else acl_cv_prog_gnu_ld=no @@ -29,6 +30,7 @@ AC_DEFUN([AC_LIB_PROG_LD], test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_EGREP])dnl # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then @@ -88,7 +90,7 @@ AC_CACHE_VAL(acl_cv_path_LD, # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. - if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + if "$acl_cv_path_LD" -v 2>&1 < /dev/null | $EGREP '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am index b15000ee7f3..843fd0d197c 100644 --- a/gold/testsuite/Makefile.am +++ b/gold/testsuite/Makefile.am @@ -1702,7 +1702,7 @@ flagstest_compress_debug_sections.stdout: flagstest_compress_debug_sections # Check there are compressed DWARF .debug_* sections. flagstest_compress_debug_sections.check: flagstest_compress_debug_sections - $(TEST_READELF) -SW $< | egrep ".debug_.* C *" > $@.tmp + $(TEST_READELF) -SW $< | grep "\.debug_.* C" > $@.tmp mv -f $@.tmp $@ # Compare DWARF debug info. diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in index 78bb0cc7a26..21804df6573 100644 --- a/gold/testsuite/Makefile.in +++ b/gold/testsuite/Makefile.in @@ -8732,7 +8732,7 @@ uninstall-am: # Check there are compressed DWARF .debug_* sections. @GCC_TRUE@@NATIVE_LINKER_TRUE@flagstest_compress_debug_sections.check: flagstest_compress_debug_sections -@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_READELF) -SW $< | egrep ".debug_.* C *" > $@.tmp +@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_READELF) -SW $< | grep "\.debug_.* C" > $@.tmp @GCC_TRUE@@NATIVE_LINKER_TRUE@ mv -f $@.tmp $@ # Compare DWARF debug info. diff --git a/gold/testsuite/bnd_ifunc_1.sh b/gold/testsuite/bnd_ifunc_1.sh index 64245bee964..b70f2f7d7d9 100755 --- a/gold/testsuite/bnd_ifunc_1.sh +++ b/gold/testsuite/bnd_ifunc_1.sh @@ -24,13 +24,13 @@ match() { - if ! egrep "$1" "$2" >/dev/null 2>&1; then + if ! $EGREP "$1" "$2" >/dev/null 2>&1; then echo 1>&2 "could not find '$1' in $2" exit 1 fi } match '[0-9a-f]*:.*bnd jmp \*0x[0-9a-f]*\(%rip\) *# [0-9a-f]* <_GLOBAL_OFFSET_TABLE_\+0x18>' bnd_ifunc_1.stdout -APLT_ADDR=$(egrep '[0-9a-f]*:.*bnd jmp \*0x[0-9a-f]*\(%rip\) *# [0-9a-f]* <_GLOBAL_OFFSET_TABLE_\+0x18>' bnd_ifunc_1.stdout | +APLT_ADDR=$($EGREP '[0-9a-f]*:.*bnd jmp \*0x[0-9a-f]*\(%rip\) *# [0-9a-f]* <_GLOBAL_OFFSET_TABLE_\+0x18>' bnd_ifunc_1.stdout | sed -e 's/ *\([0-9a-f]*\):.*/\1/') match "bnd call $APLT_ADDR" bnd_ifunc_1.stdout diff --git a/gold/testsuite/bnd_ifunc_2.sh b/gold/testsuite/bnd_ifunc_2.sh index d9f0e6dd463..b660553a2b9 100755 --- a/gold/testsuite/bnd_ifunc_2.sh +++ b/gold/testsuite/bnd_ifunc_2.sh @@ -24,7 +24,7 @@ match() { - if ! egrep "$1" "$2" >/dev/null 2>&1; then + if ! $EGREP "$1" "$2" >/dev/null 2>&1; then echo 1>&2 "could not find '$1' in $2" exit 1 fi diff --git a/gold/testsuite/bnd_plt_1.sh b/gold/testsuite/bnd_plt_1.sh index 5fde21edcd8..b3489056039 100755 --- a/gold/testsuite/bnd_plt_1.sh +++ b/gold/testsuite/bnd_plt_1.sh @@ -24,7 +24,7 @@ match() { - if ! egrep "$1" "$2" >/dev/null 2>&1; then + if ! $EGREP "$1" "$2" >/dev/null 2>&1; then echo 1>&2 "could not find '$1' in $2" exit 1 fi diff --git a/gold/testsuite/discard_locals_test.sh b/gold/testsuite/discard_locals_test.sh index d89e3bd4d3e..2a0ab036897 100755 --- a/gold/testsuite/discard_locals_test.sh +++ b/gold/testsuite/discard_locals_test.sh @@ -32,7 +32,7 @@ check_discarded() file=$1 sym=$2 - found=`egrep $sym $file` + found=`$EGREP $sym $file` if test -n "$found"; then echo "These local symbols are not discarded in $file:" echo "$found" @@ -45,7 +45,7 @@ check_non_discarded() file=$1 sym=$2 - found=`egrep $sym $file` + found=`$EGREP $sym $file` if test -z "$found"; then echo "This local symbol is discarded in $file:" echo "$2" diff --git a/gold/testsuite/gnu_property_test.sh b/gold/testsuite/gnu_property_test.sh index 1a3cae27eb6..406ad205dbe 100755 --- a/gold/testsuite/gnu_property_test.sh +++ b/gold/testsuite/gnu_property_test.sh @@ -55,16 +55,16 @@ check_count() check_alignment () { - if egrep -q "Class:[ \t]+ELF64" "$1" + if $EGREP -q "Class:[ \t]+ELF64" "$1" then align=8 else align=4 fi - if ! egrep -q ".note.gnu.property[ \t]+NOTE.*$align$" "$1" + if ! $EGREP -q ".note.gnu.property[ \t]+NOTE.*$align$" "$1" then echo "Wrong .note.gnu.property alignment in $1:" - egrep ".note.gnu.property[ \t]+NOTE.*$align" "$1" + $EGREP ".note.gnu.property[ \t]+NOTE.*$align" "$1" exit 1 fi } diff --git a/gold/testsuite/no_version_test.sh b/gold/testsuite/no_version_test.sh index 05488a60ad0..7ac804b7706 100755 --- a/gold/testsuite/no_version_test.sh +++ b/gold/testsuite/no_version_test.sh @@ -32,7 +32,7 @@ check() { file=$1 - found=`egrep "\.gnu\.version.*" $file` + found=`$EGREP "\.gnu\.version.*" $file` if test -n "$found"; then echo "These section should not be in $file:" echo "$found" diff --git a/gold/testsuite/pr18689.sh b/gold/testsuite/pr18689.sh index d32fb383c1e..b73496bd423 100755 --- a/gold/testsuite/pr18689.sh +++ b/gold/testsuite/pr18689.sh @@ -23,6 +23,6 @@ set -e -egrep -q "..debug_mac[ro|info][ ]+*" pr18689.stdout +$EGREP -q "..debug_mac[ro|info][ ]+*" pr18689.stdout exit 0 diff --git a/gold/testsuite/pr26936.sh b/gold/testsuite/pr26936.sh index 4c94f0f4212..2d52fc4e008 100755 --- a/gold/testsuite/pr26936.sh +++ b/gold/testsuite/pr26936.sh @@ -26,7 +26,7 @@ set -e check() { - number_of_occurrence=`egrep "$2" ./$1 -o| wc -l` + number_of_occurrence=`$EGREP "$2" ./$1 -o| wc -l` if [ $number_of_occurrence != $3 ] then echo "$1: \"$2\" $3: Failed" diff --git a/gold/testsuite/retain.sh b/gold/testsuite/retain.sh index 6e8a6f1ac7b..f981f77e418 100755 --- a/gold/testsuite/retain.sh +++ b/gold/testsuite/retain.sh @@ -25,7 +25,7 @@ set -e check() { - number_of_occurrence=`egrep "$2" ./$1 -o | wc -l` + number_of_occurrence=`$EGREP "$2" ./$1 -o | wc -l` if [ $number_of_occurrence != $3 ] then echo "$1: \"$2\" $3: Failed" diff --git a/gold/testsuite/split_i386.sh b/gold/testsuite/split_i386.sh index 058e15eed32..77d3bb7db8b 100755 --- a/gold/testsuite/split_i386.sh +++ b/gold/testsuite/split_i386.sh @@ -24,7 +24,7 @@ match() { - if ! egrep "$1" "$2" >/dev/null 2>&1; then + if ! $EGREP "$1" "$2" >/dev/null 2>&1; then echo 1>&2 "could not find '$1' in $2" exit 1 fi @@ -32,7 +32,7 @@ match() nomatch() { - if egrep "$1" "$2" >/dev/null 2>&1; then + if $EGREP "$1" "$2" >/dev/null 2>&1; then echo 1>&2 "found unexpected '$1' in $2" exit 1 fi diff --git a/gold/testsuite/split_s390.sh b/gold/testsuite/split_s390.sh index 4b7ac3d4a76..3a5b07bd9ac 100755 --- a/gold/testsuite/split_s390.sh +++ b/gold/testsuite/split_s390.sh @@ -24,7 +24,7 @@ match() { - if ! egrep "$1" "$2" >/dev/null 2>&1; then + if ! $EGREP "$1" "$2" >/dev/null 2>&1; then echo 1>&2 "could not find '$1' in $2" exit 1 fi @@ -32,7 +32,7 @@ match() nomatch() { - if egrep "$1" "$2" >/dev/null 2>&1; then + if $EGREP "$1" "$2" >/dev/null 2>&1; then echo 1>&2 "found unexpected '$1' in $2" exit 1 fi diff --git a/gold/testsuite/split_x32.sh b/gold/testsuite/split_x32.sh index 7b2968e63d5..399a34110f0 100755 --- a/gold/testsuite/split_x32.sh +++ b/gold/testsuite/split_x32.sh @@ -25,7 +25,7 @@ match() { - if ! egrep "$1" "$2" >/dev/null 2>&1; then + if ! $EGREP "$1" "$2" >/dev/null 2>&1; then echo 1>&2 "could not find '$1' in $2" exit 1 fi @@ -33,7 +33,7 @@ match() nomatch() { - if egrep "$1" "$2" >/dev/null 2>&1; then + if $EGREP "$1" "$2" >/dev/null 2>&1; then echo 1>&2 "found unexpected '$1' in $2" exit 1 fi diff --git a/gold/testsuite/split_x86_64.sh b/gold/testsuite/split_x86_64.sh index afaebc31bed..7f186e0851c 100755 --- a/gold/testsuite/split_x86_64.sh +++ b/gold/testsuite/split_x86_64.sh @@ -24,7 +24,7 @@ match() { - if ! egrep "$1" "$2" >/dev/null 2>&1; then + if ! $EGREP "$1" "$2" >/dev/null 2>&1; then echo 1>&2 "could not find '$1' in $2" exit 1 fi @@ -32,7 +32,7 @@ match() nomatch() { - if egrep "$1" "$2" >/dev/null 2>&1; then + if $EGREP "$1" "$2" >/dev/null 2>&1; then echo 1>&2 "found unexpected '$1' in $2" exit 1 fi diff --git a/gold/testsuite/ver_test_pr16504.sh b/gold/testsuite/ver_test_pr16504.sh index a8c2bddc593..cb75d366ebe 100755 --- a/gold/testsuite/ver_test_pr16504.sh +++ b/gold/testsuite/ver_test_pr16504.sh @@ -24,7 +24,7 @@ check() { - if ! egrep -q "$2" "$1" + if ! $EGREP -q "$2" "$1" then echo "Did not find expected symbol in $1:" echo " $2" diff --git a/intl/configure b/intl/configure index 24fd69a97e0..e75f072f8fa 100755 --- a/intl/configure +++ b/intl/configure @@ -5085,7 +5085,7 @@ else # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. - if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + if "$acl_cv_path_LD" -v 2>&1 < /dev/null | $EGREP '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break @@ -5113,7 +5113,7 @@ if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then +if $LD -v 2>&1 &5; then acl_cv_prog_gnu_ld=yes else acl_cv_prog_gnu_ld=no diff --git a/ld/testsuite/ld-elfvers/vers.exp b/ld/testsuite/ld-elfvers/vers.exp index f6d47262318..9af6bb9fd92 100644 --- a/ld/testsuite/ld-elfvers/vers.exp +++ b/ld/testsuite/ld-elfvers/vers.exp @@ -109,7 +109,9 @@ proc test_ar { test lib object expect } { return } - set cmd "$nm --print-armap $tmpdir/$lib | grep \\\ in\\\ | egrep VERS\\\|bar\\\|foo | grep -v ^\\\\. | sort > $tmpdir/nm.out" + set cmd "$nm --print-armap $tmpdir/$lib | grep \" in \" | grep \"VERS +bar +foo\" | grep -v ^\\\\. | sort > $tmpdir/nm.out" verbose -log $cmd catch "exec $cmd" exec_output if [string match "" $exec_output] then {