libgo: adjust sysinfo scripts for changed -fdump-go-spec
authorNikhil Benesch <nikhil.benesch@gmail.com>
Wed, 16 Dec 2020 13:41:20 +0000 (08:41 -0500)
committerIan Lance Taylor <iant@golang.org>
Mon, 21 Dec 2020 04:16:50 +0000 (20:16 -0800)
commit9bac66390c0c838594e42877f938bca441665937
treef43532f5dfd01ef11335fb88ab6ac7fc1ce4829e
parent108beb75da0011b7e2cba65ee172fa4eefab9e41
libgo: adjust sysinfo scripts for changed -fdump-go-spec

The -fdump-go-spec flag to GCC recently changed to be more fastidious
about handling incomplete types. This caused some breakage in
mk[r]sysinfo.sh on Solaris. This commit adjusts for the new behavior.
Specifically:

  * Types that refer to _in6_addr may be hidden behind a typedef and can
    no longer be filtered out with `grep -v in6_addr`. Instead just
    rewrite the definition of _in6_addr to [16]byte wherever it appears.

  * timestruc_t is now (correctly) emitted as an alias for timespec, so this
    case is handled specially.

  * stdio.h is included in sysinfo.c to avoid emitting an incomplete
    definition of the FILE type.

  * Dummy definitions for _u?pad128_t are now emitted automatically,
    which conflict with the definitions installed by mk[r]sysinfo.sh.
    These definitions were actually dead code, so just remove them.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278672
gcc/go/gofrontend/MERGE
libgo/mkrsysinfo.sh
libgo/mksysinfo.sh
libgo/sysinfo.c