]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libgo: refactor code to enumerate stdlib packages
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 2 May 2018 21:57:35 +0000 (21:57 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 2 May 2018 21:57:35 +0000 (21:57 +0000)
    Move the list of libgo, gotool, and check-target packages into
    separate files, then read the file contents as part of the build
    process on the fly. This is intended to enable other build tooling to
    share the canonical list of target packages (avoid duplication).

    Reviewed-on: https://go-review.googlesource.com/89515

    libgo: revise rules for runtime.inc generation

    Refactor code for generating runtime.inc: extract out the relevant
    commands and place them in a separate shell script ("mkruntimeinc.sh").
    Update rules to avoid generating macros whose names begin with "$",
    such as "#define $sinkconst0 0".

    Reviewed-on: https://go-review.googlesource.com/85955

From-SVN: r259863

libgo/Makefile.am
libgo/Makefile.in
libgo/check-packages.txt [new file with mode: 0644]
libgo/gotool-packages.txt [new file with mode: 0644]
libgo/libgo-packages.txt [new file with mode: 0644]
libgo/mkruntimeinc.sh [new file with mode: 0755]

index 7558aab8b9360d5a7479c718e61adcb9a023fd4f..119d241aaaf5038d1972d17a4c82dc39b9bf6629 100644 (file)
@@ -593,25 +593,13 @@ s-zdefaultcc: Makefile
        $(SHELL) $(srcdir)/../move-if-change zdefaultcc.go.tmp zdefaultcc.go
        $(STAMP) $@ 
 
-# _Complex_lock and _Reader_lock are Go translations of some AIX system
-# types and should not be exported back to C
-# semt is a Go translation of the C type sem_t; it fails to convert on
-# some systems and need not be exported back to C.
-# sigset conflicts with system type sigset on AIX, so we need to rename it
+# Post-process runtime.inc.raw (raw output of -fgo-c-header option when
+# compiling runtime) to prune out certain types that should not be
+# exported back to C. See comments in mkruntimeinc.sh for more details.
 runtime.inc: s-runtime-inc; @true
 s-runtime-inc: runtime.lo Makefile
-       rm -f runtime.inc.tmp2 runtime.inc.tmp3
-       grep -v "#define _" runtime.inc.tmp | grep -v "#define [cm][01234] " | grep -v "#define empty " > runtime.inc.tmp2
-       for pattern in '_[GP][a-z]' _Max _Lock _Sig _Trace _MHeap _Num; do \
-         grep "#define $$pattern" runtime.inc.tmp >> runtime.inc.tmp2; \
-       done
-       for TYPE in _Complex_lock _Reader_lock semt; do \
-         sed -e '/struct '$${TYPE}' {/,/^}/s/^.*$$//' runtime.inc.tmp2 > runtime.inc.tmp3; \
-         mv runtime.inc.tmp3 runtime.inc.tmp2; \
-       done
-       sed -e 's/sigset/sigset_go/' runtime.inc.tmp2 > runtime.inc.tmp3
-       $(SHELL) $(srcdir)/mvifdiff.sh runtime.inc.tmp3 runtime.inc
-       rm -f runtime.inc.tmp2 runtime.inc.tmp3
+       $(SHELL) $(srcdir)/mkruntimeinc.sh
+       $(SHELL) $(srcdir)/mvifdiff.sh tmp-runtime.inc runtime.inc
        $(STAMP) $@
 
 noinst_DATA += zstdpkglist.go zdefaultcc.go
@@ -714,184 +702,7 @@ else
 syscall_lib_clone_lo =
 endif
 
-PACKAGES = \
-       archive/tar \
-       archive/zip \
-       bufio \
-       bytes \
-       compress/bzip2 \
-       compress/flate \
-       compress/gzip \
-       compress/lzw \
-       compress/zlib \
-       container/heap \
-       container/list \
-       container/ring \
-       context \
-       crypto \
-       crypto/aes \
-       crypto/cipher \
-       crypto/des \
-       crypto/dsa \
-       crypto/ecdsa \
-       crypto/elliptic \
-       crypto/hmac \
-       crypto/internal/cipherhw \
-       crypto/md5 \
-       crypto/rand \
-       crypto/rc4 \
-       crypto/rsa \
-       crypto/sha1 \
-       crypto/sha256 \
-       crypto/sha512 \
-       crypto/subtle \
-       crypto/tls \
-       crypto/x509 \
-       crypto/x509/pkix \
-       database/sql \
-       database/sql/driver \
-       debug/dwarf \
-       debug/elf \
-       debug/gosym \
-       debug/macho \
-       debug/pe \
-       debug/plan9obj \
-       debug/xcoff \
-       encoding \
-       encoding/ascii85 \
-       encoding/asn1 \
-       encoding/base32 \
-       encoding/base64 \
-       encoding/binary \
-       encoding/csv \
-       encoding/gob \
-       encoding/hex \
-       encoding/json \
-       encoding/pem \
-       encoding/xml \
-       errors \
-       expvar \
-       flag \
-       fmt \
-       go/ast \
-       go/build \
-       go/constant \
-       go/doc \
-       go/format \
-       go/importer \
-       go/internal/gccgoimporter \
-       go/internal/gcimporter \
-       go/internal/srcimporter \
-       go/parser \
-       go/printer \
-       go/scanner \
-       go/token \
-       go/types \
-       golang_org/x/crypto/chacha20poly1305 \
-       golang_org/x/crypto/chacha20poly1305/internal/chacha20 \
-       golang_org/x/crypto/cryptobyte \
-       golang_org/x/crypto/cryptobyte/asn1 \
-       golang_org/x/crypto/curve25519 \
-       golang_org/x/crypto/poly1305 \
-       golang_org/x/net/http2/hpack \
-       golang_org/x/net/idna \
-       golang_org/x/net/internal/nettest \
-       golang_org/x/net/lex/httplex \
-       golang_org/x/net/nettest \
-       golang_org/x/net/proxy \
-       golang_org/x/text/secure/bidirule \
-       golang_org/x/text/transform \
-       golang_org/x/text/unicode/bidi \
-       golang_org/x/text/unicode/norm \
-       golang_org/x/text/width \
-       hash \
-       hash/adler32 \
-       hash/crc32 \
-       hash/crc64 \
-       hash/fnv \
-       html \
-       html/template \
-       image \
-       image/color \
-       image/color/palette \
-       image/draw \
-       image/gif \
-       image/internal/imageutil \
-       image/jpeg \
-       image/png \
-       index/suffixarray \
-       internal/nettrace \
-       internal/poll \
-       internal/race \
-       internal/singleflight \
-       internal/syscall/unix \
-       internal/testenv \
-       internal/testlog \
-       internal/trace \
-       io \
-       io/ioutil \
-       log \
-       log/syslog \
-       math \
-       math/big \
-       math/bits \
-       math/cmplx \
-       math/rand \
-       mime \
-       mime/multipart \
-       mime/quotedprintable \
-       net \
-       net/http \
-       net/http/cgi \
-       net/http/cookiejar \
-       net/http/fcgi \
-       net/http/httptest \
-       net/http/httptrace \
-       net/http/httputil \
-       net/http/internal \
-       net/http/pprof \
-       net/internal/socktest \
-       net/mail \
-       net/rpc \
-       net/rpc/jsonrpc \
-       net/smtp \
-       net/textproto \
-       net/url \
-       os \
-       os/exec \
-       os/signal \
-       os/signal/internal/pty \
-       os/user \
-       path \
-       path/filepath \
-       reflect \
-       regexp \
-       regexp/syntax \
-       runtime \
-       runtime/debug \
-       runtime/internal/atomic \
-       runtime/internal/sys \
-       runtime/pprof \
-       runtime/pprof/internal/profile \
-       runtime/trace \
-       sort \
-       strconv \
-       strings \
-       sync \
-       sync/atomic \
-       syscall \
-       testing \
-       testing/internal/testdeps \
-       testing/iotest \
-       testing/quick \
-       text/scanner \
-       text/tabwriter \
-       text/template \
-       text/template/parse \
-       time \
-       unicode \
-       unicode/utf16 \
-       unicode/utf8
+PACKAGES = $(shell cat $(srcdir)/libgo-packages.txt)
 
 libgo_go_objs = \
        $(addsuffix .lo,$(PACKAGES)) \
@@ -939,37 +750,7 @@ libgolibbegin_a_SOURCES = \
 
 libgolibbegin_a_CFLAGS = $(AM_CFLAGS) -fPIC
 
-GOTOOL_PACKAGES = \
-       cmd/go/internal/base \
-       cmd/go/internal/bug \
-       cmd/go/internal/cache \
-       cmd/go/internal/cfg \
-       cmd/go/internal/clean \
-       cmd/go/internal/cmdflag \
-       cmd/go/internal/doc \
-       cmd/go/internal/envcmd \
-       cmd/go/internal/fix \
-       cmd/go/internal/fmtcmd \
-       cmd/go/internal/generate \
-       cmd/go/internal/get \
-       cmd/go/internal/help \
-       cmd/go/internal/list \
-       cmd/go/internal/load \
-       cmd/go/internal/run \
-       cmd/go/internal/str \
-       cmd/go/internal/test \
-       cmd/go/internal/tool \
-       cmd/go/internal/version \
-       cmd/go/internal/vet \
-       cmd/go/internal/web \
-       cmd/go/internal/work \
-       cmd/internal/browser \
-       cmd/internal/buildid \
-       cmd/internal/edit \
-       cmd/internal/objabi \
-       cmd/internal/test2json \
-       cmd/vet/internal/cfg \
-       cmd/vet/internal/whitelist
+GOTOOL_PACKAGES = $(shell cat $(srcdir)/gotool-packages.txt)
 
 libgotool_a_SOURCES =
 libgotool_a_DEPENDENCIES = $(addsuffix .lo,$(GOTOOL_PACKAGES))
@@ -1156,7 +937,7 @@ extra_go_files_syscall = \
 syscall.lo.dep: $(extra_go_files_syscall)
 
 # Pass -fgo-compiling-runtime when compiling the runtime package.
-runtime_lo_GOCFLAGS = -fgo-c-header=runtime.inc.tmp -fgo-compiling-runtime
+runtime_lo_GOCFLAGS = -fgo-c-header=runtime.inc.raw -fgo-compiling-runtime
 runtime_check_GOCFLAGS = -fgo-compiling-runtime
 runtime_internal_atomic_lo_GOCFLAGS = -fgo-compiling-runtime
 runtime_internal_atomic_lo_check_GOCFLAGS = -fgo-compiling-runtime
@@ -1281,171 +1062,10 @@ golang_org_x_net_lif_check = \
 
 endif
 
-TEST_PACKAGES = \
-       bufio/check \
-       bytes/check \
-       context/check \
-       crypto/check \
-       errors/check \
-       expvar/check \
-       flag/check \
-       fmt/check \
-       hash/check \
-       html/check \
-       image/check \
-       io/check \
-       log/check \
-       math/check \
-       mime/check \
-       net/check \
-       os/check \
-       path/check \
-       reflect/check \
-       regexp/check \
-       runtime/check \
-       sort/check \
-       strconv/check \
-       strings/check \
-       sync/check \
-       syscall/check \
-       time/check \
-       unicode/check \
-       archive/tar/check \
-       archive/zip/check \
-       cmd/go/internal/cache/check \
-       cmd/go/internal/generate/check \
-       cmd/go/internal/get/check \
-       cmd/go/internal/load/check \
-       cmd/go/internal/work/check \
-       cmd/internal/buildid/check \
-       cmd/internal/edit/check \
-       cmd/internal/objabi/check \
-       cmd/internal/test2json/check \
-       cmd/vet/internal/cfg/check \
-       compress/bzip2/check \
-       compress/flate/check \
-       compress/gzip/check \
-       compress/lzw/check \
-       compress/zlib/check \
-       container/heap/check \
-       container/list/check \
-       container/ring/check \
-       crypto/aes/check \
-       crypto/cipher/check \
-       crypto/des/check \
-       crypto/dsa/check \
-       crypto/ecdsa/check \
-       crypto/elliptic/check \
-       crypto/hmac/check \
-       crypto/md5/check \
-       crypto/rand/check \
-       crypto/rc4/check \
-       crypto/rsa/check \
-       crypto/sha1/check \
-       crypto/sha256/check \
-       crypto/sha512/check \
-       crypto/subtle/check \
-       crypto/tls/check \
-       crypto/x509/check \
-       database/sql/check \
-       database/sql/driver/check \
-       debug/dwarf/check \
-       debug/elf/check \
-       debug/macho/check \
-       debug/pe/check \
-       debug/plan9obj/check \
-       debug/xcoff/check \
-       encoding/ascii85/check \
-       encoding/asn1/check \
-       encoding/base32/check \
-       encoding/base64/check \
-       encoding/binary/check \
-       encoding/csv/check \
-       encoding/gob/check \
-       encoding/hex/check \
-       encoding/json/check \
-       encoding/pem/check \
-       encoding/xml/check \
-       html/template/check \
-       go/ast/check \
-       go/build/check \
-       go/constant/check \
-       go/doc/check \
-       go/format/check \
-       go/importer/check \
-       go/internal/gcimporter/check \
-       go/internal/gccgoimporter/check \
-       go/internal/srcimporter/check \
-       go/parser/check \
-       go/printer/check \
-       go/scanner/check \
-       go/token/check \
-       go/types/check \
-       golang_org/x/crypto/chacha20poly1305/check \
-       golang_org/x/crypto/chacha20poly1305/internal/chacha20/check \
-       golang_org/x/crypto/cryptobyte/check \
-       golang_org/x/crypto/curve25519/check \
-       golang_org/x/crypto/poly1305/check \
-       golang_org/x/net/http2/hpack/check \
-       golang_org/x/net/idna/check \
-       golang_org/x/net/lex/httplex/check \
+TPACKAGES = $(shell cat $(srcdir)/check-packages.txt)
+TEST_PACKAGES = $(addsuffix /check,$(TPACKAGES)) \
        $(golang_org_x_net_lif_check) \
-       golang_org/x/net/proxy/check \
-       $(golang_org_x_net_route_check) \
-       hash/adler32/check \
-       hash/crc32/check \
-       hash/crc64/check \
-       hash/fnv/check \
-       image/color/check \
-       image/draw/check \
-       image/jpeg/check \
-       image/png/check \
-       index/suffixarray/check \
-       internal/poll/check \
-       internal/singleflight/check \
-       internal/trace/check \
-       io/ioutil/check \
-       log/syslog/check \
-       math/big/check \
-       math/bits/check \
-       math/cmplx/check \
-       math/rand/check \
-       mime/multipart/check \
-       mime/quotedprintable/check \
-       net/http/check \
-       net/http/cgi/check \
-       net/http/cookiejar/check \
-       net/http/fcgi/check \
-       net/http/httptest/check \
-       net/http/httptrace/check \
-       net/http/httputil/check \
-       net/http/internal/check \
-       net/internal/socktest/check \
-       net/mail/check \
-       net/rpc/check \
-       net/smtp/check \
-       net/textproto/check \
-       net/url/check \
-       net/rpc/jsonrpc/check \
-       os/exec/check \
-       os/signal/check \
-       os/user/check \
-       path/filepath/check \
-       regexp/syntax/check \
-       runtime/debug/check \
-       runtime/internal/atomic/check \
-       runtime/internal/sys/check \
-       runtime/pprof/check \
-       runtime/pprof/internal/profile/check \
-       runtime/trace/check \
-       sync/atomic/check \
-       text/scanner/check \
-       text/tabwriter/check \
-       text/template/check \
-       text/template/parse/check \
-       testing/quick/check \
-       unicode/utf16/check \
-       unicode/utf8/check
+       $(golang_org_x_net_route_check)
 
 check: check-tail
 check-recursive: check-head
index 80c0b894053343fd1d75fb0a24fa32c05f4f6879..a30e427e118494f9667e2b67925de07e187acf50 100644 (file)
@@ -820,185 +820,7 @@ SYSINFO_FLAGS = \
 
 @LIBGO_IS_LINUX_FALSE@syscall_lib_clone_lo = 
 @LIBGO_IS_LINUX_TRUE@syscall_lib_clone_lo = syscall/clone_linux.lo
-PACKAGES = \
-       archive/tar \
-       archive/zip \
-       bufio \
-       bytes \
-       compress/bzip2 \
-       compress/flate \
-       compress/gzip \
-       compress/lzw \
-       compress/zlib \
-       container/heap \
-       container/list \
-       container/ring \
-       context \
-       crypto \
-       crypto/aes \
-       crypto/cipher \
-       crypto/des \
-       crypto/dsa \
-       crypto/ecdsa \
-       crypto/elliptic \
-       crypto/hmac \
-       crypto/internal/cipherhw \
-       crypto/md5 \
-       crypto/rand \
-       crypto/rc4 \
-       crypto/rsa \
-       crypto/sha1 \
-       crypto/sha256 \
-       crypto/sha512 \
-       crypto/subtle \
-       crypto/tls \
-       crypto/x509 \
-       crypto/x509/pkix \
-       database/sql \
-       database/sql/driver \
-       debug/dwarf \
-       debug/elf \
-       debug/gosym \
-       debug/macho \
-       debug/pe \
-       debug/plan9obj \
-       debug/xcoff \
-       encoding \
-       encoding/ascii85 \
-       encoding/asn1 \
-       encoding/base32 \
-       encoding/base64 \
-       encoding/binary \
-       encoding/csv \
-       encoding/gob \
-       encoding/hex \
-       encoding/json \
-       encoding/pem \
-       encoding/xml \
-       errors \
-       expvar \
-       flag \
-       fmt \
-       go/ast \
-       go/build \
-       go/constant \
-       go/doc \
-       go/format \
-       go/importer \
-       go/internal/gccgoimporter \
-       go/internal/gcimporter \
-       go/internal/srcimporter \
-       go/parser \
-       go/printer \
-       go/scanner \
-       go/token \
-       go/types \
-       golang_org/x/crypto/chacha20poly1305 \
-       golang_org/x/crypto/chacha20poly1305/internal/chacha20 \
-       golang_org/x/crypto/cryptobyte \
-       golang_org/x/crypto/cryptobyte/asn1 \
-       golang_org/x/crypto/curve25519 \
-       golang_org/x/crypto/poly1305 \
-       golang_org/x/net/http2/hpack \
-       golang_org/x/net/idna \
-       golang_org/x/net/internal/nettest \
-       golang_org/x/net/lex/httplex \
-       golang_org/x/net/nettest \
-       golang_org/x/net/proxy \
-       golang_org/x/text/secure/bidirule \
-       golang_org/x/text/transform \
-       golang_org/x/text/unicode/bidi \
-       golang_org/x/text/unicode/norm \
-       golang_org/x/text/width \
-       hash \
-       hash/adler32 \
-       hash/crc32 \
-       hash/crc64 \
-       hash/fnv \
-       html \
-       html/template \
-       image \
-       image/color \
-       image/color/palette \
-       image/draw \
-       image/gif \
-       image/internal/imageutil \
-       image/jpeg \
-       image/png \
-       index/suffixarray \
-       internal/nettrace \
-       internal/poll \
-       internal/race \
-       internal/singleflight \
-       internal/syscall/unix \
-       internal/testenv \
-       internal/testlog \
-       internal/trace \
-       io \
-       io/ioutil \
-       log \
-       log/syslog \
-       math \
-       math/big \
-       math/bits \
-       math/cmplx \
-       math/rand \
-       mime \
-       mime/multipart \
-       mime/quotedprintable \
-       net \
-       net/http \
-       net/http/cgi \
-       net/http/cookiejar \
-       net/http/fcgi \
-       net/http/httptest \
-       net/http/httptrace \
-       net/http/httputil \
-       net/http/internal \
-       net/http/pprof \
-       net/internal/socktest \
-       net/mail \
-       net/rpc \
-       net/rpc/jsonrpc \
-       net/smtp \
-       net/textproto \
-       net/url \
-       os \
-       os/exec \
-       os/signal \
-       os/signal/internal/pty \
-       os/user \
-       path \
-       path/filepath \
-       reflect \
-       regexp \
-       regexp/syntax \
-       runtime \
-       runtime/debug \
-       runtime/internal/atomic \
-       runtime/internal/sys \
-       runtime/pprof \
-       runtime/pprof/internal/profile \
-       runtime/trace \
-       sort \
-       strconv \
-       strings \
-       sync \
-       sync/atomic \
-       syscall \
-       testing \
-       testing/internal/testdeps \
-       testing/iotest \
-       testing/quick \
-       text/scanner \
-       text/tabwriter \
-       text/template \
-       text/template/parse \
-       time \
-       unicode \
-       unicode/utf16 \
-       unicode/utf8
-
+PACKAGES = $(shell cat $(srcdir)/libgo-packages.txt)
 libgo_go_objs = \
        $(addsuffix .lo,$(PACKAGES)) \
        bytes/index.lo \
@@ -1042,38 +864,7 @@ libgolibbegin_a_SOURCES = \
        runtime/go-libmain.c
 
 libgolibbegin_a_CFLAGS = $(AM_CFLAGS) -fPIC
-GOTOOL_PACKAGES = \
-       cmd/go/internal/base \
-       cmd/go/internal/bug \
-       cmd/go/internal/cache \
-       cmd/go/internal/cfg \
-       cmd/go/internal/clean \
-       cmd/go/internal/cmdflag \
-       cmd/go/internal/doc \
-       cmd/go/internal/envcmd \
-       cmd/go/internal/fix \
-       cmd/go/internal/fmtcmd \
-       cmd/go/internal/generate \
-       cmd/go/internal/get \
-       cmd/go/internal/help \
-       cmd/go/internal/list \
-       cmd/go/internal/load \
-       cmd/go/internal/run \
-       cmd/go/internal/str \
-       cmd/go/internal/test \
-       cmd/go/internal/tool \
-       cmd/go/internal/version \
-       cmd/go/internal/vet \
-       cmd/go/internal/web \
-       cmd/go/internal/work \
-       cmd/internal/browser \
-       cmd/internal/buildid \
-       cmd/internal/edit \
-       cmd/internal/objabi \
-       cmd/internal/test2json \
-       cmd/vet/internal/cfg \
-       cmd/vet/internal/whitelist
-
+GOTOOL_PACKAGES = $(shell cat $(srcdir)/gotool-packages.txt)
 libgotool_a_SOURCES = 
 libgotool_a_DEPENDENCIES = $(addsuffix .lo,$(GOTOOL_PACKAGES))
 libgotool_a_LIBADD = $(addsuffix .o,$(GOTOOL_PACKAGES))
@@ -1191,7 +982,7 @@ extra_go_files_syscall = \
 
 
 # Pass -fgo-compiling-runtime when compiling the runtime package.
-runtime_lo_GOCFLAGS = -fgo-c-header=runtime.inc.tmp -fgo-compiling-runtime
+runtime_lo_GOCFLAGS = -fgo-c-header=runtime.inc.raw -fgo-compiling-runtime
 runtime_check_GOCFLAGS = -fgo-compiling-runtime
 runtime_internal_atomic_lo_GOCFLAGS = -fgo-compiling-runtime
 runtime_internal_atomic_lo_check_GOCFLAGS = -fgo-compiling-runtime
@@ -1236,171 +1027,10 @@ extra_check_libs_cmd_vet_internal_cfg = $(abs_builddir)/libgotool.a
 @LIBGO_IS_SOLARIS_TRUE@golang_org_x_net_lif_check = \
 @LIBGO_IS_SOLARIS_TRUE@        golang_org/x/net/lif/check
 
-TEST_PACKAGES = \
-       bufio/check \
-       bytes/check \
-       context/check \
-       crypto/check \
-       errors/check \
-       expvar/check \
-       flag/check \
-       fmt/check \
-       hash/check \
-       html/check \
-       image/check \
-       io/check \
-       log/check \
-       math/check \
-       mime/check \
-       net/check \
-       os/check \
-       path/check \
-       reflect/check \
-       regexp/check \
-       runtime/check \
-       sort/check \
-       strconv/check \
-       strings/check \
-       sync/check \
-       syscall/check \
-       time/check \
-       unicode/check \
-       archive/tar/check \
-       archive/zip/check \
-       cmd/go/internal/cache/check \
-       cmd/go/internal/generate/check \
-       cmd/go/internal/get/check \
-       cmd/go/internal/load/check \
-       cmd/go/internal/work/check \
-       cmd/internal/buildid/check \
-       cmd/internal/edit/check \
-       cmd/internal/objabi/check \
-       cmd/internal/test2json/check \
-       cmd/vet/internal/cfg/check \
-       compress/bzip2/check \
-       compress/flate/check \
-       compress/gzip/check \
-       compress/lzw/check \
-       compress/zlib/check \
-       container/heap/check \
-       container/list/check \
-       container/ring/check \
-       crypto/aes/check \
-       crypto/cipher/check \
-       crypto/des/check \
-       crypto/dsa/check \
-       crypto/ecdsa/check \
-       crypto/elliptic/check \
-       crypto/hmac/check \
-       crypto/md5/check \
-       crypto/rand/check \
-       crypto/rc4/check \
-       crypto/rsa/check \
-       crypto/sha1/check \
-       crypto/sha256/check \
-       crypto/sha512/check \
-       crypto/subtle/check \
-       crypto/tls/check \
-       crypto/x509/check \
-       database/sql/check \
-       database/sql/driver/check \
-       debug/dwarf/check \
-       debug/elf/check \
-       debug/macho/check \
-       debug/pe/check \
-       debug/plan9obj/check \
-       debug/xcoff/check \
-       encoding/ascii85/check \
-       encoding/asn1/check \
-       encoding/base32/check \
-       encoding/base64/check \
-       encoding/binary/check \
-       encoding/csv/check \
-       encoding/gob/check \
-       encoding/hex/check \
-       encoding/json/check \
-       encoding/pem/check \
-       encoding/xml/check \
-       html/template/check \
-       go/ast/check \
-       go/build/check \
-       go/constant/check \
-       go/doc/check \
-       go/format/check \
-       go/importer/check \
-       go/internal/gcimporter/check \
-       go/internal/gccgoimporter/check \
-       go/internal/srcimporter/check \
-       go/parser/check \
-       go/printer/check \
-       go/scanner/check \
-       go/token/check \
-       go/types/check \
-       golang_org/x/crypto/chacha20poly1305/check \
-       golang_org/x/crypto/chacha20poly1305/internal/chacha20/check \
-       golang_org/x/crypto/cryptobyte/check \
-       golang_org/x/crypto/curve25519/check \
-       golang_org/x/crypto/poly1305/check \
-       golang_org/x/net/http2/hpack/check \
-       golang_org/x/net/idna/check \
-       golang_org/x/net/lex/httplex/check \
+TPACKAGES = $(shell cat $(srcdir)/check-packages.txt)
+TEST_PACKAGES = $(addsuffix /check,$(TPACKAGES)) \
        $(golang_org_x_net_lif_check) \
-       golang_org/x/net/proxy/check \
-       $(golang_org_x_net_route_check) \
-       hash/adler32/check \
-       hash/crc32/check \
-       hash/crc64/check \
-       hash/fnv/check \
-       image/color/check \
-       image/draw/check \
-       image/jpeg/check \
-       image/png/check \
-       index/suffixarray/check \
-       internal/poll/check \
-       internal/singleflight/check \
-       internal/trace/check \
-       io/ioutil/check \
-       log/syslog/check \
-       math/big/check \
-       math/bits/check \
-       math/cmplx/check \
-       math/rand/check \
-       mime/multipart/check \
-       mime/quotedprintable/check \
-       net/http/check \
-       net/http/cgi/check \
-       net/http/cookiejar/check \
-       net/http/fcgi/check \
-       net/http/httptest/check \
-       net/http/httptrace/check \
-       net/http/httputil/check \
-       net/http/internal/check \
-       net/internal/socktest/check \
-       net/mail/check \
-       net/rpc/check \
-       net/smtp/check \
-       net/textproto/check \
-       net/url/check \
-       net/rpc/jsonrpc/check \
-       os/exec/check \
-       os/signal/check \
-       os/user/check \
-       path/filepath/check \
-       regexp/syntax/check \
-       runtime/debug/check \
-       runtime/internal/atomic/check \
-       runtime/internal/sys/check \
-       runtime/pprof/check \
-       runtime/pprof/internal/profile/check \
-       runtime/trace/check \
-       sync/atomic/check \
-       text/scanner/check \
-       text/tabwriter/check \
-       text/template/check \
-       text/template/parse/check \
-       testing/quick/check \
-       unicode/utf16/check \
-       unicode/utf8/check
+       $(golang_org_x_net_route_check)
 
 MOSTLYCLEANFILES = \
        s-runtime_sysinfo s-sigtab s-runtime-inc s-zstdpkglist \
@@ -3173,25 +2803,13 @@ s-zdefaultcc: Makefile
        $(SHELL) $(srcdir)/../move-if-change zdefaultcc.go.tmp zdefaultcc.go
        $(STAMP) $@ 
 
-# _Complex_lock and _Reader_lock are Go translations of some AIX system
-# types and should not be exported back to C
-# semt is a Go translation of the C type sem_t; it fails to convert on
-# some systems and need not be exported back to C.
-# sigset conflicts with system type sigset on AIX, so we need to rename it
+# Post-process runtime.inc.raw (raw output of -fgo-c-header option when
+# compiling runtime) to prune out certain types that should not be
+# exported back to C. See comments in mkruntimeinc.sh for more details.
 runtime.inc: s-runtime-inc; @true
 s-runtime-inc: runtime.lo Makefile
-       rm -f runtime.inc.tmp2 runtime.inc.tmp3
-       grep -v "#define _" runtime.inc.tmp | grep -v "#define [cm][01234] " | grep -v "#define empty " > runtime.inc.tmp2
-       for pattern in '_[GP][a-z]' _Max _Lock _Sig _Trace _MHeap _Num; do \
-         grep "#define $$pattern" runtime.inc.tmp >> runtime.inc.tmp2; \
-       done
-       for TYPE in _Complex_lock _Reader_lock semt; do \
-         sed -e '/struct '$${TYPE}' {/,/^}/s/^.*$$//' runtime.inc.tmp2 > runtime.inc.tmp3; \
-         mv runtime.inc.tmp3 runtime.inc.tmp2; \
-       done
-       sed -e 's/sigset/sigset_go/' runtime.inc.tmp2 > runtime.inc.tmp3
-       $(SHELL) $(srcdir)/mvifdiff.sh runtime.inc.tmp3 runtime.inc
-       rm -f runtime.inc.tmp2 runtime.inc.tmp3
+       $(SHELL) $(srcdir)/mkruntimeinc.sh
+       $(SHELL) $(srcdir)/mvifdiff.sh tmp-runtime.inc runtime.inc
        $(STAMP) $@
 
 # Generate the list of go std packages that were included in libgo
diff --git a/libgo/check-packages.txt b/libgo/check-packages.txt
new file mode 100644 (file)
index 0000000..8ede851
--- /dev/null
@@ -0,0 +1,162 @@
+archive/tar
+archive/zip
+bufio
+bytes
+cmd/go/internal/cache
+cmd/go/internal/generate
+cmd/go/internal/get
+cmd/go/internal/load
+cmd/go/internal/work
+cmd/internal/buildid
+cmd/internal/edit
+cmd/internal/objabi
+cmd/internal/test2json
+cmd/vet/internal/cfg
+compress/bzip2
+compress/flate
+compress/gzip
+compress/lzw
+compress/zlib
+container/heap
+container/list
+container/ring
+context
+crypto
+crypto/aes
+crypto/cipher
+crypto/des
+crypto/dsa
+crypto/ecdsa
+crypto/elliptic
+crypto/hmac
+crypto/md5
+crypto/rand
+crypto/rc4
+crypto/rsa
+crypto/sha1
+crypto/sha256
+crypto/sha512
+crypto/subtle
+crypto/tls
+crypto/x509
+database/sql
+database/sql/driver
+debug/dwarf
+debug/elf
+debug/macho
+debug/pe
+debug/plan9obj
+debug/xcoff
+encoding/ascii85
+encoding/asn1
+encoding/base32
+encoding/base64
+encoding/binary
+encoding/csv
+encoding/gob
+encoding/hex
+encoding/json
+encoding/pem
+encoding/xml
+errors
+expvar
+flag
+fmt
+go/ast
+go/build
+go/constant
+go/doc
+go/format
+go/importer
+go/internal/gccgoimporter
+go/internal/gcimporter
+go/internal/srcimporter
+go/parser
+go/printer
+go/scanner
+go/token
+go/types
+golang_org/x/crypto/chacha20poly1305
+golang_org/x/crypto/chacha20poly1305/internal/chacha20
+golang_org/x/crypto/cryptobyte
+golang_org/x/crypto/curve25519
+golang_org/x/crypto/poly1305
+golang_org/x/net/http2/hpack
+golang_org/x/net/idna
+golang_org/x/net/lex/httplex
+golang_org/x/net/proxy
+hash
+hash/adler32
+hash/crc32
+hash/crc64
+hash/fnv
+html
+html/template
+image
+image/color
+image/draw
+image/jpeg
+image/png
+index/suffixarray
+internal/poll
+internal/singleflight
+internal/trace
+io
+io/ioutil
+log
+log/syslog
+math
+math/big
+math/bits
+math/cmplx
+math/rand
+mime
+mime/multipart
+mime/quotedprintable
+net
+net/http
+net/http/cgi
+net/http/cookiejar
+net/http/fcgi
+net/http/httptest
+net/http/httptrace
+net/http/httputil
+net/http/internal
+net/internal/socktest
+net/mail
+net/rpc
+net/rpc/jsonrpc
+net/smtp
+net/textproto
+net/url
+os
+os/exec
+os/signal
+os/user
+path
+path/filepath
+reflect
+regexp
+regexp/syntax
+runtime
+runtime/debug
+runtime/internal/atomic
+runtime/internal/sys
+runtime/pprof
+runtime/pprof/internal/profile
+runtime/trace
+sort
+strconv
+strings
+sync
+sync/atomic
+syscall
+testing/quick
+text/scanner
+text/tabwriter
+text/template
+text/template/parse
+time
+unicode
+unicode/utf16
+unicode/utf8
diff --git a/libgo/gotool-packages.txt b/libgo/gotool-packages.txt
new file mode 100644 (file)
index 0000000..012faf6
--- /dev/null
@@ -0,0 +1,30 @@
+cmd/go/internal/base
+cmd/go/internal/bug
+cmd/go/internal/cache
+cmd/go/internal/cfg
+cmd/go/internal/clean
+cmd/go/internal/cmdflag
+cmd/go/internal/doc
+cmd/go/internal/envcmd
+cmd/go/internal/fix
+cmd/go/internal/fmtcmd
+cmd/go/internal/generate
+cmd/go/internal/get
+cmd/go/internal/help
+cmd/go/internal/list
+cmd/go/internal/load
+cmd/go/internal/run
+cmd/go/internal/str
+cmd/go/internal/test
+cmd/go/internal/tool
+cmd/go/internal/version
+cmd/go/internal/vet
+cmd/go/internal/web
+cmd/go/internal/work
+cmd/internal/browser
+cmd/internal/buildid
+cmd/internal/edit
+cmd/internal/objabi
+cmd/internal/test2json
+cmd/vet/internal/cfg
+cmd/vet/internal/whitelist
diff --git a/libgo/libgo-packages.txt b/libgo/libgo-packages.txt
new file mode 100644 (file)
index 0000000..70c12ba
--- /dev/null
@@ -0,0 +1,177 @@
+archive/tar
+archive/zip
+bufio
+bytes
+compress/bzip2
+compress/flate
+compress/gzip
+compress/lzw
+compress/zlib
+container/heap
+container/list
+container/ring
+context
+crypto
+crypto/aes
+crypto/cipher
+crypto/des
+crypto/dsa
+crypto/ecdsa
+crypto/elliptic
+crypto/hmac
+crypto/internal/cipherhw
+crypto/md5
+crypto/rand
+crypto/rc4
+crypto/rsa
+crypto/sha1
+crypto/sha256
+crypto/sha512
+crypto/subtle
+crypto/tls
+crypto/x509
+crypto/x509/pkix
+database/sql
+database/sql/driver
+debug/dwarf
+debug/elf
+debug/gosym
+debug/macho
+debug/pe
+debug/plan9obj
+debug/xcoff
+encoding
+encoding/ascii85
+encoding/asn1
+encoding/base32
+encoding/base64
+encoding/binary
+encoding/csv
+encoding/gob
+encoding/hex
+encoding/json
+encoding/pem
+encoding/xml
+errors
+expvar
+flag
+fmt
+go/ast
+go/build
+go/constant
+go/doc
+go/format
+go/importer
+go/internal/gccgoimporter
+go/internal/gcimporter
+go/internal/srcimporter
+go/parser
+go/printer
+go/scanner
+go/token
+go/types
+golang_org/x/crypto/chacha20poly1305
+golang_org/x/crypto/chacha20poly1305/internal/chacha20
+golang_org/x/crypto/cryptobyte
+golang_org/x/crypto/cryptobyte/asn1
+golang_org/x/crypto/curve25519
+golang_org/x/crypto/poly1305
+golang_org/x/net/http2/hpack
+golang_org/x/net/idna
+golang_org/x/net/internal/nettest
+golang_org/x/net/lex/httplex
+golang_org/x/net/nettest
+golang_org/x/net/proxy
+golang_org/x/text/secure/bidirule
+golang_org/x/text/transform
+golang_org/x/text/unicode/bidi
+golang_org/x/text/unicode/norm
+golang_org/x/text/width
+hash
+hash/adler32
+hash/crc32
+hash/crc64
+hash/fnv
+html
+html/template
+image
+image/color
+image/color/palette
+image/draw
+image/gif
+image/internal/imageutil
+image/jpeg
+image/png
+index/suffixarray
+internal/nettrace
+internal/poll
+internal/race
+internal/singleflight
+internal/syscall/unix
+internal/testenv
+internal/testlog
+internal/trace
+io
+io/ioutil
+log
+log/syslog
+math
+math/big
+math/bits
+math/cmplx
+math/rand
+mime
+mime/multipart
+mime/quotedprintable
+net
+net/http
+net/http/cgi
+net/http/cookiejar
+net/http/fcgi
+net/http/httptest
+net/http/httptrace
+net/http/httputil
+net/http/internal
+net/http/pprof
+net/internal/socktest
+net/mail
+net/rpc
+net/rpc/jsonrpc
+net/smtp
+net/textproto
+net/url
+os
+os/exec
+os/signal
+os/signal/internal/pty
+os/user
+path
+path/filepath
+reflect
+regexp
+regexp/syntax
+runtime
+runtime/debug
+runtime/internal/atomic
+runtime/internal/sys
+runtime/pprof
+runtime/pprof/internal/profile
+runtime/trace
+sort
+strconv
+strings
+sync
+sync/atomic
+syscall
+testing
+testing/internal/testdeps
+testing/iotest
+testing/quick
+text/scanner
+text/tabwriter
+text/template
+text/template/parse
+time
+unicode
+unicode/utf16
+unicode/utf8
diff --git a/libgo/mkruntimeinc.sh b/libgo/mkruntimeinc.sh
new file mode 100755 (executable)
index 0000000..cd95595
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+# Copyright 2018 The Go Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+
+# Create tmp-runtime.inc from runtime.inc.raw.
+
+IN=runtime.inc.raw
+OUT=tmp-runtime.inc
+
+rm -f runtime.inc.tmp2 runtime.inc.tmp3
+
+# _Complex_lock and _Reader_lock are Go translations of some AIX system
+# types and should not be exported back to C
+# semt is a Go translation of the C type sem_t; it fails to convert on
+# some systems and need not be exported back to C.
+# sigset conflicts with system type sigset on AIX, so we need to rename it
+
+grep -v "#define _" ${IN} | grep -v "#define [cm][01234] " | grep -v "#define empty " | grep -v "#define \\$" > runtime.inc.tmp2
+for pattern in '_[GP][a-z]' _Max _Lock _Sig _Trace _MHeap _Num
+do
+  grep "#define $pattern" ${IN} >> runtime.inc.tmp2
+done
+TYPES="_Complex_lock _Reader_lock semt"
+for TYPE in $TYPES
+do
+  sed -e '/struct '${TYPE}' {/,/^}/s/^.*$//' runtime.inc.tmp2 > runtime.inc.tmp3;
+  mv runtime.inc.tmp3 runtime.inc.tmp2
+done
+sed -e 's/sigset/sigset_go/' runtime.inc.tmp2 > ${OUT}
+rm -f runtime.inc.tmp2 runtime.inc.tmp3
+exit 0