* 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
* Re: egrep in binutils
2022-09-28 4:34 egrep in binutils Alan Modra
@ 2022-09-28 13:31 ` Alan Modra
2022-09-28 20:25 ` Sam James
1 sibling, 0 replies; 3+ messages in thread
From: Alan Modra @ 2022-09-28 13:31 UTC (permalink / raw)
To: binutils
On Wed, Sep 28, 2022 at 02:04:43PM +0930, Alan Modra wrote:
> --- 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 {
I've just been looking at autoconf documentation for pitfalls with grep,
and the above multi-line pattern is said to "fail with traditional
grep implementations and with OpenBSD 3.8 grep".
binutils/
* embedspu.sh: Replace multi-line grep with sed.
ld/
* testsuite/ld-elfvers/vers.exp: Replace multi-line grep with sed.
diff --git a/binutils/embedspu.sh b/binutils/embedspu.sh
index 361206f7d88..d72773946c2 100644
--- a/binutils/embedspu.sh
+++ b/binutils/embedspu.sh
@@ -108,11 +108,7 @@ main ()
READELF="$prog"
# Sanity check the input file
- match="Class:.*ELF32
-Type:.*EXEC
-Machine:.*SPU
-Machine:.*17"
- if test `${READELF} -h ${INFILE} | grep "${match}" | wc -l` != 3
+ if test `${READELF} -h ${INFILE} | sed -n -e '/Class:.*ELF32/p' -e '/Type:.*EXEC/p' -e '/Machine:.*SPU/p' -e '/Machine:.*17/p' | sed -n '$='` != 3
then
echo "${INFILE}: Does not appear to be an SPU executable"
exit 1
diff --git a/ld/testsuite/ld-elfvers/vers.exp b/ld/testsuite/ld-elfvers/vers.exp
index 9af6bb9fd92..3e2ba2aac07 100644
--- a/ld/testsuite/ld-elfvers/vers.exp
+++ b/ld/testsuite/ld-elfvers/vers.exp
@@ -109,9 +109,7 @@ proc test_ar { test lib object expect } {
return
}
- set cmd "$nm --print-armap $tmpdir/$lib | grep \" in \" | grep \"VERS
-bar
-foo\" | grep -v ^\\\\. | sort > $tmpdir/nm.out"
+ set cmd "$nm --print-armap $tmpdir/$lib | sed -n -e /^\\\\./d -e \"/^VERS.* in /p\" -e \"/bar.* in /p\" -e \"/foo.* in /p\" | 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
* Re: egrep in binutils
2022-09-28 4:34 egrep in binutils Alan Modra
2022-09-28 13:31 ` Alan Modra
@ 2022-09-28 20:25 ` Sam James
1 sibling, 0 replies; 3+ messages in thread
From: Sam James @ 2022-09-28 20:25 UTC (permalink / raw)
To: Alan Modra; +Cc: binutils
[-- Attachment #1: Type: text/plain, Size: 415 bytes --]
> On 28 Sep 2022, at 05:34, Alan Modra via Binutils <binutils@sourceware.org> wrote:
>
> 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"
You should direct your complaints to the GNU grep maintainers,
as they added this with grep 3.8.
[-- Attachment #2: Message signed with OpenPGP --]
[-- Type: application/pgp-signature, Size: 358 bytes --]
^ 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).