This patch to the libgo mksysinfo script uses type aliases for time struct field types. It also fixes a case where grep wasn't redirecting to /dev/null. This lets some syscall package types be identical to some golang.org/x/sys/unix types, and fixes https://golang.org/issue/35713. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline.
Ian
Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 278470) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -245904ac148f15db530fb8d50f526c47d08024c5 +9cc7092b84c38d77d98ed856f1f613a6ca27122d 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 277299) +++ libgo/mksysinfo.sh (working copy) @@ -436,8 +436,8 @@ fi timeval=`grep '^type _timeval ' gen-sysinfo.go` timeval_sec=`echo $timeval | sed -n -e 's/^.*tv_sec \([^ ]*\);.*$/\1/p'` timeval_usec=`echo $timeval | sed -n -e 's/^.*tv_usec \([^ ]*\);.*$/\1/p'` -echo "type Timeval_sec_t $timeval_sec" >> ${OUT} -echo "type Timeval_usec_t $timeval_usec" >> ${OUT} +echo "type Timeval_sec_t = $timeval_sec" >> ${OUT} +echo "type Timeval_usec_t = $timeval_usec" >> ${OUT} echo $timeval | \ sed -e 's/type _timeval /type Timeval /' \ -e 's/tv_sec *[a-zA-Z0-9_]*/Sec Timeval_sec_t/' \ @@ -449,8 +449,8 @@ if test "$timespec" = ""; then fi timespec_sec=`echo $timespec | sed -n -e 's/^.*tv_sec \([^ ]*\);.*$/\1/p'` timespec_nsec=`echo $timespec | sed -n -e 's/^.*tv_nsec \([^ ]*\);.*$/\1/p'` -echo "type Timespec_sec_t $timespec_sec" >> ${OUT} -echo "type Timespec_nsec_t $timespec_nsec" >> ${OUT} +echo "type Timespec_sec_t = $timespec_sec" >> ${OUT} +echo "type Timespec_nsec_t = $timespec_nsec" >> ${OUT} echo $timespec | \ sed -e 's/^type ___timespec /type Timespec /' \ -e 's/^type _timespec /type Timespec /' \ @@ -461,8 +461,8 @@ timestruc=`grep '^type _timestruc_t ' ge if test "$timestruc" != ""; then timestruc_sec=`echo $timestruc | sed -n -e 's/^.*tv_sec \([^ ]*\);.*$/\1/p'` timestruc_nsec=`echo $timestruc | sed -n -e 's/^.*tv_nsec \([^ ]*\);.*$/\1/p'` - echo "type Timestruc_sec_t $timestruc_sec" >> ${OUT} - echo "type Timestruc_nsec_t $timestruc_nsec" >> ${OUT} + echo "type Timestruc_sec_t = $timestruc_sec" >> ${OUT} + echo "type Timestruc_nsec_t = $timestruc_nsec" >> ${OUT} echo $timestruc | \ sed -e 's/^type _timestruc_t /type Timestruc /' \ -e 's/tv_sec *[a-zA-Z0-9_]*/Sec Timestruc_sec_t/' \ @@ -1126,7 +1126,7 @@ statfs=`grep '^type _statfs64 ' gen-sysi if test "$statfs" = ""; then statfs=`grep '^type _statfs ' gen-sysinfo.go || true` fi -if ! echo "$statfs" | grep f_flags; then +if ! echo "$statfs" | grep f_flags >/dev/null 2>&1; then statfs=`echo "$statfs" | sed -e 's/f_spare \[4+1\]\([^ ;]*\)/f_flags \1; f_spare [3+1]\1/'` fi echo "$statfs" | sed -e 's/type _statfs64/type Statfs_t/' \