public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* egrep in binutils
@ 2022-09-28  4:34 Alan Modra
  2022-09-28 13:31 ` Alan Modra
  2022-09-28 20:25 ` Sam James
  0 siblings, 2 replies; 3+ messages in thread
From: Alan Modra @ 2022-09-28  4:34 UTC (permalink / raw)
  To: 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 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+if $LD -v 2>&1 </dev/null | $EGREP '(GNU|with BFD)' 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 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+if $LD -v 2>&1 </dev/null | $EGREP '(GNU|with BFD)' 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 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+if $LD -v 2>&1 </dev/null | $EGREP '(GNU|with BFD)' 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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-09-28 20:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-28  4:34 egrep in binutils Alan Modra
2022-09-28 13:31 ` Alan Modra
2022-09-28 20:25 ` Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).