Skip to content

Commit cbf0eb6

Browse files
jtroygopherbot
authored andcommittedSep 30, 2024·
unix: fix grep syntax to work on non-GNU greps
CL 432835 changed two grep commands in unix/mkerrors.sh in such a way that is incompatible with AIX's grep, which, unlike GNU grep, does not support extended regular expressions without the -E flag. The intent of this PR is to restore the egrep behavior by invoking grep as grep -E. My assumption is that GNU grep is not meant to be a requirement to run mkerrors.sh, and given that, grep -E looks like the most cross-platform approach. Example of current (incorrect) behavior on AIX: bash-5.2$ printf 'SIGHUP\nSIGMAX64\nSIGTERM' | grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT\|SIGMAX64' SIGHUP SIGMAX64 SIGTERM Behavior before CL 432835: bash-5.2$ printf 'SIGHUP\nSIGMAX64\nSIGTERM' | egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' SIGHUP SIGTERM Behavior of proposed change: bash-5.2$ printf 'SIGHUP\nSIGMAX64\nSIGTERM' | grep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' SIGHUP SIGTERM OpenBSD's grep behaves the same as AIX for the above commands, which is why I cast this as GNU vs. non-GNU. I haven't tested any other implementations. Fixes golang/go#69365 Change-Id: I009353ee630463475a5c131d019f59c5e69efd34 GitHub-Last-Rev: e116604 GitHub-Pull-Request: #217 Reviewed-on: https://go-review.googlesource.com/c/sys/+/615755 Reviewed-by: Michael Knyszek <mknyszek@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Ian Lance Taylor <iant@google.com>
1 parent e7397b9 commit cbf0eb6

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed
 

‎unix/mkerrors.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -656,7 +656,7 @@ errors=$(
656656
signals=$(
657657
echo '#include <signal.h>' | $CC -x c - -E -dM $ccflags |
658658
awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' |
659-
grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT\|SIGMAX64' |
659+
grep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' |
660660
sort
661661
)
662662

@@ -666,7 +666,7 @@ echo '#include <errno.h>' | $CC -x c - -E -dM $ccflags |
666666
sort >_error.grep
667667
echo '#include <signal.h>' | $CC -x c - -E -dM $ccflags |
668668
awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' |
669-
grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT\|SIGMAX64' |
669+
grep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' |
670670
sort >_signal.grep
671671

672672
echo '// mkerrors.sh' "$@"

0 commit comments

Comments
 (0)
Please sign in to comment.