Skip to content

Commit

Permalink
egrep in binutils
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
amodra committed Sep 28, 2022
1 parent f8a8e1b commit 67d1991
Show file tree
Hide file tree
Showing 21 changed files with 41 additions and 35 deletions.
4 changes: 2 additions & 2 deletions binutils/configure
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
8 changes: 5 additions & 3 deletions binutils/embedspu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 5 additions & 3 deletions config/lib-ld.m4
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion gold/testsuite/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion gold/testsuite/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -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 *" > [email protected]
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_READELF) -SW $< | grep "\.debug_.* C" > [email protected]
@GCC_TRUE@@NATIVE_LINKER_TRUE@ mv -f [email protected] $@

# Compare DWARF debug info.
Expand Down
4 changes: 2 additions & 2 deletions gold/testsuite/bnd_ifunc_1.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion gold/testsuite/bnd_ifunc_2.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion gold/testsuite/bnd_plt_1.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions gold/testsuite/discard_locals_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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"
Expand Down
6 changes: 3 additions & 3 deletions gold/testsuite/gnu_property_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
2 changes: 1 addition & 1 deletion gold/testsuite/no_version_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion gold/testsuite/pr18689.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,6 @@

set -e

egrep -q "..debug_mac[ro|info][ ]+*" pr18689.stdout
$EGREP -q "..debug_mac[ro|info][ ]+*" pr18689.stdout

exit 0
2 changes: 1 addition & 1 deletion gold/testsuite/pr26936.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion gold/testsuite/retain.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
4 changes: 2 additions & 2 deletions gold/testsuite/split_i386.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,15 @@

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
}

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
Expand Down
4 changes: 2 additions & 2 deletions gold/testsuite/split_s390.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,15 @@

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
}

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
Expand Down
4 changes: 2 additions & 2 deletions gold/testsuite/split_x32.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@

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
}

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
Expand Down
4 changes: 2 additions & 2 deletions gold/testsuite/split_x86_64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,15 @@

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
}

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
Expand Down
2 changes: 1 addition & 1 deletion gold/testsuite/ver_test_pr16504.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
4 changes: 2 additions & 2 deletions intl/configure
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
4 changes: 3 additions & 1 deletion ld/testsuite/ld-elfvers/vers.exp
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down

0 comments on commit 67d1991

Please sign in to comment.