From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) by sourceware.org (Postfix) with ESMTPS id 195273858D28 for ; Wed, 28 Sep 2022 04:34:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 195273858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pj1-x102a.google.com with SMTP id q15-20020a17090a304f00b002002ac83485so674883pjl.0 for ; Tue, 27 Sep 2022 21:34:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-disposition:mime-version:message-id:subject:to:from:date :from:to:cc:subject:date; bh=rq2MKSVbHzhg0yNN73Z+5kDdxlynaEARRR9m41utXbs=; b=qOn9H+ozd7F9pVpqwVCy/XeZYVxQl659RkJ9/dYCPc072U1GpuNvFuQyuX4qvZLlG8 IkNwHSVfpgEvHcC34Ct3BzFqDLukcJ43gJoeql4Zj5z7pkpq0NTiTrp3Cq3R7igFgjs+ qDHTUadala6i+8/Ae0TdtVMlLAC8qNOEfge7m6RYMl9/JLuUY2n+km0q1RXHRsUoIqhv lUHEbHuAYLMJuKlYQaeNtqC2TzSp42mAERezq6SxGeoMVwOpBVtvY8WAZFTj9x57YE2B gFNCOI4F/wA1qSqkqrb9753bf0T/OYD4mv0dXevUSXm9JEq97pu/zhcsX+FXGyTxKKb3 G37w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-disposition:mime-version:message-id:subject:to:from:date :x-gm-message-state:from:to:cc:subject:date; bh=rq2MKSVbHzhg0yNN73Z+5kDdxlynaEARRR9m41utXbs=; b=dpU2SU0w/8nk18WSPtdggIMqDcKj90gvyhDXW7LE+IFXwmGHuc6wk4BUqrd8wLYAiR IK0eo/c9U/2HczmKXhnSRrk4S0yUAwT16rimlfbIiXP8UeqZ8UTo8RwCyJH8SOrLGcZ/ 6SkhctqAfFGWib45YnqPgGSD2dgzLYz+/hoOqnIbBDwyE+mJTSQb1UU7YheSz4/U8fql RDQlr8lN4JTnJEkyQ1apgTqeRPoW14mApvH/CHkPyQxZuozc5TNYwRzHXoryPVVLpGQI e/a2KylhoaB2ALcL/6iRTX3RXuDCvbVasNd97Aqdr9Z+B70XWNio1az/5pHLRNDW2RW1 DywA== X-Gm-Message-State: ACrzQf1KdWYVAcV5+mYSvA/Xwftsgd1RLGWYaquQcRRCc4Gze+xrEOgU m3TfBsREUaicMho0KcAysGnoHosFmL0= X-Google-Smtp-Source: AMsMyM6LPNuETGTcxrW/fDPH9jc05BgkpBKKyDBjEyJG7LHS5QmS7I6RKy0rEpKYWAiVcjFK5TzTgA== X-Received: by 2002:a17:90a:d14d:b0:205:e77d:dc91 with SMTP id t13-20020a17090ad14d00b00205e77ddc91mr3719840pjw.20.1664339686508; Tue, 27 Sep 2022 21:34:46 -0700 (PDT) Received: from squeak.grove.modra.org (158.106.96.58.static.exetel.com.au. [58.96.106.158]) by smtp.gmail.com with ESMTPSA id ci8-20020a17090afc8800b001f8c532b93dsm426254pjb.15.2022.09.27.21.34.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Sep 2022 21:34:46 -0700 (PDT) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id 2E9C01142DF8; Wed, 28 Sep 2022 14:04:43 +0930 (ACST) Date: Wed, 28 Sep 2022 14:04:43 +0930 From: Alan Modra To: binutils@sourceware.org Subject: egrep in binutils Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-3036.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: 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 { -- Alan Modra Australia Development Lab, IBM