libgo patch committed: avoid confusion matching type names in mksysinfo

Ian Lance Taylor iant@golang.org
Sat Nov 5 00:21:00 GMT 2016


This patch to the script libgo/mksysinfo.sh tries to avoid confusion
in upcase_fields when matching type names.  It could accidentally
match multiple types starting with the same name.  I believe this is
the underlying
cause of GCC PR 78172.

Also redirect a grep to /dev/null to avoid extraneous messages during
the build.

Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.  Committed
to mainline.

Ian
-------------- next part --------------
Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE	(revision 241757)
+++ gcc/go/gofrontend/MERGE	(working copy)
@@ -1,4 +1,4 @@
-150bca67d8bb4b23009f53ba06e85e306e3960d8
+afe0456d25e3c6c0d91a8fd4c0fdfdbaa35cc251
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: libgo/mksysinfo.sh
===================================================================
--- libgo/mksysinfo.sh	(revision 241347)
+++ libgo/mksysinfo.sh	(working copy)
@@ -188,7 +188,7 @@ grep '^const _EPOLL' gen-sysinfo.go |
   grep -v EPOLLET |
   sed -e 's/^\(const \)_\(EPOLL[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
 # Make sure EPOLLET is positive.
-if grep '^const _EPOLLET = [0-9]' gen-sysinfo.go; then
+if grep '^const _EPOLLET = [0-9]' gen-sysinfo.go >/dev/null 2>&1; then
   grep '^const _EPOLLET ' gen-sysinfo.go |
     sed -e 's/^\(const \)_\(EPOLL[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
 else
@@ -268,7 +268,7 @@ fi
 # is not empty, the structure or type is renamed to $2.
 upcase_fields () {
   name="$1"
-  def=`grep "^type $name" gen-sysinfo.go`
+  def=`grep "^type $name " gen-sysinfo.go`
   fields=`echo $def | sed -e 's/^[^{]*{\(.*\)}$/\1/'`
   prefix=`echo $def | sed -e 's/{.*//'`
   if test "$2" != ""; then


More information about the Gcc-patches mailing list