]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libgo: change build procedure to use build tags
authorIan Lance Taylor <ian@gcc.gnu.org>
Sat, 6 Aug 2016 00:36:33 +0000 (00:36 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Sat, 6 Aug 2016 00:36:33 +0000 (00:36 +0000)
    Previously the libgo Makefile explicitly listed the set of files to
    compile for each package.  For packages that use build tags, this
    required a lot of awkward automake conditionals in the Makefile.

    This CL changes the build to look at the build tags in the files.
    The new shell script libgo/match.sh does the matching.  This required
    adjusting a lot of build tags, and removing some files that are never
    used.  I verified that the exact same sets of files are compiled on
    amd64 GNU/Linux.  I also tested the build on i386 Solaris.

    Writing match.sh revealed some bugs in the build tag handling that
    already exists, in a slightly different form, in the gotest shell
    script.  This CL fixes those problems as well.

    The old code used automake conditionals to handle systems that were
    missing strerror_r and wait4.  Rather than deal with those in Go, those
    functions are now implemented in runtime/go-nosys.c when necessary, so
    the Go code can simply assume that they exist.

    The os testsuite looked for dir_unix.go, which was never built for gccgo
    and has now been removed.  I changed the testsuite to look for dir.go
    instead.

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

From-SVN: r239189

109 files changed:
gcc/go/gofrontend/MERGE
libgo/Makefile.am
libgo/Makefile.in
libgo/go/crypto/aes/aes_gcm.go
libgo/go/crypto/aes/cipher_amd64.go
libgo/go/crypto/aes/cipher_generic.go
libgo/go/crypto/aes/cipher_s390x.go
libgo/go/crypto/elliptic/p256.go
libgo/go/crypto/elliptic/p256_amd64.go
libgo/go/crypto/md5/md5block_decl.go
libgo/go/crypto/md5/md5block_generic.go
libgo/go/crypto/rc4/rc4_asm.go
libgo/go/crypto/rc4/rc4_ref.go
libgo/go/crypto/sha1/fallback_test.go
libgo/go/crypto/sha1/sha1block_amd64.go
libgo/go/crypto/sha1/sha1block_decl.go
libgo/go/crypto/sha1/sha1block_generic.go
libgo/go/crypto/sha1/sha1block_s390x.go
libgo/go/crypto/sha256/sha256block_decl.go
libgo/go/crypto/sha256/sha256block_generic.go
libgo/go/crypto/sha256/sha256block_s390x.go
libgo/go/crypto/sha512/fallback_test.go
libgo/go/crypto/sha512/sha512block_decl.go
libgo/go/crypto/sha512/sha512block_generic.go
libgo/go/crypto/sha512/sha512block_s390x.go
libgo/go/hash/crc32/crc32_amd64.go
libgo/go/hash/crc32/crc32_generic.go
libgo/go/log/syslog/syslog_libc.go
libgo/go/log/syslog/syslog_unix.go
libgo/go/math/big/arith_decl.go
libgo/go/math/big/arith_decl_pure.go
libgo/go/math/floor_asm.go
libgo/go/net/fd_select.go [deleted file]
libgo/go/net/newpollserver_rtems.go
libgo/go/os/dir_largefile.go
libgo/go/os/dir_regfile.go
libgo/go/os/dir_unix.go [deleted file]
libgo/go/os/os_test.go
libgo/go/os/stat.go
libgo/go/os/stat_atim.go
libgo/go/os/stat_atimespec.go
libgo/go/os/stat_solaris.go
libgo/go/os/sys_uname.go
libgo/go/runtime/cgo_mips64x.go [deleted file]
libgo/go/runtime/cgo_mmap.go
libgo/go/runtime/cgo_ppc64x.go [deleted file]
libgo/go/runtime/cgocheck.go
libgo/go/runtime/defs_linux_mips64x.go [deleted file]
libgo/go/runtime/defs_linux_s390x.go [deleted file]
libgo/go/runtime/defs_plan9_arm.go [deleted file]
libgo/go/runtime/fastlog2.go
libgo/go/runtime/fastlog2table.go
libgo/go/runtime/lfstack_64bit.go
libgo/go/runtime/mmap.go
libgo/go/runtime/msan.go [deleted file]
libgo/go/runtime/msan0.go
libgo/go/runtime/mstkbar.go
libgo/go/runtime/os_android.go [deleted file]
libgo/go/runtime/os_linux_generic.go [deleted file]
libgo/go/runtime/os_linux_mips64x.go [deleted file]
libgo/go/runtime/os_linux_noauxv.go [deleted file]
libgo/go/runtime/os_linux_s390x.go [deleted file]
libgo/go/runtime/os_netbsd_386.go [deleted file]
libgo/go/runtime/os_netbsd_amd64.go [deleted file]
libgo/go/runtime/os_plan9_arm.go [deleted file]
libgo/go/runtime/print.go
libgo/go/runtime/signal2_unix.go
libgo/go/runtime/signal_linux_mips64x.go [deleted file]
libgo/go/runtime/signal_linux_s390x.go [deleted file]
libgo/go/runtime/signal_mips64x.go [deleted file]
libgo/go/runtime/signal_sigtramp.go
libgo/go/runtime/sigtab_linux_generic.go [deleted file]
libgo/go/runtime/sigtab_linux_mips64x.go [deleted file]
libgo/go/runtime/stack.go
libgo/go/runtime/sys_mips64x.go [deleted file]
libgo/go/runtime/sys_nonppc64x.go [deleted file]
libgo/go/runtime/sys_s390x.go [deleted file]
libgo/go/runtime/vlrt.go [deleted file]
libgo/go/runtime/write_err.go [deleted file]
libgo/go/runtime/write_err_android.go [deleted file]
libgo/go/strings/strings_amd64.go
libgo/go/strings/strings_generic.go
libgo/go/syscall/errstr.go
libgo/go/syscall/errstr_linux.go
libgo/go/syscall/errstr_nor.go [deleted file]
libgo/go/syscall/exec_bsd.go
libgo/go/syscall/exec_stubs.go
libgo/go/syscall/libcall_bsd.go
libgo/go/syscall/libcall_irix.go
libgo/go/syscall/libcall_linux_ustat.go
libgo/go/syscall/libcall_posix_largefile.go
libgo/go/syscall/libcall_posix_regfile.go
libgo/go/syscall/libcall_posix_utimesnano.go
libgo/go/syscall/libcall_uname.go
libgo/go/syscall/libcall_waitpid.go [deleted file]
libgo/go/syscall/msan.go [deleted file]
libgo/go/syscall/sleep_rtems.go
libgo/go/syscall/sleep_select.go
libgo/go/syscall/socket_bsd.go
libgo/go/syscall/socket_irix.go
libgo/go/syscall/socket_linux_ppc64x_type.go
libgo/go/syscall/socket_linux_type.go
libgo/go/syscall/socket_posix.go
libgo/go/syscall/socket_xnet.go
libgo/go/syscall/syscall_stubs.go
libgo/godeps.sh
libgo/match.sh [new file with mode: 0755]
libgo/runtime/go-nosys.c
libgo/testsuite/gotest

index 83a187cf68c9ce636bb148fab9e910bb17881d51..185d9e9d678d26c732f3be44e4230545c5457c8b 100644 (file)
@@ -1,4 +1,4 @@
-ae44ca35b0b1c2ab925cadbcd7d47b334be5a318
+8473b709ebd46c03c0e36e140656bd8c5d32d883
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index 7801290d26361daade80829768c1603566f1e4c0..8c4022d3afedd672925e4dc94fb4caaa8db9427f 100644 (file)
@@ -583,499 +583,6 @@ time.c: $(srcdir)/runtime/time.goc goc2c
        ./goc2c $< > $@.tmp
        mv -f $@.tmp $@
 
-go_bufio_files = \
-       go/bufio/bufio.go \
-       go/bufio/scan.go
-
-go_bytes_files = \
-       go/bytes/buffer.go \
-       go/bytes/bytes.go \
-       go/bytes/bytes_decl.go \
-       go/bytes/reader.go
-go_bytes_c_files = \
-       go/bytes/indexbyte.c
-
-go_context_files = \
-       go/context/context.go
-
-go_crypto_files = \
-       go/crypto/crypto.go
-
-go_encoding_files = \
-       go/encoding/encoding.go
-
-go_errors_files = \
-       go/errors/errors.go
-
-go_expvar_files = \
-       go/expvar/expvar.go
-
-go_flag_files = \
-       go/flag/flag.go
-
-go_fmt_files = \
-       go/fmt/doc.go \
-       go/fmt/format.go \
-       go/fmt/print.go \
-       go/fmt/scan.go
-
-go_hash_files = \
-       go/hash/hash.go
-
-go_html_files = \
-       go/html/entity.go \
-       go/html/escape.go
-
-go_image_files = \
-       go/image/format.go \
-       go/image/geom.go \
-       go/image/image.go \
-       go/image/names.go \
-       go/image/ycbcr.go
-
-go_io_files = \
-       go/io/multi.go \
-       go/io/io.go \
-       go/io/pipe.go
-
-go_log_files = \
-       go/log/log.go
-
-go_math_files = \
-       go/math/abs.go \
-       go/math/acosh.go \
-       go/math/asin.go \
-       go/math/asinh.go \
-       go/math/atan.go \
-       go/math/atanh.go \
-       go/math/atan2.go \
-       go/math/bits.go \
-       go/math/cbrt.go \
-       go/math/const.go \
-       go/math/copysign.go \
-       go/math/dim.go \
-       go/math/erf.go \
-       go/math/exp.go \
-       go/math/expm1.go \
-       go/math/floor.go \
-       go/math/frexp.go \
-       go/math/gamma.go \
-       go/math/hypot.go \
-       go/math/j0.go \
-       go/math/j1.go \
-       go/math/jn.go \
-       go/math/ldexp.go \
-       go/math/lgamma.go \
-       go/math/log.go \
-       go/math/log1p.go \
-       go/math/log10.go \
-       go/math/logb.go \
-       go/math/mod.go \
-       go/math/modf.go \
-       go/math/nextafter.go \
-       go/math/pow.go \
-       go/math/pow10.go \
-       go/math/remainder.go \
-       go/math/signbit.go \
-       go/math/sin.go \
-       go/math/sincos.go \
-       go/math/sinh.go \
-       go/math/sqrt.go \
-       go/math/tan.go \
-       go/math/tanh.go \
-       go/math/unsafe.go
-
-if LIBGO_IS_OPENBSD
-go_mime_type_file = go/mime/type_openbsd.go
-else
-if LIBGO_IS_FREEBSD
-go_mime_type_file = go/mime/type_freebsd.go
-else
-if LIBGO_IS_DRAGONFLY
-go_mime_type_file = go/mime/type_dragonfly.go
-else
-go_mime_type_file =
-endif
-endif
-endif
-
-go_mime_files = \
-       go/mime/encodedword.go \
-       go/mime/grammar.go \
-       go/mime/mediatype.go \
-       go/mime/type.go \
-       go/mime/type_unix.go \
-       $(go_mime_type_file)
-
-if LIBGO_IS_LINUX
-go_net_cgo_file = go/net/cgo_linux.go
-go_net_sock_file = go/net/sock_linux.go
-go_net_sockopt_file = go/net/sockopt_linux.go
-go_net_sockoptip_file = go/net/sockoptip_linux.go go/net/sockoptip_posix.go
-go_net_cgo_sock_file = go/net/cgo_socknew.go
-go_net_cgo_res_file = go/net/cgo_resnew.go
-else
-if LIBGO_IS_IRIX
-go_net_cgo_file = go/net/cgo_linux.go
-go_net_sock_file = go/net/sock_linux.go
-go_net_sockopt_file = go/net/sockopt_linux.go
-go_net_sockoptip_file = go/net/sockoptip_linux.go go/net/sockoptip_posix.go
-go_net_cgo_sock_file = go/net/cgo_socknew.go
-go_net_cgo_res_file = go/net/cgo_resnew.go
-else
-if LIBGO_IS_SOLARIS
-go_net_cgo_file = go/net/cgo_solaris.go
-go_net_sock_file = go/net/sock_stub.go
-go_net_sockopt_file = go/net/sockopt_solaris.go
-go_net_sockoptip_file = go/net/sockoptip_stub.go
-go_net_cgo_sock_file = go/net/cgo_socknew.go
-go_net_cgo_res_file = go/net/cgo_resnew.go
-else
-if LIBGO_IS_FREEBSD
-go_net_cgo_file = go/net/cgo_bsd.go
-go_net_sock_file = go/net/sock_bsd.go
-go_net_sockopt_file = go/net/sockopt_bsd.go
-go_net_sockoptip_file = go/net/sockoptip_bsd.go go/net/sockoptip_posix.go
-go_net_cgo_sock_file = go/net/cgo_sockold.go
-go_net_cgo_res_file = go/net/cgo_resold.go
-else
-if LIBGO_IS_NETBSD
-go_net_cgo_file = go/net/cgo_netbsd.go
-go_net_sock_file = go/net/sock_bsd.go
-go_net_sockopt_file = go/net/sockopt_bsd.go
-go_net_sockoptip_file = go/net/sockoptip_bsd.go go/net/sockoptip_posix.go
-go_net_cgo_sock_file = go/net/cgo_sockold.go
-go_net_cgo_res_file = go/net/cgo_resnew.go
-else
-go_net_cgo_file = go/net/cgo_bsd.go
-go_net_sock_file = go/net/sock_bsd.go
-go_net_sockopt_file = go/net/sockopt_bsd.go
-go_net_sockoptip_file = go/net/sockoptip_bsd.go go/net/sockoptip_posix.go
-go_net_cgo_sock_file = go/net/cgo_sockold.go
-go_net_cgo_res_file = go/net/cgo_resold.go
-endif
-endif
-endif
-endif
-endif
-
-if LIBGO_IS_LINUX
-go_net_sendfile_file = go/net/sendfile_linux.go
-else
-if LIBGO_IS_FREEBSD
-go_net_sendfile_file = go/net/sendfile_freebsd.go
-else
-if LIBGO_IS_DRAGONFLY
-go_net_sendfile_file = go/net/sendfile_dragonfly.go
-else
-if LIBGO_IS_SOLARIS
-go_net_sendfile_file = go/net/sendfile_solaris.go
-else
-go_net_sendfile_file = go/net/sendfile_stub.go
-endif
-endif
-endif
-endif
-
-if LIBGO_IS_LINUX
-go_net_interface_file = go/net/interface_linux.go
-else
-if LIBGO_IS_NETBSD
-go_net_interface_file = go/net/interface_bsdvar.go
-else
-if LIBGO_IS_DRAGONFLY
-go_net_interface_file = go/net/interface_bsdvar.go
-else
-if LIBGO_IS_OPENBSD
-go_net_interface_file = go/net/interface_bsdvar.go
-else
-go_net_interface_file = go/net/interface_stub.go
-endif
-endif
-endif
-endif
-
-if LIBGO_IS_LINUX
-go_net_cloexec_file = go/net/sock_cloexec.go go/net/hook_cloexec.go
-else
-if LIBGO_IS_FREEBSD
-go_net_cloexec_file = go/net/sock_cloexec.go go/net/hook_cloexec.go
-else
-go_net_cloexec_file = go/net/sys_cloexec.go
-endif
-endif
-
-if LIBGO_IS_OPENBSD
-go_net_tcpsockopt_file = go/net/tcpsockopt_openbsd.go
-else
-if LIBGO_IS_DARWIN
-go_net_tcpsockopt_file = go/net/tcpsockopt_darwin.go
-else
-if LIBGO_IS_SOLARIS
-go_net_tcpsockopt_file = go/net/tcpsockopt_solaris.go
-else
-if LIBGO_IS_DRAGONFLY
-go_net_tcpsockopt_file = go/net/tcpsockopt_dragonfly.go
-else
-go_net_tcpsockopt_file = go/net/tcpsockopt_unix.go
-endif
-endif
-endif
-endif
-
-go_net_common_files = \
-       go/net/addrselect.go \
-       $(go_net_cloexec_file) \
-       go/net/conf.go \
-       go/net/dial.go \
-       go/net/dnsclient.go \
-       go/net/dnsclient_unix.go \
-       go/net/dnsconfig_unix.go \
-       go/net/dnsmsg.go \
-       go/net/fd_mutex.go \
-       go/net/fd_posix.go \
-       go/net/fd_unix.go \
-       go/net/file.go \
-       go/net/file_unix.go \
-       go/net/hook.go \
-       go/net/hook_unix.go \
-       go/net/hosts.go \
-       go/net/interface.go \
-       $(go_net_interface_file) \
-       go/net/ip.go \
-       go/net/iprawsock.go \
-       go/net/iprawsock_posix.go \
-       go/net/ipsock.go \
-       go/net/ipsock_posix.go \
-       go/net/lookup.go \
-       go/net/lookup_unix.go \
-       go/net/mac.go \
-       go/net/net.go \
-       go/net/nss.go \
-       go/net/parse.go \
-       go/net/pipe.go \
-       go/net/port.go \
-       go/net/fd_poll_runtime.go \
-       go/net/port_unix.go \
-       $(go_net_sendfile_file) \
-       go/net/sock_posix.go \
-       $(go_net_sock_file) \
-       go/net/sockopt_posix.go \
-       $(go_net_sockopt_file) \
-       $(go_net_sockoptip_file) \
-       go/net/tcpsock.go \
-       go/net/tcpsock_posix.go \
-       go/net/tcpsockopt_posix.go \
-       $(go_net_tcpsockopt_file) \
-       go/net/udpsock.go \
-       go/net/udpsock_posix.go \
-       go/net/unixsock.go \
-       go/net/unixsock_posix.go
-
-go_net_files = \
-       go/net/cgo_unix.go \
-       $(go_net_cgo_file) \
-       $(go_net_cgo_res_file) \
-       $(go_net_cgo_sock_file) \
-       $(go_net_common_files)
-
-go_netgo_files = \
-       go/net/cgo_stub.go \
-       $(go_net_common_files)
-
-if LIBGO_IS_SOLARIS
-if LIBGO_IS_386
-go_os_dir_file = go/os/dir_largefile.go
-else
-if LIBGO_IS_SPARC
-go_os_dir_file = go/os/dir_largefile.go
-else
-go_os_dir_file = go/os/dir_regfile.go
-endif
-endif
-else
-if LIBGO_IS_LINUX
-go_os_dir_file = go/os/dir_largefile.go
-else
-go_os_dir_file = go/os/dir_regfile.go
-endif
-endif
-
-if LIBGO_IS_DARWIN
-go_os_getwd_file = go/os/getwd_darwin.go
-else
-go_os_getwd_file =
-endif
-
-if LIBGO_IS_LINUX
-go_os_sys_file = go/os/sys_linux.go
-else
-if LIBGO_IS_SOLARIS
-go_os_sys_file = go/os/sys_uname.go
-else
-if LIBGO_IS_IRIX
-go_os_sys_file = go/os/sys_uname.go
-else
-if LIBGO_IS_RTEMS
-go_os_sys_file = go/os/sys_uname.go
-else
-go_os_sys_file = go/os/sys_bsd.go
-endif
-endif
-endif
-endif
-
-if LIBGO_IS_FREEBSD
-go_os_cloexec_file = go/os/sys_freebsd.go
-else
-if LIBGO_IS_DARWIN
-go_os_cloexec_file = go/os/sys_darwin.go
-else
-go_os_cloexec_file = go/os/sys_unix.go
-endif
-endif
-
-if LIBGO_IS_SOLARIS
-if HAVE_STAT_TIMESPEC
-go_os_stat_file = go/os/stat_atim.go
-else
-go_os_stat_file = go/os/stat_solaris.go
-endif
-else
-if LIBGO_IS_LINUX
-go_os_stat_file = go/os/stat_atim.go
-else
-if LIBGO_IS_OPENBSD
-go_os_stat_file = go/os/stat_atim.go
-else
-if LIBGO_IS_DARWIN
-go_os_stat_file = go/os/stat_atimespec.go
-else
-if LIBGO_IS_FREEBSD
-go_os_stat_file = go/os/stat_atimespec.go
-else
-if LIBGO_IS_NETBSD
-go_os_stat_file = go/os/stat_atimespec.go
-else
-if LIBGO_IS_DRAGONFLY
-go_os_stat_file = go/os/stat_dragonfly.go
-else
-go_os_stat_file = go/os/stat.go
-endif
-endif
-endif
-endif
-endif
-endif
-endif
-
-if LIBGO_IS_LINUX
-go_os_pipe_file = go/os/pipe_linux.go
-else
-go_os_pipe_file = go/os/pipe_bsd.go
-endif
-
-if LIBGO_IS_DARWIN
-go_os_sticky_file = go/os/sticky_bsd.go
-else
-if LIBGO_IS_DRAGONFLY
-go_os_sticky_file = go/os/sticky_bsd.go
-else
-if LIBGO_IS_FREEBSD
-go_os_sticky_file = go/os/sticky_bsd.go
-else
-if LIBGO_IS_NETBSD
-go_os_sticky_file = go/os/sticky_bsd.go
-else
-if LIBGO_IS_OPENBSD
-go_os_sticky_file = go/os/sticky_bsd.go
-else
-if LIBGO_IS_SOLARIS
-go_os_sticky_file = go/os/sticky_bsd.go
-else
-go_os_sticky_file = go/os/sticky_notbsd.go
-endif
-endif
-endif
-endif
-endif
-endif
-
-if LIBGO_IS_LINUX
-go_os_wait_file = go/os/wait_waitid.go
-else
-if LIBGO_IS_DARWIN
-go_os_wait_file = go/os/wait_waitid.go
-else
-if LIBGO_IS_FREEBSD
-go_os_wait_file = go/os/wait_wait6.go
-else
-go_os_wait_file = go/os/wait_unimp.go
-endif
-endif
-endif
-
-go_os_files = \
-       $(go_os_dir_file) \
-       go/os/dir.go \
-       go/os/doc.go \
-       go/os/env.go \
-       go/os/error.go \
-       go/os/error_unix.go \
-       go/os/exec.go \
-       go/os/exec_posix.go \
-       go/os/exec_unix.go \
-       go/os/file.go \
-       go/os/file_posix.go \
-       go/os/file_unix.go \
-       go/os/getwd.go \
-       $(go_os_getwd_file) \
-       go/os/path.go \
-       go/os/path_unix.go \
-       $(go_os_pipe_file) \
-       go/os/proc.go \
-       $(go_os_stat_file) \
-       $(go_os_sticky_file) \
-       go/os/str.go \
-       $(go_os_sys_file) \
-       $(go_os_cloexec_file) \
-       go/os/types.go \
-       go/os/types_unix.go \
-       $(go_os_wait_file)
-
-go_path_files = \
-       go/path/match.go \
-       go/path/path.go
-
-go_reflect_files = \
-       go/reflect/deepequal.go \
-       go/reflect/makefunc.go \
-       go/reflect/makefunc_ffi.go \
-       go/reflect/type.go \
-       go/reflect/value.go
-go_reflect_makefunc_c_file = \
-       go/reflect/makefunc_ffi_c.c
-
-go_regexp_files = \
-       go/regexp/backtrack.go \
-       go/regexp/exec.go \
-       go/regexp/onepass.go \
-       go/regexp/regexp.go
-
-go_net_rpc_files = \
-       go/net/rpc/client.go \
-       go/net/rpc/debug.go \
-       go/net/rpc/server.go
-
-go_runtime_files = \
-       go/runtime/compiler.go \
-       go/runtime/debug.go \
-       go/runtime/error.go \
-       go/runtime/extern.go \
-       go/runtime/mem.go \
-       go/runtime/symtab.go \
-       version.go
-
 version.go: s-version; @true
 s-version: Makefile
        rm -f version.go.tmp
@@ -1102,1126 +609,29 @@ s-zstdpkglist: Makefile
        $(SHELL) $(srcdir)/mvifdiff.sh zstdpkglist.go.tmp zstdpkglist.go
        $(STAMP) $@
 
-go_sort_files = \
-       go/sort/search.go \
-       go/sort/sort.go
-
-go_strconv_files = \
-       go/strconv/atob.go \
-       go/strconv/atof.go \
-       go/strconv/atoi.go \
-       go/strconv/decimal.go \
-       go/strconv/doc.go \
-       go/strconv/extfloat.go \
-       go/strconv/ftoa.go \
-       go/strconv/isprint.go \
-       go/strconv/itoa.go \
-       go/strconv/quote.go
-
-go_strings_files = \
-       go/strings/compare.go \
-       go/strings/reader.go \
-       go/strings/replace.go \
-       go/strings/search.go \
-       go/strings/strings.go \
-       go/strings/strings_decl.go \
-       go/strings/strings_generic.go
-go_strings_c_files = \
-       go/strings/indexbyte.c
-
-go_sync_files = \
-       go/sync/cond.go \
-       go/sync/mutex.go \
-       go/sync/once.go \
-       go/sync/pool.go \
-       go/sync/runtime.go \
-       go/sync/rwmutex.go \
-       go/sync/waitgroup.go
-
-if LIBGO_IS_SOLARIS
-go_syslog_file = go/log/syslog/syslog_libc.go
-else
-if LIBGO_IS_IRIX
-go_syslog_file = go/log/syslog/syslog_libc.go
-else
-go_syslog_file = go/log/syslog/syslog_unix.go
-endif
-endif
-
-go_log_syslog_files = \
-       go/log/syslog/doc.go \
-       go/log/syslog/syslog.go \
-       $(go_syslog_file)
-go_syslog_c_files = \
-       go/log/syslog/syslog_c.c
-
-go_testing_files = \
-       go/testing/allocs.go \
-       go/testing/benchmark.go \
-       go/testing/cover.go \
-       go/testing/example.go \
-       go/testing/match.go \
-       go/testing/testing.go
-
-go_time_files = \
-       go/time/format.go \
-       go/time/sleep.go \
-       go/time/sys_unix.go \
-       go/time/tick.go \
-       go/time/time.go \
-       go/time/zoneinfo.go \
-       go/time/zoneinfo_read.go \
-       go/time/zoneinfo_unix.go
-
-go_unicode_files = \
-       go/unicode/casetables.go \
-       go/unicode/digit.go \
-       go/unicode/graphic.go \
-       go/unicode/letter.go \
-       go/unicode/tables.go
-
 if LIBGO_IS_LINUX
-archive_tar_atim_file = go/archive/tar/stat_atim.go
-endif
-if LIBGO_IS_OPENBSD
-archive_tar_atim_file = go/archive/tar/stat_atim.go
-endif
-if LIBGO_IS_SOLARIS
-archive_tar_atim_file = go/archive/tar/stat_atim.go
-endif
-if LIBGO_IS_DARWIN
-archive_tar_atim_file = go/archive/tar/stat_atimespec.go
-endif
-if LIBGO_IS_FREEBSD
-archive_tar_atim_file = go/archive/tar/stat_atimespec.go
-endif
-if LIBGO_IS_NETBSD
-archive_tar_atim_file = go/archive/tar/stat_atimespec.go
-endif
-
-go_archive_tar_files = \
-       go/archive/tar/common.go \
-       go/archive/tar/format.go \
-       go/archive/tar/reader.go \
-       go/archive/tar/stat_unix.go \
-       go/archive/tar/writer.go \
-       $(archive_tar_atim_file)
-
-go_archive_zip_files = \
-       go/archive/zip/reader.go \
-       go/archive/zip/register.go \
-       go/archive/zip/struct.go \
-       go/archive/zip/writer.go
-
-go_compress_bzip2_files = \
-       go/compress/bzip2/bit_reader.go \
-       go/compress/bzip2/bzip2.go \
-       go/compress/bzip2/huffman.go \
-       go/compress/bzip2/move_to_front.go
-
-go_compress_flate_files = \
-       go/compress/flate/deflate.go \
-       go/compress/flate/deflatefast.go \
-       go/compress/flate/dict_decoder.go \
-       go/compress/flate/huffman_bit_writer.go \
-       go/compress/flate/huffman_code.go \
-       go/compress/flate/inflate.go \
-       go/compress/flate/reverse_bits.go \
-       go/compress/flate/token.go
-
-go_compress_gzip_files = \
-       go/compress/gzip/gzip.go \
-       go/compress/gzip/gunzip.go
-
-go_compress_lzw_files = \
-       go/compress/lzw/reader.go \
-       go/compress/lzw/writer.go
-
-go_compress_zlib_files = \
-       go/compress/zlib/reader.go \
-       go/compress/zlib/writer.go
-
-go_container_heap_files = \
-       go/container/heap/heap.go
-
-go_container_list_files = \
-       go/container/list/list.go
-
-go_container_ring_files = \
-       go/container/ring/ring.go
-
-go_crypto_aes_files = \
-       go/crypto/aes/block.go \
-       go/crypto/aes/cipher.go \
-       go/crypto/aes/cipher_generic.go \
-       go/crypto/aes/const.go \
-       go/crypto/aes/modes.go
-go_crypto_cipher_files = \
-       go/crypto/cipher/cbc.go \
-       go/crypto/cipher/cfb.go \
-       go/crypto/cipher/cipher.go \
-       go/crypto/cipher/ctr.go \
-       go/crypto/cipher/gcm.go \
-       go/crypto/cipher/io.go \
-       go/crypto/cipher/ofb.go \
-       go/crypto/cipher/xor.go
-go_crypto_des_files = \
-       go/crypto/des/block.go \
-       go/crypto/des/cipher.go \
-       go/crypto/des/const.go
-go_crypto_dsa_files = \
-       go/crypto/dsa/dsa.go
-go_crypto_ecdsa_files = \
-       go/crypto/ecdsa/ecdsa.go
-go_crypto_elliptic_files = \
-       go/crypto/elliptic/elliptic.go \
-       go/crypto/elliptic/p224.go \
-       go/crypto/elliptic/p256.go
-go_crypto_hmac_files = \
-       go/crypto/hmac/hmac.go
-go_crypto_md5_files = \
-       go/crypto/md5/md5.go \
-       go/crypto/md5/md5block.go \
-       go/crypto/md5/md5block_generic.go
-
-if LIBGO_IS_LINUX
-crypto_rand_file = go/crypto/rand/rand_linux.go
-else
-if LIBGO_IS_OPENBSD
-crypto_rand_file = go/crypto/rand/rand_openbsd.go
+syscall_epoll_file = epoll.go
 else
-crypto_rand_file =
+syscall_epoll_file =
 endif
-endif
-
-go_crypto_rand_files = \
-       go/crypto/rand/eagain.go \
-       go/crypto/rand/rand.go \
-       go/crypto/rand/rand_unix.go \
-       $(crypto_rand_file) \
-       go/crypto/rand/util.go
-
-go_crypto_rc4_files = \
-       go/crypto/rc4/rc4.go \
-       go/crypto/rc4/rc4_ref.go
-go_crypto_rsa_files = \
-       go/crypto/rsa/pkcs1v15.go \
-       go/crypto/rsa/pss.go \
-       go/crypto/rsa/rsa.go
-go_crypto_sha1_files = \
-       go/crypto/sha1/sha1.go \
-       go/crypto/sha1/sha1block.go \
-       go/crypto/sha1/sha1block_generic.go
-go_crypto_sha256_files = \
-       go/crypto/sha256/sha256.go \
-       go/crypto/sha256/sha256block.go \
-       go/crypto/sha256/sha256block_generic.go
-go_crypto_sha512_files = \
-       go/crypto/sha512/sha512.go \
-       go/crypto/sha512/sha512block.go \
-       go/crypto/sha512/sha512block_generic.go
-go_crypto_subtle_files = \
-       go/crypto/subtle/constant_time.go
-go_crypto_tls_files = \
-       go/crypto/tls/alert.go \
-       go/crypto/tls/cipher_suites.go \
-       go/crypto/tls/common.go \
-       go/crypto/tls/conn.go \
-       go/crypto/tls/handshake_client.go \
-       go/crypto/tls/handshake_messages.go \
-       go/crypto/tls/handshake_server.go \
-       go/crypto/tls/key_agreement.go \
-       go/crypto/tls/prf.go \
-       go/crypto/tls/ticket.go \
-       go/crypto/tls/tls.go
 
-if LIBGO_IS_LINUX
-go_crypto_x509_root_file = go/crypto/x509/root_linux.go
-else
-if LIBGO_IS_SOLARIS
-go_crypto_x509_root_file = go/crypto/x509/root_solaris.go
-else
-if LIBGO_IS_DRAGONFLY
-go_crypto_x509_root_file = go/crypto/x509/root_bsd.go
-else
-if LIBGO_IS_FREEBSD
-go_crypto_x509_root_file = go/crypto/x509/root_bsd.go
-else
-if LIBGO_IS_NETBSD
-go_crypto_x509_root_file = go/crypto/x509/root_bsd.go
-else
-if LIBGO_IS_OPENBSD
-go_crypto_x509_root_file = go/crypto/x509/root_bsd.go
-else
-if LIBGO_IS_DARWIN
-go_crypto_x509_root_file = go/crypto/x509/root_darwin.go
-else
-go_crypto_x509_root_file =
-endif
-endif
-endif
-endif
-endif
-endif
-endif
-
-go_crypto_x509_files = \
-       go/crypto/x509/cert_pool.go \
-       go/crypto/x509/pem_decrypt.go \
-       go/crypto/x509/pkcs1.go \
-       go/crypto/x509/pkcs8.go \
-       go/crypto/x509/root.go \
-       go/crypto/x509/root_unix.go \
-       $(go_crypto_x509_root_file) \
-       go/crypto/x509/sec1.go \
-       go/crypto/x509/verify.go \
-       go/crypto/x509/x509.go
-
-go_crypto_x509_pkix_files = \
-       go/crypto/x509/pkix/pkix.go
-
-go_database_sql_files = \
-       go/database/sql/convert.go \
-       go/database/sql/sql.go
-
-go_database_sql_driver_files = \
-       go/database/sql/driver/driver.go \
-       go/database/sql/driver/types.go
-
-go_debug_dwarf_files = \
-       go/debug/dwarf/buf.go \
-       go/debug/dwarf/class_string.go \
-       go/debug/dwarf/const.go \
-       go/debug/dwarf/entry.go \
-       go/debug/dwarf/line.go \
-       go/debug/dwarf/open.go \
-       go/debug/dwarf/type.go \
-       go/debug/dwarf/typeunit.go \
-       go/debug/dwarf/unit.go
-go_debug_elf_files = \
-       go/debug/elf/elf.go \
-       go/debug/elf/file.go \
-       go/debug/elf/reader.go
-go_debug_gosym_files = \
-       go/debug/gosym/pclntab.go \
-       go/debug/gosym/symtab.go
-go_debug_macho_files = \
-       go/debug/macho/fat.go \
-       go/debug/macho/file.go \
-       go/debug/macho/macho.go
-go_debug_pe_files = \
-       go/debug/pe/file.go \
-       go/debug/pe/pe.go \
-       go/debug/pe/section.go \
-       go/debug/pe/string.go \
-       go/debug/pe/symbol.go
-go_debug_plan9obj_files = \
-       go/debug/plan9obj/file.go \
-       go/debug/plan9obj/plan9obj.go
-
-go_encoding_ascii85_files = \
-       go/encoding/ascii85/ascii85.go
-go_encoding_asn1_files = \
-       go/encoding/asn1/asn1.go \
-       go/encoding/asn1/common.go \
-       go/encoding/asn1/marshal.go
-go_encoding_base32_files = \
-       go/encoding/base32/base32.go
-go_encoding_base64_files = \
-       go/encoding/base64/base64.go
-go_encoding_binary_files = \
-       go/encoding/binary/binary.go \
-       go/encoding/binary/varint.go
-go_encoding_csv_files = \
-       go/encoding/csv/reader.go \
-       go/encoding/csv/writer.go
-go_encoding_gob_files = \
-       go/encoding/gob/decode.go \
-       go/encoding/gob/decoder.go \
-       go/encoding/gob/dec_helpers.go \
-       go/encoding/gob/doc.go \
-       go/encoding/gob/encode.go \
-       go/encoding/gob/encoder.go \
-       go/encoding/gob/enc_helpers.go \
-       go/encoding/gob/error.go \
-       go/encoding/gob/type.go
-go_encoding_hex_files = \
-       go/encoding/hex/hex.go
-go_encoding_json_files = \
-       go/encoding/json/decode.go \
-       go/encoding/json/encode.go \
-       go/encoding/json/fold.go \
-       go/encoding/json/indent.go \
-       go/encoding/json/scanner.go \
-       go/encoding/json/stream.go \
-       go/encoding/json/tags.go
-go_encoding_pem_files = \
-       go/encoding/pem/pem.go
-go_encoding_xml_files = \
-       go/encoding/xml/marshal.go \
-       go/encoding/xml/read.go \
-       go/encoding/xml/typeinfo.go \
-       go/encoding/xml/xml.go
-
-go_exp_proxy_files = \
-       go/exp/proxy/direct.go \
-       go/exp/proxy/per_host.go \
-       go/exp/proxy/proxy.go \
-       go/exp/proxy/socks5.go
-go_exp_terminal_files = \
-       go/exp/terminal/terminal.go \
-       go/exp/terminal/util.go
-
-go_go_ast_files = \
-       go/go/ast/ast.go \
-       go/go/ast/commentmap.go \
-       go/go/ast/filter.go \
-       go/go/ast/import.go \
-       go/go/ast/print.go \
-       go/go/ast/resolve.go \
-       go/go/ast/scope.go \
-       go/go/ast/walk.go
-go_go_build_files = \
-       go/go/build/build.go \
-       go/go/build/doc.go \
-       go/go/build/read.go \
-       go/go/build/syslist.go
-go_go_constant_files = \
-       go/go/constant/value.go
-go_go_doc_files = \
-       go/go/doc/comment.go \
-       go/go/doc/doc.go \
-       go/go/doc/example.go \
-       go/go/doc/exports.go \
-       go/go/doc/filter.go \
-       go/go/doc/reader.go \
-       go/go/doc/synopsis.go
-go_go_format_files = \
-       go/go/format/format.go \
-       go/go/format/internal.go
-go_go_importer_files = \
-       go/go/importer/importer.go
-go_go_parser_files = \
-       go/go/parser/interface.go \
-       go/go/parser/parser.go
-go_go_printer_files = \
-       go/go/printer/nodes.go \
-       go/go/printer/printer.go
-go_go_scanner_files = \
-       go/go/scanner/errors.go \
-       go/go/scanner/scanner.go
-go_go_token_files = \
-       go/go/token/position.go \
-       go/go/token/serialize.go \
-       go/go/token/token.go
-go_go_types_files = \
-       go/go/types/api.go \
-       go/go/types/assignments.go \
-       go/go/types/builtins.go \
-       go/go/types/call.go \
-       go/go/types/check.go \
-       go/go/types/conversions.go \
-       go/go/types/decl.go \
-       go/go/types/errors.go \
-       go/go/types/eval.go \
-       go/go/types/expr.go \
-       go/go/types/exprstring.go \
-       go/go/types/initorder.go \
-       go/go/types/labels.go \
-       go/go/types/lookup.go \
-       go/go/types/methodset.go \
-       go/go/types/object.go \
-       go/go/types/objset.go \
-       go/go/types/operand.go \
-       go/go/types/ordering.go \
-       go/go/types/package.go \
-       go/go/types/predicates.go \
-       go/go/types/resolver.go \
-       go/go/types/return.go \
-       go/go/types/scope.go \
-       go/go/types/selection.go \
-       go/go/types/stmt.go \
-       go/go/types/sizes.go \
-       go/go/types/type.go \
-       go/go/types/typestring.go \
-       go/go/types/typexpr.go \
-       go/go/types/universe.go
-
-go_go_internal_gcimporter_files = \
-       go/go/internal/gcimporter/bimport.go \
-       go/go/internal/gcimporter/exportdata.go \
-       go/go/internal/gcimporter/gcimporter.go
-go_go_internal_gccgoimporter_files = \
-       go/go/internal/gccgoimporter/gccgoinstallation.go \
-       go/go/internal/gccgoimporter/importer.go \
-       go/go/internal/gccgoimporter/parser.go
-
-go_golang_org_x_net_http2_hpack_files = \
-       go/golang_org/x/net/http2/hpack/encode.go \
-       go/golang_org/x/net/http2/hpack/hpack.go \
-       go/golang_org/x/net/http2/hpack/huffman.go \
-       go/golang_org/x/net/http2/hpack/tables.go
-
-go_golang_org_x_net_lex_httplex_files = \
-       go/golang_org/x/net/lex/httplex/httplex.go
-
-if LIBGO_IS_BSD
-
-if LIBGO_IS_DARWIN
-x_net_route_files =
-       go/golang_org/x/net/route/interface_classic.go \
-       go/golang_org/x/net/route/interface_multicast.go \
-       go/golang_org/x/net/route/route_classic.go \
-       go/golang_org/x/net/route/sys_darwin.go \
-       go/golang_org/x/net/route/zsys_darwin.go
-endif
-if LIBGO_IS_DRAGONFLY
-x_net_route_files =
-       go/golang_org/x/net/route/interface_announce.go \
-       go/golang_org/x/net/route/interface_classic.go \
-       go/golang_org/x/net/route/interface_multicast.go \
-       go/golang_org/x/net/route/route_classic.go \
-       go/golang_org/x/net/route/sys_dragonfly.go \
-       go/golang_org/x/net/route/zsys_dragonfly.go
-endif
-if LIBGO_IS_FREEBSD
-if LIBGO_IS_386
-x_net_route_freebsd_file =
-       go/golang_org/x/net/route/zsys_freebsd_386.go
-endif
-if LIBGO_IS_X86_64
-x_net_route_freebsd_file =
-       go/golang_org/x/net/route/zsys_freebsd_amd64.go
-endif
-if LIBGO_IS_ARM
-x_net_route_freebsd_file =
-       go/golang_org/x/net/route/zsys_freebsd_arm.go
-endif
-x_net_route_files =
-       go/golang_org/x/net/route/interface_announce.go \
-       go/golang_org/x/net/route/interface_freebsd.go \
-       go/golang_org/x/net/route/interface_multicast.go \
-       go/golang_org/x/net/route/route_classic.go \
-       go/golang_org/x/net/route/sys_freebsd.go \
-       $(x_net_route_freebsd_file)
-endif
-if LIBGO_IS_NETBSD
-x_net_route_files =
-       go/golang_org/x/net/route/interface_announce.go \
-       go/golang_org/x/net/route/interface_classic.go \
-       go/golang_org/x/net/route/route_classic.go \
-       go/golang_org/x/net/route/sys_netbsd.go \
-       go/golang_org/x/net/route/zsys_netbsd.go
-endif
-if LIBGO_IS_OPENBSD
-x_net_route_files =
-       go/golang_org/x/net/route/route_openbsd.go \
-       go/golang_org/x/net/route/sys_openbsd.go \
-       go/golang_org/x/net/route/zsys_openbsd.go
-endif
-
-go_golang_org_x_net_route_files = \
-       go/golang_org/x/net/route/address.go \
-       go/golang_org/x/net/route/binary.go \
-       go/golang_org/x/net/route/interface.go \
-       go/golang_org/x/net/route/message.go \
-       go/golang_org/x/net/route/route.go \
-       go/golang_org/x/net/route/syscall.go \
-       go/golang_org/x/net/route/sys.go \
-       $(x_net_route_files)
-
-golang_org_x_net_route_lo = \
-       golang_org/x/net/route/route.lo
-golang_org_x_net_route_check = \
-       golang_org/x/net/route/check
-
-endif
-
-go_hash_adler32_files = \
-       go/hash/adler32/adler32.go
-go_hash_crc32_files = \
-       go/hash/crc32/crc32.go \
-       go/hash/crc32/crc32_generic.go
-go_hash_crc64_files = \
-       go/hash/crc64/crc64.go
-go_hash_fnv_files = \
-       go/hash/fnv/fnv.go
-
-go_html_template_files = \
-       go/html/template/attr.go \
-       go/html/template/content.go \
-       go/html/template/context.go \
-       go/html/template/css.go \
-       go/html/template/doc.go \
-       go/html/template/error.go \
-       go/html/template/escape.go \
-       go/html/template/html.go \
-       go/html/template/js.go \
-       go/html/template/template.go \
-       go/html/template/transition.go \
-       go/html/template/url.go
-
-go_image_color_files = \
-       go/image/color/color.go \
-       go/image/color/ycbcr.go
-
-go_image_color_palette_files = \
-       go/image/color/palette/palette.go
-
-go_image_draw_files = \
-       go/image/draw/draw.go
-
-go_image_gif_files = \
-       go/image/gif/reader.go \
-       go/image/gif/writer.go
-
-go_image_internal_imageutil_files = \
-       go/image/internal/imageutil/imageutil.go \
-       go/image/internal/imageutil/impl.go
-
-go_image_jpeg_files = \
-       go/image/jpeg/fdct.go \
-       go/image/jpeg/huffman.go \
-       go/image/jpeg/idct.go \
-       go/image/jpeg/reader.go \
-       go/image/jpeg/scan.go \
-       go/image/jpeg/writer.go
-
-go_image_png_files = \
-       go/image/png/paeth.go \
-       go/image/png/reader.go \
-       go/image/png/writer.go
-
-go_index_suffixarray_files = \
-       go/index/suffixarray/qsufsort.go \
-       go/index/suffixarray/suffixarray.go
-
-go_internal_nettrace_files = \
-       go/internal/nettrace/nettrace.go
-go_internal_race_files = \
-       go/internal/race/doc.go \
-       go/internal/race/norace.go
-go_internal_singleflight_files = \
-       go/internal/singleflight/singleflight.go
-
-if LIBGO_IS_LINUX
-if LIBGO_IS_386
-internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_386.go
-else
-if LIBGO_IS_X86_64
-internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_amd64.go
-else
-if LIBGO_IS_ARM
-internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_arm.go
-else
-if LIBGO_IS_PPC64
-internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_ppc64x.go
-else
-if LIBGO_IS_MIPS64
-internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_mips64x.go
-else
-if LIBGO_IS_S390X
-internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_s390x.go
-else
-internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_generic.go
-endif
-endif
-endif
-endif
-endif
-endif
-else
-if LIBGO_IS_OPENBSD
-internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getentropy_openbsd.go
-else
-internal_syscall_unix_getrandom_files =
-endif
-endif
-
-go_internal_syscall_unix_files = \
-       go/internal/syscall/unix/dummy.go \
-       $(internal_syscall_unix_getrandom_files)
-
-go_internal_testenv_files = \
-       go/internal/testenv/testenv.go
-go_internal_trace_files = \
-       go/internal/trace/goroutines.go \
-       go/internal/trace/order.go \
-       go/internal/trace/parser.go
-
-go_io_ioutil_files = \
-       go/io/ioutil/ioutil.go \
-       go/io/ioutil/tempfile.go
-
-go_math_big_files = \
-       go/math/big/accuracy_string.go \
-       go/math/big/arith.go \
-       go/math/big/arith_decl_pure.go \
-       go/math/big/decimal.go \
-       go/math/big/doc.go \
-       go/math/big/float.go \
-       go/math/big/floatconv.go \
-       go/math/big/floatmarsh.go \
-       go/math/big/ftoa.go \
-       go/math/big/int.go \
-       go/math/big/intmarsh.go \
-       go/math/big/intconv.go \
-       go/math/big/nat.go \
-       go/math/big/natconv.go \
-       go/math/big/rat.go \
-       go/math/big/ratconv.go \
-       go/math/big/ratmarsh.go \
-       go/math/big/roundingmode_string.go
-go_math_cmplx_files = \
-       go/math/cmplx/abs.go \
-       go/math/cmplx/asin.go \
-       go/math/cmplx/conj.go \
-       go/math/cmplx/exp.go \
-       go/math/cmplx/isinf.go \
-       go/math/cmplx/isnan.go \
-       go/math/cmplx/log.go \
-       go/math/cmplx/phase.go \
-       go/math/cmplx/polar.go \
-       go/math/cmplx/pow.go \
-       go/math/cmplx/rect.go \
-       go/math/cmplx/sin.go \
-       go/math/cmplx/sqrt.go \
-       go/math/cmplx/tan.go
-go_math_rand_files = \
-       go/math/rand/exp.go \
-       go/math/rand/normal.go \
-       go/math/rand/rand.go \
-       go/math/rand/rng.go \
-       go/math/rand/zipf.go
-
-go_mime_multipart_files = \
-       go/mime/multipart/formdata.go \
-       go/mime/multipart/multipart.go \
-       go/mime/multipart/writer.go
-
-go_mime_quotedprintable_files = \
-       go/mime/quotedprintable/reader.go \
-       go/mime/quotedprintable/writer.go
-
-go_net_http_files = \
-       go/net/http/client.go \
-       go/net/http/cookie.go \
-       go/net/http/filetransport.go \
-       go/net/http/fs.go \
-       go/net/http/h2_bundle.go \
-       go/net/http/header.go \
-       go/net/http/http.go \
-       go/net/http/jar.go \
-       go/net/http/method.go \
-       go/net/http/request.go \
-       go/net/http/response.go \
-       go/net/http/server.go \
-       go/net/http/sniff.go \
-       go/net/http/status.go \
-       go/net/http/transfer.go \
-       go/net/http/transport.go
-go_net_mail_files = \
-       go/net/mail/message.go
-go_net_smtp_files = \
-       go/net/smtp/auth.go \
-       go/net/smtp/smtp.go
-go_net_textproto_files = \
-       go/net/textproto/header.go \
-       go/net/textproto/pipeline.go \
-       go/net/textproto/reader.go \
-       go/net/textproto/textproto.go \
-       go/net/textproto/writer.go
-go_net_url_files = \
-       go/net/url/url.go
-
-go_net_http_cgi_files = \
-       go/net/http/cgi/child.go \
-       go/net/http/cgi/host.go
-go_net_http_cookiejar_files = \
-       go/net/http/cookiejar/jar.go \
-       go/net/http/cookiejar/punycode.go
-go_net_http_fcgi_files = \
-       go/net/http/fcgi/child.go \
-       go/net/http/fcgi/fcgi.go
-go_net_http_httptest_files = \
-       go/net/http/httptest/httptest.go \
-       go/net/http/httptest/recorder.go \
-       go/net/http/httptest/server.go
-go_net_http_pprof_files = \
-       go/net/http/pprof/pprof.go
-go_net_http_httptrace_files = \
-       go/net/http/httptrace/trace.go
-go_net_http_httputil_files = \
-       go/net/http/httputil/dump.go \
-       go/net/http/httputil/httputil.go \
-       go/net/http/httputil/persist.go \
-       go/net/http/httputil/reverseproxy.go
-go_net_http_internal_files = \
-       go/net/http/internal/chunked.go \
-       go/net/http/internal/testcert.go
-
-if LIBGO_IS_LINUX
-go_net_internal_socktest_sys = go/net/internal/socktest/sys_cloexec.go
-else
-if LIBGO_IS_FREEBSD
-go_net_internal_socktest_sys = go/net/internal/socktest/sys_cloexec.go
-else
-go_net_internal_socktest_sys =
-endif
-endif
-
-go_net_internal_socktest_files = \
-       go/net/internal/socktest/switch.go \
-       go/net/internal/socktest/switch_posix.go \
-       go/net/internal/socktest/switch_unix.go \
-       go/net/internal/socktest/sys_unix.go \
-       $(go_net_internal_socktest_sys)
-
-go_old_regexp_files = \
-       go/old/regexp/regexp.go
-go_old_template_files = \
-       go/old/template/doc.go \
-       go/old/template/execute.go \
-       go/old/template/format.go \
-       go/old/template/parse.go
-
-go_os_exec_files = \
-       go/os/exec/exec.go \
-       go/os/exec/exec_posix.go \
-       go/os/exec/lp_unix.go
-
-go_os_signal_files = \
-       go/os/signal/doc.go \
-       go/os/signal/signal.go \
-       go/os/signal/signal_unix.go
-
-if LIBGO_IS_SOLARIS
-os_user_decls_file = go/os/user/decls_solaris.go
-os_user_listgroups_file = go/os/user/listgroups_solaris.go
-else
-os_user_decls_file = go/os/user/decls_unix.go
-os_user_listgroups_file = go/os/user/listgroups_unix.go
-endif
-
-go_os_user_files = \
-       go/os/user/lookup.go \
-       go/os/user/lookup_unix.go \
-       go/os/user/user.go \
-       $(os_user_decls_file) \
-       $(os_user_listgroups_file)
-
-go_path_filepath_files = \
-       go/path/filepath/match.go \
-       go/path/filepath/path.go \
-       go/path/filepath/path_unix.go \
-       go/path/filepath/symlink.go \
-       go/path/filepath/symlink_unix.go
-
-go_regexp_syntax_files = \
-       go/regexp/syntax/compile.go \
-       go/regexp/syntax/doc.go \
-       go/regexp/syntax/parse.go \
-       go/regexp/syntax/perl_groups.go \
-       go/regexp/syntax/prog.go \
-       go/regexp/syntax/regexp.go \
-       go/regexp/syntax/simplify.go
-
-go_net_rpc_jsonrpc_files = \
-       go/net/rpc/jsonrpc/client.go \
-       go/net/rpc/jsonrpc/server.go
-
-go_runtime_debug_files = \
-       go/runtime/debug/garbage.go \
-       go/runtime/debug/stack.go
-go_runtime_pprof_files = \
-       go/runtime/pprof/pprof.go
-
-go_text_tabwriter_files = \
-       go/text/tabwriter/tabwriter.go
-go_text_template_files = \
-       go/text/template/doc.go \
-       go/text/template/exec.go \
-       go/text/template/funcs.go \
-       go/text/template/helper.go \
-       go/text/template/option.go \
-       go/text/template/template.go
-go_text_template_parse_files = \
-       go/text/template/parse/lex.go \
-       go/text/template/parse/node.go \
-       go/text/template/parse/parse.go
-
-go_sync_atomic_files = \
-       go/sync/atomic/doc.go \
-       go/sync/atomic/value.go
-go_sync_atomic_c_files = \
-       go/sync/atomic/atomic.c
-
-go_testing_iotest_files = \
-       go/testing/iotest/logger.go \
-       go/testing/iotest/reader.go \
-       go/testing/iotest/writer.go
-go_testing_quick_files = \
-       go/testing/quick/quick.go
-
-go_text_scanner_files = \
-       go/text/scanner/scanner.go
-
-go_unicode_utf16_files = \
-       go/unicode/utf16/utf16.go
-go_unicode_utf8_files = \
-       go/unicode/utf8/utf8.go
-
-# Define Syscall and Syscall6.
-if LIBGO_IS_RTEMS
-syscall_syscall_file = go/syscall/syscall_stubs.go
-else
-syscall_syscall_file = go/syscall/syscall_unix.go
-endif
-
-# Define ForkExec and Exec.
-if LIBGO_IS_RTEMS
-syscall_exec_file = go/syscall/exec_stubs.go
-syscall_exec_os_file =
-else
-if LIBGO_IS_LINUX
-syscall_exec_file = go/syscall/exec_unix.go
-syscall_exec_os_file = go/syscall/exec_linux.go
-else
-syscall_exec_file = go/syscall/exec_unix.go
-syscall_exec_os_file = go/syscall/exec_bsd.go
-endif
-endif
-
-# Define Wait4.
-if LIBGO_IS_RTEMS
-syscall_wait_file =
-else
-if HAVE_WAIT4
-syscall_wait_file = go/syscall/libcall_wait4.go
-else
-syscall_wait_file = go/syscall/libcall_waitpid.go
-endif
-endif
-
-# Support for pulling apart wait status.
-if LIBGO_IS_RTEMS
-syscall_wait_c_file =
-else
-syscall_wait_c_file = go/syscall/wait.c
-endif
-
-# Define Sleep.
-if LIBGO_IS_RTEMS
-syscall_sleep_file = go/syscall/sleep_rtems.go
-else
-syscall_sleep_file = go/syscall/sleep_select.go
-endif
-
-# Define Errstr.
-if LIBGO_IS_LINUX
-syscall_errstr_file = go/syscall/errstr_linux.go
-else
-if LIBGO_IS_RTEMS
-syscall_errstr_file = go/syscall/errstr_linux.go
-else
-if HAVE_STRERROR_R
-syscall_errstr_file = go/syscall/errstr.go
-else
-syscall_errstr_file = go/syscall/errstr_nor.go
-endif
-endif
-endif
-
-# Declare libc functions that vary for largefile systems.
-if LIBGO_IS_LINUX
-# Always use lseek64 on GNU/Linux.
-syscall_size_file = go/syscall/libcall_posix_largefile.go
-else # !LIBGO_IS_LINUX
-if LIBGO_IS_SOLARIS
-if LIBGO_IS_386
-# Use lseek64 on 32-bit Solaris/x86.
-syscall_size_file = go/syscall/libcall_posix_largefile.go
-else # !LIBGO_IS_386
-if LIBGO_IS_SPARC
-# Use lseek64 on 32-bit Solaris/SPARC.
-syscall_size_file = go/syscall/libcall_posix_largefile.go
-else # !LIBGO_IS_386 && !LIBGO_IS_SPARC
-# Use lseek on 64-bit Solaris.
-syscall_size_file = go/syscall/libcall_posix_regfile.go
-endif # !LIBGO_IS_386 && !LIBGO_IS_SPARC
-endif # !LIBGO_IS_SOLARIS
-else # !LIBGO_IS_LINUX && !LIBGO_IS_SOLARIS
-# Use lseek by default.
-syscall_size_file = go/syscall/libcall_posix_regfile.go
-endif # !LIBGO_IS_SOLARIS
-endif # !LIBGO_IS_LINUX
-
-# Define socket sizes and types.
-if LIBGO_IS_LINUX
-syscall_socket_file = go/syscall/socket_linux.go epoll.go
-if LIBGO_IS_PPC64LE
-syscall_socket_type_file = go/syscall/socket_linux_ppc64x_type.go
-else
-if LIBGO_IS_PPC64
-syscall_socket_type_file = go/syscall/socket_linux_ppc64x_type.go
-else
-syscall_socket_type_file = go/syscall/socket_linux_type.go
-endif
-endif
-else
-syscall_socket_type_file =
-if LIBGO_IS_SOLARIS
-syscall_socket_file = go/syscall/socket_solaris.go
-else
-if LIBGO_IS_IRIX
-syscall_socket_file = go/syscall/socket_irix.go
-else
-syscall_socket_file = go/syscall/socket_bsd.go
-endif
-endif
-endif
-
-# Define socket functions.
-if LIBGO_IS_SOLARIS
-syscall_socket_os_file = go/syscall/socket_xnet.go
-else
-syscall_socket_os_file = go/syscall/socket_posix.go
-endif
-
-# Support for uname.
-if LIBGO_IS_SOLARIS
-if LIBGO_IS_386
-# 32-bit Solaris 2/x86 needs _nuname, handled in libcall_solaris_386.go.
-syscall_uname_file =
-else # !LIBGO_IS_386 && LIBGO_IS_SOLARIS
-syscall_uname_file = go/syscall/libcall_uname.go
-endif
-else # !LIBGO_IS_SOLARIS
-syscall_uname_file = go/syscall/libcall_uname.go
-endif
-
-# GNU/Linux specific socket control messages.
-if LIBGO_IS_LINUX
-syscall_sockcmsg_file = go/syscall/sockcmsg_linux.go
-else
-syscall_sockcmsg_file =
-endif
-
-# Support for netlink sockets and messages.
-if LIBGO_IS_LINUX
-syscall_netlink_file = go/syscall/netlink_linux.go
-else
-syscall_netlink_file =
-endif
-
-# GNU/Linux specific socket filters.
-if LIBGO_IS_LINUX
-syscall_lsf_file = go/syscall/lsf_linux.go
-else
-syscall_lsf_file =
-endif
-
-# GNU/Linux specific ustat support.
-if LIBGO_IS_LINUX
-if LIBGO_IS_ARM64
-syscall_ustat_file =
-else
-syscall_ustat_file = go/syscall/libcall_linux_ustat.go
-endif
-else
-syscall_ustat_file =
-endif
-
-# GNU/Linux specific utimesnano support.
-if LIBGO_IS_LINUX
-syscall_utimesnano_file = go/syscall/libcall_linux_utimesnano.go
-else
-syscall_utimesnano_file = go/syscall/libcall_posix_utimesnano.go
-endif
-
-# Test files.
-if LIBGO_IS_LINUX
-syscall_creds_test_file = go/syscall/creds_test.go
-else
-syscall_creds_test_file =
-endif
-
-if LIBGO_IS_LINUX
-syscall_exec_test_file = go/syscall/exec_linux_test.go go/syscall/syscall_linux_test.go
-else
-syscall_exec_test_file =
-endif
-
-if LIBGO_IS_LINUX
-syscall_os_file =
-else
-syscall_os_file = go/syscall/libcall_bsd.go
-endif
-
-go_base_syscall_files = \
-       go/syscall/env_unix.go \
-       go/syscall/syscall_errno.go \
-       go/syscall/libcall_support.go \
-       go/syscall/libcall_posix.go \
-       go/syscall/msan0.go \
-       go/syscall/socket.go \
-       go/syscall/sockcmsg_unix.go \
-       go/syscall/str.go \
-       go/syscall/syscall.go \
-       $(syscall_sockcmsg_file) \
-       $(syscall_syscall_file) \
-       $(syscall_exec_file) \
-       $(syscall_exec_os_file) \
-       $(syscall_wait_file) \
-       $(syscall_sleep_file) \
-       $(syscall_errstr_file) \
-       $(syscall_size_file) \
-       $(syscall_os_file) \
-       $(syscall_socket_file) \
-       $(syscall_socket_os_file) \
-       $(syscall_socket_type_file) \
-       $(syscall_uname_file) \
-       $(syscall_netlink_file) \
-       $(syscall_lsf_file) \
-       $(syscall_ustat_file) \
-       $(syscall_utimesnano_file) \
-       $(GO_LIBCALL_OS_FILE) \
-       $(GO_LIBCALL_OS_ARCH_FILE) \
-       $(GO_SYSCALL_OS_FILE) \
-       $(GO_SYSCALL_OS_ARCH_FILE)
-
-go_syscall_files = \
-       $(go_base_syscall_files) \
+extra_go_files_syscall = \
        libcalls.go \
        sysinfo.go \
-       syscall_arch.go
-go_syscall_c_files = \
-       go/syscall/errno.c \
-       go/syscall/signame.c \
-       $(syscall_wait_c_file)
-
-go_syscall_test_files = \
-       $(syscall_creds_test_file) \
-       $(syscall_exec_test_file) \
-       go/syscall/exec_unix_test.go \
-       go/syscall/export_test.go \
-       go/syscall/export_unix_test.go \
-       go/syscall/mmap_unix_test.go \
-       go/syscall/syscall_test.go \
-       go/syscall/syscall_unix_test.go
+       syscall_arch.go \
+       $(syscall_epoll_file)
 
 libcalls.go: s-libcalls; @true
-s-libcalls: libcalls-list go/syscall/mksyscall.awk $(go_base_syscall_files)
+s-libcalls: libcalls-list go/syscall/mksyscall.awk $(srcdir)/go/syscall/*.go
        rm -f libcalls.go.tmp
-       files=`echo $^ | sed -e 's/libcalls-list//' -e 's|[^ ]*go/syscall/mksyscall.awk||'`; \
-       $(AWK) -f $(srcdir)/go/syscall/mksyscall.awk $${files} > libcalls.go.tmp
+       $(AWK) -f $(srcdir)/go/syscall/mksyscall.awk `cat libcalls-list` > libcalls.go.tmp
        $(SHELL) $(srcdir)/mvifdiff.sh libcalls.go.tmp libcalls.go
        $(STAMP) $@
 
 libcalls-list: s-libcalls-list; @true
-s-libcalls-list: Makefile
+s-libcalls-list: Makefile $(srcdir)/go/syscall/*.go
        rm -f libcalls-list.tmp
-       echo $(go_base_syscall_files) > libcalls-list.tmp
+       $(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/syscall $(matchargs_syscall) > libcalls-list.tmp
        $(SHELL) $(srcdir)/mvifdiff.sh libcalls-list.tmp libcalls-list
        $(STAMP) $@
 
@@ -2268,13 +678,6 @@ s-epoll: Makefile
        $(SHELL) $(srcdir)/mvifdiff.sh epoll.go.tmp epoll.go
        $(STAMP) $@
 
-if LIBGO_IS_LINUX
-# os_lib_inotify_lo = os/inotify.lo
-os_lib_inotify_lo =
-else
-os_lib_inotify_lo =
-endif
-
 libgo_go_objs = \
        bufio.lo \
        bytes.lo \
@@ -2471,7 +874,7 @@ libgolibbegin_a_SOURCES = \
 
 libgolibbegin_a_CFLAGS = $(AM_CFLAGS) -fPIC
 
-libnetgo_a_SOURCES = $(go_netgo_files)
+libnetgo_a_SOURCES =
 libnetgo_a_LIBADD = netgo.o
 
 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
@@ -2489,19 +892,28 @@ GOLINK = $(LIBTOOL) --tag GO --mode-link $(GOC) \
 # Build the dependencies for a Go package.
 BUILDDEPS = \
        $(MKDIR_P) $(@D); \
-       $(SHELL) $(srcdir)/godeps.sh `echo $@ | sed -e 's/.dep$$//'` $^ > $@.tmp; \
+       dir=`echo $@ | sed -e 's/.lo.dep$$//' -e 's/-go//'`; \
+       files=`$(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/$$dir --extrafiles="$(extra_go_files_$(subst /,_,$(subst -go,,$(subst .lo.dep,,$@))))" $(matchargs_$(subst /,_,$(subst -go,,$(subst .lo.dep,,$@))))`; \
+       $(SHELL) $(srcdir)/godeps.sh `echo $@ | sed -e 's/.dep$$//'` $$files > $@.tmp; \
        mv -f $@.tmp $@
 
 # Build the .go files for a package, generating a .lo file.
 BUILDPACKAGE = \
        $(MKDIR_P) $(@D); \
-       files=`echo $^ | sed -e 's/[^ ]*\.gox//g'`; \
+       files=`echo $^ | sed -e 's/[^ ]*\.gox//g' -e 's/[^ ]*\.dep//'`; \
        $(LTGOCOMPILE) -I . -c -fgo-pkgpath=`echo $@ | sed -e 's/.lo$$//' -e 's/-go$$//'` -o $@ $$files
 
+# Build deps for netgo.o.
+BUILDNETGODEPS = \
+       $(MKDIR_P) $(@D); \
+       files=`$(SHELL) $(srcdir)/match.sh --nocgo --tag=netgo --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/net`; \
+       $(SHELL) $(srcdir)/godeps.sh netgo.o $$files > $@.tmp; \
+       mv -f $@.tmp $@
+
 # Build netgo.o.
 BUILDNETGO = \
        $(MKDIR_P) $(@D); \
-       files=`echo $^ | sed -e 's/[^ ]*\.gox//g'`; \
+       files=`echo $^ | sed -e 's/[^ ]*\.gox//g' -e 's/[^ ]*\.dep//'`; \
        $(GOCOMPILE) -I . -c -fPIC -fgo-pkgpath=net -o $@ $$files
 
 GOTESTFLAGS =
@@ -2523,12 +935,13 @@ CHECK = \
        export LD_LIBRARY_PATH; \
        $(MKDIR_P) $(@D); \
        rm -f $@-testsum $@-testlog; \
+       files=`$(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/$(@D) --extrafiles="$(extra_go_files_$(subst /,_,$(@D)))" $(matchargs_$(subst /,_,$(@D)))`; \
        if test "$(USE_DEJAGNU)" = "yes"; then \
-         $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" --testname="$(@D)" $(GOTESTFLAGS) $(go_$(subst /,_,$(@D))_test_files); \
+         $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --testname="$(@D)" $(GOTESTFLAGS); \
        elif test "$(GOBENCH)" != ""; then \
-         $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" --bench="$(GOBENCH)" $(GOTESTFLAGS) $(go_$(subst /,_,$(@D))_test_files); \
+         $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --bench="$(GOBENCH)" $(GOTESTFLAGS); \
        else \
-         if $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$(go_$(subst .,_,$(subst /,_,$(@D)))_files)" $(GOTESTFLAGS) $(go_$(subst /,_,$(@D))_test_files) >>$@-testlog 2>&1; then \
+         if $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" $(GOTESTFLAGS) >>$@-testlog 2>&1; then \
            echo "PASS: $(@D)" >> $@-testlog; \
            echo "PASS: $(@D)"; \
            echo "PASS: $(@D)" > $@-testsum; \
@@ -2577,20 +990,20 @@ CHECK_DEPS += libgo.la libgobegin.a
 endif
 
 @go_include@ bufio.lo.dep
-bufio.lo.dep: $(go_bufio_files)
+bufio.lo.dep: $(srcdir)/go/bufio/*.go
        $(BUILDDEPS)
-bufio.lo: $(go_bufio_files)
+bufio.lo: bufio.lo.dep
        $(BUILDPACKAGE)
 bufio/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: bufio/check
 
 @go_include@ bytes.lo.dep
-bytes.lo.dep: $(go_bytes_files)
+bytes.lo.dep: $(srcdir)/go/bytes/*.go
        $(BUILDDEPS)
-bytes.lo: $(go_bytes_files)
+bytes.lo: bytes.lo.dep
        $(BUILDPACKAGE)
-bytes/index.lo: $(go_bytes_c_files)
+bytes/index.lo: go/bytes/indexbyte.c
        @$(MKDIR_P) bytes
        $(LTCOMPILE) -c -o bytes/index.lo $(srcdir)/go/bytes/indexbyte.c
 bytes/check: $(CHECK_DEPS)
@@ -2598,117 +1011,117 @@ bytes/check: $(CHECK_DEPS)
 .PHONY: bytes/check
 
 @go_include@ context.lo.dep
-context.lo.dep: $(go_context_files)
+context.lo.dep: $(srcdir)/go/context/*.go
        $(BUILDDEPS)
-context.lo: $(go_context_files)
+context.lo: context.lo.dep
        $(BUILDPACKAGE)
 context/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: context/check
 
 @go_include@ crypto.lo.dep
-crypto.lo.dep: $(go_crypto_files)
+crypto.lo.dep: $(srcdir)/go/crypto/*.go
        $(BUILDDEPS)
-crypto.lo: $(go_crypto_files)
+crypto.lo: crypto.lo.dep
        $(BUILDPACKAGE)
 crypto/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/check
 
 @go_include@ encoding.lo.dep
-encoding.lo.dep: $(go_encoding_files)
+encoding.lo.dep: $(srcdir)/go/encoding/*.go
        $(BUILDDEPS)
-encoding.lo: $(go_encoding_files)
+encoding.lo: encoding.lo.dep
        $(BUILDPACKAGE)
 encoding/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/check
 
 @go_include@ errors.lo.dep
-errors.lo.dep: $(go_errors_files)
+errors.lo.dep: $(srcdir)/go/errors/*.go
        $(BUILDDEPS)
-errors.lo: $(go_errors_files)
+errors.lo: errors.lo.dep
        $(BUILDPACKAGE)
 errors/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: errors/check
 
 @go_include@ expvar.lo.dep
-expvar.lo.dep: $(go_expvar_files)
+expvar.lo.dep: $(srcdir)/go/expvar/*.go
        $(BUILDDEPS)
-expvar.lo: $(go_expvar_files)
+expvar.lo: expvar.lo.dep
        $(BUILDPACKAGE)
 expvar/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: expvar/check
 
 @go_include@ flag.lo.dep
-flag.lo.dep: $(go_flag_files)
+flag.lo.dep: $(srcdir)/go/flag/*.go
        $(BUILDDEPS)
-flag.lo: $(go_flag_files)
+flag.lo: flag.lo.dep
        $(BUILDPACKAGE)
 flag/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: flag/check
 
 @go_include@ fmt.lo.dep
-fmt.lo.dep: $(go_fmt_files)
+fmt.lo.dep: $(srcdir)/go/fmt/*.go
        $(BUILDDEPS)
-fmt.lo: $(go_fmt_files)
+fmt.lo: fmt.lo.dep
        $(BUILDPACKAGE)
 fmt/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: fmt/check
 
 @go_include@ hash.lo.dep
-hash.lo.dep: $(go_hash_files)
+hash.lo.dep: $(srcdir)/go/hash/*.go
        $(BUILDDEPS)
-hash.lo: $(go_hash_files)
+hash.lo: hash.lo.dep
        $(BUILDPACKAGE)
 hash/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: hash/check
 
 @go_include@ html.lo.dep
-html.lo.dep: $(go_html_files)
+html.lo.dep: $(srcdir)/go/html/*.go
        $(BUILDDEPS)
-html.lo: $(go_html_files)
+html.lo: html.lo.dep
        $(BUILDPACKAGE)
 html/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: html/check
 
 @go_include@ image.lo.dep
-image.lo.dep: $(go_image_files)
+image.lo.dep: $(srcdir)/go/image/*.go
        $(BUILDDEPS)
-image.lo: $(go_image_files)
+image.lo: image.lo.dep
        $(BUILDPACKAGE)
 image/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/check
 
 @go_include@ io.lo.dep
-io.lo.dep: $(go_io_files)
+io.lo.dep: $(srcdir)/go/io/*.go
        $(BUILDDEPS)
-io.lo: $(go_io_files)
+io.lo: io.lo.dep
        $(BUILDPACKAGE)
 io/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: io/check
 
 @go_include@ log.lo.dep
-log.lo.dep: $(go_log_files)
+log.lo.dep: $(srcdir)/go/log/*.go
        $(BUILDDEPS)
-log.lo: $(go_log_files)
+log.lo: log.lo.dep
        $(BUILDPACKAGE)
 log/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: log/check
 
 @go_include@ math.lo.dep
-math.lo.dep: $(go_math_files)
+math.lo.dep: $(srcdir)/go/math/*.go
        $(BUILDDEPS)
-math.lo: $(go_math_files)
+math.lo: math.lo.dep
        $(MKDIR_P) $(@D)
        files=`echo $^ | sed -e 's/[^ ]*\.gox//g'`; \
        $(LTGOCOMPILE) $(MATH_FLAG) -I . -c -fgo-pkgpath=math -o $@ $$files
@@ -2717,101 +1130,113 @@ math/check: $(CHECK_DEPS)
 .PHONY: math/check
 
 @go_include@ mime.lo.dep
-mime.lo.dep: $(go_mime_files)
+mime.lo.dep: $(srcdir)/go/mime/*.go
        $(BUILDDEPS)
-mime.lo: $(go_mime_files)
+mime.lo: mime.lo.dep
        $(BUILDPACKAGE)
 mime/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: mime/check
 
 @go_include@ net.lo.dep
-net.lo.dep: $(go_net_files)
+net.lo.dep: $(srcdir)/go/net/*.go
        $(BUILDDEPS)
-net.lo: $(go_net_files)
+net.lo: net.lo.dep
        $(BUILDPACKAGE)
 net/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/check
 
 @go_include@ netgo.o.dep
-netgo.o.dep: $(go_netgo_files)
-       $(BUILDDEPS)
-netgo.o: $(go_netgo_files)
+netgo.o.dep: $(srcdir)/go/net/*.go
+       $(BUILDNETGODEPS)
+netgo.o: netgo.o.dep
        $(BUILDNETGO)
 
+if LIBGO_IS_SOLARIS
+if HAVE_STAT_TIMESPEC
+matchargs_os = --tag=solaristag
+else
+matchargs_os =
+endif
+else
+matchargs_os =
+endif
+
 @go_include@ os.lo.dep
-os.lo.dep: $(go_os_files)
+os.lo.dep: $(srcdir)/go/os/*.go
        $(BUILDDEPS)
-os.lo: $(go_os_files)
+os.lo: os.lo.dep
        $(BUILDPACKAGE)
 os/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: os/check
 
 @go_include@ path.lo.dep
-path.lo.dep: $(go_path_files)
+path.lo.dep: $(srcdir)/go/path/*.go
        $(BUILDDEPS)
-path.lo: $(go_path_files)
+path.lo: path.lo.dep
        $(BUILDPACKAGE)
 path/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: path/check
 
 @go_include@ reflect-go.lo.dep
-reflect-go.lo.dep: $(go_reflect_files)
+reflect-go.lo.dep: $(srcdir)/go/reflect/*.go
        $(BUILDDEPS)
-reflect-go.lo: $(go_reflect_files)
+reflect-go.lo: reflect-go.lo.dep
        $(BUILDPACKAGE)
 reflect/check: $(CHECK_DEPS)
        @$(CHECK)
-reflect/makefunc_ffi_c.lo: $(go_reflect_makefunc_c_file)
+reflect/makefunc_ffi_c.lo: go/reflect/makefunc_ffi_c.c
        @$(MKDIR_P) reflect
        $(LTCOMPILE) -c -o $@ $<
 .PHONY: reflect/check
 
 @go_include@ regexp.lo.dep
-regexp.lo.dep: $(go_regexp_files)
+regexp.lo.dep: $(srcdir)/go/regexp/*.go
        $(BUILDDEPS)
-regexp.lo: $(go_regexp_files)
+regexp.lo: regexp.lo.dep
        $(BUILDPACKAGE)
 regexp/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: regexp/check
 
+extra_go_files_runtime = version.go
+
 @go_include@ runtime-go.lo.dep
-runtime-go.lo.dep: $(go_runtime_files)
+runtime-go.lo.dep: $(srcdir)/go/runtime/*.go
        $(BUILDDEPS)
-runtime-go.lo: $(go_runtime_files)
+runtime-go.lo: runtime-go.lo.dep
        $(BUILDPACKAGE)
 runtime/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: runtime/check
 
 @go_include@ sort.lo.dep
-sort.lo.dep: $(go_sort_files)
+sort.lo.dep: $(srcdir)/go/sort/*.go
        $(BUILDDEPS)
-sort.lo: $(go_sort_files)
+sort.lo: sort.lo.dep
        $(BUILDPACKAGE)
 sort/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: sort/check
 
 @go_include@ strconv.lo.dep
-strconv.lo.dep: $(go_strconv_files)
+strconv.lo.dep: $(srcdir)/go/strconv/*.go
        $(BUILDDEPS)
-strconv.lo: $(go_strconv_files)
+strconv.lo: strconv.lo.dep
        $(BUILDPACKAGE)
 strconv/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: strconv/check
 
 @go_include@ strings.lo.dep
-strings.lo.dep: $(go_strings_files)
+strings.lo.dep: $(srcdir)/go/strings/*.go
        $(BUILDDEPS)
-strings.lo: $(go_strings_files)
+strings.lo: strings.lo.dep
        $(BUILDPACKAGE)
-strings/index.lo: $(go_strings_c_files)
+strings/index.lo: go/strings/indexbyte.c
        @$(MKDIR_P) strings
        $(LTCOMPILE) -c -o strings/index.lo $(srcdir)/go/strings/indexbyte.c
 strings/check: $(CHECK_DEPS)
@@ -2819,814 +1244,822 @@ strings/check: $(CHECK_DEPS)
 .PHONY: strings/check
 
 @go_include@ sync.lo.dep
-sync.lo.dep: $(go_sync_files)
+sync.lo.dep: $(srcdir)/go/sync/*.go
        $(BUILDDEPS)
-sync.lo: $(go_sync_files)
+sync.lo: sync.lo.dep
        $(BUILDPACKAGE)
 sync/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: sync/check
 
 @go_include@ testing.lo.dep
-testing.lo.dep: $(go_testing_files)
+testing.lo.dep: $(srcdir)/go/testing/*.go
        $(BUILDDEPS)
-testing.lo: $(go_testing_files)
+testing.lo: testing.lo.dep
        $(BUILDPACKAGE)
 testing/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: testing/check
 
 @go_include@ time-go.lo.dep
-time-go.lo.dep: $(go_time_files)
+time-go.lo.dep: $(srcdir)/go/time/*.go
        $(BUILDDEPS)
-time-go.lo: $(go_time_files)
+time-go.lo: time-go.lo.dep
        $(BUILDPACKAGE)
 time/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: time/check
 
 @go_include@ unicode.lo.dep
-unicode.lo.dep: $(go_unicode_files)
+unicode.lo.dep: $(srcdir)/go/unicode/*.go
        $(BUILDDEPS)
-unicode.lo: $(go_unicode_files)
+unicode.lo: unicode.lo.dep
        $(BUILDPACKAGE)
 unicode/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: unicode/check
 
 @go_include@ archive/tar.lo.dep
-archive/tar.lo.dep: $(go_archive_tar_files)
+archive/tar.lo.dep: $(srcdir)/go/archive/tar/*.go
        $(BUILDDEPS)
-archive/tar.lo: $(go_archive_tar_files)
+archive/tar.lo: archive/tar.lo.dep
        $(BUILDPACKAGE)
 archive/tar/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: archive/tar/check
 
 @go_include@ archive/zip.lo.dep
-archive/zip.lo.dep: $(go_archive_zip_files)
+archive/zip.lo.dep: $(srcdir)/go/archive/zip/*.go
        $(BUILDDEPS)
-archive/zip.lo: $(go_archive_zip_files)
+archive/zip.lo: archive/zip.lo.dep
        $(BUILDPACKAGE)
 archive/zip/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: archive/zip/check
 
 @go_include@ compress/bzip2.lo.dep
-compress/bzip2.lo.dep: $(go_compress_bzip2_files)
+compress/bzip2.lo.dep: $(srcdir)/go/compress/bzip2/*.go
        $(BUILDDEPS)
-compress/bzip2.lo: $(go_compress_bzip2_files)
+compress/bzip2.lo: compress/bzip2.lo.dep
        $(BUILDPACKAGE)
 compress/bzip2/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: compress/bzip2/check
 
 @go_include@ compress/flate.lo.dep
-compress/flate.lo.dep: $(go_compress_flate_files)
+compress/flate.lo.dep: $(srcdir)/go/compress/flate/*.go
        $(BUILDDEPS)
-compress/flate.lo: $(go_compress_flate_files)
+compress/flate.lo: compress/flate.lo.dep
        $(BUILDPACKAGE)
 compress/flate/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: compress/flate/check
 
 @go_include@ compress/gzip.lo.dep
-compress/gzip.lo.dep: $(go_compress_gzip_files)
+compress/gzip.lo.dep: $(srcdir)/go/compress/gzip/*.go
        $(BUILDDEPS)
-compress/gzip.lo: $(go_compress_gzip_files)
+compress/gzip.lo: compress/gzip.lo.dep
        $(BUILDPACKAGE)
 compress/gzip/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: compress/gzip/check
 
 @go_include@ compress/lzw.lo.dep
-compress/lzw.lo.dep: $(go_compress_lzw_files)
+compress/lzw.lo.dep: $(srcdir)/go/compress/lzw/*.go
        $(BUILDDEPS)
-compress/lzw.lo: $(go_compress_lzw_files)
+compress/lzw.lo: compress/lzw.lo.dep
        $(BUILDPACKAGE)
 compress/lzw/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: compress/lzw/check
 
 @go_include@ compress/zlib.lo.dep
-compress/zlib.lo.dep: $(go_compress_zlib_files)
+compress/zlib.lo.dep: $(srcdir)/go/compress/zlib/*.go
        $(BUILDDEPS)
-compress/zlib.lo: $(go_compress_zlib_files)
+compress/zlib.lo: compress/zlib.lo.dep
        $(BUILDPACKAGE)
 compress/zlib/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: compress/zlib/check
 
 @go_include@ container/heap.lo.dep
-container/heap.lo.dep: $(go_container_heap_files)
+container/heap.lo.dep: $(srcdir)/go/container/heap/*.go
        $(BUILDDEPS)
-container/heap.lo: $(go_container_heap_files)
+container/heap.lo: container/heap.lo.dep
        $(BUILDPACKAGE)
 container/heap/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: container/heap/check
 
 @go_include@ container/list.lo.dep
-container/list.lo.dep: $(go_container_list_files)
+container/list.lo.dep: $(srcdir)/go/container/list/*.go
        $(BUILDDEPS)
-container/list.lo: $(go_container_list_files)
+container/list.lo: container/list.lo.dep
        $(BUILDPACKAGE)
 container/list/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: container/list/check
 
 @go_include@ container/ring.lo.dep
-container/ring.lo.dep: $(go_container_ring_files)
+container/ring.lo.dep: $(srcdir)/go/container/ring/*.go
        $(BUILDDEPS)
-container/ring.lo: $(go_container_ring_files)
+container/ring.lo: container/ring.lo.dep
        $(BUILDPACKAGE)
 container/ring/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: container/ring/check
 
 @go_include@ crypto/aes.lo.dep
-crypto/aes.lo.dep: $(go_crypto_aes_files)
+crypto/aes.lo.dep: $(srcdir)/go/crypto/aes/*.go
        $(BUILDDEPS)
-crypto/aes.lo: $(go_crypto_aes_files)
+crypto/aes.lo: crypto/aes.lo.dep
        $(BUILDPACKAGE)
 crypto/aes/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/aes/check
 
 @go_include@ crypto/cipher.lo.dep
-crypto/cipher.lo.dep: $(go_crypto_cipher_files)
+crypto/cipher.lo.dep: $(srcdir)/go/crypto/cipher/*.go
        $(BUILDDEPS)
-crypto/cipher.lo: $(go_crypto_cipher_files)
+crypto/cipher.lo: crypto/cipher.lo.dep
        $(BUILDPACKAGE)
 crypto/cipher/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/cipher/check
 
 @go_include@ crypto/des.lo.dep
-crypto/des.lo.dep: $(go_crypto_des_files)
+crypto/des.lo.dep: $(srcdir)/go/crypto/des/*.go
        $(BUILDDEPS)
-crypto/des.lo: $(go_crypto_des_files)
+crypto/des.lo: crypto/des.lo.dep
        $(BUILDPACKAGE)
 crypto/des/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/des/check
 
 @go_include@ crypto/dsa.lo.dep
-crypto/dsa.lo.dep: $(go_crypto_dsa_files)
+crypto/dsa.lo.dep: $(srcdir)/go/crypto/dsa/*.go
        $(BUILDDEPS)
-crypto/dsa.lo: $(go_crypto_dsa_files)
+crypto/dsa.lo: crypto/dsa.lo.dep
        $(BUILDPACKAGE)
 crypto/dsa/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/dsa/check
 
 @go_include@ crypto/ecdsa.lo.dep
-crypto/ecdsa.lo.dep: $(go_crypto_ecdsa_files)
+crypto/ecdsa.lo.dep: $(srcdir)/go/crypto/ecdsa/*.go
        $(BUILDDEPS)
-crypto/ecdsa.lo: $(go_crypto_ecdsa_files)
+crypto/ecdsa.lo: crypto/ecdsa.lo.dep
        $(BUILDPACKAGE)
 crypto/ecdsa/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/ecdsa/check
 
 @go_include@ crypto/elliptic.lo.dep
-crypto/elliptic.lo.dep: $(go_crypto_elliptic_files)
+crypto/elliptic.lo.dep: $(srcdir)/go/crypto/elliptic/*.go
        $(BUILDDEPS)
-crypto/elliptic.lo: $(go_crypto_elliptic_files)
+crypto/elliptic.lo: crypto/elliptic.lo.dep
        $(BUILDPACKAGE)
 crypto/elliptic/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/elliptic/check
 
 @go_include@ crypto/hmac.lo.dep
-crypto/hmac.lo.dep: $(go_crypto_hmac_files)
+crypto/hmac.lo.dep: $(srcdir)/go/crypto/hmac/*.go
        $(BUILDDEPS)
-crypto/hmac.lo: $(go_crypto_hmac_files)
+crypto/hmac.lo: crypto/hmac.lo.dep
        $(BUILDPACKAGE)
 crypto/hmac/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/hmac/check
 
 @go_include@ crypto/md5.lo.dep
-crypto/md5.lo.dep: $(go_crypto_md5_files)
+crypto/md5.lo.dep: $(srcdir)/go/crypto/md5/*.go
        $(BUILDDEPS)
-crypto/md5.lo: $(go_crypto_md5_files)
+crypto/md5.lo: crypto/md5.lo.dep
        $(BUILDPACKAGE)
 crypto/md5/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/md5/check
 
 @go_include@ crypto/rand.lo.dep
-crypto/rand.lo.dep: $(go_crypto_rand_files)
+crypto/rand.lo.dep: $(srcdir)/go/crypto/rand/*.go
        $(BUILDDEPS)
-crypto/rand.lo: $(go_crypto_rand_files)
+crypto/rand.lo: crypto/rand.lo.dep
        $(BUILDPACKAGE)
 crypto/rand/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/rand/check
 
 @go_include@ crypto/rc4.lo.dep
-crypto/rc4.lo.dep: $(go_crypto_rc4_files)
+crypto/rc4.lo.dep: $(srcdir)/go/crypto/rc4/*.go
        $(BUILDDEPS)
-crypto/rc4.lo: $(go_crypto_rc4_files)
+crypto/rc4.lo: crypto/rc4.lo.dep
        $(BUILDPACKAGE)
 crypto/rc4/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/rc4/check
 
 @go_include@ crypto/rsa.lo.dep
-crypto/rsa.lo.dep: $(go_crypto_rsa_files)
+crypto/rsa.lo.dep: $(srcdir)/go/crypto/rsa/*.go
        $(BUILDDEPS)
-crypto/rsa.lo: $(go_crypto_rsa_files)
+crypto/rsa.lo: crypto/rsa.lo.dep
        $(BUILDPACKAGE)
 crypto/rsa/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/rsa/check
 
 @go_include@ crypto/sha1.lo.dep
-crypto/sha1.lo.dep: $(go_crypto_sha1_files)
+crypto/sha1.lo.dep: $(srcdir)/go/crypto/sha1/*.go
        $(BUILDDEPS)
-crypto/sha1.lo: $(go_crypto_sha1_files)
+crypto/sha1.lo: crypto/sha1.lo.dep
        $(BUILDPACKAGE)
 crypto/sha1/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/sha1/check
 
 @go_include@ crypto/sha256.lo.dep
-crypto/sha256.lo.dep: $(go_crypto_sha256_files)
+crypto/sha256.lo.dep: $(srcdir)/go/crypto/sha256/*.go
        $(BUILDDEPS)
-crypto/sha256.lo: $(go_crypto_sha256_files)
+crypto/sha256.lo: crypto/sha256.lo.dep
        $(BUILDPACKAGE)
 crypto/sha256/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/sha256/check
 
 @go_include@ crypto/sha512.lo.dep
-crypto/sha512.lo.dep: $(go_crypto_sha512_files)
+crypto/sha512.lo.dep: $(srcdir)/go/crypto/sha512/*.go
        $(BUILDDEPS)
-crypto/sha512.lo: $(go_crypto_sha512_files)
+crypto/sha512.lo: crypto/sha512.lo.dep
        $(BUILDPACKAGE)
 crypto/sha512/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/sha512/check
 
 @go_include@ crypto/subtle.lo.dep
-crypto/subtle.lo.dep: $(go_crypto_subtle_files)
+crypto/subtle.lo.dep: $(srcdir)/go/crypto/subtle/*.go
        $(BUILDDEPS)
-crypto/subtle.lo: $(go_crypto_subtle_files)
+crypto/subtle.lo: crypto/subtle.lo.dep
        $(BUILDPACKAGE)
 crypto/subtle/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/subtle/check
 
 @go_include@ crypto/tls.lo.dep
-crypto/tls.lo.dep: $(go_crypto_tls_files)
+crypto/tls.lo.dep: $(srcdir)/go/crypto/tls/*.go
        $(BUILDDEPS)
-crypto/tls.lo: $(go_crypto_tls_files)
+crypto/tls.lo: crypto/tls.lo.dep
        $(BUILDPACKAGE)
 crypto/tls/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/tls/check
 
 @go_include@ crypto/x509.lo.dep
-crypto/x509.lo.dep: $(go_crypto_x509_files)
+crypto/x509.lo.dep: $(srcdir)/go/crypto/x509/*.go
        $(BUILDDEPS)
-crypto/x509.lo: $(go_crypto_x509_files)
+crypto/x509.lo: crypto/x509.lo.dep
        $(BUILDPACKAGE)
 crypto/x509/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/x509/check
 
 @go_include@ crypto/x509/pkix.lo.dep
-crypto/x509/pkix.lo.dep: $(go_crypto_x509_pkix_files)
+crypto/x509/pkix.lo.dep: $(srcdir)/go/crypto/x509/pkix/*.go
        $(BUILDDEPS)
-crypto/x509/pkix.lo: $(go_crypto_x509_pkix_files)
+crypto/x509/pkix.lo: crypto/x509/pkix.lo.dep
        $(BUILDPACKAGE)
 crypto/x509/pkix/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/x509/pkix/check
 
 @go_include@ database/sql.lo.dep
-database/sql.lo.dep: $(go_database_sql_files)
+database/sql.lo.dep: $(srcdir)/go/database/sql/*.go
        $(BUILDDEPS)
-database/sql.lo: $(go_database_sql_files)
+database/sql.lo: database/sql.lo.dep
        $(BUILDPACKAGE)
 database/sql/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: database/sql/check
 
 @go_include@ database/sql/driver.lo.dep
-database/sql/driver.lo.dep: $(go_database_sql_driver_files)
+database/sql/driver.lo.dep: $(srcdir)/go/database/sql/driver/*.go
        $(BUILDDEPS)
-database/sql/driver.lo: $(go_database_sql_driver_files)
+database/sql/driver.lo: database/sql/driver.lo.dep
        $(BUILDPACKAGE)
 database/sql/driver/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: database/sql/driver/check
 
 @go_include@ debug/dwarf.lo.dep
-debug/dwarf.lo.dep: $(go_debug_dwarf_files)
+debug/dwarf.lo.dep: $(srcdir)/go/debug/dwarf/*.go
        $(BUILDDEPS)
-debug/dwarf.lo: $(go_debug_dwarf_files)
+debug/dwarf.lo: debug/dwarf.lo.dep
        $(BUILDPACKAGE)
 debug/dwarf/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: debug/dwarf/check
 
 @go_include@ debug/elf.lo.dep
-debug/elf.lo.dep: $(go_debug_elf_files)
+debug/elf.lo.dep: $(srcdir)/go/debug/elf/*.go
        $(BUILDDEPS)
-debug/elf.lo: $(go_debug_elf_files)
+debug/elf.lo: debug/elf.lo.dep
        $(BUILDPACKAGE)
 debug/elf/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: debug/elf/check
 
 @go_include@ debug/gosym.lo.dep
-debug/gosym.lo.dep: $(go_debug_gosym_files)
+debug/gosym.lo.dep: $(srcdir)/go/debug/gosym/*.go
        $(BUILDDEPS)
-debug/gosym.lo: $(go_debug_gosym_files)
+debug/gosym.lo: debug/gosym.lo.dep
        $(BUILDPACKAGE)
 debug/gosym/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: debug/gosym/check
 
 @go_include@ debug/macho.lo.dep
-debug/macho.lo.dep: $(go_debug_macho_files)
+debug/macho.lo.dep: $(srcdir)/go/debug/macho/*.go
        $(BUILDDEPS)
-debug/macho.lo: $(go_debug_macho_files)
+debug/macho.lo: debug/macho.lo.dep
        $(BUILDPACKAGE)
 debug/macho/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: debug/macho/check
 
 @go_include@ debug/pe.lo.dep
-debug/pe.lo.dep: $(go_debug_pe_files)
+debug/pe.lo.dep: $(srcdir)/go/debug/pe/*.go
        $(BUILDDEPS)
-debug/pe.lo: $(go_debug_pe_files)
+debug/pe.lo: debug/pe.lo.dep
        $(BUILDPACKAGE)
 debug/pe/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: debug/pe/check
 
 @go_include@ debug/plan9obj.lo.dep
-debug/plan9obj.lo.dep: $(go_debug_plan9obj_files)
+debug/plan9obj.lo.dep: $(srcdir)/go/debug/plan9obj/*.go
        $(BUILDDEPS)
-debug/plan9obj.lo: $(go_debug_plan9obj_files)
+debug/plan9obj.lo: debug/plan9obj.lo.dep
        $(BUILDPACKAGE)
 debug/plan9obj/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: debug/plan9obj/check
 
 @go_include@ encoding/asn1.lo.dep
-encoding/asn1.lo.dep: $(go_encoding_asn1_files)
+encoding/asn1.lo.dep: $(srcdir)/go/encoding/asn1/*.go
        $(BUILDDEPS)
-encoding/asn1.lo: $(go_encoding_asn1_files)
+encoding/asn1.lo: encoding/asn1.lo.dep
        $(BUILDPACKAGE)
 encoding/asn1/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/asn1/check
 
 @go_include@ encoding/ascii85.lo.dep
-encoding/ascii85.lo.dep: $(go_encoding_ascii85_files)
+encoding/ascii85.lo.dep: $(srcdir)/go/encoding/ascii85/*.go
        $(BUILDDEPS)
-encoding/ascii85.lo: $(go_encoding_ascii85_files)
+encoding/ascii85.lo: encoding/ascii85.lo.dep
        $(BUILDPACKAGE)
 encoding/ascii85/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/ascii85/check
 
 @go_include@ encoding/base32.lo.dep
-encoding/base32.lo.dep: $(go_encoding_base32_files)
+encoding/base32.lo.dep: $(srcdir)/go/encoding/base32/*.go
        $(BUILDDEPS)
-encoding/base32.lo: $(go_encoding_base32_files)
+encoding/base32.lo: encoding/base32.lo.dep
        $(BUILDPACKAGE)
 encoding/base32/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/base32/check
 
 @go_include@ encoding/base64.lo.dep
-encoding/base64.lo.dep: $(go_encoding_base64_files)
+encoding/base64.lo.dep: $(srcdir)/go/encoding/base64/*.go
        $(BUILDDEPS)
-encoding/base64.lo: $(go_encoding_base64_files)
+encoding/base64.lo: encoding/base64.lo.dep
        $(BUILDPACKAGE)
 encoding/base64/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/base64/check
 
 @go_include@ encoding/binary.lo.dep
-encoding/binary.lo.dep: $(go_encoding_binary_files)
+encoding/binary.lo.dep: $(srcdir)/go/encoding/binary/*.go
        $(BUILDDEPS)
-encoding/binary.lo: $(go_encoding_binary_files)
+encoding/binary.lo: encoding/binary.lo.dep
        $(BUILDPACKAGE)
 encoding/binary/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/binary/check
 
 @go_include@ encoding/csv.lo.dep
-encoding/csv.lo.dep: $(go_encoding_csv_files)
+encoding/csv.lo.dep: $(srcdir)/go/encoding/csv/*.go
        $(BUILDDEPS)
-encoding/csv.lo: $(go_encoding_csv_files)
+encoding/csv.lo: encoding/csv.lo.dep
        $(BUILDPACKAGE)
 encoding/csv/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/csv/check
 
 @go_include@ encoding/gob.lo.dep
-encoding/gob.lo.dep: $(go_encoding_gob_files)
+encoding/gob.lo.dep: $(srcdir)/go/encoding/gob/*.go
        $(BUILDDEPS)
-encoding/gob.lo: $(go_encoding_gob_files)
+encoding/gob.lo: encoding/gob.lo.dep
        $(BUILDPACKAGE)
 encoding/gob/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/gob/check
 
 @go_include@ encoding/hex.lo.dep
-encoding/hex.lo.dep: $(go_encoding_hex_files)
+encoding/hex.lo.dep: $(srcdir)/go/encoding/hex/*.go
        $(BUILDDEPS)
-encoding/hex.lo: $(go_encoding_hex_files)
+encoding/hex.lo: encoding/hex.lo.dep
        $(BUILDPACKAGE)
 encoding/hex/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/hex/check
 
 @go_include@ encoding/json.lo.dep
-encoding/json.lo.dep: $(go_encoding_json_files)
+encoding/json.lo.dep: $(srcdir)/go/encoding/json/*.go
        $(BUILDDEPS)
-encoding/json.lo: $(go_encoding_json_files)
+encoding/json.lo: encoding/json.lo.dep
        $(BUILDPACKAGE)
 encoding/json/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/json/check
 
 @go_include@ encoding/pem.lo.dep
-encoding/pem.lo.dep: $(go_encoding_pem_files)
+encoding/pem.lo.dep: $(srcdir)/go/encoding/pem/*.go
        $(BUILDDEPS)
-encoding/pem.lo: $(go_encoding_pem_files)
+encoding/pem.lo: encoding/pem.lo.dep
        $(BUILDPACKAGE)
 encoding/pem/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/pem/check
 
 @go_include@ encoding/xml.lo.dep
-encoding/xml.lo.dep: $(go_encoding_xml_files)
+encoding/xml.lo.dep: $(srcdir)/go/encoding/xml/*.go
        $(BUILDDEPS)
-encoding/xml.lo: $(go_encoding_xml_files)
+encoding/xml.lo: encoding/xml.lo.dep
        $(BUILDPACKAGE)
 encoding/xml/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/xml/check
 
 @go_include@ exp/proxy.lo.dep
-exp/proxy.lo.dep: $(go_exp_proxy_files)
+exp/proxy.lo.dep: $(srcdir)/go/exp/proxy/*.go
        $(BUILDDEPS)
-exp/proxy.lo: $(go_exp_proxy_files)
+exp/proxy.lo: exp/proxy.lo.dep
        $(BUILDPACKAGE)
 exp/proxy/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: exp/proxy/check
 
 @go_include@ exp/terminal.lo.dep
-exp/terminal.lo.dep: $(go_exp_terminal_files)
+exp/terminal.lo.dep: $(srcdir)/go/exp/terminal/*.go
        $(BUILDDEPS)
-exp/terminal.lo: $(go_exp_terminal_files)
+exp/terminal.lo: exp/terminal.lo.dep
        $(BUILDPACKAGE)
 exp/terminal/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: exp/terminal/check
 
 @go_include@ html/template.lo.dep
-html/template.lo.dep: $(go_html_template_files)
+html/template.lo.dep: $(srcdir)/go/html/template/*.go
        $(BUILDDEPS)
-html/template.lo: $(go_html_template_files)
+html/template.lo: html/template.lo.dep
        $(BUILDPACKAGE)
 html/template/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: html/template/check
 
 @go_include@ go/ast.lo.dep
-go/ast.lo.dep: $(go_go_ast_files)
+go/ast.lo.dep: $(srcdir)/go/go/ast/*.go
        $(BUILDDEPS)
-go/ast.lo: $(go_go_ast_files)
+go/ast.lo: go/ast.lo.dep
        $(BUILDPACKAGE)
 go/ast/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/ast/check
 
 @go_include@ go/build.lo.dep
-go/build.lo.dep: $(go_go_build_files)
+go/build.lo.dep: $(srcdir)/go/go/build/*.go
        $(BUILDDEPS)
-go/build.lo: $(go_go_build_files)
+go/build.lo: go/build.lo.dep
        $(BUILDPACKAGE)
 go/build/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/build/check
 
 @go_include@ go/constant.lo.dep
-go/constant.lo.dep: $(go_go_constant_files)
+go/constant.lo.dep: $(srcdir)/go/go/constant/*.go
        $(BUILDDEPS)
-go/constant.lo: $(go_go_constant_files)
+go/constant.lo: go/constant.lo.dep
        $(BUILDPACKAGE)
 go/constant/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/constant/check
 
 @go_include@ go/doc.lo.dep
-go/doc.lo.dep: $(go_go_doc_files)
+go/doc.lo.dep: $(srcdir)/go/go/doc/*.go
        $(BUILDDEPS)
-go/doc.lo: $(go_go_doc_files)
+go/doc.lo: go/doc.lo.dep
        $(BUILDPACKAGE)
 go/doc/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/doc/check
 
 @go_include@ go/format.lo.dep
-go/format.lo.dep: $(go_go_format_files)
+go/format.lo.dep: $(srcdir)/go/go/format/*.go
        $(BUILDDEPS)
-go/format.lo: $(go_go_format_files)
+go/format.lo: go/format.lo.dep
        $(BUILDPACKAGE)
 go/format/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/format/check
 
 @go_include@ go/importer.lo.dep
-go/importer.lo.dep: $(go_go_importer_files)
+go/importer.lo.dep: $(srcdir)/go/go/importer/*.go
        $(BUILDDEPS)
-go/importer.lo: $(go_go_importer_files)
+go/importer.lo: go/importer.lo.dep
        $(BUILDPACKAGE)
 go/importer/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/importer/check
 
 @go_include@ go/parser.lo.dep
-go/parser.lo.dep: $(go_go_parser_files)
+go/parser.lo.dep: $(srcdir)/go/go/parser/*.go
        $(BUILDDEPS)
-go/parser.lo: $(go_go_parser_files)
+go/parser.lo: go/parser.lo.dep
        $(BUILDPACKAGE)
 go/parser/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/parser/check
 
 @go_include@ go/printer.lo.dep
-go/printer.lo.dep: $(go_go_printer_files)
+go/printer.lo.dep: $(srcdir)/go/go/printer/*.go
        $(BUILDDEPS)
-go/printer.lo: $(go_go_printer_files)
+go/printer.lo: go/printer.lo.dep
        $(BUILDPACKAGE)
 go/printer/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/printer/check
 
 @go_include@ go/scanner.lo.dep
-go/scanner.lo.dep: $(go_go_scanner_files)
+go/scanner.lo.dep: $(srcdir)/go/go/scanner/*.go
        $(BUILDDEPS)
-go/scanner.lo: $(go_go_scanner_files)
+go/scanner.lo: go/scanner.lo.dep
        $(BUILDPACKAGE)
 go/scanner/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/scanner/check
 
 @go_include@ go/token.lo.dep
-go/token.lo.dep: $(go_go_token_files)
+go/token.lo.dep: $(srcdir)/go/go/token/*.go
        $(BUILDDEPS)
-go/token.lo: $(go_go_token_files)
+go/token.lo: go/token.lo.dep
        $(BUILDPACKAGE)
 go/token/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/token/check
 
 @go_include@ go/types.lo.dep
-go/types.lo.dep: $(go_go_types_files)
+go/types.lo.dep: $(srcdir)/go/go/types/*.go
        $(BUILDDEPS)
-go/types.lo: $(go_go_types_files)
+go/types.lo: go/types.lo.dep
        $(BUILDPACKAGE)
 go/types/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/types/check
 
 @go_include@ go/internal/gcimporter.lo.dep
-go/internal/gcimporter.lo.dep: $(go_go_internal_gcimporter_files)
+go/internal/gcimporter.lo.dep: $(srcdir)/go/go/internal/gcimporter/*.go
        $(BUILDDEPS)
-go/internal/gcimporter.lo: $(go_go_internal_gcimporter_files)
+go/internal/gcimporter.lo: go/internal/gcimporter.lo.dep
        $(BUILDPACKAGE)
 go/internal/gcimporter/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/internal/gcimporter/check
 
 @go_include@ go/internal/gccgoimporter.lo.dep
-go/internal/gccgoimporter.lo.dep: $(go_go_internal_gccgoimporter_files)
+go/internal/gccgoimporter.lo.dep: $(srcdir)/go/go/internal/gccgoimporter/*.go
        $(BUILDDEPS)
-go/internal/gccgoimporter.lo: $(go_go_internal_gccgoimporter_files)
+go/internal/gccgoimporter.lo: go/internal/gccgoimporter.lo.dep
        $(BUILDPACKAGE)
 go/internal/gccgoimporter/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/internal/gccgoimporter/check
 
 @go_include@ golang_org/x/net/http2/hpack.lo.dep
-golang_org/x/net/http2/hpack.lo.dep: $(go_golang_org_x_net_http2_hpack_files)
+golang_org/x/net/http2/hpack.lo.dep: $(srcdir)/go/golang_org/x/net/http2/hpack/*.go
        $(BUILDDEPS)
-golang_org/x/net/http2/hpack.lo: $(go_golang_org_x_net_http2_hpack_files)
+golang_org/x/net/http2/hpack.lo: golang_org/x/net/http2/hpack.lo.dep
        $(BUILDPACKAGE)
 golang_org/x/net/http2/hpack/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: golang_org/x/net/http2/hpack/check
 
 @go_include@ golang_org/x/net/lex/httplex.lo.dep
-golang_org/x/net/lex/httplex.lo.dep: $(go_golang_org_x_net_lex_httplex_files)
+golang_org/x/net/lex/httplex.lo.dep: $(srcdir)/go/golang_org/x/net/lex/httplex/*.go
        $(BUILDDEPS)
-golang_org/x/net/lex/httplex.lo: $(go_golang_org_x_net_lex_httplex_files)
+golang_org/x/net/lex/httplex.lo: golang_org/x/net/lex/httplex.lo.dep
        $(BUILDPACKAGE)
 golang_org/x/net/lex/httplex/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: golang_org/x/net/lex/httplex/check
 
 if LIBGO_IS_BSD
+
+golang_org_x_net_route_lo = \
+       golang_org/x/net/route/route.lo
+golang_org_x_net_route_check = \
+       golang_org/x/net/route/check
+
 @go_include@ golang_org/x/net/route.lo.dep
-golang_org/x/net/route.lo.dep: $(go_golang_org_x_net_route_files)
+golang_org/x/net/route.lo.dep: $(srcdir)/go/golang_org/x/net/route/*.go
        $(BUILDDEPS)
-golang_org/x/net/route.lo: $(go_golang_org_x_net_route_files)
+golang_org/x/net/route.lo: golang_org/x/net/route.lo.dep
        $(BUILDPACKAGE)
 golang_org/x/net/route/check: $(CHECK_DEPS)
        @$(CHECK)
+
 endif
+
 .PHONY: golang_org/x/net/route/check
 
 @go_include@ hash/adler32.lo.dep
-hash/adler32.lo.dep: $(go_hash_adler32_files)
+hash/adler32.lo.dep: $(srcdir)/go/hash/adler32/*.go
        $(BUILDDEPS)
-hash/adler32.lo: $(go_hash_adler32_files)
+hash/adler32.lo: hash/adler32.lo.dep
        $(BUILDPACKAGE)
 hash/adler32/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: hash/adler32/check
 
 @go_include@ hash/crc32.lo.dep
-hash/crc32.lo.dep: $(go_hash_crc32_files)
+hash/crc32.lo.dep: $(srcdir)/go/hash/crc32/*.go
        $(BUILDDEPS)
-hash/crc32.lo: $(go_hash_crc32_files)
+hash/crc32.lo: hash/crc32.lo.dep
        $(BUILDPACKAGE)
 hash/crc32/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: hash/crc32/check
 
 @go_include@ hash/crc64.lo.dep
-hash/crc64.lo.dep: $(go_hash_crc64_files)
+hash/crc64.lo.dep: $(srcdir)/go/hash/crc64/*.go
        $(BUILDDEPS)
-hash/crc64.lo: $(go_hash_crc64_files)
+hash/crc64.lo: hash/crc64.lo.dep
        $(BUILDPACKAGE)
 hash/crc64/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: hash/crc64/check
 
 @go_include@ hash/fnv.lo.dep
-hash/fnv.lo.dep: $(go_hash_fnv_files)
+hash/fnv.lo.dep: $(srcdir)/go/hash/fnv/*.go
        $(BUILDDEPS)
-hash/fnv.lo: $(go_hash_fnv_files)
+hash/fnv.lo: hash/fnv.lo.dep
        $(BUILDPACKAGE)
 hash/fnv/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: hash/fnv/check
 
 @go_include@ image/color.lo.dep
-image/color.lo.dep: $(go_image_color_files)
+image/color.lo.dep: $(srcdir)/go/image/color/*.go
        $(BUILDDEPS)
-image/color.lo: $(go_image_color_files)
+image/color.lo: image/color.lo.dep
        $(BUILDPACKAGE)
 image/color/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/color/check
 
 @go_include@ image/color/palette.lo.dep
-image/color/palette.lo.dep: $(go_image_color_palette_files)
+image/color/palette.lo.dep: $(srcdir)/go/image/color/palette/*.go
        $(BUILDDEPS)
-image/color/palette.lo: $(go_image_color_palette_files)
+image/color/palette.lo: image/color/palette.lo.dep
        $(BUILDPACKAGE)
 image/color/palette/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/color/palette/check
 
 @go_include@ image/draw.lo.dep
-image/draw.lo.dep: $(go_image_draw_files)
+image/draw.lo.dep: $(srcdir)/go/image/draw/*.go
        $(BUILDDEPS)
-image/draw.lo: $(go_image_draw_files)
+image/draw.lo: image/draw.lo.dep
        $(BUILDPACKAGE)
 image/draw/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/draw/check
 
 @go_include@ image/gif.lo.dep
-image/gif.lo.dep: $(go_image_gif_files)
+image/gif.lo.dep: $(srcdir)/go/image/gif/*.go
        $(BUILDDEPS)
-image/gif.lo: $(go_image_gif_files)
+image/gif.lo: image/gif.lo.dep
        $(BUILDPACKAGE)
 image/gif/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/gif/check
 
 @go_include@ image/internal/imageutil.lo.dep
-image/internal/imageutil.lo.dep: $(go_image_internal_imageutil_files)
+image/internal/imageutil.lo.dep: $(srcdir)/go/image/internal/imageutil/*.go
        $(BUILDDEPS)
-image/internal/imageutil.lo: $(go_image_internal_imageutil_files)
+image/internal/imageutil.lo: image/internal/imageutil.lo.dep
        $(BUILDPACKAGE)
 image/internal/imageutil/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/internal/imageutil/check
 
 @go_include@ image/jpeg.lo.dep
-image/jpeg.lo.dep: $(go_image_jpeg_files)
+image/jpeg.lo.dep: $(srcdir)/go/image/jpeg/*.go
        $(BUILDDEPS)
-image/jpeg.lo: $(go_image_jpeg_files)
+image/jpeg.lo: image/jpeg.lo.dep
        $(BUILDPACKAGE)
 image/jpeg/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/jpeg/check
 
 @go_include@ image/png.lo.dep
-image/png.lo.dep: $(go_image_png_files)
+image/png.lo.dep: $(srcdir)/go/image/png/*.go
        $(BUILDDEPS)
-image/png.lo: $(go_image_png_files)
+image/png.lo: image/png.lo.dep
        $(BUILDPACKAGE)
 image/png/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/png/check
 
 @go_include@ index/suffixarray.lo.dep
-index/suffixarray.lo.dep: $(go_index_suffixarray_files)
+index/suffixarray.lo.dep: $(srcdir)/go/index/suffixarray/*.go
        $(BUILDDEPS)
-index/suffixarray.lo: $(go_index_suffixarray_files)
+index/suffixarray.lo: index/suffixarray.lo.dep
        $(BUILDPACKAGE)
 index/suffixarray/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: index/suffixarray/check
 
 @go_include@ internal/nettrace.lo.dep
-internal/nettrace.lo.dep: $(go_internal_nettrace_files)
+internal/nettrace.lo.dep: $(srcdir)/go/internal/nettrace/*.go
        $(BUILDDEPS)
-internal/nettrace.lo: $(go_internal_nettrace_files)
+internal/nettrace.lo: internal/nettrace.lo.dep
        $(BUILDPACKAGE)
 internal/nettrace/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: internal/nettrace/check
 
 @go_include@ internal/race.lo.dep
-internal/race.lo.dep: $(go_internal_race_files)
+internal/race.lo.dep: $(srcdir)/go/internal/race/*.go
        $(BUILDDEPS)
-internal/race.lo: $(go_internal_race_files)
+internal/race.lo: internal/race.lo.dep
        $(BUILDPACKAGE)
 internal/race/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: internal/race/check
 
 @go_include@ internal/singleflight.lo.dep
-internal/singleflight.lo.dep: $(go_internal_singleflight_files)
+internal/singleflight.lo.dep: $(srcdir)/go/internal/singleflight/*.go
        $(BUILDDEPS)
-internal/singleflight.lo: $(go_internal_singleflight_files)
+internal/singleflight.lo: internal/singleflight.lo.dep
        $(BUILDPACKAGE)
 internal/singleflight/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: internal/singleflight/check
 
 @go_include@ internal/syscall/unix.lo.dep
-internal/syscall/unix.lo.dep: $(go_internal_syscall_unix_files)
+internal/syscall/unix.lo.dep: $(srcdir)/go/internal/syscall/unix/*.go
        $(BUILDDEPS)
-internal/syscall/unix.lo: $(go_internal_syscall_unix_files)
+internal/syscall/unix.lo: internal/syscall/unix.lo.dep
        $(BUILDPACKAGE)
 internal/syscall/unix/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: internal/syscall/unix/check
 
 @go_include@ internal/testenv.lo.dep
-internal/testenv.lo.dep: $(go_internal_testenv_files)
+internal/testenv.lo.dep: $(srcdir)/go/internal/testenv/*.go
        $(BUILDDEPS)
-internal/testenv.lo: $(go_internal_testenv_files)
+internal/testenv.lo: internal/testenv.lo.dep
        $(BUILDPACKAGE)
 internal/testenv/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: internal/testenv/check
 
 @go_include@ internal/trace.lo.dep
-internal/trace.lo.dep: $(go_internal_trace_files)
+internal/trace.lo.dep: $(srcdir)/go/internal/trace/*.go
        $(BUILDDEPS)
-internal/trace.lo: $(go_internal_trace_files)
+internal/trace.lo: internal/trace.lo.dep
        $(BUILDPACKAGE)
 internal/trace/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: internal/trace/check
 
 @go_include@ io/ioutil.lo.dep
-io/ioutil.lo.dep: $(go_io_ioutil_files)
+io/ioutil.lo.dep: $(srcdir)/go/io/ioutil/*.go
        $(BUILDDEPS)
-io/ioutil.lo: $(go_io_ioutil_files)
+io/ioutil.lo: io/ioutil.lo.dep
        $(BUILDPACKAGE)
 io/ioutil/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: io/ioutil/check
 
 @go_include@ log/syslog.lo.dep
-log/syslog.lo.dep: $(go_log_syslog_files)
+log/syslog.lo.dep: $(srcdir)/go/log/syslog/*.go
        $(BUILDDEPS)
-log/syslog.lo: $(go_log_syslog_files)
+log/syslog.lo: log/syslog.lo.dep
        $(BUILDPACKAGE)
-log/syslog/syslog_c.lo: $(go_syslog_c_files) log/syslog.lo
+log/syslog/syslog_c.lo: go/log/syslog/syslog_c.c log/syslog.lo
        @$(MKDIR_P) log/syslog
        $(LTCOMPILE) -c -o $@ $(srcdir)/go/log/syslog/syslog_c.c
 log/syslog/check: $(CHECK_DEPS)
@@ -3634,270 +2067,270 @@ log/syslog/check: $(CHECK_DEPS)
 .PHONY: log/syslog/check
 
 @go_include@ math/big.lo.dep
-math/big.lo.dep: $(go_math_big_files)
+math/big.lo.dep: $(srcdir)/go/math/big/*.go
        $(BUILDDEPS)
-math/big.lo: $(go_math_big_files)
+math/big.lo: math/big.lo.dep
        $(BUILDPACKAGE)
 math/big/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: math/big/check
 
 @go_include@ math/cmplx.lo.dep
-math/cmplx.lo.dep: $(go_math_cmplx_files)
+math/cmplx.lo.dep: $(srcdir)/go/math/cmplx/*.go
        $(BUILDDEPS)
-math/cmplx.lo: $(go_math_cmplx_files)
+math/cmplx.lo: math/cmplx.lo.dep
        $(BUILDPACKAGE)
 math/cmplx/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: math/cmplx/check
 
 @go_include@ math/rand.lo.dep
-math/rand.lo.dep: $(go_math_rand_files)
+math/rand.lo.dep: $(srcdir)/go/math/rand/*.go
        $(BUILDDEPS)
-math/rand.lo: $(go_math_rand_files)
+math/rand.lo: math/rand.lo.dep
        $(BUILDPACKAGE)
 math/rand/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: math/rand/check
 
 @go_include@ mime/multipart.lo.dep
-mime/multipart.lo.dep: $(go_mime_multipart_files)
+mime/multipart.lo.dep: $(srcdir)/go/mime/multipart/*.go
        $(BUILDDEPS)
-mime/multipart.lo: $(go_mime_multipart_files)
+mime/multipart.lo: mime/multipart.lo.dep
        $(BUILDPACKAGE)
 mime/multipart/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: mime/multipart/check
 
 @go_include@ mime/quotedprintable.lo.dep
-mime/quotedprintable.lo.dep: $(go_mime_quotedprintable_files)
+mime/quotedprintable.lo.dep: $(srcdir)/go/mime/quotedprintable/*.go
        $(BUILDDEPS)
-mime/quotedprintable.lo: $(go_mime_quotedprintable_files)
+mime/quotedprintable.lo: mime/quotedprintable.lo.dep
        $(BUILDPACKAGE)
 mime/quotedprintable/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: mime/quotedprintable/check
 
 @go_include@ net/http.lo.dep
-net/http.lo.dep: $(go_net_http_files)
+net/http.lo.dep: $(srcdir)/go/net/http/*.go
        $(BUILDDEPS)
-net/http.lo: $(go_net_http_files)
+net/http.lo: net/http.lo.dep
        $(BUILDPACKAGE)
 net/http/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/http/check
 
 @go_include@ net/mail.lo.dep
-net/mail.lo.dep: $(go_net_mail_files)
+net/mail.lo.dep: $(srcdir)/go/net/mail/*.go
        $(BUILDDEPS)
-net/mail.lo: $(go_net_mail_files)
+net/mail.lo: net/mail.lo.dep
        $(BUILDPACKAGE)
 net/mail/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/mail/check
 
 @go_include@ net/rpc.lo.dep
-net/rpc.lo.dep: $(go_net_rpc_files)
+net/rpc.lo.dep: $(srcdir)/go/net/rpc/*.go
        $(BUILDDEPS)
-net/rpc.lo: $(go_net_rpc_files)
+net/rpc.lo: net/rpc.lo.dep
        $(BUILDPACKAGE)
 net/rpc/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/rpc/check
 
 @go_include@ net/smtp.lo.dep
-net/smtp.lo.dep: $(go_net_smtp_files)
+net/smtp.lo.dep: $(srcdir)/go/net/smtp/*.go
        $(BUILDDEPS)
-net/smtp.lo: $(go_net_smtp_files)
+net/smtp.lo: net/smtp.lo.dep
        $(BUILDPACKAGE)
 net/smtp/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/smtp/check
 
 @go_include@ net/url.lo.dep
-net/url.lo.dep: $(go_net_url_files)
+net/url.lo.dep: $(srcdir)/go/net/url/*.go
        $(BUILDDEPS)
-net/url.lo: $(go_net_url_files)
+net/url.lo: net/url.lo.dep
        $(BUILDPACKAGE)
 net/url/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/url/check
 
 @go_include@ net/textproto.lo.dep
-net/textproto.lo.dep: $(go_net_textproto_files)
+net/textproto.lo.dep: $(srcdir)/go/net/textproto/*.go
        $(BUILDDEPS)
-net/textproto.lo: $(go_net_textproto_files)
+net/textproto.lo: net/textproto.lo.dep
        $(BUILDPACKAGE)
 net/textproto/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/textproto/check
 
 @go_include@ net/http/cgi.lo.dep
-net/http/cgi.lo.dep: $(go_net_http_cgi_files)
+net/http/cgi.lo.dep: $(srcdir)/go/net/http/cgi/*.go
        $(BUILDDEPS)
-net/http/cgi.lo: $(go_net_http_cgi_files)
+net/http/cgi.lo: net/http/cgi.lo.dep
        $(BUILDPACKAGE)
 net/http/cgi/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/http/cgi/check
 
 @go_include@ net/http/cookiejar.lo.dep
-net/http/cookiejar.lo.dep: $(go_net_http_cookiejar_files)
+net/http/cookiejar.lo.dep: $(srcdir)/go/net/http/cookiejar/*.go
        $(BUILDDEPS)
-net/http/cookiejar.lo: $(go_net_http_cookiejar_files)
+net/http/cookiejar.lo: net/http/cookiejar.lo.dep
        $(BUILDPACKAGE)
 net/http/cookiejar/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/http/cookiejar/check
 
 @go_include@ net/http/fcgi.lo.dep
-net/http/fcgi.lo.dep: $(go_net_http_fcgi_files)
+net/http/fcgi.lo.dep: $(srcdir)/go/net/http/fcgi/*.go
        $(BUILDDEPS)
-net/http/fcgi.lo: $(go_net_http_fcgi_files)
+net/http/fcgi.lo: net/http/fcgi.lo.dep
        $(BUILDPACKAGE)
 net/http/fcgi/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/http/fcgi/check
 
 @go_include@ net/http/httptest.lo.dep
-net/http/httptest.lo.dep: $(go_net_http_httptest_files)
+net/http/httptest.lo.dep: $(srcdir)/go/net/http/httptest/*.go
        $(BUILDDEPS)
-net/http/httptest.lo: $(go_net_http_httptest_files)
+net/http/httptest.lo: net/http/httptest.lo.dep
        $(BUILDPACKAGE)
 net/http/httptest/check: $(check_deps)
        @$(CHECK)
 .PHONY: net/http/httptest/check
 
 @go_include@ net/http/httptrace.lo.dep
-net/http/httptrace.lo.dep: $(go_net_http_httptrace_files)
+net/http/httptrace.lo.dep: $(srcdir)/go/net/http/httptrace/*.go
        $(BUILDDEPS)
-net/http/httptrace.lo: $(go_net_http_httptrace_files)
+net/http/httptrace.lo: net/http/httptrace.lo.dep
        $(BUILDPACKAGE)
 net/http/httptrace/check: $(check_deps)
        @$(CHECK)
 .PHONY: net/http/httptrace/check
 
 @go_include@ net/http/httputil.lo.dep
-net/http/httputil.lo.dep: $(go_net_http_httputil_files)
+net/http/httputil.lo.dep: $(srcdir)/go/net/http/httputil/*.go
        $(BUILDDEPS)
-net/http/httputil.lo: $(go_net_http_httputil_files)
+net/http/httputil.lo: net/http/httputil.lo.dep
        $(BUILDPACKAGE)
 net/http/httputil/check: $(check_deps)
        @$(CHECK)
 .PHONY: net/http/httputil/check
 
 @go_include@ net/http/internal.lo.dep
-net/http/internal.lo.dep: $(go_net_http_internal_files)
+net/http/internal.lo.dep: $(srcdir)/go/net/http/internal/*.go
        $(BUILDDEPS)
-net/http/internal.lo: $(go_net_http_internal_files)
+net/http/internal.lo: net/http/internal.lo.dep
        $(BUILDPACKAGE)
 net/http/internal/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/http/internal/check
 
 @go_include@ net/http/pprof.lo.dep
-net/http/pprof.lo.dep: $(go_net_http_pprof_files)
+net/http/pprof.lo.dep: $(srcdir)/go/net/http/pprof/*.go
        $(BUILDDEPS)
-net/http/pprof.lo: $(go_net_http_pprof_files)
+net/http/pprof.lo: net/http/pprof.lo.dep
        $(BUILDPACKAGE)
 net/http/pprof/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/http/pprof/check
 
 @go_include@ net/internal/socktest.lo.dep
-net/internal/socktest.lo.dep: $(go_net_internal_socktest_files)
+net/internal/socktest.lo.dep: $(srcdir)/go/net/internal/socktest/*.go
        $(BUILDDEPS)
-net/internal/socktest.lo: $(go_net_internal_socktest_files)
+net/internal/socktest.lo: net/internal/socktest.lo.dep
        $(BUILDPACKAGE)
 net/internal/socktest/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/internal/socktest/check
 
 @go_include@ net/rpc/jsonrpc.lo.dep
-net/rpc/jsonrpc.lo.dep: $(go_net_rpc_jsonrpc_files)
+net/rpc/jsonrpc.lo.dep: $(srcdir)/go/net/rpc/jsonrpc/*.go
        $(BUILDDEPS)
-net/rpc/jsonrpc.lo: $(go_net_rpc_jsonrpc_files)
+net/rpc/jsonrpc.lo: net/rpc/jsonrpc.lo.dep
        $(BUILDPACKAGE)
 net/rpc/jsonrpc/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/rpc/jsonrpc/check
 
 @go_include@ old/regexp.lo.dep
-old/regexp.lo.dep: $(go_old_regexp_files)
+old/regexp.lo.dep: $(srcdir)/go/old/regexp/*.go
        $(BUILDDEPS)
-old/regexp.lo: $(go_old_regexp_files)
+old/regexp.lo: old/regexp.lo.dep
        $(BUILDPACKAGE)
 old/regexp/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: old/regexp/check
 
 @go_include@ old/template.lo.dep
-old/template.lo.dep: $(go_old_template_files)
+old/template.lo.dep: $(srcdir)/go/old/template/*.go
        $(BUILDDEPS)
-old/template.lo: $(go_old_template_files)
+old/template.lo: old/template.lo.dep
        $(BUILDPACKAGE)
 old/template/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: old/template/check
 
 @go_include@ os/exec.lo.dep
-os/exec.lo.dep: $(go_os_exec_files)
+os/exec.lo.dep: $(srcdir)/go/os/exec/*.go
        $(BUILDDEPS)
-os/exec.lo: $(go_os_exec_files)
+os/exec.lo: os/exec.lo.dep
        $(BUILDPACKAGE)
 os/exec/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: os/exec/check
 
 @go_include@ os/signal.lo.dep
-os/signal.lo.dep: $(go_os_signal_files)
+os/signal.lo.dep: $(srcdir)/go/os/signal/*.go
        $(BUILDDEPS)
-os/signal.lo: $(go_os_signal_files)
+os/signal.lo: os/signal.lo.dep
        $(BUILDPACKAGE)
 os/signal/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: os/signal/check
 
 @go_include@ os/user.lo.dep
-os/user.lo.dep: $(go_os_user_files)
+os/user.lo.dep: $(srcdir)/go/os/user/*.go
        $(BUILDDEPS)
-os/user.lo: $(go_os_user_files)
+os/user.lo: os/user.lo.dep
        $(BUILDPACKAGE)
 os/user/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: os/user/check
 
 @go_include@ path/filepath.lo.dep
-path/filepath.lo.dep: $(go_path_filepath_files)
+path/filepath.lo.dep: $(srcdir)/go/path/filepath/*.go
        $(BUILDDEPS)
-path/filepath.lo: $(go_path_filepath_files)
+path/filepath.lo: path/filepath.lo.dep
        $(BUILDPACKAGE)
 path/filepath/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: path/filepath/check
 
 @go_include@ regexp/syntax.lo.dep
-regexp/syntax.lo.dep: $(go_regexp_syntax_files)
+regexp/syntax.lo.dep: $(srcdir)/go/regexp/syntax/*.go
        $(BUILDDEPS)
-regexp/syntax.lo: $(go_regexp_syntax_files)
+regexp/syntax.lo: regexp/syntax.lo.dep
        $(BUILDPACKAGE)
 regexp/syntax/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: regexp/syntax/check
 
 @go_include@ runtime/debug.lo.dep
-runtime/debug.lo.dep: $(go_runtime_debug_files)
+runtime/debug.lo.dep: $(srcdir)/go/runtime/debug/*.go
        $(BUILDDEPS)
-runtime/debug.lo: $(go_runtime_debug_files)
+runtime/debug.lo: runtime/debug.lo.dep
        $(BUILDPACKAGE)
 runtime/debug/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: runtime/debug/check
 
 @go_include@ runtime/pprof.lo.dep
-runtime/pprof.lo.dep: $(go_runtime_pprof_files)
+runtime/pprof.lo.dep: $(srcdir)/go/runtime/pprof/*.go
        $(BUILDDEPS)
-runtime/pprof.lo: $(go_runtime_pprof_files)
+runtime/pprof.lo: runtime/pprof.lo.dep
        $(BUILDPACKAGE)
 runtime/pprof/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -3908,92 +2341,92 @@ runtime/pprof/check: $(CHECK_DEPS)
 runtime_pprof_check_GOCFLAGS = -static-libgo -fno-inline
 
 @go_include@ sync/atomic.lo.dep
-sync/atomic.lo.dep: $(go_sync_atomic_files)
+sync/atomic.lo.dep: $(srcdir)/go/sync/atomic/*.go
        $(BUILDDEPS)
-sync/atomic.lo: $(go_sync_atomic_files)
+sync/atomic.lo: sync/atomic.lo.dep
        $(BUILDPACKAGE)
-sync/atomic_c.lo: $(go_sync_atomic_c_files) sync/atomic.lo
+sync/atomic_c.lo: go/sync/atomic/atomic.c sync/atomic.lo
        $(LTCOMPILE) -c -o $@ $(srcdir)/go/sync/atomic/atomic.c
 sync/atomic/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: sync/atomic/check
 
 @go_include@ text/scanner.lo.dep
-text/scanner.lo.dep: $(go_text_scanner_files)
+text/scanner.lo.dep: $(srcdir)/go/text/scanner/*.go
        $(BUILDDEPS)
-text/scanner.lo: $(go_text_scanner_files)
+text/scanner.lo: text/scanner.lo.dep
        $(BUILDPACKAGE)
 text/scanner/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: text/scanner/check
 
 @go_include@ text/tabwriter.lo.dep
-text/tabwriter.lo.dep: $(go_text_tabwriter_files)
+text/tabwriter.lo.dep: $(srcdir)/go/text/tabwriter/*.go
        $(BUILDDEPS)
-text/tabwriter.lo: $(go_text_tabwriter_files)
+text/tabwriter.lo: text/tabwriter.lo.dep
        $(BUILDPACKAGE)
 text/tabwriter/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: text/tabwriter/check
 
 @go_include@ text/template.lo.dep
-text/template.lo.dep: $(go_text_template_files)
+text/template.lo.dep: $(srcdir)/go/text/template/*.go
        $(BUILDDEPS)
-text/template.lo: $(go_text_template_files)
+text/template.lo: text/template.lo.dep
        $(BUILDPACKAGE)
 text/template/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: text/template/check
 
 @go_include@ text/template/parse.lo.dep
-text/template/parse.lo.dep: $(go_text_template_parse_files)
+text/template/parse.lo.dep: $(srcdir)/go/text/template/parse/*.go
        $(BUILDDEPS)
-text/template/parse.lo: $(go_text_template_parse_files)
+text/template/parse.lo: text/template/parse.lo.dep
        $(BUILDPACKAGE)
 text/template/parse/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: text/template/parse/check
 
 @go_include@ testing/iotest.lo.dep
-testing/iotest.lo.dep: $(go_testing_iotest_files)
+testing/iotest.lo.dep: $(srcdir)/go/testing/iotest/*.go
        $(BUILDDEPS)
-testing/iotest.lo: $(go_testing_iotest_files)
+testing/iotest.lo: testing/iotest.lo.dep
        $(BUILDPACKAGE)
 testing/iotest/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: testing/iotest/check
 
 @go_include@ testing/quick.lo.dep
-testing/quick.lo.dep: $(go_testing_quick_files)
+testing/quick.lo.dep: $(srcdir)/go/testing/quick/*.go
        $(BUILDDEPS)
-testing/quick.lo: $(go_testing_quick_files)
+testing/quick.lo: testing/quick.lo.dep
        $(BUILDPACKAGE)
 testing/quick/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: testing/quick/check
 
 @go_include@ unicode/utf16.lo.dep
-unicode/utf16.lo.dep: $(go_unicode_utf16_files)
+unicode/utf16.lo.dep: $(srcdir)/go/unicode/utf16/*.go
        $(BUILDDEPS)
-unicode/utf16.lo: $(go_unicode_utf16_files)
+unicode/utf16.lo: unicode/utf16.lo.dep
        $(BUILDPACKAGE)
 unicode/utf16/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: unicode/utf16/check
 
 @go_include@ unicode/utf8.lo.dep
-unicode/utf8.lo.dep: $(go_unicode_utf8_files)
+unicode/utf8.lo.dep: $(srcdir)/go/unicode/utf8/*.go
        $(BUILDDEPS)
-unicode/utf8.lo: $(go_unicode_utf8_files)
+unicode/utf8.lo: unicode/utf8.lo.dep
        $(BUILDPACKAGE)
 unicode/utf8/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: unicode/utf8/check
 
 @go_include@ syscall.lo.dep
-syscall.lo.dep: $(go_syscall_files)
+syscall.lo.dep: $(srcdir)/go/syscall/*.go
        $(BUILDDEPS)
-syscall.lo: $(go_syscall_files)
+syscall.lo: syscall.lo.dep
        $(BUILDPACKAGE)
 syscall/errno.lo: go/syscall/errno.c
        @$(MKDIR_P) syscall
index 740885ef372854286e5a57e2591fa0cd6709e667..be0798ffb0670611f8bba7c72a002665b55f5699 100644 (file)
@@ -165,16 +165,10 @@ am_libgolibbegin_a_OBJECTS = libgolibbegin_a-go-libmain.$(OBJEXT)
 libgolibbegin_a_OBJECTS = $(am_libgolibbegin_a_OBJECTS)
 libnetgo_a_AR = $(AR) $(ARFLAGS)
 libnetgo_a_DEPENDENCIES = netgo.o
-am__objects_1 =
-am__objects_2 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \
-       $(am__objects_1) $(am__objects_1) $(am__objects_1) \
-       $(am__objects_1)
-am__objects_3 = $(am__objects_2)
-am_libnetgo_a_OBJECTS = $(am__objects_3)
+am_libnetgo_a_OBJECTS =
 libnetgo_a_OBJECTS = $(am_libnetgo_a_OBJECTS)
 LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
-am__DEPENDENCIES_1 =
-am__DEPENDENCIES_2 = bufio.lo bytes.lo bytes/index.lo context.lo \
+am__DEPENDENCIES_1 = bufio.lo bytes.lo bytes/index.lo context.lo \
        crypto.lo encoding.lo errors.lo expvar.lo flag.lo fmt.lo \
        hash.lo html.lo image.lo io.lo log.lo math.lo mime.lo net.lo \
        os.lo path.lo reflect-go.lo reflect/makefunc_ffi_c.lo \
@@ -215,35 +209,36 @@ am__DEPENDENCIES_2 = bufio.lo bytes.lo bytes/index.lo context.lo \
        math/cmplx.lo math/rand.lo mime/multipart.lo \
        mime/quotedprintable.lo net/http.lo net/internal/socktest.lo \
        net/mail.lo net/rpc.lo net/smtp.lo net/textproto.lo net/url.lo \
-       old/regexp.lo old/template.lo os/exec.lo $(am__DEPENDENCIES_1) \
-       os/signal.lo os/user.lo path/filepath.lo regexp/syntax.lo \
+       old/regexp.lo old/template.lo os/exec.lo os/signal.lo \
+       os/user.lo path/filepath.lo regexp/syntax.lo \
        net/rpc/jsonrpc.lo runtime/debug.lo runtime/pprof.lo \
        sync/atomic.lo sync/atomic_c.lo text/scanner.lo \
        text/tabwriter.lo text/template.lo text/template/parse.lo \
        testing/iotest.lo testing/quick.lo unicode/utf16.lo \
        unicode/utf8.lo
-am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2) \
-       ../libbacktrace/libbacktrace.la $(am__DEPENDENCIES_1) \
-       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_2 =
+am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1) \
+       ../libbacktrace/libbacktrace.la $(am__DEPENDENCIES_2) \
+       $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_2) \
+       $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_2)
 libgo_llgo_la_DEPENDENCIES = $(am__DEPENDENCIES_3)
-@LIBGO_IS_LINUX_FALSE@am__objects_4 = lock_sema.lo thread-sema.lo
-@LIBGO_IS_LINUX_TRUE@am__objects_4 = lock_futex.lo thread-linux.lo
-@HAVE_SYS_MMAN_H_FALSE@am__objects_5 = mem_posix_memalign.lo
-@HAVE_SYS_MMAN_H_TRUE@am__objects_5 = mem.lo
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_6 = netpoll_kqueue.lo
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@am__objects_6 = netpoll_select.lo
-@LIBGO_IS_LINUX_TRUE@am__objects_6 = netpoll_epoll.lo
-@LIBGO_IS_RTEMS_TRUE@am__objects_7 = rtems-task-variable-add.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_8 = getncpu-none.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@am__objects_8 = getncpu-bsd.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_8 = getncpu-bsd.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@am__objects_8 = getncpu-solaris.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_8 = getncpu-irix.lo
-@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_8 =  \
+@LIBGO_IS_LINUX_FALSE@am__objects_1 = lock_sema.lo thread-sema.lo
+@LIBGO_IS_LINUX_TRUE@am__objects_1 = lock_futex.lo thread-linux.lo
+@HAVE_SYS_MMAN_H_FALSE@am__objects_2 = mem_posix_memalign.lo
+@HAVE_SYS_MMAN_H_TRUE@am__objects_2 = mem.lo
+@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_3 = netpoll_kqueue.lo
+@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@am__objects_3 = netpoll_select.lo
+@LIBGO_IS_LINUX_TRUE@am__objects_3 = netpoll_epoll.lo
+@LIBGO_IS_RTEMS_TRUE@am__objects_4 = rtems-task-variable-add.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_5 = getncpu-none.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@am__objects_5 = getncpu-bsd.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_5 = getncpu-bsd.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@am__objects_5 = getncpu-solaris.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_5 = getncpu-irix.lo
+@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_5 =  \
 @LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@   getncpu-bsd.lo
-@LIBGO_IS_LINUX_TRUE@am__objects_8 = getncpu-linux.lo
-am__objects_9 = go-append.lo go-assert.lo go-assert-interface.lo \
+@LIBGO_IS_LINUX_TRUE@am__objects_5 = getncpu-linux.lo
+am__objects_6 = go-append.lo go-assert.lo go-assert-interface.lo \
        go-byte-array-to-string.lo go-breakpoint.lo go-caller.lo \
        go-callers.lo go-can-convert-interface.lo go-cdiv.lo go-cgo.lo \
        go-check-interface.lo go-construct-map.lo \
@@ -265,21 +260,21 @@ am__objects_9 = go-append.lo go-assert.lo go-assert-interface.lo \
        go-type-string.lo go-typedesc-equal.lo go-unsafe-new.lo \
        go-unsafe-newarray.lo go-unsafe-pointer.lo go-unsetenv.lo \
        go-unwind.lo go-varargs.lo env_posix.lo heapdump.lo \
-       $(am__objects_4) mcache.lo mcentral.lo $(am__objects_5) \
-       mfixalloc.lo mgc0.lo mheap.lo msize.lo $(am__objects_6) \
+       $(am__objects_1) mcache.lo mcentral.lo $(am__objects_2) \
+       mfixalloc.lo mgc0.lo mheap.lo msize.lo $(am__objects_3) \
        panic.lo parfor.lo print.lo proc.lo runtime.lo signal_unix.lo \
-       thread.lo yield.lo $(am__objects_7) chan.lo cpuprof.lo \
+       thread.lo yield.lo $(am__objects_4) chan.lo cpuprof.lo \
        go-iface.lo lfstack.lo malloc.lo map.lo mprof.lo netpoll.lo \
        rdebug.lo reflect.lo runtime1.lo sema.lo sigqueue.lo string.lo \
-       time.lo $(am__objects_8)
-am_libgo_llgo_la_OBJECTS = $(am__objects_9)
+       time.lo $(am__objects_5)
+am_libgo_llgo_la_OBJECTS = $(am__objects_6)
 libgo_llgo_la_OBJECTS = $(am_libgo_llgo_la_OBJECTS)
 libgo_llgo_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(libgo_llgo_la_LDFLAGS) $(LDFLAGS) -o $@
 @GOC_IS_LLGO_TRUE@am_libgo_llgo_la_rpath = -rpath $(toolexeclibdir)
 libgo_la_DEPENDENCIES = $(am__DEPENDENCIES_3)
-am_libgo_la_OBJECTS = $(am__objects_9)
+am_libgo_la_OBJECTS = $(am__objects_6)
 libgo_la_OBJECTS = $(am_libgo_la_OBJECTS)
 libgo_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
        --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libgo_la_LDFLAGS) \
@@ -937,1288 +932,15 @@ runtime_files = \
        time.c \
        $(runtime_getncpu_file)
 
-go_bufio_files = \
-       go/bufio/bufio.go \
-       go/bufio/scan.go
-
-go_bytes_files = \
-       go/bytes/buffer.go \
-       go/bytes/bytes.go \
-       go/bytes/bytes_decl.go \
-       go/bytes/reader.go
-
-go_bytes_c_files = \
-       go/bytes/indexbyte.c
-
-go_context_files = \
-       go/context/context.go
-
-go_crypto_files = \
-       go/crypto/crypto.go
-
-go_encoding_files = \
-       go/encoding/encoding.go
-
-go_errors_files = \
-       go/errors/errors.go
-
-go_expvar_files = \
-       go/expvar/expvar.go
-
-go_flag_files = \
-       go/flag/flag.go
-
-go_fmt_files = \
-       go/fmt/doc.go \
-       go/fmt/format.go \
-       go/fmt/print.go \
-       go/fmt/scan.go
-
-go_hash_files = \
-       go/hash/hash.go
-
-go_html_files = \
-       go/html/entity.go \
-       go/html/escape.go
-
-go_image_files = \
-       go/image/format.go \
-       go/image/geom.go \
-       go/image/image.go \
-       go/image/names.go \
-       go/image/ycbcr.go
-
-go_io_files = \
-       go/io/multi.go \
-       go/io/io.go \
-       go/io/pipe.go
-
-go_log_files = \
-       go/log/log.go
-
-go_math_files = \
-       go/math/abs.go \
-       go/math/acosh.go \
-       go/math/asin.go \
-       go/math/asinh.go \
-       go/math/atan.go \
-       go/math/atanh.go \
-       go/math/atan2.go \
-       go/math/bits.go \
-       go/math/cbrt.go \
-       go/math/const.go \
-       go/math/copysign.go \
-       go/math/dim.go \
-       go/math/erf.go \
-       go/math/exp.go \
-       go/math/expm1.go \
-       go/math/floor.go \
-       go/math/frexp.go \
-       go/math/gamma.go \
-       go/math/hypot.go \
-       go/math/j0.go \
-       go/math/j1.go \
-       go/math/jn.go \
-       go/math/ldexp.go \
-       go/math/lgamma.go \
-       go/math/log.go \
-       go/math/log1p.go \
-       go/math/log10.go \
-       go/math/logb.go \
-       go/math/mod.go \
-       go/math/modf.go \
-       go/math/nextafter.go \
-       go/math/pow.go \
-       go/math/pow10.go \
-       go/math/remainder.go \
-       go/math/signbit.go \
-       go/math/sin.go \
-       go/math/sincos.go \
-       go/math/sinh.go \
-       go/math/sqrt.go \
-       go/math/tan.go \
-       go/math/tanh.go \
-       go/math/unsafe.go
-
-@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_OPENBSD_FALSE@go_mime_type_file = 
-@LIBGO_IS_DRAGONFLY_TRUE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_OPENBSD_FALSE@go_mime_type_file = go/mime/type_dragonfly.go
-@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_OPENBSD_FALSE@go_mime_type_file = go/mime/type_freebsd.go
-@LIBGO_IS_OPENBSD_TRUE@go_mime_type_file = go/mime/type_openbsd.go
-go_mime_files = \
-       go/mime/encodedword.go \
-       go/mime/grammar.go \
-       go/mime/mediatype.go \
-       go/mime/type.go \
-       go/mime/type_unix.go \
-       $(go_mime_type_file)
-
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_cgo_file = go/net/cgo_bsd.go
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_net_cgo_file = go/net/cgo_netbsd.go
-@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_cgo_file = go/net/cgo_bsd.go
-@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_net_cgo_file = go/net/cgo_solaris.go
-@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@go_net_cgo_file = go/net/cgo_linux.go
-@LIBGO_IS_LINUX_TRUE@go_net_cgo_file = go/net/cgo_linux.go
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_sock_file = go/net/sock_bsd.go
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_net_sock_file = go/net/sock_bsd.go
-@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_sock_file = go/net/sock_bsd.go
-@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_net_sock_file = go/net/sock_stub.go
-@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@go_net_sock_file = go/net/sock_linux.go
-@LIBGO_IS_LINUX_TRUE@go_net_sock_file = go/net/sock_linux.go
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_sockopt_file = go/net/sockopt_bsd.go
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_net_sockopt_file = go/net/sockopt_bsd.go
-@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_sockopt_file = go/net/sockopt_bsd.go
-@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_net_sockopt_file = go/net/sockopt_solaris.go
-@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@go_net_sockopt_file = go/net/sockopt_linux.go
-@LIBGO_IS_LINUX_TRUE@go_net_sockopt_file = go/net/sockopt_linux.go
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_sockoptip_file = go/net/sockoptip_bsd.go go/net/sockoptip_posix.go
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_net_sockoptip_file = go/net/sockoptip_bsd.go go/net/sockoptip_posix.go
-@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_sockoptip_file = go/net/sockoptip_bsd.go go/net/sockoptip_posix.go
-@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_net_sockoptip_file = go/net/sockoptip_stub.go
-@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@go_net_sockoptip_file = go/net/sockoptip_linux.go go/net/sockoptip_posix.go
-@LIBGO_IS_LINUX_TRUE@go_net_sockoptip_file = go/net/sockoptip_linux.go go/net/sockoptip_posix.go
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_cgo_sock_file = go/net/cgo_sockold.go
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_net_cgo_sock_file = go/net/cgo_sockold.go
-@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_cgo_sock_file = go/net/cgo_sockold.go
-@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_net_cgo_sock_file = go/net/cgo_socknew.go
-@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@go_net_cgo_sock_file = go/net/cgo_socknew.go
-@LIBGO_IS_LINUX_TRUE@go_net_cgo_sock_file = go/net/cgo_socknew.go
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_cgo_res_file = go/net/cgo_resold.go
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_net_cgo_res_file = go/net/cgo_resnew.go
-@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_cgo_res_file = go/net/cgo_resold.go
-@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_net_cgo_res_file = go/net/cgo_resnew.go
-@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@go_net_cgo_res_file = go/net/cgo_resnew.go
-@LIBGO_IS_LINUX_TRUE@go_net_cgo_res_file = go/net/cgo_resnew.go
-@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_sendfile_file = go/net/sendfile_stub.go
-@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_net_sendfile_file = go/net/sendfile_solaris.go
-@LIBGO_IS_DRAGONFLY_TRUE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_LINUX_FALSE@go_net_sendfile_file = go/net/sendfile_dragonfly.go
-@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_LINUX_FALSE@go_net_sendfile_file = go/net/sendfile_freebsd.go
-@LIBGO_IS_LINUX_TRUE@go_net_sendfile_file = go/net/sendfile_linux.go
-@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_OPENBSD_FALSE@go_net_interface_file = go/net/interface_stub.go
-@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_OPENBSD_TRUE@go_net_interface_file = go/net/interface_bsdvar.go
-@LIBGO_IS_DRAGONFLY_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@go_net_interface_file = go/net/interface_bsdvar.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@go_net_interface_file = go/net/interface_bsdvar.go
-@LIBGO_IS_LINUX_TRUE@go_net_interface_file = go/net/interface_linux.go
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_LINUX_FALSE@go_net_cloexec_file = go/net/sys_cloexec.go
-@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_LINUX_FALSE@go_net_cloexec_file = go/net/sock_cloexec.go go/net/hook_cloexec.go
-@LIBGO_IS_LINUX_TRUE@go_net_cloexec_file = go/net/sock_cloexec.go go/net/hook_cloexec.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_OPENBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_tcpsockopt_file = go/net/tcpsockopt_unix.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_DRAGONFLY_TRUE@@LIBGO_IS_OPENBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_tcpsockopt_file = go/net/tcpsockopt_dragonfly.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_OPENBSD_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_net_tcpsockopt_file = go/net/tcpsockopt_solaris.go
-@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_OPENBSD_FALSE@go_net_tcpsockopt_file = go/net/tcpsockopt_darwin.go
-@LIBGO_IS_OPENBSD_TRUE@go_net_tcpsockopt_file = go/net/tcpsockopt_openbsd.go
-go_net_common_files = \
-       go/net/addrselect.go \
-       $(go_net_cloexec_file) \
-       go/net/conf.go \
-       go/net/dial.go \
-       go/net/dnsclient.go \
-       go/net/dnsclient_unix.go \
-       go/net/dnsconfig_unix.go \
-       go/net/dnsmsg.go \
-       go/net/fd_mutex.go \
-       go/net/fd_posix.go \
-       go/net/fd_unix.go \
-       go/net/file.go \
-       go/net/file_unix.go \
-       go/net/hook.go \
-       go/net/hook_unix.go \
-       go/net/hosts.go \
-       go/net/interface.go \
-       $(go_net_interface_file) \
-       go/net/ip.go \
-       go/net/iprawsock.go \
-       go/net/iprawsock_posix.go \
-       go/net/ipsock.go \
-       go/net/ipsock_posix.go \
-       go/net/lookup.go \
-       go/net/lookup_unix.go \
-       go/net/mac.go \
-       go/net/net.go \
-       go/net/nss.go \
-       go/net/parse.go \
-       go/net/pipe.go \
-       go/net/port.go \
-       go/net/fd_poll_runtime.go \
-       go/net/port_unix.go \
-       $(go_net_sendfile_file) \
-       go/net/sock_posix.go \
-       $(go_net_sock_file) \
-       go/net/sockopt_posix.go \
-       $(go_net_sockopt_file) \
-       $(go_net_sockoptip_file) \
-       go/net/tcpsock.go \
-       go/net/tcpsock_posix.go \
-       go/net/tcpsockopt_posix.go \
-       $(go_net_tcpsockopt_file) \
-       go/net/udpsock.go \
-       go/net/udpsock_posix.go \
-       go/net/unixsock.go \
-       go/net/unixsock_posix.go
-
-go_net_files = \
-       go/net/cgo_unix.go \
-       $(go_net_cgo_file) \
-       $(go_net_cgo_res_file) \
-       $(go_net_cgo_sock_file) \
-       $(go_net_common_files)
-
-go_netgo_files = \
-       go/net/cgo_stub.go \
-       $(go_net_common_files)
-
-@LIBGO_IS_386_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_FALSE@go_os_dir_file = go/os/dir_regfile.go
-@LIBGO_IS_386_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_TRUE@go_os_dir_file = go/os/dir_largefile.go
-@LIBGO_IS_386_TRUE@@LIBGO_IS_SOLARIS_TRUE@go_os_dir_file = go/os/dir_largefile.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_dir_file = go/os/dir_regfile.go
-@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_os_dir_file = go/os/dir_largefile.go
-@LIBGO_IS_DARWIN_FALSE@go_os_getwd_file = 
-@LIBGO_IS_DARWIN_TRUE@go_os_getwd_file = go/os/getwd_darwin.go
-@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_sys_file = go/os/sys_bsd.go
-@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_os_sys_file = go/os/sys_uname.go
-@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_sys_file = go/os/sys_uname.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_os_sys_file = go/os/sys_uname.go
-@LIBGO_IS_LINUX_TRUE@go_os_sys_file = go/os/sys_linux.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@go_os_cloexec_file = go/os/sys_unix.go
-@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_FREEBSD_FALSE@go_os_cloexec_file = go/os/sys_darwin.go
-@LIBGO_IS_FREEBSD_TRUE@go_os_cloexec_file = go/os/sys_freebsd.go
-@HAVE_STAT_TIMESPEC_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_os_stat_file = go/os/stat_solaris.go
-@HAVE_STAT_TIMESPEC_TRUE@@LIBGO_IS_SOLARIS_TRUE@go_os_stat_file = go/os/stat_atim.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_OPENBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_stat_file = go/os/stat.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_DRAGONFLY_TRUE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_OPENBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_stat_file = go/os/stat_dragonfly.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_OPENBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_stat_file = go/os/stat_atimespec.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_OPENBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_stat_file = go/os/stat_atimespec.go
-@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_OPENBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_stat_file = go/os/stat_atimespec.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_OPENBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_os_stat_file = go/os/stat_atim.go
-@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_os_stat_file = go/os/stat_atim.go
-@LIBGO_IS_LINUX_FALSE@go_os_pipe_file = go/os/pipe_bsd.go
-@LIBGO_IS_LINUX_TRUE@go_os_pipe_file = go/os/pipe_linux.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_OPENBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_sticky_file = go/os/sticky_notbsd.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_OPENBSD_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_os_sticky_file = go/os/sticky_bsd.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_OPENBSD_TRUE@go_os_sticky_file = go/os/sticky_bsd.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_NETBSD_TRUE@go_os_sticky_file = go/os/sticky_bsd.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_TRUE@go_os_sticky_file = go/os/sticky_bsd.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_DRAGONFLY_TRUE@go_os_sticky_file = go/os/sticky_bsd.go
-@LIBGO_IS_DARWIN_TRUE@go_os_sticky_file = go/os/sticky_bsd.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_LINUX_FALSE@go_os_wait_file = go/os/wait_unimp.go
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_LINUX_FALSE@go_os_wait_file = go/os/wait_wait6.go
-@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@go_os_wait_file = go/os/wait_waitid.go
-@LIBGO_IS_LINUX_TRUE@go_os_wait_file = go/os/wait_waitid.go
-go_os_files = \
-       $(go_os_dir_file) \
-       go/os/dir.go \
-       go/os/doc.go \
-       go/os/env.go \
-       go/os/error.go \
-       go/os/error_unix.go \
-       go/os/exec.go \
-       go/os/exec_posix.go \
-       go/os/exec_unix.go \
-       go/os/file.go \
-       go/os/file_posix.go \
-       go/os/file_unix.go \
-       go/os/getwd.go \
-       $(go_os_getwd_file) \
-       go/os/path.go \
-       go/os/path_unix.go \
-       $(go_os_pipe_file) \
-       go/os/proc.go \
-       $(go_os_stat_file) \
-       $(go_os_sticky_file) \
-       go/os/str.go \
-       $(go_os_sys_file) \
-       $(go_os_cloexec_file) \
-       go/os/types.go \
-       go/os/types_unix.go \
-       $(go_os_wait_file)
-
-go_path_files = \
-       go/path/match.go \
-       go/path/path.go
-
-go_reflect_files = \
-       go/reflect/deepequal.go \
-       go/reflect/makefunc.go \
-       go/reflect/makefunc_ffi.go \
-       go/reflect/type.go \
-       go/reflect/value.go
-
-go_reflect_makefunc_c_file = \
-       go/reflect/makefunc_ffi_c.c
-
-go_regexp_files = \
-       go/regexp/backtrack.go \
-       go/regexp/exec.go \
-       go/regexp/onepass.go \
-       go/regexp/regexp.go
-
-go_net_rpc_files = \
-       go/net/rpc/client.go \
-       go/net/rpc/debug.go \
-       go/net/rpc/server.go
-
-go_runtime_files = \
-       go/runtime/compiler.go \
-       go/runtime/debug.go \
-       go/runtime/error.go \
-       go/runtime/extern.go \
-       go/runtime/mem.go \
-       go/runtime/symtab.go \
-       version.go
-
 noinst_DATA = zstdpkglist.go
-go_sort_files = \
-       go/sort/search.go \
-       go/sort/sort.go
-
-go_strconv_files = \
-       go/strconv/atob.go \
-       go/strconv/atof.go \
-       go/strconv/atoi.go \
-       go/strconv/decimal.go \
-       go/strconv/doc.go \
-       go/strconv/extfloat.go \
-       go/strconv/ftoa.go \
-       go/strconv/isprint.go \
-       go/strconv/itoa.go \
-       go/strconv/quote.go
-
-go_strings_files = \
-       go/strings/compare.go \
-       go/strings/reader.go \
-       go/strings/replace.go \
-       go/strings/search.go \
-       go/strings/strings.go \
-       go/strings/strings_decl.go \
-       go/strings/strings_generic.go
-
-go_strings_c_files = \
-       go/strings/indexbyte.c
-
-go_sync_files = \
-       go/sync/cond.go \
-       go/sync/mutex.go \
-       go/sync/once.go \
-       go/sync/pool.go \
-       go/sync/runtime.go \
-       go/sync/rwmutex.go \
-       go/sync/waitgroup.go
-
-@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_syslog_file = go/log/syslog/syslog_unix.go
-@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_syslog_file = go/log/syslog/syslog_libc.go
-@LIBGO_IS_SOLARIS_TRUE@go_syslog_file = go/log/syslog/syslog_libc.go
-go_log_syslog_files = \
-       go/log/syslog/doc.go \
-       go/log/syslog/syslog.go \
-       $(go_syslog_file)
-
-go_syslog_c_files = \
-       go/log/syslog/syslog_c.c
-
-go_testing_files = \
-       go/testing/allocs.go \
-       go/testing/benchmark.go \
-       go/testing/cover.go \
-       go/testing/example.go \
-       go/testing/match.go \
-       go/testing/testing.go
-
-go_time_files = \
-       go/time/format.go \
-       go/time/sleep.go \
-       go/time/sys_unix.go \
-       go/time/tick.go \
-       go/time/time.go \
-       go/time/zoneinfo.go \
-       go/time/zoneinfo_read.go \
-       go/time/zoneinfo_unix.go
-
-go_unicode_files = \
-       go/unicode/casetables.go \
-       go/unicode/digit.go \
-       go/unicode/graphic.go \
-       go/unicode/letter.go \
-       go/unicode/tables.go
-
-@LIBGO_IS_DARWIN_TRUE@archive_tar_atim_file = go/archive/tar/stat_atimespec.go
-@LIBGO_IS_FREEBSD_TRUE@archive_tar_atim_file = go/archive/tar/stat_atimespec.go
-@LIBGO_IS_LINUX_TRUE@archive_tar_atim_file = go/archive/tar/stat_atim.go
-@LIBGO_IS_NETBSD_TRUE@archive_tar_atim_file = go/archive/tar/stat_atimespec.go
-@LIBGO_IS_OPENBSD_TRUE@archive_tar_atim_file = go/archive/tar/stat_atim.go
-@LIBGO_IS_SOLARIS_TRUE@archive_tar_atim_file = go/archive/tar/stat_atim.go
-go_archive_tar_files = \
-       go/archive/tar/common.go \
-       go/archive/tar/format.go \
-       go/archive/tar/reader.go \
-       go/archive/tar/stat_unix.go \
-       go/archive/tar/writer.go \
-       $(archive_tar_atim_file)
-
-go_archive_zip_files = \
-       go/archive/zip/reader.go \
-       go/archive/zip/register.go \
-       go/archive/zip/struct.go \
-       go/archive/zip/writer.go
-
-go_compress_bzip2_files = \
-       go/compress/bzip2/bit_reader.go \
-       go/compress/bzip2/bzip2.go \
-       go/compress/bzip2/huffman.go \
-       go/compress/bzip2/move_to_front.go
-
-go_compress_flate_files = \
-       go/compress/flate/deflate.go \
-       go/compress/flate/deflatefast.go \
-       go/compress/flate/dict_decoder.go \
-       go/compress/flate/huffman_bit_writer.go \
-       go/compress/flate/huffman_code.go \
-       go/compress/flate/inflate.go \
-       go/compress/flate/reverse_bits.go \
-       go/compress/flate/token.go
-
-go_compress_gzip_files = \
-       go/compress/gzip/gzip.go \
-       go/compress/gzip/gunzip.go
-
-go_compress_lzw_files = \
-       go/compress/lzw/reader.go \
-       go/compress/lzw/writer.go
-
-go_compress_zlib_files = \
-       go/compress/zlib/reader.go \
-       go/compress/zlib/writer.go
-
-go_container_heap_files = \
-       go/container/heap/heap.go
-
-go_container_list_files = \
-       go/container/list/list.go
-
-go_container_ring_files = \
-       go/container/ring/ring.go
-
-go_crypto_aes_files = \
-       go/crypto/aes/block.go \
-       go/crypto/aes/cipher.go \
-       go/crypto/aes/cipher_generic.go \
-       go/crypto/aes/const.go \
-       go/crypto/aes/modes.go
-
-go_crypto_cipher_files = \
-       go/crypto/cipher/cbc.go \
-       go/crypto/cipher/cfb.go \
-       go/crypto/cipher/cipher.go \
-       go/crypto/cipher/ctr.go \
-       go/crypto/cipher/gcm.go \
-       go/crypto/cipher/io.go \
-       go/crypto/cipher/ofb.go \
-       go/crypto/cipher/xor.go
-
-go_crypto_des_files = \
-       go/crypto/des/block.go \
-       go/crypto/des/cipher.go \
-       go/crypto/des/const.go
-
-go_crypto_dsa_files = \
-       go/crypto/dsa/dsa.go
-
-go_crypto_ecdsa_files = \
-       go/crypto/ecdsa/ecdsa.go
-
-go_crypto_elliptic_files = \
-       go/crypto/elliptic/elliptic.go \
-       go/crypto/elliptic/p224.go \
-       go/crypto/elliptic/p256.go
-
-go_crypto_hmac_files = \
-       go/crypto/hmac/hmac.go
-
-go_crypto_md5_files = \
-       go/crypto/md5/md5.go \
-       go/crypto/md5/md5block.go \
-       go/crypto/md5/md5block_generic.go
-
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_OPENBSD_FALSE@crypto_rand_file = 
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_OPENBSD_TRUE@crypto_rand_file = go/crypto/rand/rand_openbsd.go
-@LIBGO_IS_LINUX_TRUE@crypto_rand_file = go/crypto/rand/rand_linux.go
-go_crypto_rand_files = \
-       go/crypto/rand/eagain.go \
-       go/crypto/rand/rand.go \
-       go/crypto/rand/rand_unix.go \
-       $(crypto_rand_file) \
-       go/crypto/rand/util.go
-
-go_crypto_rc4_files = \
-       go/crypto/rc4/rc4.go \
-       go/crypto/rc4/rc4_ref.go
-
-go_crypto_rsa_files = \
-       go/crypto/rsa/pkcs1v15.go \
-       go/crypto/rsa/pss.go \
-       go/crypto/rsa/rsa.go
-
-go_crypto_sha1_files = \
-       go/crypto/sha1/sha1.go \
-       go/crypto/sha1/sha1block.go \
-       go/crypto/sha1/sha1block_generic.go
-
-go_crypto_sha256_files = \
-       go/crypto/sha256/sha256.go \
-       go/crypto/sha256/sha256block.go \
-       go/crypto/sha256/sha256block_generic.go
-
-go_crypto_sha512_files = \
-       go/crypto/sha512/sha512.go \
-       go/crypto/sha512/sha512block.go \
-       go/crypto/sha512/sha512block_generic.go
-
-go_crypto_subtle_files = \
-       go/crypto/subtle/constant_time.go
-
-go_crypto_tls_files = \
-       go/crypto/tls/alert.go \
-       go/crypto/tls/cipher_suites.go \
-       go/crypto/tls/common.go \
-       go/crypto/tls/conn.go \
-       go/crypto/tls/handshake_client.go \
-       go/crypto/tls/handshake_messages.go \
-       go/crypto/tls/handshake_server.go \
-       go/crypto/tls/key_agreement.go \
-       go/crypto/tls/prf.go \
-       go/crypto/tls/ticket.go \
-       go/crypto/tls/tls.go
-
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_OPENBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_crypto_x509_root_file = 
-@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_OPENBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_crypto_x509_root_file = go/crypto/x509/root_darwin.go
-@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_OPENBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_crypto_x509_root_file = go/crypto/x509/root_bsd.go
-@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_crypto_x509_root_file = go/crypto/x509/root_bsd.go
-@LIBGO_IS_DRAGONFLY_FALSE@@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_crypto_x509_root_file = go/crypto/x509/root_bsd.go
-@LIBGO_IS_DRAGONFLY_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_crypto_x509_root_file = go/crypto/x509/root_bsd.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_crypto_x509_root_file = go/crypto/x509/root_solaris.go
-@LIBGO_IS_LINUX_TRUE@go_crypto_x509_root_file = go/crypto/x509/root_linux.go
-go_crypto_x509_files = \
-       go/crypto/x509/cert_pool.go \
-       go/crypto/x509/pem_decrypt.go \
-       go/crypto/x509/pkcs1.go \
-       go/crypto/x509/pkcs8.go \
-       go/crypto/x509/root.go \
-       go/crypto/x509/root_unix.go \
-       $(go_crypto_x509_root_file) \
-       go/crypto/x509/sec1.go \
-       go/crypto/x509/verify.go \
-       go/crypto/x509/x509.go
-
-go_crypto_x509_pkix_files = \
-       go/crypto/x509/pkix/pkix.go
-
-go_database_sql_files = \
-       go/database/sql/convert.go \
-       go/database/sql/sql.go
-
-go_database_sql_driver_files = \
-       go/database/sql/driver/driver.go \
-       go/database/sql/driver/types.go
-
-go_debug_dwarf_files = \
-       go/debug/dwarf/buf.go \
-       go/debug/dwarf/class_string.go \
-       go/debug/dwarf/const.go \
-       go/debug/dwarf/entry.go \
-       go/debug/dwarf/line.go \
-       go/debug/dwarf/open.go \
-       go/debug/dwarf/type.go \
-       go/debug/dwarf/typeunit.go \
-       go/debug/dwarf/unit.go
-
-go_debug_elf_files = \
-       go/debug/elf/elf.go \
-       go/debug/elf/file.go \
-       go/debug/elf/reader.go
-
-go_debug_gosym_files = \
-       go/debug/gosym/pclntab.go \
-       go/debug/gosym/symtab.go
-
-go_debug_macho_files = \
-       go/debug/macho/fat.go \
-       go/debug/macho/file.go \
-       go/debug/macho/macho.go
-
-go_debug_pe_files = \
-       go/debug/pe/file.go \
-       go/debug/pe/pe.go \
-       go/debug/pe/section.go \
-       go/debug/pe/string.go \
-       go/debug/pe/symbol.go
-
-go_debug_plan9obj_files = \
-       go/debug/plan9obj/file.go \
-       go/debug/plan9obj/plan9obj.go
-
-go_encoding_ascii85_files = \
-       go/encoding/ascii85/ascii85.go
-
-go_encoding_asn1_files = \
-       go/encoding/asn1/asn1.go \
-       go/encoding/asn1/common.go \
-       go/encoding/asn1/marshal.go
-
-go_encoding_base32_files = \
-       go/encoding/base32/base32.go
-
-go_encoding_base64_files = \
-       go/encoding/base64/base64.go
-
-go_encoding_binary_files = \
-       go/encoding/binary/binary.go \
-       go/encoding/binary/varint.go
-
-go_encoding_csv_files = \
-       go/encoding/csv/reader.go \
-       go/encoding/csv/writer.go
-
-go_encoding_gob_files = \
-       go/encoding/gob/decode.go \
-       go/encoding/gob/decoder.go \
-       go/encoding/gob/dec_helpers.go \
-       go/encoding/gob/doc.go \
-       go/encoding/gob/encode.go \
-       go/encoding/gob/encoder.go \
-       go/encoding/gob/enc_helpers.go \
-       go/encoding/gob/error.go \
-       go/encoding/gob/type.go
-
-go_encoding_hex_files = \
-       go/encoding/hex/hex.go
-
-go_encoding_json_files = \
-       go/encoding/json/decode.go \
-       go/encoding/json/encode.go \
-       go/encoding/json/fold.go \
-       go/encoding/json/indent.go \
-       go/encoding/json/scanner.go \
-       go/encoding/json/stream.go \
-       go/encoding/json/tags.go
-
-go_encoding_pem_files = \
-       go/encoding/pem/pem.go
-
-go_encoding_xml_files = \
-       go/encoding/xml/marshal.go \
-       go/encoding/xml/read.go \
-       go/encoding/xml/typeinfo.go \
-       go/encoding/xml/xml.go
-
-go_exp_proxy_files = \
-       go/exp/proxy/direct.go \
-       go/exp/proxy/per_host.go \
-       go/exp/proxy/proxy.go \
-       go/exp/proxy/socks5.go
-
-go_exp_terminal_files = \
-       go/exp/terminal/terminal.go \
-       go/exp/terminal/util.go
-
-go_go_ast_files = \
-       go/go/ast/ast.go \
-       go/go/ast/commentmap.go \
-       go/go/ast/filter.go \
-       go/go/ast/import.go \
-       go/go/ast/print.go \
-       go/go/ast/resolve.go \
-       go/go/ast/scope.go \
-       go/go/ast/walk.go
-
-go_go_build_files = \
-       go/go/build/build.go \
-       go/go/build/doc.go \
-       go/go/build/read.go \
-       go/go/build/syslist.go
-
-go_go_constant_files = \
-       go/go/constant/value.go
-
-go_go_doc_files = \
-       go/go/doc/comment.go \
-       go/go/doc/doc.go \
-       go/go/doc/example.go \
-       go/go/doc/exports.go \
-       go/go/doc/filter.go \
-       go/go/doc/reader.go \
-       go/go/doc/synopsis.go
-
-go_go_format_files = \
-       go/go/format/format.go \
-       go/go/format/internal.go
-
-go_go_importer_files = \
-       go/go/importer/importer.go
-
-go_go_parser_files = \
-       go/go/parser/interface.go \
-       go/go/parser/parser.go
-
-go_go_printer_files = \
-       go/go/printer/nodes.go \
-       go/go/printer/printer.go
-
-go_go_scanner_files = \
-       go/go/scanner/errors.go \
-       go/go/scanner/scanner.go
-
-go_go_token_files = \
-       go/go/token/position.go \
-       go/go/token/serialize.go \
-       go/go/token/token.go
-
-go_go_types_files = \
-       go/go/types/api.go \
-       go/go/types/assignments.go \
-       go/go/types/builtins.go \
-       go/go/types/call.go \
-       go/go/types/check.go \
-       go/go/types/conversions.go \
-       go/go/types/decl.go \
-       go/go/types/errors.go \
-       go/go/types/eval.go \
-       go/go/types/expr.go \
-       go/go/types/exprstring.go \
-       go/go/types/initorder.go \
-       go/go/types/labels.go \
-       go/go/types/lookup.go \
-       go/go/types/methodset.go \
-       go/go/types/object.go \
-       go/go/types/objset.go \
-       go/go/types/operand.go \
-       go/go/types/ordering.go \
-       go/go/types/package.go \
-       go/go/types/predicates.go \
-       go/go/types/resolver.go \
-       go/go/types/return.go \
-       go/go/types/scope.go \
-       go/go/types/selection.go \
-       go/go/types/stmt.go \
-       go/go/types/sizes.go \
-       go/go/types/type.go \
-       go/go/types/typestring.go \
-       go/go/types/typexpr.go \
-       go/go/types/universe.go
-
-go_go_internal_gcimporter_files = \
-       go/go/internal/gcimporter/bimport.go \
-       go/go/internal/gcimporter/exportdata.go \
-       go/go/internal/gcimporter/gcimporter.go
-
-go_go_internal_gccgoimporter_files = \
-       go/go/internal/gccgoimporter/gccgoinstallation.go \
-       go/go/internal/gccgoimporter/importer.go \
-       go/go/internal/gccgoimporter/parser.go
-
-go_golang_org_x_net_http2_hpack_files = \
-       go/golang_org/x/net/http2/hpack/encode.go \
-       go/golang_org/x/net/http2/hpack/hpack.go \
-       go/golang_org/x/net/http2/hpack/huffman.go \
-       go/golang_org/x/net/http2/hpack/tables.go
-
-go_golang_org_x_net_lex_httplex_files = \
-       go/golang_org/x/net/lex/httplex/httplex.go
-
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_DARWIN_TRUE@x_net_route_files = 
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_DRAGONFLY_TRUE@x_net_route_files = 
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_FREEBSD_TRUE@x_net_route_files = 
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_NETBSD_TRUE@x_net_route_files = 
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_OPENBSD_TRUE@x_net_route_files = 
-@LIBGO_IS_386_TRUE@@LIBGO_IS_BSD_TRUE@@LIBGO_IS_FREEBSD_TRUE@x_net_route_freebsd_file = 
-@LIBGO_IS_ARM_TRUE@@LIBGO_IS_BSD_TRUE@@LIBGO_IS_FREEBSD_TRUE@x_net_route_freebsd_file = 
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_X86_64_TRUE@x_net_route_freebsd_file = 
-@LIBGO_IS_BSD_TRUE@go_golang_org_x_net_route_files = \
-@LIBGO_IS_BSD_TRUE@    go/golang_org/x/net/route/address.go \
-@LIBGO_IS_BSD_TRUE@    go/golang_org/x/net/route/binary.go \
-@LIBGO_IS_BSD_TRUE@    go/golang_org/x/net/route/interface.go \
-@LIBGO_IS_BSD_TRUE@    go/golang_org/x/net/route/message.go \
-@LIBGO_IS_BSD_TRUE@    go/golang_org/x/net/route/route.go \
-@LIBGO_IS_BSD_TRUE@    go/golang_org/x/net/route/syscall.go \
-@LIBGO_IS_BSD_TRUE@    go/golang_org/x/net/route/sys.go \
-@LIBGO_IS_BSD_TRUE@    $(x_net_route_files)
-
-@LIBGO_IS_BSD_TRUE@golang_org_x_net_route_lo = \
-@LIBGO_IS_BSD_TRUE@    golang_org/x/net/route/route.lo
-
-@LIBGO_IS_BSD_TRUE@golang_org_x_net_route_check = \
-@LIBGO_IS_BSD_TRUE@    golang_org/x/net/route/check
-
-go_hash_adler32_files = \
-       go/hash/adler32/adler32.go
-
-go_hash_crc32_files = \
-       go/hash/crc32/crc32.go \
-       go/hash/crc32/crc32_generic.go
-
-go_hash_crc64_files = \
-       go/hash/crc64/crc64.go
-
-go_hash_fnv_files = \
-       go/hash/fnv/fnv.go
-
-go_html_template_files = \
-       go/html/template/attr.go \
-       go/html/template/content.go \
-       go/html/template/context.go \
-       go/html/template/css.go \
-       go/html/template/doc.go \
-       go/html/template/error.go \
-       go/html/template/escape.go \
-       go/html/template/html.go \
-       go/html/template/js.go \
-       go/html/template/template.go \
-       go/html/template/transition.go \
-       go/html/template/url.go
-
-go_image_color_files = \
-       go/image/color/color.go \
-       go/image/color/ycbcr.go
-
-go_image_color_palette_files = \
-       go/image/color/palette/palette.go
-
-go_image_draw_files = \
-       go/image/draw/draw.go
-
-go_image_gif_files = \
-       go/image/gif/reader.go \
-       go/image/gif/writer.go
-
-go_image_internal_imageutil_files = \
-       go/image/internal/imageutil/imageutil.go \
-       go/image/internal/imageutil/impl.go
-
-go_image_jpeg_files = \
-       go/image/jpeg/fdct.go \
-       go/image/jpeg/huffman.go \
-       go/image/jpeg/idct.go \
-       go/image/jpeg/reader.go \
-       go/image/jpeg/scan.go \
-       go/image/jpeg/writer.go
-
-go_image_png_files = \
-       go/image/png/paeth.go \
-       go/image/png/reader.go \
-       go/image/png/writer.go
-
-go_index_suffixarray_files = \
-       go/index/suffixarray/qsufsort.go \
-       go/index/suffixarray/suffixarray.go
-
-go_internal_nettrace_files = \
-       go/internal/nettrace/nettrace.go
-
-go_internal_race_files = \
-       go/internal/race/doc.go \
-       go/internal/race/norace.go
-
-go_internal_singleflight_files = \
-       go/internal/singleflight/singleflight.go
-
-@LIBGO_IS_386_FALSE@@LIBGO_IS_ARM_FALSE@@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_MIPS64_FALSE@@LIBGO_IS_PPC64_FALSE@@LIBGO_IS_S390X_FALSE@@LIBGO_IS_X86_64_FALSE@internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_generic.go
-@LIBGO_IS_386_FALSE@@LIBGO_IS_ARM_FALSE@@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_MIPS64_FALSE@@LIBGO_IS_PPC64_FALSE@@LIBGO_IS_S390X_TRUE@@LIBGO_IS_X86_64_FALSE@internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_s390x.go
-@LIBGO_IS_386_FALSE@@LIBGO_IS_ARM_FALSE@@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_MIPS64_TRUE@@LIBGO_IS_PPC64_FALSE@@LIBGO_IS_X86_64_FALSE@internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_mips64x.go
-@LIBGO_IS_386_FALSE@@LIBGO_IS_ARM_FALSE@@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_PPC64_TRUE@@LIBGO_IS_X86_64_FALSE@internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_ppc64x.go
-@LIBGO_IS_386_FALSE@@LIBGO_IS_ARM_TRUE@@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_X86_64_FALSE@internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_arm.go
-@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_X86_64_TRUE@internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_amd64.go
-@LIBGO_IS_386_TRUE@@LIBGO_IS_LINUX_TRUE@internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getrandom_linux.go go/internal/syscall/unix/getrandom_linux_386.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_OPENBSD_FALSE@internal_syscall_unix_getrandom_files = 
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_OPENBSD_TRUE@internal_syscall_unix_getrandom_files = go/internal/syscall/unix/getentropy_openbsd.go
-go_internal_syscall_unix_files = \
-       go/internal/syscall/unix/dummy.go \
-       $(internal_syscall_unix_getrandom_files)
-
-go_internal_testenv_files = \
-       go/internal/testenv/testenv.go
-
-go_internal_trace_files = \
-       go/internal/trace/goroutines.go \
-       go/internal/trace/order.go \
-       go/internal/trace/parser.go
-
-go_io_ioutil_files = \
-       go/io/ioutil/ioutil.go \
-       go/io/ioutil/tempfile.go
-
-go_math_big_files = \
-       go/math/big/accuracy_string.go \
-       go/math/big/arith.go \
-       go/math/big/arith_decl_pure.go \
-       go/math/big/decimal.go \
-       go/math/big/doc.go \
-       go/math/big/float.go \
-       go/math/big/floatconv.go \
-       go/math/big/floatmarsh.go \
-       go/math/big/ftoa.go \
-       go/math/big/int.go \
-       go/math/big/intmarsh.go \
-       go/math/big/intconv.go \
-       go/math/big/nat.go \
-       go/math/big/natconv.go \
-       go/math/big/rat.go \
-       go/math/big/ratconv.go \
-       go/math/big/ratmarsh.go \
-       go/math/big/roundingmode_string.go
-
-go_math_cmplx_files = \
-       go/math/cmplx/abs.go \
-       go/math/cmplx/asin.go \
-       go/math/cmplx/conj.go \
-       go/math/cmplx/exp.go \
-       go/math/cmplx/isinf.go \
-       go/math/cmplx/isnan.go \
-       go/math/cmplx/log.go \
-       go/math/cmplx/phase.go \
-       go/math/cmplx/polar.go \
-       go/math/cmplx/pow.go \
-       go/math/cmplx/rect.go \
-       go/math/cmplx/sin.go \
-       go/math/cmplx/sqrt.go \
-       go/math/cmplx/tan.go
-
-go_math_rand_files = \
-       go/math/rand/exp.go \
-       go/math/rand/normal.go \
-       go/math/rand/rand.go \
-       go/math/rand/rng.go \
-       go/math/rand/zipf.go
-
-go_mime_multipart_files = \
-       go/mime/multipart/formdata.go \
-       go/mime/multipart/multipart.go \
-       go/mime/multipart/writer.go
-
-go_mime_quotedprintable_files = \
-       go/mime/quotedprintable/reader.go \
-       go/mime/quotedprintable/writer.go
-
-go_net_http_files = \
-       go/net/http/client.go \
-       go/net/http/cookie.go \
-       go/net/http/filetransport.go \
-       go/net/http/fs.go \
-       go/net/http/h2_bundle.go \
-       go/net/http/header.go \
-       go/net/http/http.go \
-       go/net/http/jar.go \
-       go/net/http/method.go \
-       go/net/http/request.go \
-       go/net/http/response.go \
-       go/net/http/server.go \
-       go/net/http/sniff.go \
-       go/net/http/status.go \
-       go/net/http/transfer.go \
-       go/net/http/transport.go
-
-go_net_mail_files = \
-       go/net/mail/message.go
-
-go_net_smtp_files = \
-       go/net/smtp/auth.go \
-       go/net/smtp/smtp.go
-
-go_net_textproto_files = \
-       go/net/textproto/header.go \
-       go/net/textproto/pipeline.go \
-       go/net/textproto/reader.go \
-       go/net/textproto/textproto.go \
-       go/net/textproto/writer.go
-
-go_net_url_files = \
-       go/net/url/url.go
-
-go_net_http_cgi_files = \
-       go/net/http/cgi/child.go \
-       go/net/http/cgi/host.go
-
-go_net_http_cookiejar_files = \
-       go/net/http/cookiejar/jar.go \
-       go/net/http/cookiejar/punycode.go
-
-go_net_http_fcgi_files = \
-       go/net/http/fcgi/child.go \
-       go/net/http/fcgi/fcgi.go
-
-go_net_http_httptest_files = \
-       go/net/http/httptest/httptest.go \
-       go/net/http/httptest/recorder.go \
-       go/net/http/httptest/server.go
-
-go_net_http_pprof_files = \
-       go/net/http/pprof/pprof.go
-
-go_net_http_httptrace_files = \
-       go/net/http/httptrace/trace.go
-
-go_net_http_httputil_files = \
-       go/net/http/httputil/dump.go \
-       go/net/http/httputil/httputil.go \
-       go/net/http/httputil/persist.go \
-       go/net/http/httputil/reverseproxy.go
-
-go_net_http_internal_files = \
-       go/net/http/internal/chunked.go \
-       go/net/http/internal/testcert.go
-
-@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_LINUX_FALSE@go_net_internal_socktest_sys = 
-@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_LINUX_FALSE@go_net_internal_socktest_sys = go/net/internal/socktest/sys_cloexec.go
-@LIBGO_IS_LINUX_TRUE@go_net_internal_socktest_sys = go/net/internal/socktest/sys_cloexec.go
-go_net_internal_socktest_files = \
-       go/net/internal/socktest/switch.go \
-       go/net/internal/socktest/switch_posix.go \
-       go/net/internal/socktest/switch_unix.go \
-       go/net/internal/socktest/sys_unix.go \
-       $(go_net_internal_socktest_sys)
-
-go_old_regexp_files = \
-       go/old/regexp/regexp.go
-
-go_old_template_files = \
-       go/old/template/doc.go \
-       go/old/template/execute.go \
-       go/old/template/format.go \
-       go/old/template/parse.go
-
-go_os_exec_files = \
-       go/os/exec/exec.go \
-       go/os/exec/exec_posix.go \
-       go/os/exec/lp_unix.go
-
-go_os_signal_files = \
-       go/os/signal/doc.go \
-       go/os/signal/signal.go \
-       go/os/signal/signal_unix.go
-
-@LIBGO_IS_SOLARIS_FALSE@os_user_decls_file = go/os/user/decls_unix.go
-@LIBGO_IS_SOLARIS_TRUE@os_user_decls_file = go/os/user/decls_solaris.go
-@LIBGO_IS_SOLARIS_FALSE@os_user_listgroups_file = go/os/user/listgroups_unix.go
-@LIBGO_IS_SOLARIS_TRUE@os_user_listgroups_file = go/os/user/listgroups_solaris.go
-go_os_user_files = \
-       go/os/user/lookup.go \
-       go/os/user/lookup_unix.go \
-       go/os/user/user.go \
-       $(os_user_decls_file) \
-       $(os_user_listgroups_file)
-
-go_path_filepath_files = \
-       go/path/filepath/match.go \
-       go/path/filepath/path.go \
-       go/path/filepath/path_unix.go \
-       go/path/filepath/symlink.go \
-       go/path/filepath/symlink_unix.go
-
-go_regexp_syntax_files = \
-       go/regexp/syntax/compile.go \
-       go/regexp/syntax/doc.go \
-       go/regexp/syntax/parse.go \
-       go/regexp/syntax/perl_groups.go \
-       go/regexp/syntax/prog.go \
-       go/regexp/syntax/regexp.go \
-       go/regexp/syntax/simplify.go
-
-go_net_rpc_jsonrpc_files = \
-       go/net/rpc/jsonrpc/client.go \
-       go/net/rpc/jsonrpc/server.go
-
-go_runtime_debug_files = \
-       go/runtime/debug/garbage.go \
-       go/runtime/debug/stack.go
-
-go_runtime_pprof_files = \
-       go/runtime/pprof/pprof.go
-
-go_text_tabwriter_files = \
-       go/text/tabwriter/tabwriter.go
-
-go_text_template_files = \
-       go/text/template/doc.go \
-       go/text/template/exec.go \
-       go/text/template/funcs.go \
-       go/text/template/helper.go \
-       go/text/template/option.go \
-       go/text/template/template.go
-
-go_text_template_parse_files = \
-       go/text/template/parse/lex.go \
-       go/text/template/parse/node.go \
-       go/text/template/parse/parse.go
-
-go_sync_atomic_files = \
-       go/sync/atomic/doc.go \
-       go/sync/atomic/value.go
-
-go_sync_atomic_c_files = \
-       go/sync/atomic/atomic.c
-
-go_testing_iotest_files = \
-       go/testing/iotest/logger.go \
-       go/testing/iotest/reader.go \
-       go/testing/iotest/writer.go
-
-go_testing_quick_files = \
-       go/testing/quick/quick.go
-
-go_text_scanner_files = \
-       go/text/scanner/scanner.go
-
-go_unicode_utf16_files = \
-       go/unicode/utf16/utf16.go
-
-go_unicode_utf8_files = \
-       go/unicode/utf8/utf8.go
-
-@LIBGO_IS_RTEMS_FALSE@syscall_syscall_file = go/syscall/syscall_unix.go
-
-# Define Syscall and Syscall6.
-@LIBGO_IS_RTEMS_TRUE@syscall_syscall_file = go/syscall/syscall_stubs.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@syscall_exec_file = go/syscall/exec_unix.go
-@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@syscall_exec_file = go/syscall/exec_unix.go
-
-# Define ForkExec and Exec.
-@LIBGO_IS_RTEMS_TRUE@syscall_exec_file = go/syscall/exec_stubs.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@syscall_exec_os_file = go/syscall/exec_bsd.go
-@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@syscall_exec_os_file = go/syscall/exec_linux.go
-@LIBGO_IS_RTEMS_TRUE@syscall_exec_os_file = 
-@HAVE_WAIT4_FALSE@@LIBGO_IS_RTEMS_FALSE@syscall_wait_file = go/syscall/libcall_waitpid.go
-@HAVE_WAIT4_TRUE@@LIBGO_IS_RTEMS_FALSE@syscall_wait_file = go/syscall/libcall_wait4.go
-
-# Define Wait4.
-@LIBGO_IS_RTEMS_TRUE@syscall_wait_file = 
-@LIBGO_IS_RTEMS_FALSE@syscall_wait_c_file = go/syscall/wait.c
-
-# Support for pulling apart wait status.
-@LIBGO_IS_RTEMS_TRUE@syscall_wait_c_file = 
-@LIBGO_IS_RTEMS_FALSE@syscall_sleep_file = go/syscall/sleep_select.go
-
-# Define Sleep.
-@LIBGO_IS_RTEMS_TRUE@syscall_sleep_file = go/syscall/sleep_rtems.go
-@HAVE_STRERROR_R_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@syscall_errstr_file = go/syscall/errstr_nor.go
-@HAVE_STRERROR_R_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@syscall_errstr_file = go/syscall/errstr.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_TRUE@syscall_errstr_file = go/syscall/errstr_linux.go
-
-# Define Errstr.
-@LIBGO_IS_LINUX_TRUE@syscall_errstr_file = go/syscall/errstr_linux.go
-# Use lseek on 64-bit Solaris.
-@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_FALSE@syscall_size_file = go/syscall/libcall_posix_regfile.go
-# Use lseek64 on 32-bit Solaris/SPARC.
-@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_TRUE@syscall_size_file = go/syscall/libcall_posix_largefile.go
-# Use lseek64 on 32-bit Solaris/x86.
-@LIBGO_IS_386_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_size_file = go/syscall/libcall_posix_largefile.go
-# Use lseek by default.
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@syscall_size_file = go/syscall/libcall_posix_regfile.go
-
-# Declare libc functions that vary for largefile systems.
-# Always use lseek64 on GNU/Linux.
-@LIBGO_IS_LINUX_TRUE@syscall_size_file = go/syscall/libcall_posix_largefile.go
-@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@syscall_socket_file = go/syscall/socket_bsd.go
-@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@syscall_socket_file = go/syscall/socket_irix.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_socket_file = go/syscall/socket_solaris.go
-
-# Define socket sizes and types.
-@LIBGO_IS_LINUX_TRUE@syscall_socket_file = go/syscall/socket_linux.go epoll.go
-@LIBGO_IS_LINUX_FALSE@syscall_socket_type_file = 
-@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_PPC64LE_FALSE@@LIBGO_IS_PPC64_FALSE@syscall_socket_type_file = go/syscall/socket_linux_type.go
-@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_PPC64LE_FALSE@@LIBGO_IS_PPC64_TRUE@syscall_socket_type_file = go/syscall/socket_linux_ppc64x_type.go
-@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_PPC64LE_TRUE@syscall_socket_type_file = go/syscall/socket_linux_ppc64x_type.go
-@LIBGO_IS_SOLARIS_FALSE@syscall_socket_os_file = go/syscall/socket_posix.go
-
-# Define socket functions.
-@LIBGO_IS_SOLARIS_TRUE@syscall_socket_os_file = go/syscall/socket_xnet.go
-@LIBGO_IS_386_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_uname_file = go/syscall/libcall_uname.go
-
-# Support for uname.
-# 32-bit Solaris 2/x86 needs _nuname, handled in libcall_solaris_386.go.
-@LIBGO_IS_386_TRUE@@LIBGO_IS_SOLARIS_TRUE@syscall_uname_file = 
-@LIBGO_IS_SOLARIS_FALSE@syscall_uname_file = go/syscall/libcall_uname.go
-@LIBGO_IS_LINUX_FALSE@syscall_sockcmsg_file = 
-
-# GNU/Linux specific socket control messages.
-@LIBGO_IS_LINUX_TRUE@syscall_sockcmsg_file = go/syscall/sockcmsg_linux.go
-@LIBGO_IS_LINUX_FALSE@syscall_netlink_file = 
-
-# Support for netlink sockets and messages.
-@LIBGO_IS_LINUX_TRUE@syscall_netlink_file = go/syscall/netlink_linux.go
-@LIBGO_IS_LINUX_FALSE@syscall_lsf_file = 
-
-# GNU/Linux specific socket filters.
-@LIBGO_IS_LINUX_TRUE@syscall_lsf_file = go/syscall/lsf_linux.go
-@LIBGO_IS_ARM64_FALSE@@LIBGO_IS_LINUX_TRUE@syscall_ustat_file = go/syscall/libcall_linux_ustat.go
-
-# GNU/Linux specific ustat support.
-@LIBGO_IS_ARM64_TRUE@@LIBGO_IS_LINUX_TRUE@syscall_ustat_file = 
-@LIBGO_IS_LINUX_FALSE@syscall_ustat_file = 
-@LIBGO_IS_LINUX_FALSE@syscall_utimesnano_file = go/syscall/libcall_posix_utimesnano.go
-
-# GNU/Linux specific utimesnano support.
-@LIBGO_IS_LINUX_TRUE@syscall_utimesnano_file = go/syscall/libcall_linux_utimesnano.go
-@LIBGO_IS_LINUX_FALSE@syscall_creds_test_file = 
-
-# Test files.
-@LIBGO_IS_LINUX_TRUE@syscall_creds_test_file = go/syscall/creds_test.go
-@LIBGO_IS_LINUX_FALSE@syscall_exec_test_file = 
-@LIBGO_IS_LINUX_TRUE@syscall_exec_test_file = go/syscall/exec_linux_test.go go/syscall/syscall_linux_test.go
-@LIBGO_IS_LINUX_FALSE@syscall_os_file = go/syscall/libcall_bsd.go
-@LIBGO_IS_LINUX_TRUE@syscall_os_file = 
-go_base_syscall_files = \
-       go/syscall/env_unix.go \
-       go/syscall/syscall_errno.go \
-       go/syscall/libcall_support.go \
-       go/syscall/libcall_posix.go \
-       go/syscall/msan0.go \
-       go/syscall/socket.go \
-       go/syscall/sockcmsg_unix.go \
-       go/syscall/str.go \
-       go/syscall/syscall.go \
-       $(syscall_sockcmsg_file) \
-       $(syscall_syscall_file) \
-       $(syscall_exec_file) \
-       $(syscall_exec_os_file) \
-       $(syscall_wait_file) \
-       $(syscall_sleep_file) \
-       $(syscall_errstr_file) \
-       $(syscall_size_file) \
-       $(syscall_os_file) \
-       $(syscall_socket_file) \
-       $(syscall_socket_os_file) \
-       $(syscall_socket_type_file) \
-       $(syscall_uname_file) \
-       $(syscall_netlink_file) \
-       $(syscall_lsf_file) \
-       $(syscall_ustat_file) \
-       $(syscall_utimesnano_file) \
-       $(GO_LIBCALL_OS_FILE) \
-       $(GO_LIBCALL_OS_ARCH_FILE) \
-       $(GO_SYSCALL_OS_FILE) \
-       $(GO_SYSCALL_OS_ARCH_FILE)
-
-go_syscall_files = \
-       $(go_base_syscall_files) \
+@LIBGO_IS_LINUX_FALSE@syscall_epoll_file = 
+@LIBGO_IS_LINUX_TRUE@syscall_epoll_file = epoll.go
+extra_go_files_syscall = \
        libcalls.go \
        sysinfo.go \
-       syscall_arch.go
-
-go_syscall_c_files = \
-       go/syscall/errno.c \
-       go/syscall/signame.c \
-       $(syscall_wait_c_file)
-
-go_syscall_test_files = \
-       $(syscall_creds_test_file) \
-       $(syscall_exec_test_file) \
-       go/syscall/exec_unix_test.go \
-       go/syscall/export_test.go \
-       go/syscall/export_unix_test.go \
-       go/syscall/mmap_unix_test.go \
-       go/syscall/syscall_test.go \
-       go/syscall/syscall_unix_test.go
-
-@LIBGO_IS_LINUX_FALSE@os_lib_inotify_lo = 
-
-# os_lib_inotify_lo = os/inotify.lo
-@LIBGO_IS_LINUX_TRUE@os_lib_inotify_lo = 
+       syscall_arch.go \
+       $(syscall_epoll_file)
+
 libgo_go_objs = \
        bufio.lo \
        bytes.lo \
@@ -2412,7 +1134,7 @@ libgolibbegin_a_SOURCES = \
        runtime/go-libmain.c
 
 libgolibbegin_a_CFLAGS = $(AM_CFLAGS) -fPIC
-libnetgo_a_SOURCES = $(go_netgo_files)
+libnetgo_a_SOURCES = 
 libnetgo_a_LIBADD = netgo.o
 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
 AM_GOCFLAGS = $(STRINGOPS_FLAG) $(GO_SPLIT_STACK)
@@ -2427,21 +1149,31 @@ GOLINK = $(LIBTOOL) --tag GO --mode-link $(GOC) \
 # Build the dependencies for a Go package.
 BUILDDEPS = \
        $(MKDIR_P) $(@D); \
-       $(SHELL) $(srcdir)/godeps.sh `echo $@ | sed -e 's/.dep$$//'` $^ > $@.tmp; \
+       dir=`echo $@ | sed -e 's/.lo.dep$$//' -e 's/-go//'`; \
+       files=`$(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/$$dir --extrafiles="$(extra_go_files_$(subst /,_,$(subst -go,,$(subst .lo.dep,,$@))))" $(matchargs_$(subst /,_,$(subst -go,,$(subst .lo.dep,,$@))))`; \
+       $(SHELL) $(srcdir)/godeps.sh `echo $@ | sed -e 's/.dep$$//'` $$files > $@.tmp; \
        mv -f $@.tmp $@
 
 
 # Build the .go files for a package, generating a .lo file.
 BUILDPACKAGE = \
        $(MKDIR_P) $(@D); \
-       files=`echo $^ | sed -e 's/[^ ]*\.gox//g'`; \
+       files=`echo $^ | sed -e 's/[^ ]*\.gox//g' -e 's/[^ ]*\.dep//'`; \
        $(LTGOCOMPILE) -I . -c -fgo-pkgpath=`echo $@ | sed -e 's/.lo$$//' -e 's/-go$$//'` -o $@ $$files
 
 
+# Build deps for netgo.o.
+BUILDNETGODEPS = \
+       $(MKDIR_P) $(@D); \
+       files=`$(SHELL) $(srcdir)/match.sh --nocgo --tag=netgo --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/net`; \
+       $(SHELL) $(srcdir)/godeps.sh netgo.o $$files > $@.tmp; \
+       mv -f $@.tmp $@
+
+
 # Build netgo.o.
 BUILDNETGO = \
        $(MKDIR_P) $(@D); \
-       files=`echo $^ | sed -e 's/[^ ]*\.gox//g'`; \
+       files=`echo $^ | sed -e 's/[^ ]*\.gox//g' -e 's/[^ ]*\.dep//'`; \
        $(GOCOMPILE) -I . -c -fPIC -fgo-pkgpath=net -o $@ $$files
 
 GOTESTFLAGS = 
@@ -2463,12 +1195,13 @@ CHECK = \
        export LD_LIBRARY_PATH; \
        $(MKDIR_P) $(@D); \
        rm -f $@-testsum $@-testlog; \
+       files=`$(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/$(@D) --extrafiles="$(extra_go_files_$(subst /,_,$(@D)))" $(matchargs_$(subst /,_,$(@D)))`; \
        if test "$(USE_DEJAGNU)" = "yes"; then \
-         $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" --testname="$(@D)" $(GOTESTFLAGS) $(go_$(subst /,_,$(@D))_test_files); \
+         $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --testname="$(@D)" $(GOTESTFLAGS); \
        elif test "$(GOBENCH)" != ""; then \
-         $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" --bench="$(GOBENCH)" $(GOTESTFLAGS) $(go_$(subst /,_,$(@D))_test_files); \
+         $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --bench="$(GOBENCH)" $(GOTESTFLAGS); \
        else \
-         if $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$(go_$(subst .,_,$(subst /,_,$(@D)))_files)" $(GOTESTFLAGS) $(go_$(subst /,_,$(@D))_test_files) >>$@-testlog 2>&1; then \
+         if $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" $(GOTESTFLAGS) >>$@-testlog 2>&1; then \
            echo "PASS: $(@D)" >> $@-testlog; \
            echo "PASS: $(@D)"; \
            echo "PASS: $(@D)" > $@-testsum; \
@@ -2496,6 +1229,16 @@ CHECK_DEPS = $(toolexeclibgo_DATA) $(toolexeclibgoarchive_DATA) \
        $(toolexeclibgosync_DATA) $(toolexeclibgotesting_DATA) \
        $(toolexeclibgotext_DATA) $(toolexeclibgotexttemplate_DATA) \
        $(toolexeclibgounicode_DATA) $(am__append_1) $(am__append_2)
+@HAVE_STAT_TIMESPEC_FALSE@@LIBGO_IS_SOLARIS_TRUE@matchargs_os = 
+@HAVE_STAT_TIMESPEC_TRUE@@LIBGO_IS_SOLARIS_TRUE@matchargs_os = --tag=solaristag
+@LIBGO_IS_SOLARIS_FALSE@matchargs_os = 
+extra_go_files_runtime = version.go
+@LIBGO_IS_BSD_TRUE@golang_org_x_net_route_lo = \
+@LIBGO_IS_BSD_TRUE@    golang_org/x/net/route/route.lo
+
+@LIBGO_IS_BSD_TRUE@golang_org_x_net_route_check = \
+@LIBGO_IS_BSD_TRUE@    golang_org/x/net/route/check
+
 # At least for now, we need -static-libgo for this test, because
 # otherwise we can't get the line numbers.
 # Also use -fno-inline to get better results from the memory profiler.
@@ -4835,47 +3578,18 @@ s-zstdpkglist: Makefile
        echo '}' >> zstdpkglist.go.tmp
        $(SHELL) $(srcdir)/mvifdiff.sh zstdpkglist.go.tmp zstdpkglist.go
        $(STAMP) $@
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_DARWIN_TRUE@      go/golang_org/x/net/route/interface_classic.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_DARWIN_TRUE@      go/golang_org/x/net/route/interface_multicast.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_DARWIN_TRUE@      go/golang_org/x/net/route/route_classic.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_DARWIN_TRUE@      go/golang_org/x/net/route/sys_darwin.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_DARWIN_TRUE@      go/golang_org/x/net/route/zsys_darwin.go
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_DRAGONFLY_TRUE@   go/golang_org/x/net/route/interface_announce.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_DRAGONFLY_TRUE@   go/golang_org/x/net/route/interface_classic.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_DRAGONFLY_TRUE@   go/golang_org/x/net/route/interface_multicast.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_DRAGONFLY_TRUE@   go/golang_org/x/net/route/route_classic.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_DRAGONFLY_TRUE@   go/golang_org/x/net/route/sys_dragonfly.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_DRAGONFLY_TRUE@   go/golang_org/x/net/route/zsys_dragonfly.go
-@LIBGO_IS_386_TRUE@@LIBGO_IS_BSD_TRUE@@LIBGO_IS_FREEBSD_TRUE@  go/golang_org/x/net/route/zsys_freebsd_386.go
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_X86_64_TRUE@       go/golang_org/x/net/route/zsys_freebsd_amd64.go
-@LIBGO_IS_ARM_TRUE@@LIBGO_IS_BSD_TRUE@@LIBGO_IS_FREEBSD_TRUE@  go/golang_org/x/net/route/zsys_freebsd_arm.go
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_FREEBSD_TRUE@     go/golang_org/x/net/route/interface_announce.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_FREEBSD_TRUE@     go/golang_org/x/net/route/interface_freebsd.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_FREEBSD_TRUE@     go/golang_org/x/net/route/interface_multicast.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_FREEBSD_TRUE@     go/golang_org/x/net/route/route_classic.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_FREEBSD_TRUE@     go/golang_org/x/net/route/sys_freebsd.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_FREEBSD_TRUE@     $(x_net_route_freebsd_file)
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_NETBSD_TRUE@      go/golang_org/x/net/route/interface_announce.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_NETBSD_TRUE@      go/golang_org/x/net/route/interface_classic.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_NETBSD_TRUE@      go/golang_org/x/net/route/route_classic.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_NETBSD_TRUE@      go/golang_org/x/net/route/sys_netbsd.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_NETBSD_TRUE@      go/golang_org/x/net/route/zsys_netbsd.go
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_OPENBSD_TRUE@     go/golang_org/x/net/route/route_openbsd.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_OPENBSD_TRUE@     go/golang_org/x/net/route/sys_openbsd.go \
-@LIBGO_IS_BSD_TRUE@@LIBGO_IS_OPENBSD_TRUE@     go/golang_org/x/net/route/zsys_openbsd.go
 
 libcalls.go: s-libcalls; @true
-s-libcalls: libcalls-list go/syscall/mksyscall.awk $(go_base_syscall_files)
+s-libcalls: libcalls-list go/syscall/mksyscall.awk $(srcdir)/go/syscall/*.go
        rm -f libcalls.go.tmp
-       files=`echo $^ | sed -e 's/libcalls-list//' -e 's|[^ ]*go/syscall/mksyscall.awk||'`; \
-       $(AWK) -f $(srcdir)/go/syscall/mksyscall.awk $${files} > libcalls.go.tmp
+       $(AWK) -f $(srcdir)/go/syscall/mksyscall.awk `cat libcalls-list` > libcalls.go.tmp
        $(SHELL) $(srcdir)/mvifdiff.sh libcalls.go.tmp libcalls.go
        $(STAMP) $@
 
 libcalls-list: s-libcalls-list; @true
-s-libcalls-list: Makefile
+s-libcalls-list: Makefile $(srcdir)/go/syscall/*.go
        rm -f libcalls-list.tmp
-       echo $(go_base_syscall_files) > libcalls-list.tmp
+       $(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/syscall $(matchargs_syscall) > libcalls-list.tmp
        $(SHELL) $(srcdir)/mvifdiff.sh libcalls-list.tmp libcalls-list
        $(STAMP) $@
 
@@ -4923,20 +3637,20 @@ s-epoll: Makefile
        $(STAMP) $@
 
 @go_include@ bufio.lo.dep
-bufio.lo.dep: $(go_bufio_files)
+bufio.lo.dep: $(srcdir)/go/bufio/*.go
        $(BUILDDEPS)
-bufio.lo: $(go_bufio_files)
+bufio.lo: bufio.lo.dep
        $(BUILDPACKAGE)
 bufio/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: bufio/check
 
 @go_include@ bytes.lo.dep
-bytes.lo.dep: $(go_bytes_files)
+bytes.lo.dep: $(srcdir)/go/bytes/*.go
        $(BUILDDEPS)
-bytes.lo: $(go_bytes_files)
+bytes.lo: bytes.lo.dep
        $(BUILDPACKAGE)
-bytes/index.lo: $(go_bytes_c_files)
+bytes/index.lo: go/bytes/indexbyte.c
        @$(MKDIR_P) bytes
        $(LTCOMPILE) -c -o bytes/index.lo $(srcdir)/go/bytes/indexbyte.c
 bytes/check: $(CHECK_DEPS)
@@ -4944,117 +3658,117 @@ bytes/check: $(CHECK_DEPS)
 .PHONY: bytes/check
 
 @go_include@ context.lo.dep
-context.lo.dep: $(go_context_files)
+context.lo.dep: $(srcdir)/go/context/*.go
        $(BUILDDEPS)
-context.lo: $(go_context_files)
+context.lo: context.lo.dep
        $(BUILDPACKAGE)
 context/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: context/check
 
 @go_include@ crypto.lo.dep
-crypto.lo.dep: $(go_crypto_files)
+crypto.lo.dep: $(srcdir)/go/crypto/*.go
        $(BUILDDEPS)
-crypto.lo: $(go_crypto_files)
+crypto.lo: crypto.lo.dep
        $(BUILDPACKAGE)
 crypto/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/check
 
 @go_include@ encoding.lo.dep
-encoding.lo.dep: $(go_encoding_files)
+encoding.lo.dep: $(srcdir)/go/encoding/*.go
        $(BUILDDEPS)
-encoding.lo: $(go_encoding_files)
+encoding.lo: encoding.lo.dep
        $(BUILDPACKAGE)
 encoding/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/check
 
 @go_include@ errors.lo.dep
-errors.lo.dep: $(go_errors_files)
+errors.lo.dep: $(srcdir)/go/errors/*.go
        $(BUILDDEPS)
-errors.lo: $(go_errors_files)
+errors.lo: errors.lo.dep
        $(BUILDPACKAGE)
 errors/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: errors/check
 
 @go_include@ expvar.lo.dep
-expvar.lo.dep: $(go_expvar_files)
+expvar.lo.dep: $(srcdir)/go/expvar/*.go
        $(BUILDDEPS)
-expvar.lo: $(go_expvar_files)
+expvar.lo: expvar.lo.dep
        $(BUILDPACKAGE)
 expvar/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: expvar/check
 
 @go_include@ flag.lo.dep
-flag.lo.dep: $(go_flag_files)
+flag.lo.dep: $(srcdir)/go/flag/*.go
        $(BUILDDEPS)
-flag.lo: $(go_flag_files)
+flag.lo: flag.lo.dep
        $(BUILDPACKAGE)
 flag/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: flag/check
 
 @go_include@ fmt.lo.dep
-fmt.lo.dep: $(go_fmt_files)
+fmt.lo.dep: $(srcdir)/go/fmt/*.go
        $(BUILDDEPS)
-fmt.lo: $(go_fmt_files)
+fmt.lo: fmt.lo.dep
        $(BUILDPACKAGE)
 fmt/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: fmt/check
 
 @go_include@ hash.lo.dep
-hash.lo.dep: $(go_hash_files)
+hash.lo.dep: $(srcdir)/go/hash/*.go
        $(BUILDDEPS)
-hash.lo: $(go_hash_files)
+hash.lo: hash.lo.dep
        $(BUILDPACKAGE)
 hash/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: hash/check
 
 @go_include@ html.lo.dep
-html.lo.dep: $(go_html_files)
+html.lo.dep: $(srcdir)/go/html/*.go
        $(BUILDDEPS)
-html.lo: $(go_html_files)
+html.lo: html.lo.dep
        $(BUILDPACKAGE)
 html/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: html/check
 
 @go_include@ image.lo.dep
-image.lo.dep: $(go_image_files)
+image.lo.dep: $(srcdir)/go/image/*.go
        $(BUILDDEPS)
-image.lo: $(go_image_files)
+image.lo: image.lo.dep
        $(BUILDPACKAGE)
 image/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/check
 
 @go_include@ io.lo.dep
-io.lo.dep: $(go_io_files)
+io.lo.dep: $(srcdir)/go/io/*.go
        $(BUILDDEPS)
-io.lo: $(go_io_files)
+io.lo: io.lo.dep
        $(BUILDPACKAGE)
 io/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: io/check
 
 @go_include@ log.lo.dep
-log.lo.dep: $(go_log_files)
+log.lo.dep: $(srcdir)/go/log/*.go
        $(BUILDDEPS)
-log.lo: $(go_log_files)
+log.lo: log.lo.dep
        $(BUILDPACKAGE)
 log/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: log/check
 
 @go_include@ math.lo.dep
-math.lo.dep: $(go_math_files)
+math.lo.dep: $(srcdir)/go/math/*.go
        $(BUILDDEPS)
-math.lo: $(go_math_files)
+math.lo: math.lo.dep
        $(MKDIR_P) $(@D)
        files=`echo $^ | sed -e 's/[^ ]*\.gox//g'`; \
        $(LTGOCOMPILE) $(MATH_FLAG) -I . -c -fgo-pkgpath=math -o $@ $$files
@@ -5063,101 +3777,101 @@ math/check: $(CHECK_DEPS)
 .PHONY: math/check
 
 @go_include@ mime.lo.dep
-mime.lo.dep: $(go_mime_files)
+mime.lo.dep: $(srcdir)/go/mime/*.go
        $(BUILDDEPS)
-mime.lo: $(go_mime_files)
+mime.lo: mime.lo.dep
        $(BUILDPACKAGE)
 mime/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: mime/check
 
 @go_include@ net.lo.dep
-net.lo.dep: $(go_net_files)
+net.lo.dep: $(srcdir)/go/net/*.go
        $(BUILDDEPS)
-net.lo: $(go_net_files)
+net.lo: net.lo.dep
        $(BUILDPACKAGE)
 net/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/check
 
 @go_include@ netgo.o.dep
-netgo.o.dep: $(go_netgo_files)
-       $(BUILDDEPS)
-netgo.o: $(go_netgo_files)
+netgo.o.dep: $(srcdir)/go/net/*.go
+       $(BUILDNETGODEPS)
+netgo.o: netgo.o.dep
        $(BUILDNETGO)
 
 @go_include@ os.lo.dep
-os.lo.dep: $(go_os_files)
+os.lo.dep: $(srcdir)/go/os/*.go
        $(BUILDDEPS)
-os.lo: $(go_os_files)
+os.lo: os.lo.dep
        $(BUILDPACKAGE)
 os/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: os/check
 
 @go_include@ path.lo.dep
-path.lo.dep: $(go_path_files)
+path.lo.dep: $(srcdir)/go/path/*.go
        $(BUILDDEPS)
-path.lo: $(go_path_files)
+path.lo: path.lo.dep
        $(BUILDPACKAGE)
 path/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: path/check
 
 @go_include@ reflect-go.lo.dep
-reflect-go.lo.dep: $(go_reflect_files)
+reflect-go.lo.dep: $(srcdir)/go/reflect/*.go
        $(BUILDDEPS)
-reflect-go.lo: $(go_reflect_files)
+reflect-go.lo: reflect-go.lo.dep
        $(BUILDPACKAGE)
 reflect/check: $(CHECK_DEPS)
        @$(CHECK)
-reflect/makefunc_ffi_c.lo: $(go_reflect_makefunc_c_file)
+reflect/makefunc_ffi_c.lo: go/reflect/makefunc_ffi_c.c
        @$(MKDIR_P) reflect
        $(LTCOMPILE) -c -o $@ $<
 .PHONY: reflect/check
 
 @go_include@ regexp.lo.dep
-regexp.lo.dep: $(go_regexp_files)
+regexp.lo.dep: $(srcdir)/go/regexp/*.go
        $(BUILDDEPS)
-regexp.lo: $(go_regexp_files)
+regexp.lo: regexp.lo.dep
        $(BUILDPACKAGE)
 regexp/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: regexp/check
 
 @go_include@ runtime-go.lo.dep
-runtime-go.lo.dep: $(go_runtime_files)
+runtime-go.lo.dep: $(srcdir)/go/runtime/*.go
        $(BUILDDEPS)
-runtime-go.lo: $(go_runtime_files)
+runtime-go.lo: runtime-go.lo.dep
        $(BUILDPACKAGE)
 runtime/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: runtime/check
 
 @go_include@ sort.lo.dep
-sort.lo.dep: $(go_sort_files)
+sort.lo.dep: $(srcdir)/go/sort/*.go
        $(BUILDDEPS)
-sort.lo: $(go_sort_files)
+sort.lo: sort.lo.dep
        $(BUILDPACKAGE)
 sort/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: sort/check
 
 @go_include@ strconv.lo.dep
-strconv.lo.dep: $(go_strconv_files)
+strconv.lo.dep: $(srcdir)/go/strconv/*.go
        $(BUILDDEPS)
-strconv.lo: $(go_strconv_files)
+strconv.lo: strconv.lo.dep
        $(BUILDPACKAGE)
 strconv/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: strconv/check
 
 @go_include@ strings.lo.dep
-strings.lo.dep: $(go_strings_files)
+strings.lo.dep: $(srcdir)/go/strings/*.go
        $(BUILDDEPS)
-strings.lo: $(go_strings_files)
+strings.lo: strings.lo.dep
        $(BUILDPACKAGE)
-strings/index.lo: $(go_strings_c_files)
+strings/index.lo: go/strings/indexbyte.c
        @$(MKDIR_P) strings
        $(LTCOMPILE) -c -o strings/index.lo $(srcdir)/go/strings/indexbyte.c
 strings/check: $(CHECK_DEPS)
@@ -5165,812 +3879,813 @@ strings/check: $(CHECK_DEPS)
 .PHONY: strings/check
 
 @go_include@ sync.lo.dep
-sync.lo.dep: $(go_sync_files)
+sync.lo.dep: $(srcdir)/go/sync/*.go
        $(BUILDDEPS)
-sync.lo: $(go_sync_files)
+sync.lo: sync.lo.dep
        $(BUILDPACKAGE)
 sync/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: sync/check
 
 @go_include@ testing.lo.dep
-testing.lo.dep: $(go_testing_files)
+testing.lo.dep: $(srcdir)/go/testing/*.go
        $(BUILDDEPS)
-testing.lo: $(go_testing_files)
+testing.lo: testing.lo.dep
        $(BUILDPACKAGE)
 testing/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: testing/check
 
 @go_include@ time-go.lo.dep
-time-go.lo.dep: $(go_time_files)
+time-go.lo.dep: $(srcdir)/go/time/*.go
        $(BUILDDEPS)
-time-go.lo: $(go_time_files)
+time-go.lo: time-go.lo.dep
        $(BUILDPACKAGE)
 time/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: time/check
 
 @go_include@ unicode.lo.dep
-unicode.lo.dep: $(go_unicode_files)
+unicode.lo.dep: $(srcdir)/go/unicode/*.go
        $(BUILDDEPS)
-unicode.lo: $(go_unicode_files)
+unicode.lo: unicode.lo.dep
        $(BUILDPACKAGE)
 unicode/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: unicode/check
 
 @go_include@ archive/tar.lo.dep
-archive/tar.lo.dep: $(go_archive_tar_files)
+archive/tar.lo.dep: $(srcdir)/go/archive/tar/*.go
        $(BUILDDEPS)
-archive/tar.lo: $(go_archive_tar_files)
+archive/tar.lo: archive/tar.lo.dep
        $(BUILDPACKAGE)
 archive/tar/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: archive/tar/check
 
 @go_include@ archive/zip.lo.dep
-archive/zip.lo.dep: $(go_archive_zip_files)
+archive/zip.lo.dep: $(srcdir)/go/archive/zip/*.go
        $(BUILDDEPS)
-archive/zip.lo: $(go_archive_zip_files)
+archive/zip.lo: archive/zip.lo.dep
        $(BUILDPACKAGE)
 archive/zip/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: archive/zip/check
 
 @go_include@ compress/bzip2.lo.dep
-compress/bzip2.lo.dep: $(go_compress_bzip2_files)
+compress/bzip2.lo.dep: $(srcdir)/go/compress/bzip2/*.go
        $(BUILDDEPS)
-compress/bzip2.lo: $(go_compress_bzip2_files)
+compress/bzip2.lo: compress/bzip2.lo.dep
        $(BUILDPACKAGE)
 compress/bzip2/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: compress/bzip2/check
 
 @go_include@ compress/flate.lo.dep
-compress/flate.lo.dep: $(go_compress_flate_files)
+compress/flate.lo.dep: $(srcdir)/go/compress/flate/*.go
        $(BUILDDEPS)
-compress/flate.lo: $(go_compress_flate_files)
+compress/flate.lo: compress/flate.lo.dep
        $(BUILDPACKAGE)
 compress/flate/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: compress/flate/check
 
 @go_include@ compress/gzip.lo.dep
-compress/gzip.lo.dep: $(go_compress_gzip_files)
+compress/gzip.lo.dep: $(srcdir)/go/compress/gzip/*.go
        $(BUILDDEPS)
-compress/gzip.lo: $(go_compress_gzip_files)
+compress/gzip.lo: compress/gzip.lo.dep
        $(BUILDPACKAGE)
 compress/gzip/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: compress/gzip/check
 
 @go_include@ compress/lzw.lo.dep
-compress/lzw.lo.dep: $(go_compress_lzw_files)
+compress/lzw.lo.dep: $(srcdir)/go/compress/lzw/*.go
        $(BUILDDEPS)
-compress/lzw.lo: $(go_compress_lzw_files)
+compress/lzw.lo: compress/lzw.lo.dep
        $(BUILDPACKAGE)
 compress/lzw/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: compress/lzw/check
 
 @go_include@ compress/zlib.lo.dep
-compress/zlib.lo.dep: $(go_compress_zlib_files)
+compress/zlib.lo.dep: $(srcdir)/go/compress/zlib/*.go
        $(BUILDDEPS)
-compress/zlib.lo: $(go_compress_zlib_files)
+compress/zlib.lo: compress/zlib.lo.dep
        $(BUILDPACKAGE)
 compress/zlib/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: compress/zlib/check
 
 @go_include@ container/heap.lo.dep
-container/heap.lo.dep: $(go_container_heap_files)
+container/heap.lo.dep: $(srcdir)/go/container/heap/*.go
        $(BUILDDEPS)
-container/heap.lo: $(go_container_heap_files)
+container/heap.lo: container/heap.lo.dep
        $(BUILDPACKAGE)
 container/heap/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: container/heap/check
 
 @go_include@ container/list.lo.dep
-container/list.lo.dep: $(go_container_list_files)
+container/list.lo.dep: $(srcdir)/go/container/list/*.go
        $(BUILDDEPS)
-container/list.lo: $(go_container_list_files)
+container/list.lo: container/list.lo.dep
        $(BUILDPACKAGE)
 container/list/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: container/list/check
 
 @go_include@ container/ring.lo.dep
-container/ring.lo.dep: $(go_container_ring_files)
+container/ring.lo.dep: $(srcdir)/go/container/ring/*.go
        $(BUILDDEPS)
-container/ring.lo: $(go_container_ring_files)
+container/ring.lo: container/ring.lo.dep
        $(BUILDPACKAGE)
 container/ring/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: container/ring/check
 
 @go_include@ crypto/aes.lo.dep
-crypto/aes.lo.dep: $(go_crypto_aes_files)
+crypto/aes.lo.dep: $(srcdir)/go/crypto/aes/*.go
        $(BUILDDEPS)
-crypto/aes.lo: $(go_crypto_aes_files)
+crypto/aes.lo: crypto/aes.lo.dep
        $(BUILDPACKAGE)
 crypto/aes/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/aes/check
 
 @go_include@ crypto/cipher.lo.dep
-crypto/cipher.lo.dep: $(go_crypto_cipher_files)
+crypto/cipher.lo.dep: $(srcdir)/go/crypto/cipher/*.go
        $(BUILDDEPS)
-crypto/cipher.lo: $(go_crypto_cipher_files)
+crypto/cipher.lo: crypto/cipher.lo.dep
        $(BUILDPACKAGE)
 crypto/cipher/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/cipher/check
 
 @go_include@ crypto/des.lo.dep
-crypto/des.lo.dep: $(go_crypto_des_files)
+crypto/des.lo.dep: $(srcdir)/go/crypto/des/*.go
        $(BUILDDEPS)
-crypto/des.lo: $(go_crypto_des_files)
+crypto/des.lo: crypto/des.lo.dep
        $(BUILDPACKAGE)
 crypto/des/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/des/check
 
 @go_include@ crypto/dsa.lo.dep
-crypto/dsa.lo.dep: $(go_crypto_dsa_files)
+crypto/dsa.lo.dep: $(srcdir)/go/crypto/dsa/*.go
        $(BUILDDEPS)
-crypto/dsa.lo: $(go_crypto_dsa_files)
+crypto/dsa.lo: crypto/dsa.lo.dep
        $(BUILDPACKAGE)
 crypto/dsa/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/dsa/check
 
 @go_include@ crypto/ecdsa.lo.dep
-crypto/ecdsa.lo.dep: $(go_crypto_ecdsa_files)
+crypto/ecdsa.lo.dep: $(srcdir)/go/crypto/ecdsa/*.go
        $(BUILDDEPS)
-crypto/ecdsa.lo: $(go_crypto_ecdsa_files)
+crypto/ecdsa.lo: crypto/ecdsa.lo.dep
        $(BUILDPACKAGE)
 crypto/ecdsa/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/ecdsa/check
 
 @go_include@ crypto/elliptic.lo.dep
-crypto/elliptic.lo.dep: $(go_crypto_elliptic_files)
+crypto/elliptic.lo.dep: $(srcdir)/go/crypto/elliptic/*.go
        $(BUILDDEPS)
-crypto/elliptic.lo: $(go_crypto_elliptic_files)
+crypto/elliptic.lo: crypto/elliptic.lo.dep
        $(BUILDPACKAGE)
 crypto/elliptic/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/elliptic/check
 
 @go_include@ crypto/hmac.lo.dep
-crypto/hmac.lo.dep: $(go_crypto_hmac_files)
+crypto/hmac.lo.dep: $(srcdir)/go/crypto/hmac/*.go
        $(BUILDDEPS)
-crypto/hmac.lo: $(go_crypto_hmac_files)
+crypto/hmac.lo: crypto/hmac.lo.dep
        $(BUILDPACKAGE)
 crypto/hmac/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/hmac/check
 
 @go_include@ crypto/md5.lo.dep
-crypto/md5.lo.dep: $(go_crypto_md5_files)
+crypto/md5.lo.dep: $(srcdir)/go/crypto/md5/*.go
        $(BUILDDEPS)
-crypto/md5.lo: $(go_crypto_md5_files)
+crypto/md5.lo: crypto/md5.lo.dep
        $(BUILDPACKAGE)
 crypto/md5/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/md5/check
 
 @go_include@ crypto/rand.lo.dep
-crypto/rand.lo.dep: $(go_crypto_rand_files)
+crypto/rand.lo.dep: $(srcdir)/go/crypto/rand/*.go
        $(BUILDDEPS)
-crypto/rand.lo: $(go_crypto_rand_files)
+crypto/rand.lo: crypto/rand.lo.dep
        $(BUILDPACKAGE)
 crypto/rand/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/rand/check
 
 @go_include@ crypto/rc4.lo.dep
-crypto/rc4.lo.dep: $(go_crypto_rc4_files)
+crypto/rc4.lo.dep: $(srcdir)/go/crypto/rc4/*.go
        $(BUILDDEPS)
-crypto/rc4.lo: $(go_crypto_rc4_files)
+crypto/rc4.lo: crypto/rc4.lo.dep
        $(BUILDPACKAGE)
 crypto/rc4/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/rc4/check
 
 @go_include@ crypto/rsa.lo.dep
-crypto/rsa.lo.dep: $(go_crypto_rsa_files)
+crypto/rsa.lo.dep: $(srcdir)/go/crypto/rsa/*.go
        $(BUILDDEPS)
-crypto/rsa.lo: $(go_crypto_rsa_files)
+crypto/rsa.lo: crypto/rsa.lo.dep
        $(BUILDPACKAGE)
 crypto/rsa/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/rsa/check
 
 @go_include@ crypto/sha1.lo.dep
-crypto/sha1.lo.dep: $(go_crypto_sha1_files)
+crypto/sha1.lo.dep: $(srcdir)/go/crypto/sha1/*.go
        $(BUILDDEPS)
-crypto/sha1.lo: $(go_crypto_sha1_files)
+crypto/sha1.lo: crypto/sha1.lo.dep
        $(BUILDPACKAGE)
 crypto/sha1/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/sha1/check
 
 @go_include@ crypto/sha256.lo.dep
-crypto/sha256.lo.dep: $(go_crypto_sha256_files)
+crypto/sha256.lo.dep: $(srcdir)/go/crypto/sha256/*.go
        $(BUILDDEPS)
-crypto/sha256.lo: $(go_crypto_sha256_files)
+crypto/sha256.lo: crypto/sha256.lo.dep
        $(BUILDPACKAGE)
 crypto/sha256/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/sha256/check
 
 @go_include@ crypto/sha512.lo.dep
-crypto/sha512.lo.dep: $(go_crypto_sha512_files)
+crypto/sha512.lo.dep: $(srcdir)/go/crypto/sha512/*.go
        $(BUILDDEPS)
-crypto/sha512.lo: $(go_crypto_sha512_files)
+crypto/sha512.lo: crypto/sha512.lo.dep
        $(BUILDPACKAGE)
 crypto/sha512/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/sha512/check
 
 @go_include@ crypto/subtle.lo.dep
-crypto/subtle.lo.dep: $(go_crypto_subtle_files)
+crypto/subtle.lo.dep: $(srcdir)/go/crypto/subtle/*.go
        $(BUILDDEPS)
-crypto/subtle.lo: $(go_crypto_subtle_files)
+crypto/subtle.lo: crypto/subtle.lo.dep
        $(BUILDPACKAGE)
 crypto/subtle/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/subtle/check
 
 @go_include@ crypto/tls.lo.dep
-crypto/tls.lo.dep: $(go_crypto_tls_files)
+crypto/tls.lo.dep: $(srcdir)/go/crypto/tls/*.go
        $(BUILDDEPS)
-crypto/tls.lo: $(go_crypto_tls_files)
+crypto/tls.lo: crypto/tls.lo.dep
        $(BUILDPACKAGE)
 crypto/tls/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/tls/check
 
 @go_include@ crypto/x509.lo.dep
-crypto/x509.lo.dep: $(go_crypto_x509_files)
+crypto/x509.lo.dep: $(srcdir)/go/crypto/x509/*.go
        $(BUILDDEPS)
-crypto/x509.lo: $(go_crypto_x509_files)
+crypto/x509.lo: crypto/x509.lo.dep
        $(BUILDPACKAGE)
 crypto/x509/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/x509/check
 
 @go_include@ crypto/x509/pkix.lo.dep
-crypto/x509/pkix.lo.dep: $(go_crypto_x509_pkix_files)
+crypto/x509/pkix.lo.dep: $(srcdir)/go/crypto/x509/pkix/*.go
        $(BUILDDEPS)
-crypto/x509/pkix.lo: $(go_crypto_x509_pkix_files)
+crypto/x509/pkix.lo: crypto/x509/pkix.lo.dep
        $(BUILDPACKAGE)
 crypto/x509/pkix/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/x509/pkix/check
 
 @go_include@ database/sql.lo.dep
-database/sql.lo.dep: $(go_database_sql_files)
+database/sql.lo.dep: $(srcdir)/go/database/sql/*.go
        $(BUILDDEPS)
-database/sql.lo: $(go_database_sql_files)
+database/sql.lo: database/sql.lo.dep
        $(BUILDPACKAGE)
 database/sql/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: database/sql/check
 
 @go_include@ database/sql/driver.lo.dep
-database/sql/driver.lo.dep: $(go_database_sql_driver_files)
+database/sql/driver.lo.dep: $(srcdir)/go/database/sql/driver/*.go
        $(BUILDDEPS)
-database/sql/driver.lo: $(go_database_sql_driver_files)
+database/sql/driver.lo: database/sql/driver.lo.dep
        $(BUILDPACKAGE)
 database/sql/driver/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: database/sql/driver/check
 
 @go_include@ debug/dwarf.lo.dep
-debug/dwarf.lo.dep: $(go_debug_dwarf_files)
+debug/dwarf.lo.dep: $(srcdir)/go/debug/dwarf/*.go
        $(BUILDDEPS)
-debug/dwarf.lo: $(go_debug_dwarf_files)
+debug/dwarf.lo: debug/dwarf.lo.dep
        $(BUILDPACKAGE)
 debug/dwarf/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: debug/dwarf/check
 
 @go_include@ debug/elf.lo.dep
-debug/elf.lo.dep: $(go_debug_elf_files)
+debug/elf.lo.dep: $(srcdir)/go/debug/elf/*.go
        $(BUILDDEPS)
-debug/elf.lo: $(go_debug_elf_files)
+debug/elf.lo: debug/elf.lo.dep
        $(BUILDPACKAGE)
 debug/elf/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: debug/elf/check
 
 @go_include@ debug/gosym.lo.dep
-debug/gosym.lo.dep: $(go_debug_gosym_files)
+debug/gosym.lo.dep: $(srcdir)/go/debug/gosym/*.go
        $(BUILDDEPS)
-debug/gosym.lo: $(go_debug_gosym_files)
+debug/gosym.lo: debug/gosym.lo.dep
        $(BUILDPACKAGE)
 debug/gosym/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: debug/gosym/check
 
 @go_include@ debug/macho.lo.dep
-debug/macho.lo.dep: $(go_debug_macho_files)
+debug/macho.lo.dep: $(srcdir)/go/debug/macho/*.go
        $(BUILDDEPS)
-debug/macho.lo: $(go_debug_macho_files)
+debug/macho.lo: debug/macho.lo.dep
        $(BUILDPACKAGE)
 debug/macho/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: debug/macho/check
 
 @go_include@ debug/pe.lo.dep
-debug/pe.lo.dep: $(go_debug_pe_files)
+debug/pe.lo.dep: $(srcdir)/go/debug/pe/*.go
        $(BUILDDEPS)
-debug/pe.lo: $(go_debug_pe_files)
+debug/pe.lo: debug/pe.lo.dep
        $(BUILDPACKAGE)
 debug/pe/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: debug/pe/check
 
 @go_include@ debug/plan9obj.lo.dep
-debug/plan9obj.lo.dep: $(go_debug_plan9obj_files)
+debug/plan9obj.lo.dep: $(srcdir)/go/debug/plan9obj/*.go
        $(BUILDDEPS)
-debug/plan9obj.lo: $(go_debug_plan9obj_files)
+debug/plan9obj.lo: debug/plan9obj.lo.dep
        $(BUILDPACKAGE)
 debug/plan9obj/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: debug/plan9obj/check
 
 @go_include@ encoding/asn1.lo.dep
-encoding/asn1.lo.dep: $(go_encoding_asn1_files)
+encoding/asn1.lo.dep: $(srcdir)/go/encoding/asn1/*.go
        $(BUILDDEPS)
-encoding/asn1.lo: $(go_encoding_asn1_files)
+encoding/asn1.lo: encoding/asn1.lo.dep
        $(BUILDPACKAGE)
 encoding/asn1/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/asn1/check
 
 @go_include@ encoding/ascii85.lo.dep
-encoding/ascii85.lo.dep: $(go_encoding_ascii85_files)
+encoding/ascii85.lo.dep: $(srcdir)/go/encoding/ascii85/*.go
        $(BUILDDEPS)
-encoding/ascii85.lo: $(go_encoding_ascii85_files)
+encoding/ascii85.lo: encoding/ascii85.lo.dep
        $(BUILDPACKAGE)
 encoding/ascii85/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/ascii85/check
 
 @go_include@ encoding/base32.lo.dep
-encoding/base32.lo.dep: $(go_encoding_base32_files)
+encoding/base32.lo.dep: $(srcdir)/go/encoding/base32/*.go
        $(BUILDDEPS)
-encoding/base32.lo: $(go_encoding_base32_files)
+encoding/base32.lo: encoding/base32.lo.dep
        $(BUILDPACKAGE)
 encoding/base32/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/base32/check
 
 @go_include@ encoding/base64.lo.dep
-encoding/base64.lo.dep: $(go_encoding_base64_files)
+encoding/base64.lo.dep: $(srcdir)/go/encoding/base64/*.go
        $(BUILDDEPS)
-encoding/base64.lo: $(go_encoding_base64_files)
+encoding/base64.lo: encoding/base64.lo.dep
        $(BUILDPACKAGE)
 encoding/base64/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/base64/check
 
 @go_include@ encoding/binary.lo.dep
-encoding/binary.lo.dep: $(go_encoding_binary_files)
+encoding/binary.lo.dep: $(srcdir)/go/encoding/binary/*.go
        $(BUILDDEPS)
-encoding/binary.lo: $(go_encoding_binary_files)
+encoding/binary.lo: encoding/binary.lo.dep
        $(BUILDPACKAGE)
 encoding/binary/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/binary/check
 
 @go_include@ encoding/csv.lo.dep
-encoding/csv.lo.dep: $(go_encoding_csv_files)
+encoding/csv.lo.dep: $(srcdir)/go/encoding/csv/*.go
        $(BUILDDEPS)
-encoding/csv.lo: $(go_encoding_csv_files)
+encoding/csv.lo: encoding/csv.lo.dep
        $(BUILDPACKAGE)
 encoding/csv/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/csv/check
 
 @go_include@ encoding/gob.lo.dep
-encoding/gob.lo.dep: $(go_encoding_gob_files)
+encoding/gob.lo.dep: $(srcdir)/go/encoding/gob/*.go
        $(BUILDDEPS)
-encoding/gob.lo: $(go_encoding_gob_files)
+encoding/gob.lo: encoding/gob.lo.dep
        $(BUILDPACKAGE)
 encoding/gob/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/gob/check
 
 @go_include@ encoding/hex.lo.dep
-encoding/hex.lo.dep: $(go_encoding_hex_files)
+encoding/hex.lo.dep: $(srcdir)/go/encoding/hex/*.go
        $(BUILDDEPS)
-encoding/hex.lo: $(go_encoding_hex_files)
+encoding/hex.lo: encoding/hex.lo.dep
        $(BUILDPACKAGE)
 encoding/hex/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/hex/check
 
 @go_include@ encoding/json.lo.dep
-encoding/json.lo.dep: $(go_encoding_json_files)
+encoding/json.lo.dep: $(srcdir)/go/encoding/json/*.go
        $(BUILDDEPS)
-encoding/json.lo: $(go_encoding_json_files)
+encoding/json.lo: encoding/json.lo.dep
        $(BUILDPACKAGE)
 encoding/json/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/json/check
 
 @go_include@ encoding/pem.lo.dep
-encoding/pem.lo.dep: $(go_encoding_pem_files)
+encoding/pem.lo.dep: $(srcdir)/go/encoding/pem/*.go
        $(BUILDDEPS)
-encoding/pem.lo: $(go_encoding_pem_files)
+encoding/pem.lo: encoding/pem.lo.dep
        $(BUILDPACKAGE)
 encoding/pem/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/pem/check
 
 @go_include@ encoding/xml.lo.dep
-encoding/xml.lo.dep: $(go_encoding_xml_files)
+encoding/xml.lo.dep: $(srcdir)/go/encoding/xml/*.go
        $(BUILDDEPS)
-encoding/xml.lo: $(go_encoding_xml_files)
+encoding/xml.lo: encoding/xml.lo.dep
        $(BUILDPACKAGE)
 encoding/xml/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/xml/check
 
 @go_include@ exp/proxy.lo.dep
-exp/proxy.lo.dep: $(go_exp_proxy_files)
+exp/proxy.lo.dep: $(srcdir)/go/exp/proxy/*.go
        $(BUILDDEPS)
-exp/proxy.lo: $(go_exp_proxy_files)
+exp/proxy.lo: exp/proxy.lo.dep
        $(BUILDPACKAGE)
 exp/proxy/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: exp/proxy/check
 
 @go_include@ exp/terminal.lo.dep
-exp/terminal.lo.dep: $(go_exp_terminal_files)
+exp/terminal.lo.dep: $(srcdir)/go/exp/terminal/*.go
        $(BUILDDEPS)
-exp/terminal.lo: $(go_exp_terminal_files)
+exp/terminal.lo: exp/terminal.lo.dep
        $(BUILDPACKAGE)
 exp/terminal/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: exp/terminal/check
 
 @go_include@ html/template.lo.dep
-html/template.lo.dep: $(go_html_template_files)
+html/template.lo.dep: $(srcdir)/go/html/template/*.go
        $(BUILDDEPS)
-html/template.lo: $(go_html_template_files)
+html/template.lo: html/template.lo.dep
        $(BUILDPACKAGE)
 html/template/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: html/template/check
 
 @go_include@ go/ast.lo.dep
-go/ast.lo.dep: $(go_go_ast_files)
+go/ast.lo.dep: $(srcdir)/go/go/ast/*.go
        $(BUILDDEPS)
-go/ast.lo: $(go_go_ast_files)
+go/ast.lo: go/ast.lo.dep
        $(BUILDPACKAGE)
 go/ast/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/ast/check
 
 @go_include@ go/build.lo.dep
-go/build.lo.dep: $(go_go_build_files)
+go/build.lo.dep: $(srcdir)/go/go/build/*.go
        $(BUILDDEPS)
-go/build.lo: $(go_go_build_files)
+go/build.lo: go/build.lo.dep
        $(BUILDPACKAGE)
 go/build/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/build/check
 
 @go_include@ go/constant.lo.dep
-go/constant.lo.dep: $(go_go_constant_files)
+go/constant.lo.dep: $(srcdir)/go/go/constant/*.go
        $(BUILDDEPS)
-go/constant.lo: $(go_go_constant_files)
+go/constant.lo: go/constant.lo.dep
        $(BUILDPACKAGE)
 go/constant/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/constant/check
 
 @go_include@ go/doc.lo.dep
-go/doc.lo.dep: $(go_go_doc_files)
+go/doc.lo.dep: $(srcdir)/go/go/doc/*.go
        $(BUILDDEPS)
-go/doc.lo: $(go_go_doc_files)
+go/doc.lo: go/doc.lo.dep
        $(BUILDPACKAGE)
 go/doc/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/doc/check
 
 @go_include@ go/format.lo.dep
-go/format.lo.dep: $(go_go_format_files)
+go/format.lo.dep: $(srcdir)/go/go/format/*.go
        $(BUILDDEPS)
-go/format.lo: $(go_go_format_files)
+go/format.lo: go/format.lo.dep
        $(BUILDPACKAGE)
 go/format/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/format/check
 
 @go_include@ go/importer.lo.dep
-go/importer.lo.dep: $(go_go_importer_files)
+go/importer.lo.dep: $(srcdir)/go/go/importer/*.go
        $(BUILDDEPS)
-go/importer.lo: $(go_go_importer_files)
+go/importer.lo: go/importer.lo.dep
        $(BUILDPACKAGE)
 go/importer/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/importer/check
 
 @go_include@ go/parser.lo.dep
-go/parser.lo.dep: $(go_go_parser_files)
+go/parser.lo.dep: $(srcdir)/go/go/parser/*.go
        $(BUILDDEPS)
-go/parser.lo: $(go_go_parser_files)
+go/parser.lo: go/parser.lo.dep
        $(BUILDPACKAGE)
 go/parser/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/parser/check
 
 @go_include@ go/printer.lo.dep
-go/printer.lo.dep: $(go_go_printer_files)
+go/printer.lo.dep: $(srcdir)/go/go/printer/*.go
        $(BUILDDEPS)
-go/printer.lo: $(go_go_printer_files)
+go/printer.lo: go/printer.lo.dep
        $(BUILDPACKAGE)
 go/printer/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/printer/check
 
 @go_include@ go/scanner.lo.dep
-go/scanner.lo.dep: $(go_go_scanner_files)
+go/scanner.lo.dep: $(srcdir)/go/go/scanner/*.go
        $(BUILDDEPS)
-go/scanner.lo: $(go_go_scanner_files)
+go/scanner.lo: go/scanner.lo.dep
        $(BUILDPACKAGE)
 go/scanner/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/scanner/check
 
 @go_include@ go/token.lo.dep
-go/token.lo.dep: $(go_go_token_files)
+go/token.lo.dep: $(srcdir)/go/go/token/*.go
        $(BUILDDEPS)
-go/token.lo: $(go_go_token_files)
+go/token.lo: go/token.lo.dep
        $(BUILDPACKAGE)
 go/token/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/token/check
 
 @go_include@ go/types.lo.dep
-go/types.lo.dep: $(go_go_types_files)
+go/types.lo.dep: $(srcdir)/go/go/types/*.go
        $(BUILDDEPS)
-go/types.lo: $(go_go_types_files)
+go/types.lo: go/types.lo.dep
        $(BUILDPACKAGE)
 go/types/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/types/check
 
 @go_include@ go/internal/gcimporter.lo.dep
-go/internal/gcimporter.lo.dep: $(go_go_internal_gcimporter_files)
+go/internal/gcimporter.lo.dep: $(srcdir)/go/go/internal/gcimporter/*.go
        $(BUILDDEPS)
-go/internal/gcimporter.lo: $(go_go_internal_gcimporter_files)
+go/internal/gcimporter.lo: go/internal/gcimporter.lo.dep
        $(BUILDPACKAGE)
 go/internal/gcimporter/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/internal/gcimporter/check
 
 @go_include@ go/internal/gccgoimporter.lo.dep
-go/internal/gccgoimporter.lo.dep: $(go_go_internal_gccgoimporter_files)
+go/internal/gccgoimporter.lo.dep: $(srcdir)/go/go/internal/gccgoimporter/*.go
        $(BUILDDEPS)
-go/internal/gccgoimporter.lo: $(go_go_internal_gccgoimporter_files)
+go/internal/gccgoimporter.lo: go/internal/gccgoimporter.lo.dep
        $(BUILDPACKAGE)
 go/internal/gccgoimporter/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/internal/gccgoimporter/check
 
 @go_include@ golang_org/x/net/http2/hpack.lo.dep
-golang_org/x/net/http2/hpack.lo.dep: $(go_golang_org_x_net_http2_hpack_files)
+golang_org/x/net/http2/hpack.lo.dep: $(srcdir)/go/golang_org/x/net/http2/hpack/*.go
        $(BUILDDEPS)
-golang_org/x/net/http2/hpack.lo: $(go_golang_org_x_net_http2_hpack_files)
+golang_org/x/net/http2/hpack.lo: golang_org/x/net/http2/hpack.lo.dep
        $(BUILDPACKAGE)
 golang_org/x/net/http2/hpack/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: golang_org/x/net/http2/hpack/check
 
 @go_include@ golang_org/x/net/lex/httplex.lo.dep
-golang_org/x/net/lex/httplex.lo.dep: $(go_golang_org_x_net_lex_httplex_files)
+golang_org/x/net/lex/httplex.lo.dep: $(srcdir)/go/golang_org/x/net/lex/httplex/*.go
        $(BUILDDEPS)
-golang_org/x/net/lex/httplex.lo: $(go_golang_org_x_net_lex_httplex_files)
+golang_org/x/net/lex/httplex.lo: golang_org/x/net/lex/httplex.lo.dep
        $(BUILDPACKAGE)
 golang_org/x/net/lex/httplex/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: golang_org/x/net/lex/httplex/check
 
 @LIBGO_IS_BSD_TRUE@@go_include@ golang_org/x/net/route.lo.dep
-@LIBGO_IS_BSD_TRUE@golang_org/x/net/route.lo.dep: $(go_golang_org_x_net_route_files)
+@LIBGO_IS_BSD_TRUE@golang_org/x/net/route.lo.dep: $(srcdir)/go/golang_org/x/net/route/*.go
 @LIBGO_IS_BSD_TRUE@    $(BUILDDEPS)
-@LIBGO_IS_BSD_TRUE@golang_org/x/net/route.lo: $(go_golang_org_x_net_route_files)
+@LIBGO_IS_BSD_TRUE@golang_org/x/net/route.lo: golang_org/x/net/route.lo.dep
 @LIBGO_IS_BSD_TRUE@    $(BUILDPACKAGE)
 @LIBGO_IS_BSD_TRUE@golang_org/x/net/route/check: $(CHECK_DEPS)
 @LIBGO_IS_BSD_TRUE@    @$(CHECK)
+
 .PHONY: golang_org/x/net/route/check
 
 @go_include@ hash/adler32.lo.dep
-hash/adler32.lo.dep: $(go_hash_adler32_files)
+hash/adler32.lo.dep: $(srcdir)/go/hash/adler32/*.go
        $(BUILDDEPS)
-hash/adler32.lo: $(go_hash_adler32_files)
+hash/adler32.lo: hash/adler32.lo.dep
        $(BUILDPACKAGE)
 hash/adler32/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: hash/adler32/check
 
 @go_include@ hash/crc32.lo.dep
-hash/crc32.lo.dep: $(go_hash_crc32_files)
+hash/crc32.lo.dep: $(srcdir)/go/hash/crc32/*.go
        $(BUILDDEPS)
-hash/crc32.lo: $(go_hash_crc32_files)
+hash/crc32.lo: hash/crc32.lo.dep
        $(BUILDPACKAGE)
 hash/crc32/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: hash/crc32/check
 
 @go_include@ hash/crc64.lo.dep
-hash/crc64.lo.dep: $(go_hash_crc64_files)
+hash/crc64.lo.dep: $(srcdir)/go/hash/crc64/*.go
        $(BUILDDEPS)
-hash/crc64.lo: $(go_hash_crc64_files)
+hash/crc64.lo: hash/crc64.lo.dep
        $(BUILDPACKAGE)
 hash/crc64/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: hash/crc64/check
 
 @go_include@ hash/fnv.lo.dep
-hash/fnv.lo.dep: $(go_hash_fnv_files)
+hash/fnv.lo.dep: $(srcdir)/go/hash/fnv/*.go
        $(BUILDDEPS)
-hash/fnv.lo: $(go_hash_fnv_files)
+hash/fnv.lo: hash/fnv.lo.dep
        $(BUILDPACKAGE)
 hash/fnv/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: hash/fnv/check
 
 @go_include@ image/color.lo.dep
-image/color.lo.dep: $(go_image_color_files)
+image/color.lo.dep: $(srcdir)/go/image/color/*.go
        $(BUILDDEPS)
-image/color.lo: $(go_image_color_files)
+image/color.lo: image/color.lo.dep
        $(BUILDPACKAGE)
 image/color/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/color/check
 
 @go_include@ image/color/palette.lo.dep
-image/color/palette.lo.dep: $(go_image_color_palette_files)
+image/color/palette.lo.dep: $(srcdir)/go/image/color/palette/*.go
        $(BUILDDEPS)
-image/color/palette.lo: $(go_image_color_palette_files)
+image/color/palette.lo: image/color/palette.lo.dep
        $(BUILDPACKAGE)
 image/color/palette/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/color/palette/check
 
 @go_include@ image/draw.lo.dep
-image/draw.lo.dep: $(go_image_draw_files)
+image/draw.lo.dep: $(srcdir)/go/image/draw/*.go
        $(BUILDDEPS)
-image/draw.lo: $(go_image_draw_files)
+image/draw.lo: image/draw.lo.dep
        $(BUILDPACKAGE)
 image/draw/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/draw/check
 
 @go_include@ image/gif.lo.dep
-image/gif.lo.dep: $(go_image_gif_files)
+image/gif.lo.dep: $(srcdir)/go/image/gif/*.go
        $(BUILDDEPS)
-image/gif.lo: $(go_image_gif_files)
+image/gif.lo: image/gif.lo.dep
        $(BUILDPACKAGE)
 image/gif/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/gif/check
 
 @go_include@ image/internal/imageutil.lo.dep
-image/internal/imageutil.lo.dep: $(go_image_internal_imageutil_files)
+image/internal/imageutil.lo.dep: $(srcdir)/go/image/internal/imageutil/*.go
        $(BUILDDEPS)
-image/internal/imageutil.lo: $(go_image_internal_imageutil_files)
+image/internal/imageutil.lo: image/internal/imageutil.lo.dep
        $(BUILDPACKAGE)
 image/internal/imageutil/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/internal/imageutil/check
 
 @go_include@ image/jpeg.lo.dep
-image/jpeg.lo.dep: $(go_image_jpeg_files)
+image/jpeg.lo.dep: $(srcdir)/go/image/jpeg/*.go
        $(BUILDDEPS)
-image/jpeg.lo: $(go_image_jpeg_files)
+image/jpeg.lo: image/jpeg.lo.dep
        $(BUILDPACKAGE)
 image/jpeg/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/jpeg/check
 
 @go_include@ image/png.lo.dep
-image/png.lo.dep: $(go_image_png_files)
+image/png.lo.dep: $(srcdir)/go/image/png/*.go
        $(BUILDDEPS)
-image/png.lo: $(go_image_png_files)
+image/png.lo: image/png.lo.dep
        $(BUILDPACKAGE)
 image/png/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: image/png/check
 
 @go_include@ index/suffixarray.lo.dep
-index/suffixarray.lo.dep: $(go_index_suffixarray_files)
+index/suffixarray.lo.dep: $(srcdir)/go/index/suffixarray/*.go
        $(BUILDDEPS)
-index/suffixarray.lo: $(go_index_suffixarray_files)
+index/suffixarray.lo: index/suffixarray.lo.dep
        $(BUILDPACKAGE)
 index/suffixarray/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: index/suffixarray/check
 
 @go_include@ internal/nettrace.lo.dep
-internal/nettrace.lo.dep: $(go_internal_nettrace_files)
+internal/nettrace.lo.dep: $(srcdir)/go/internal/nettrace/*.go
        $(BUILDDEPS)
-internal/nettrace.lo: $(go_internal_nettrace_files)
+internal/nettrace.lo: internal/nettrace.lo.dep
        $(BUILDPACKAGE)
 internal/nettrace/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: internal/nettrace/check
 
 @go_include@ internal/race.lo.dep
-internal/race.lo.dep: $(go_internal_race_files)
+internal/race.lo.dep: $(srcdir)/go/internal/race/*.go
        $(BUILDDEPS)
-internal/race.lo: $(go_internal_race_files)
+internal/race.lo: internal/race.lo.dep
        $(BUILDPACKAGE)
 internal/race/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: internal/race/check
 
 @go_include@ internal/singleflight.lo.dep
-internal/singleflight.lo.dep: $(go_internal_singleflight_files)
+internal/singleflight.lo.dep: $(srcdir)/go/internal/singleflight/*.go
        $(BUILDDEPS)
-internal/singleflight.lo: $(go_internal_singleflight_files)
+internal/singleflight.lo: internal/singleflight.lo.dep
        $(BUILDPACKAGE)
 internal/singleflight/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: internal/singleflight/check
 
 @go_include@ internal/syscall/unix.lo.dep
-internal/syscall/unix.lo.dep: $(go_internal_syscall_unix_files)
+internal/syscall/unix.lo.dep: $(srcdir)/go/internal/syscall/unix/*.go
        $(BUILDDEPS)
-internal/syscall/unix.lo: $(go_internal_syscall_unix_files)
+internal/syscall/unix.lo: internal/syscall/unix.lo.dep
        $(BUILDPACKAGE)
 internal/syscall/unix/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: internal/syscall/unix/check
 
 @go_include@ internal/testenv.lo.dep
-internal/testenv.lo.dep: $(go_internal_testenv_files)
+internal/testenv.lo.dep: $(srcdir)/go/internal/testenv/*.go
        $(BUILDDEPS)
-internal/testenv.lo: $(go_internal_testenv_files)
+internal/testenv.lo: internal/testenv.lo.dep
        $(BUILDPACKAGE)
 internal/testenv/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: internal/testenv/check
 
 @go_include@ internal/trace.lo.dep
-internal/trace.lo.dep: $(go_internal_trace_files)
+internal/trace.lo.dep: $(srcdir)/go/internal/trace/*.go
        $(BUILDDEPS)
-internal/trace.lo: $(go_internal_trace_files)
+internal/trace.lo: internal/trace.lo.dep
        $(BUILDPACKAGE)
 internal/trace/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: internal/trace/check
 
 @go_include@ io/ioutil.lo.dep
-io/ioutil.lo.dep: $(go_io_ioutil_files)
+io/ioutil.lo.dep: $(srcdir)/go/io/ioutil/*.go
        $(BUILDDEPS)
-io/ioutil.lo: $(go_io_ioutil_files)
+io/ioutil.lo: io/ioutil.lo.dep
        $(BUILDPACKAGE)
 io/ioutil/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: io/ioutil/check
 
 @go_include@ log/syslog.lo.dep
-log/syslog.lo.dep: $(go_log_syslog_files)
+log/syslog.lo.dep: $(srcdir)/go/log/syslog/*.go
        $(BUILDDEPS)
-log/syslog.lo: $(go_log_syslog_files)
+log/syslog.lo: log/syslog.lo.dep
        $(BUILDPACKAGE)
-log/syslog/syslog_c.lo: $(go_syslog_c_files) log/syslog.lo
+log/syslog/syslog_c.lo: go/log/syslog/syslog_c.c log/syslog.lo
        @$(MKDIR_P) log/syslog
        $(LTCOMPILE) -c -o $@ $(srcdir)/go/log/syslog/syslog_c.c
 log/syslog/check: $(CHECK_DEPS)
@@ -5978,362 +4693,362 @@ log/syslog/check: $(CHECK_DEPS)
 .PHONY: log/syslog/check
 
 @go_include@ math/big.lo.dep
-math/big.lo.dep: $(go_math_big_files)
+math/big.lo.dep: $(srcdir)/go/math/big/*.go
        $(BUILDDEPS)
-math/big.lo: $(go_math_big_files)
+math/big.lo: math/big.lo.dep
        $(BUILDPACKAGE)
 math/big/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: math/big/check
 
 @go_include@ math/cmplx.lo.dep
-math/cmplx.lo.dep: $(go_math_cmplx_files)
+math/cmplx.lo.dep: $(srcdir)/go/math/cmplx/*.go
        $(BUILDDEPS)
-math/cmplx.lo: $(go_math_cmplx_files)
+math/cmplx.lo: math/cmplx.lo.dep
        $(BUILDPACKAGE)
 math/cmplx/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: math/cmplx/check
 
 @go_include@ math/rand.lo.dep
-math/rand.lo.dep: $(go_math_rand_files)
+math/rand.lo.dep: $(srcdir)/go/math/rand/*.go
        $(BUILDDEPS)
-math/rand.lo: $(go_math_rand_files)
+math/rand.lo: math/rand.lo.dep
        $(BUILDPACKAGE)
 math/rand/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: math/rand/check
 
 @go_include@ mime/multipart.lo.dep
-mime/multipart.lo.dep: $(go_mime_multipart_files)
+mime/multipart.lo.dep: $(srcdir)/go/mime/multipart/*.go
        $(BUILDDEPS)
-mime/multipart.lo: $(go_mime_multipart_files)
+mime/multipart.lo: mime/multipart.lo.dep
        $(BUILDPACKAGE)
 mime/multipart/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: mime/multipart/check
 
 @go_include@ mime/quotedprintable.lo.dep
-mime/quotedprintable.lo.dep: $(go_mime_quotedprintable_files)
+mime/quotedprintable.lo.dep: $(srcdir)/go/mime/quotedprintable/*.go
        $(BUILDDEPS)
-mime/quotedprintable.lo: $(go_mime_quotedprintable_files)
+mime/quotedprintable.lo: mime/quotedprintable.lo.dep
        $(BUILDPACKAGE)
 mime/quotedprintable/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: mime/quotedprintable/check
 
 @go_include@ net/http.lo.dep
-net/http.lo.dep: $(go_net_http_files)
+net/http.lo.dep: $(srcdir)/go/net/http/*.go
        $(BUILDDEPS)
-net/http.lo: $(go_net_http_files)
+net/http.lo: net/http.lo.dep
        $(BUILDPACKAGE)
 net/http/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/http/check
 
 @go_include@ net/mail.lo.dep
-net/mail.lo.dep: $(go_net_mail_files)
+net/mail.lo.dep: $(srcdir)/go/net/mail/*.go
        $(BUILDDEPS)
-net/mail.lo: $(go_net_mail_files)
+net/mail.lo: net/mail.lo.dep
        $(BUILDPACKAGE)
 net/mail/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/mail/check
 
 @go_include@ net/rpc.lo.dep
-net/rpc.lo.dep: $(go_net_rpc_files)
+net/rpc.lo.dep: $(srcdir)/go/net/rpc/*.go
        $(BUILDDEPS)
-net/rpc.lo: $(go_net_rpc_files)
+net/rpc.lo: net/rpc.lo.dep
        $(BUILDPACKAGE)
 net/rpc/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/rpc/check
 
 @go_include@ net/smtp.lo.dep
-net/smtp.lo.dep: $(go_net_smtp_files)
+net/smtp.lo.dep: $(srcdir)/go/net/smtp/*.go
        $(BUILDDEPS)
-net/smtp.lo: $(go_net_smtp_files)
+net/smtp.lo: net/smtp.lo.dep
        $(BUILDPACKAGE)
 net/smtp/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/smtp/check
 
 @go_include@ net/url.lo.dep
-net/url.lo.dep: $(go_net_url_files)
+net/url.lo.dep: $(srcdir)/go/net/url/*.go
        $(BUILDDEPS)
-net/url.lo: $(go_net_url_files)
+net/url.lo: net/url.lo.dep
        $(BUILDPACKAGE)
 net/url/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/url/check
 
 @go_include@ net/textproto.lo.dep
-net/textproto.lo.dep: $(go_net_textproto_files)
+net/textproto.lo.dep: $(srcdir)/go/net/textproto/*.go
        $(BUILDDEPS)
-net/textproto.lo: $(go_net_textproto_files)
+net/textproto.lo: net/textproto.lo.dep
        $(BUILDPACKAGE)
 net/textproto/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/textproto/check
 
 @go_include@ net/http/cgi.lo.dep
-net/http/cgi.lo.dep: $(go_net_http_cgi_files)
+net/http/cgi.lo.dep: $(srcdir)/go/net/http/cgi/*.go
        $(BUILDDEPS)
-net/http/cgi.lo: $(go_net_http_cgi_files)
+net/http/cgi.lo: net/http/cgi.lo.dep
        $(BUILDPACKAGE)
 net/http/cgi/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/http/cgi/check
 
 @go_include@ net/http/cookiejar.lo.dep
-net/http/cookiejar.lo.dep: $(go_net_http_cookiejar_files)
+net/http/cookiejar.lo.dep: $(srcdir)/go/net/http/cookiejar/*.go
        $(BUILDDEPS)
-net/http/cookiejar.lo: $(go_net_http_cookiejar_files)
+net/http/cookiejar.lo: net/http/cookiejar.lo.dep
        $(BUILDPACKAGE)
 net/http/cookiejar/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/http/cookiejar/check
 
 @go_include@ net/http/fcgi.lo.dep
-net/http/fcgi.lo.dep: $(go_net_http_fcgi_files)
+net/http/fcgi.lo.dep: $(srcdir)/go/net/http/fcgi/*.go
        $(BUILDDEPS)
-net/http/fcgi.lo: $(go_net_http_fcgi_files)
+net/http/fcgi.lo: net/http/fcgi.lo.dep
        $(BUILDPACKAGE)
 net/http/fcgi/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/http/fcgi/check
 
 @go_include@ net/http/httptest.lo.dep
-net/http/httptest.lo.dep: $(go_net_http_httptest_files)
+net/http/httptest.lo.dep: $(srcdir)/go/net/http/httptest/*.go
        $(BUILDDEPS)
-net/http/httptest.lo: $(go_net_http_httptest_files)
+net/http/httptest.lo: net/http/httptest.lo.dep
        $(BUILDPACKAGE)
 net/http/httptest/check: $(check_deps)
        @$(CHECK)
 .PHONY: net/http/httptest/check
 
 @go_include@ net/http/httptrace.lo.dep
-net/http/httptrace.lo.dep: $(go_net_http_httptrace_files)
+net/http/httptrace.lo.dep: $(srcdir)/go/net/http/httptrace/*.go
        $(BUILDDEPS)
-net/http/httptrace.lo: $(go_net_http_httptrace_files)
+net/http/httptrace.lo: net/http/httptrace.lo.dep
        $(BUILDPACKAGE)
 net/http/httptrace/check: $(check_deps)
        @$(CHECK)
 .PHONY: net/http/httptrace/check
 
 @go_include@ net/http/httputil.lo.dep
-net/http/httputil.lo.dep: $(go_net_http_httputil_files)
+net/http/httputil.lo.dep: $(srcdir)/go/net/http/httputil/*.go
        $(BUILDDEPS)
-net/http/httputil.lo: $(go_net_http_httputil_files)
+net/http/httputil.lo: net/http/httputil.lo.dep
        $(BUILDPACKAGE)
 net/http/httputil/check: $(check_deps)
        @$(CHECK)
 .PHONY: net/http/httputil/check
 
 @go_include@ net/http/internal.lo.dep
-net/http/internal.lo.dep: $(go_net_http_internal_files)
+net/http/internal.lo.dep: $(srcdir)/go/net/http/internal/*.go
        $(BUILDDEPS)
-net/http/internal.lo: $(go_net_http_internal_files)
+net/http/internal.lo: net/http/internal.lo.dep
        $(BUILDPACKAGE)
 net/http/internal/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/http/internal/check
 
 @go_include@ net/http/pprof.lo.dep
-net/http/pprof.lo.dep: $(go_net_http_pprof_files)
+net/http/pprof.lo.dep: $(srcdir)/go/net/http/pprof/*.go
        $(BUILDDEPS)
-net/http/pprof.lo: $(go_net_http_pprof_files)
+net/http/pprof.lo: net/http/pprof.lo.dep
        $(BUILDPACKAGE)
 net/http/pprof/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/http/pprof/check
 
 @go_include@ net/internal/socktest.lo.dep
-net/internal/socktest.lo.dep: $(go_net_internal_socktest_files)
+net/internal/socktest.lo.dep: $(srcdir)/go/net/internal/socktest/*.go
        $(BUILDDEPS)
-net/internal/socktest.lo: $(go_net_internal_socktest_files)
+net/internal/socktest.lo: net/internal/socktest.lo.dep
        $(BUILDPACKAGE)
 net/internal/socktest/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/internal/socktest/check
 
 @go_include@ net/rpc/jsonrpc.lo.dep
-net/rpc/jsonrpc.lo.dep: $(go_net_rpc_jsonrpc_files)
+net/rpc/jsonrpc.lo.dep: $(srcdir)/go/net/rpc/jsonrpc/*.go
        $(BUILDDEPS)
-net/rpc/jsonrpc.lo: $(go_net_rpc_jsonrpc_files)
+net/rpc/jsonrpc.lo: net/rpc/jsonrpc.lo.dep
        $(BUILDPACKAGE)
 net/rpc/jsonrpc/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/rpc/jsonrpc/check
 
 @go_include@ old/regexp.lo.dep
-old/regexp.lo.dep: $(go_old_regexp_files)
+old/regexp.lo.dep: $(srcdir)/go/old/regexp/*.go
        $(BUILDDEPS)
-old/regexp.lo: $(go_old_regexp_files)
+old/regexp.lo: old/regexp.lo.dep
        $(BUILDPACKAGE)
 old/regexp/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: old/regexp/check
 
 @go_include@ old/template.lo.dep
-old/template.lo.dep: $(go_old_template_files)
+old/template.lo.dep: $(srcdir)/go/old/template/*.go
        $(BUILDDEPS)
-old/template.lo: $(go_old_template_files)
+old/template.lo: old/template.lo.dep
        $(BUILDPACKAGE)
 old/template/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: old/template/check
 
 @go_include@ os/exec.lo.dep
-os/exec.lo.dep: $(go_os_exec_files)
+os/exec.lo.dep: $(srcdir)/go/os/exec/*.go
        $(BUILDDEPS)
-os/exec.lo: $(go_os_exec_files)
+os/exec.lo: os/exec.lo.dep
        $(BUILDPACKAGE)
 os/exec/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: os/exec/check
 
 @go_include@ os/signal.lo.dep
-os/signal.lo.dep: $(go_os_signal_files)
+os/signal.lo.dep: $(srcdir)/go/os/signal/*.go
        $(BUILDDEPS)
-os/signal.lo: $(go_os_signal_files)
+os/signal.lo: os/signal.lo.dep
        $(BUILDPACKAGE)
 os/signal/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: os/signal/check
 
 @go_include@ os/user.lo.dep
-os/user.lo.dep: $(go_os_user_files)
+os/user.lo.dep: $(srcdir)/go/os/user/*.go
        $(BUILDDEPS)
-os/user.lo: $(go_os_user_files)
+os/user.lo: os/user.lo.dep
        $(BUILDPACKAGE)
 os/user/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: os/user/check
 
 @go_include@ path/filepath.lo.dep
-path/filepath.lo.dep: $(go_path_filepath_files)
+path/filepath.lo.dep: $(srcdir)/go/path/filepath/*.go
        $(BUILDDEPS)
-path/filepath.lo: $(go_path_filepath_files)
+path/filepath.lo: path/filepath.lo.dep
        $(BUILDPACKAGE)
 path/filepath/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: path/filepath/check
 
 @go_include@ regexp/syntax.lo.dep
-regexp/syntax.lo.dep: $(go_regexp_syntax_files)
+regexp/syntax.lo.dep: $(srcdir)/go/regexp/syntax/*.go
        $(BUILDDEPS)
-regexp/syntax.lo: $(go_regexp_syntax_files)
+regexp/syntax.lo: regexp/syntax.lo.dep
        $(BUILDPACKAGE)
 regexp/syntax/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: regexp/syntax/check
 
 @go_include@ runtime/debug.lo.dep
-runtime/debug.lo.dep: $(go_runtime_debug_files)
+runtime/debug.lo.dep: $(srcdir)/go/runtime/debug/*.go
        $(BUILDDEPS)
-runtime/debug.lo: $(go_runtime_debug_files)
+runtime/debug.lo: runtime/debug.lo.dep
        $(BUILDPACKAGE)
 runtime/debug/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: runtime/debug/check
 
 @go_include@ runtime/pprof.lo.dep
-runtime/pprof.lo.dep: $(go_runtime_pprof_files)
+runtime/pprof.lo.dep: $(srcdir)/go/runtime/pprof/*.go
        $(BUILDDEPS)
-runtime/pprof.lo: $(go_runtime_pprof_files)
+runtime/pprof.lo: runtime/pprof.lo.dep
        $(BUILDPACKAGE)
 runtime/pprof/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: runtime/pprof/check
 
 @go_include@ sync/atomic.lo.dep
-sync/atomic.lo.dep: $(go_sync_atomic_files)
+sync/atomic.lo.dep: $(srcdir)/go/sync/atomic/*.go
        $(BUILDDEPS)
-sync/atomic.lo: $(go_sync_atomic_files)
+sync/atomic.lo: sync/atomic.lo.dep
        $(BUILDPACKAGE)
-sync/atomic_c.lo: $(go_sync_atomic_c_files) sync/atomic.lo
+sync/atomic_c.lo: go/sync/atomic/atomic.c sync/atomic.lo
        $(LTCOMPILE) -c -o $@ $(srcdir)/go/sync/atomic/atomic.c
 sync/atomic/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: sync/atomic/check
 
 @go_include@ text/scanner.lo.dep
-text/scanner.lo.dep: $(go_text_scanner_files)
+text/scanner.lo.dep: $(srcdir)/go/text/scanner/*.go
        $(BUILDDEPS)
-text/scanner.lo: $(go_text_scanner_files)
+text/scanner.lo: text/scanner.lo.dep
        $(BUILDPACKAGE)
 text/scanner/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: text/scanner/check
 
 @go_include@ text/tabwriter.lo.dep
-text/tabwriter.lo.dep: $(go_text_tabwriter_files)
+text/tabwriter.lo.dep: $(srcdir)/go/text/tabwriter/*.go
        $(BUILDDEPS)
-text/tabwriter.lo: $(go_text_tabwriter_files)
+text/tabwriter.lo: text/tabwriter.lo.dep
        $(BUILDPACKAGE)
 text/tabwriter/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: text/tabwriter/check
 
 @go_include@ text/template.lo.dep
-text/template.lo.dep: $(go_text_template_files)
+text/template.lo.dep: $(srcdir)/go/text/template/*.go
        $(BUILDDEPS)
-text/template.lo: $(go_text_template_files)
+text/template.lo: text/template.lo.dep
        $(BUILDPACKAGE)
 text/template/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: text/template/check
 
 @go_include@ text/template/parse.lo.dep
-text/template/parse.lo.dep: $(go_text_template_parse_files)
+text/template/parse.lo.dep: $(srcdir)/go/text/template/parse/*.go
        $(BUILDDEPS)
-text/template/parse.lo: $(go_text_template_parse_files)
+text/template/parse.lo: text/template/parse.lo.dep
        $(BUILDPACKAGE)
 text/template/parse/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: text/template/parse/check
 
 @go_include@ testing/iotest.lo.dep
-testing/iotest.lo.dep: $(go_testing_iotest_files)
+testing/iotest.lo.dep: $(srcdir)/go/testing/iotest/*.go
        $(BUILDDEPS)
-testing/iotest.lo: $(go_testing_iotest_files)
+testing/iotest.lo: testing/iotest.lo.dep
        $(BUILDPACKAGE)
 testing/iotest/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: testing/iotest/check
 
 @go_include@ testing/quick.lo.dep
-testing/quick.lo.dep: $(go_testing_quick_files)
+testing/quick.lo.dep: $(srcdir)/go/testing/quick/*.go
        $(BUILDDEPS)
-testing/quick.lo: $(go_testing_quick_files)
+testing/quick.lo: testing/quick.lo.dep
        $(BUILDPACKAGE)
 testing/quick/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: testing/quick/check
 
 @go_include@ unicode/utf16.lo.dep
-unicode/utf16.lo.dep: $(go_unicode_utf16_files)
+unicode/utf16.lo.dep: $(srcdir)/go/unicode/utf16/*.go
        $(BUILDDEPS)
-unicode/utf16.lo: $(go_unicode_utf16_files)
+unicode/utf16.lo: unicode/utf16.lo.dep
        $(BUILDPACKAGE)
 unicode/utf16/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: unicode/utf16/check
 
 @go_include@ unicode/utf8.lo.dep
-unicode/utf8.lo.dep: $(go_unicode_utf8_files)
+unicode/utf8.lo.dep: $(srcdir)/go/unicode/utf8/*.go
        $(BUILDDEPS)
-unicode/utf8.lo: $(go_unicode_utf8_files)
+unicode/utf8.lo: unicode/utf8.lo.dep
        $(BUILDPACKAGE)
 unicode/utf8/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: unicode/utf8/check
 
 @go_include@ syscall.lo.dep
-syscall.lo.dep: $(go_syscall_files)
+syscall.lo.dep: $(srcdir)/go/syscall/*.go
        $(BUILDDEPS)
-syscall.lo: $(go_syscall_files)
+syscall.lo: syscall.lo.dep
        $(BUILDPACKAGE)
 syscall/errno.lo: go/syscall/errno.c
        @$(MKDIR_P) syscall
index a894a68293e185e77337c6583ff7cecf1cbdbaeb..b59e8671006ba9d6f2087514aca0d3ee3ac55475 100644 (file)
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build amd64
+// +build ignore
+// -build amd64
 
 package aes
 
index b33c8ff251ac7cbdf89f3c927e41fe9288241064..22769b9eef0425a97d5a4e9c4d35deb09da3824d 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 package aes
 
 import (
index f8070346e38c5d2885bc2f7ca17e6eb92111e9c6..2c8d299c88028cea9aafb95bb24389c8a419986c 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !amd64,!s390x
+// -build !amd64,!s390x
 
 package aes
 
index bec59330132c52bf0f458ab83bf674afd2be7702..c9d60e905954502636fe884a0f3e239384ff97aa 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 package aes
 
 import (
index 05a3311b2903c1fcd0ba796712169586175f1932..688e0b412e0e3a395bfcd354d82b5893f5d25717 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !amd64
+// -build !amd64
 
 package elliptic
 
index 66b7cf8dc512a4948ab68a1bce75834377e93573..8f3db0718b35356065526ceb5b076ec8abdf4059 100644 (file)
@@ -10,6 +10,7 @@
 // http://link.springer.com/article/10.1007%2Fs13389-014-0090-x
 // https://eprint.iacr.org/2013/816.pdf
 
+// +build ignore
 // +build amd64
 
 package elliptic
index 1e6f6e60544648e7ec0a7a3c9c7e07b397bf4c50..4de38cf822afb06e9be6e64ee173f86460ca9615 100644 (file)
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build amd64 amd64p32 386 arm ppc64le s390x
+// +build ignore
+// -build amd64 amd64p32 386 arm ppc64le s390x
 
 package md5
 
index 726e09b985ceba41af509929a23194d465da922a..c23d02b8d408e1acf52d21604c4037031e53919f 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !amd64,!amd64p32,!386,!arm,!ppc64le,!s390x
+// -build !amd64,!amd64p32,!386,!arm,!ppc64le,!s390x
 
 package md5
 
index 02e5b67d55385f604a26711d206ed1e105a818ae..687ea237fcdce64052253cdc40ee0250d8322a57 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 // +build amd64 amd64p32 arm,!nacl 386
 
 package rc4
index e34bd34cf1df90d7719b20ded5ab87da1a92d3bc..bf56b51db9a55fa5e8ac086bcaf307780e8e4c65 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !amd64,!amd64p32,!arm,!386 arm,nacl
+// -build !amd64,!amd64p32,!arm,!386 arm,nacl
 
 package rc4
 
index 08acd044d019d55474219482847f61a459a88f2c..a47b3f404474c8cee97436983ddab95acfa4ef2e 100644 (file)
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
 // +build s390x
 
 package sha1
index fd85a4262be21abbc170a560b41a873f34389214..95d89a755f810b7c04b63a3c3c452fe95c1af582 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 package sha1
 
 //go:noescape
index 6d2d073d13733157422f2e0cd2b180d6ae1c0537..bb18cbf73469c7febd5b1c8afea466f58949514e 100644 (file)
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
 // +build amd64p32 arm 386 s390x
 
 package sha1
index f0194626a6f24dca6b24f4998ab991767b9e1217..e7515c915a78f27d409fb6281bb6eb0b64e3db5f 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !amd64,!amd64p32,!386,!arm,!s390x
+// -build !amd64,!amd64p32,!386,!arm,!s390x
 
 package sha1
 
index aac7c1182d44d53a804e351174fbb8163586ffa7..9edcbb0d4b4399984cd2fadcda2e75dc6226843a 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 package sha1
 
 // featureCheck reports whether the CPU supports the
index e6caff9a74652ee39806644dce7994ad3339ca15..eca42c245d8905124e1e243b34dc8cf7d55af4bc 100644 (file)
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
 // +build 386 amd64 s390x
 
 package sha256
index 1a01969b0dcfee88c14666adae064e4d5aa12635..d7d78fd51b390eb89abe8bd939c6847e1c519e3c 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !amd64,!386,!s390x
+// -build !amd64,!386,!s390x
 
 package sha256
 
index b7beefef0c61f2d3f244b85875e9f34c2bfbedf6..8e5f69d4e5b7831df675ade71b30f50515bb3859 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 package sha256
 
 // featureCheck reports whether the CPU supports the
index 9024ce668a0be8a4fe5295f64ba0d3b4bcf493e3..14081318ad11ea3ed4c5ebfb7a496ddf77ea892a 100644 (file)
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
 // +build s390x
 
 package sha512
index 47d656a7e4a1aaaae78c358037babd770ab4074f..1c8f66eb96badb0fbd2462269555b5b91e9b1d36 100644 (file)
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build amd64 s390x
+// +build ignore
+// -build amd64 s390x
 
 package sha512
 
index 2c691baa3d92d5b6fddfb35a646250bf3be8eb83..67ac94812f00f8e06521c6f8afa2507b6c4b1722 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !amd64,!s390x
+// -build !amd64,!s390x
 
 package sha512
 
index f05dc18e124a2d66cc3d97e8d02b02c6f78e9a12..26896fcec4c4c73b07111cdd6c02e7976dba3bca 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 package sha512
 
 // featureCheck reports whether the CPU supports the
index a0180a12dec54d405b759b19d784420aaf6fdfb2..8eae850bbf3ab85f803c0eaaa1cbe364da8a0994 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 package crc32
 
 // This file contains the code to call the SSE 4.2 version of the Castagnoli
index 10a6367bc9007c0c42a045eb6437cc6381c58f31..e9096cef7863e18d7399a9aa5850cdd27892e282 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !amd64,!amd64p32,!s390x
+// -build !amd64,!amd64p32,!s390x
 
 package crc32
 
index cf370eff9d768c660f656500d3e6e891b12c0ee0..48963b4350b42382ea375880e8d6aa416f61c4fa 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build solaris irix
+
 // gccgo specific implementation of syslog for Solaris.  Solaris uses
 // STREAMS to communicate with syslogd.  That is enough of a pain that
 // we just call the libc function.
index 1cdabec69224f538e6bea78b885d119ccd75fd02..356b98d18ed49aacadcc6788ed2cc39e3400ce53 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !windows,!nacl,!plan9
+// +build !windows,!nacl,!plan9,!solaris,!irix
 
 package syslog
 
index 5433b6d61d41357ac3d6fc266aa87f028736e46a..553883394f0e195c45b52ed0324bf9402dc26ee8 100644 (file)
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
 // +build !math_big_pure_go
 
 package big
index 21775ddf3e364db01666abbc6c5a604e8538bc85..5c04414b06663e8f48ab2443dc6f1f1c6f07aea7 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build math_big_pure_go
+// -build math_big_pure_go
 
 package big
 
index 28e56a5d51bd963f961134d01e8ecec42f9db234..9a2487af3e8465390d67975ab76bf65695f24bf6 100644 (file)
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build amd64 amd64p32
+// +build ignore
+// -build amd64 amd64p32
 
 package math
 
diff --git a/libgo/go/net/fd_select.go b/libgo/go/net/fd_select.go
deleted file mode 100644 (file)
index 4103c57..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-// Copyright 2010 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.
-
-// Waiting for FDs via select(2).
-
-package net
-
-import (
-       "errors"
-       "os"
-       "syscall"
-)
-
-type pollster struct {
-       readFds, writeFds, repeatFds *syscall.FdSet
-       maxFd                        int
-       readyReadFds, readyWriteFds  *syscall.FdSet
-       nReady                       int
-       lastFd                       int
-       closed                       bool
-}
-
-func newpollster() (p *pollster, err error) {
-       p = new(pollster)
-       p.readFds = new(syscall.FdSet)
-       p.writeFds = new(syscall.FdSet)
-       p.repeatFds = new(syscall.FdSet)
-       p.readyReadFds = new(syscall.FdSet)
-       p.readyWriteFds = new(syscall.FdSet)
-       p.maxFd = -1
-       p.nReady = 0
-       p.lastFd = 0
-       return p, nil
-}
-
-func (p *pollster) AddFD(fd int, mode int, repeat bool) (bool, error) {
-       // pollServer is locked.
-
-       if p.closed {
-               return false, errors.New("pollster closed")
-       }
-
-       if mode == 'r' {
-               syscall.FDSet(fd, p.readFds)
-       } else {
-               syscall.FDSet(fd, p.writeFds)
-       }
-
-       if repeat {
-               syscall.FDSet(fd, p.repeatFds)
-       }
-
-       if fd > p.maxFd {
-               p.maxFd = fd
-       }
-
-       return true, nil
-}
-
-func (p *pollster) DelFD(fd int, mode int) bool {
-       // pollServer is locked.
-
-       if p.closed {
-               return false
-       }
-
-       if mode == 'r' {
-               if !syscall.FDIsSet(fd, p.readFds) {
-                       print("Select unexpected fd=", fd, " for read\n")
-                       return false
-               }
-               syscall.FDClr(fd, p.readFds)
-       } else {
-               if !syscall.FDIsSet(fd, p.writeFds) {
-                       print("Select unexpected fd=", fd, " for write\n")
-                       return false
-               }
-               syscall.FDClr(fd, p.writeFds)
-       }
-
-       // Doesn't matter if not already present.
-       syscall.FDClr(fd, p.repeatFds)
-
-       // We don't worry about maxFd here.
-
-       return true
-}
-
-func (p *pollster) WaitFD(s *pollServer, nsec int64) (fd int, mode int, err error) {
-       if p.nReady == 0 {
-               var timeout *syscall.Timeval
-               var tv syscall.Timeval
-               timeout = nil
-               if nsec > 0 {
-                       tv = syscall.NsecToTimeval(nsec)
-                       timeout = &tv
-               }
-
-               var n int
-               var e error
-               var tmpReadFds, tmpWriteFds syscall.FdSet
-               for {
-                       if p.closed {
-                               return -1, 0, errors.New("pollster closed")
-                       }
-
-                       // Temporary syscall.FdSet's into which the values are copied
-                       // because select mutates the values.
-                       tmpReadFds = *p.readFds
-                       tmpWriteFds = *p.writeFds
-
-                       s.Unlock()
-                       n, e = syscall.Select(p.maxFd+1, &tmpReadFds, &tmpWriteFds, nil, timeout)
-                       s.Lock()
-
-                       if e != syscall.EINTR {
-                               break
-                       }
-               }
-               if e == syscall.EBADF {
-                       // Some file descriptor has been closed.
-                       tmpReadFds = syscall.FdSet{}
-                       tmpWriteFds = syscall.FdSet{}
-                       n = 0
-                       for i := 0; i < p.maxFd+1; i++ {
-                               if syscall.FDIsSet(i, p.readFds) {
-                                       var s syscall.Stat_t
-                                       if syscall.Fstat(i, &s) == syscall.EBADF {
-                                               syscall.FDSet(i, &tmpReadFds)
-                                               n++
-                                       }
-                               } else if syscall.FDIsSet(i, p.writeFds) {
-                                       var s syscall.Stat_t
-                                       if syscall.Fstat(i, &s) == syscall.EBADF {
-                                               syscall.FDSet(i, &tmpWriteFds)
-                                               n++
-                                       }
-                               }
-                       }
-               } else if e != nil {
-                       return -1, 0, os.NewSyscallError("select", e)
-               }
-               if n == 0 {
-                       return -1, 0, nil
-               }
-
-               p.nReady = n
-               *p.readyReadFds = tmpReadFds
-               *p.readyWriteFds = tmpWriteFds
-               p.lastFd = 0
-       }
-
-       flag := false
-       for i := p.lastFd; i < p.maxFd+1; i++ {
-               if syscall.FDIsSet(i, p.readyReadFds) {
-                       flag = true
-                       mode = 'r'
-                       syscall.FDClr(i, p.readyReadFds)
-               } else if syscall.FDIsSet(i, p.readyWriteFds) {
-                       flag = true
-                       mode = 'w'
-                       syscall.FDClr(i, p.readyWriteFds)
-               }
-               if flag {
-                       if !syscall.FDIsSet(i, p.repeatFds) {
-                               p.DelFD(i, mode)
-                       }
-                       p.nReady--
-                       p.lastFd = i
-                       return i, mode, nil
-               }
-       }
-
-       // Will not reach here.  Just to shut up the compiler.
-       return -1, 0, nil
-}
-
-func (p *pollster) Close() error {
-       p.closed = true
-       return nil
-}
index 410f9321d3156b5bcb4d94ef07c0e3821f81c7a7..2add81467b93a3e965bfb1a451b3df078f953a26 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build rtems
+
 package net
 
 import (
index 2555c7ba331bdd9fada3a9546d4f272b6ada69bc..28733428fd910d6665809333c9d92acf7f7b6767 100644 (file)
@@ -5,6 +5,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build linux solaris,386 solaris,sparc
+
 package os
 
 import "syscall"
index e5f7c5745d5c571180d4c8eaf4857985c77cd2c8..adea87d5430416017f96fb7b5f77d1cbb2a45a68 100644 (file)
@@ -5,6 +5,10 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build !linux
+// +build !solaris,386
+// +build !solaris,sparc
+
 package os
 
 import "syscall"
diff --git a/libgo/go/os/dir_unix.go b/libgo/go/os/dir_unix.go
deleted file mode 100644 (file)
index 589db85..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2009 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.
-
-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris
-
-package os
-
-import (
-       "io"
-       "syscall"
-)
-
-const (
-       blockSize = 4096
-)
-
-func (f *File) readdirnames(n int) (names []string, err error) {
-       // If this file has no dirinfo, create one.
-       if f.dirinfo == nil {
-               f.dirinfo = new(dirInfo)
-               // The buffer must be at least a block long.
-               f.dirinfo.buf = make([]byte, blockSize)
-       }
-       d := f.dirinfo
-
-       size := n
-       if size <= 0 {
-               size = 100
-               n = -1
-       }
-
-       names = make([]string, 0, size) // Empty with room to grow.
-       for n != 0 {
-               // Refill the buffer if necessary
-               if d.bufp >= d.nbuf {
-                       d.bufp = 0
-                       var errno error
-                       d.nbuf, errno = fixCount(syscall.ReadDirent(f.fd, d.buf))
-                       if errno != nil {
-                               return names, NewSyscallError("readdirent", errno)
-                       }
-                       if d.nbuf <= 0 {
-                               break // EOF
-                       }
-               }
-
-               // Drain the buffer
-               var nb, nc int
-               nb, nc, names = syscall.ParseDirent(d.buf[d.bufp:d.nbuf], n, names)
-               d.bufp += nb
-               n -= nc
-       }
-       if n >= 0 && len(names) == 0 {
-               return names, io.EOF
-       }
-       return names, nil
-}
index abc638e2fabf463df50b086b8b9cd1ccefb06707..a3885a899c38d93d6a730831cd3fe52edb0e0c72 100644 (file)
@@ -28,7 +28,7 @@ import (
 var supportsSymlinks = true
 
 var dot = []string{
-       "dir_unix.go",
+       "dir.go",
        "env.go",
        "error.go",
        "file.go",
index 9758d3349649591f4a35366606f66cba47315b97..59cac9c7cedba52fa9a51ff32600a839df281a2e 100644 (file)
@@ -2,6 +2,13 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build !darwin
+// +build !freebsd
+// +build !linux
+// +build !netbsd
+// +build !openbsd
+// +build !solaris
+
 package os
 
 import (
index 69e63230eb304b4294fbd79e88a75cfe8d3b61bd..ef8a574e7bbd8be08f28e44af7c09d308a5e1f75 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build linux openbsd solaristag
+
 package os
 
 import (
index 9dc7a99fb7f52dad9bde085f4ebc8884c53237b4..c6ce2bc8f48429a74adf6a6234b6a22607757c6a 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build darwin freebsd netbsd
+
 package os
 
 import (
index aad429dcb966f9493e3a1eaa73c45837423c2fd5..1f1b4ab825d69a893f60eaa0f2e89559db125fc5 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build !solaristag
+
 package os
 
 import (
index 16568b69f4b6c2724dbff3bfb888d06fec0b93b7..71fa86759555028ed8ad22451624dd287a5096c1 100644 (file)
@@ -4,6 +4,8 @@
 
 // For systems which only store the hostname in uname (Solaris).
 
+// +build solaris irix rtems
+
 package os
 
 import "syscall"
diff --git a/libgo/go/runtime/cgo_mips64x.go b/libgo/go/runtime/cgo_mips64x.go
deleted file mode 100644 (file)
index f718e92..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2016 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.
-
-// +build mips64 mips64le
-
-package runtime
-
-// crosscall1 calls into the runtime to set up the registers the
-// Go runtime expects and so the symbol it calls needs to be exported
-// for external linking to work.
-//go:cgo_export_static _cgo_reginit
index a23cc79b7e350e36f5ac99765435f54643b9b02b..bcdd6cd6961a6c7ea9bf6e31872cb785c050a58e 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 // Support for memory sanitizer. See runtime/cgo/mmap.go.
 
 // +build linux,amd64
diff --git a/libgo/go/runtime/cgo_ppc64x.go b/libgo/go/runtime/cgo_ppc64x.go
deleted file mode 100644 (file)
index fb2da32..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2015 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.
-
-// +build ppc64 ppc64le
-
-package runtime
-
-// crosscall_ppc64 calls into the runtime to set up the registers the
-// Go runtime expects and so the symbol it calls needs to be exported
-// for external linking to work.
-//go:cgo_export_static _cgo_reginit
index 2d064145a415de3bf071ee10a5c1f0a92d3b74a7..7e38d9c449a4c92d14015754ac669fe56db1eb23 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 // Code to check that pointer writes follow the cgo rules.
 // These functions are invoked via the write barrier when debug.cgocheck > 1.
 
diff --git a/libgo/go/runtime/defs_linux_mips64x.go b/libgo/go/runtime/defs_linux_mips64x.go
deleted file mode 100644 (file)
index bb3cd98..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-// +build mips64 mips64le
-// +build linux
-
-package runtime
-
-const (
-       _EINTR  = 0x4
-       _EAGAIN = 0xb
-       _ENOMEM = 0xc
-
-       _PROT_NONE  = 0x0
-       _PROT_READ  = 0x1
-       _PROT_WRITE = 0x2
-       _PROT_EXEC  = 0x4
-
-       _MAP_ANON    = 0x800
-       _MAP_PRIVATE = 0x2
-       _MAP_FIXED   = 0x10
-
-       _MADV_DONTNEED   = 0x4
-       _MADV_HUGEPAGE   = 0xe
-       _MADV_NOHUGEPAGE = 0xf
-
-       _SA_RESTART = 0x10000000
-       _SA_ONSTACK = 0x8000000
-       _SA_SIGINFO = 0x8
-
-       _SIGHUP    = 0x1
-       _SIGINT    = 0x2
-       _SIGQUIT   = 0x3
-       _SIGILL    = 0x4
-       _SIGTRAP   = 0x5
-       _SIGABRT   = 0x6
-       _SIGEMT    = 0x7
-       _SIGFPE    = 0x8
-       _SIGKILL   = 0x9
-       _SIGBUS    = 0xa
-       _SIGSEGV   = 0xb
-       _SIGSYS    = 0xc
-       _SIGPIPE   = 0xd
-       _SIGALRM   = 0xe
-       _SIGUSR1   = 0x10
-       _SIGUSR2   = 0x11
-       _SIGCHLD   = 0x12
-       _SIGPWR    = 0x13
-       _SIGWINCH  = 0x14
-       _SIGURG    = 0x15
-       _SIGIO     = 0x16
-       _SIGSTOP   = 0x17
-       _SIGTSTP   = 0x18
-       _SIGCONT   = 0x19
-       _SIGTTIN   = 0x1a
-       _SIGTTOU   = 0x1b
-       _SIGVTALRM = 0x1c
-       _SIGPROF   = 0x1d
-       _SIGXCPU   = 0x1e
-       _SIGXFSZ   = 0x1f
-
-       _FPE_INTDIV = 0x1
-       _FPE_INTOVF = 0x2
-       _FPE_FLTDIV = 0x3
-       _FPE_FLTOVF = 0x4
-       _FPE_FLTUND = 0x5
-       _FPE_FLTRES = 0x6
-       _FPE_FLTINV = 0x7
-       _FPE_FLTSUB = 0x8
-
-       _BUS_ADRALN = 0x1
-       _BUS_ADRERR = 0x2
-       _BUS_OBJERR = 0x3
-
-       _SEGV_MAPERR = 0x1
-       _SEGV_ACCERR = 0x2
-
-       _ITIMER_REAL    = 0x0
-       _ITIMER_VIRTUAL = 0x1
-       _ITIMER_PROF    = 0x2
-
-       _EPOLLIN       = 0x1
-       _EPOLLOUT      = 0x4
-       _EPOLLERR      = 0x8
-       _EPOLLHUP      = 0x10
-       _EPOLLRDHUP    = 0x2000
-       _EPOLLET       = 0x80000000
-       _EPOLL_CLOEXEC = 0x80000
-       _EPOLL_CTL_ADD = 0x1
-       _EPOLL_CTL_DEL = 0x2
-       _EPOLL_CTL_MOD = 0x3
-)
-
-//struct Sigset {
-//     uint64  sig[1];
-//};
-//typedef uint64 Sigset;
-
-type timespec struct {
-       tv_sec  int64
-       tv_nsec int64
-}
-
-func (ts *timespec) set_sec(x int64) {
-       ts.tv_sec = x
-}
-
-func (ts *timespec) set_nsec(x int32) {
-       ts.tv_nsec = int64(x)
-}
-
-type timeval struct {
-       tv_sec  int64
-       tv_usec int64
-}
-
-func (tv *timeval) set_usec(x int32) {
-       tv.tv_usec = int64(x)
-}
-
-type sigactiont struct {
-       sa_flags   uint32
-       sa_handler uintptr
-       sa_mask    [2]uint64
-       // linux header does not have sa_restorer field,
-       // but it is used in setsig(). it is no harm to put it here
-       sa_restorer uintptr
-}
-
-type siginfo struct {
-       si_signo int32
-       si_code  int32
-       si_errno int32
-       __pad0   [1]int32
-       // below here is a union; si_addr is the only field we use
-       si_addr uint64
-}
-
-type itimerval struct {
-       it_interval timeval
-       it_value    timeval
-}
-
-type epollevent struct {
-       events    uint32
-       pad_cgo_0 [4]byte
-       data      [8]byte // unaligned uintptr
-}
-
-const (
-       _O_RDONLY    = 0x0
-       _O_CLOEXEC   = 0x80000
-       _SA_RESTORER = 0
-)
-
-type sigaltstackt struct {
-       ss_sp    *byte
-       ss_size  uintptr
-       ss_flags int32
-}
-
-type sigcontext struct {
-       sc_regs      [32]uint64
-       sc_fpregs    [32]uint64
-       sc_mdhi      uint64
-       sc_hi1       uint64
-       sc_hi2       uint64
-       sc_hi3       uint64
-       sc_mdlo      uint64
-       sc_lo1       uint64
-       sc_lo2       uint64
-       sc_lo3       uint64
-       sc_pc        uint64
-       sc_fpc_csr   uint32
-       sc_used_math uint32
-       sc_dsp       uint32
-       sc_reserved  uint32
-}
-
-type ucontext struct {
-       uc_flags    uint64
-       uc_link     *ucontext
-       uc_stack    sigaltstackt
-       uc_mcontext sigcontext
-       uc_sigmask  uint64
-}
diff --git a/libgo/go/runtime/defs_linux_s390x.go b/libgo/go/runtime/defs_linux_s390x.go
deleted file mode 100644 (file)
index 5f55d5a..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-// Copyright 2016 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.
-
-package runtime
-
-const (
-       _EINTR  = 0x4
-       _EAGAIN = 0xb
-       _ENOMEM = 0xc
-
-       _PROT_NONE  = 0x0
-       _PROT_READ  = 0x1
-       _PROT_WRITE = 0x2
-       _PROT_EXEC  = 0x4
-
-       _MAP_ANON    = 0x20
-       _MAP_PRIVATE = 0x2
-       _MAP_FIXED   = 0x10
-
-       _MADV_DONTNEED   = 0x4
-       _MADV_HUGEPAGE   = 0xe
-       _MADV_NOHUGEPAGE = 0xf
-
-       _SA_RESTART = 0x10000000
-       _SA_ONSTACK = 0x8000000
-       _SA_SIGINFO = 0x4
-
-       _SIGHUP    = 0x1
-       _SIGINT    = 0x2
-       _SIGQUIT   = 0x3
-       _SIGILL    = 0x4
-       _SIGTRAP   = 0x5
-       _SIGABRT   = 0x6
-       _SIGBUS    = 0x7
-       _SIGFPE    = 0x8
-       _SIGKILL   = 0x9
-       _SIGUSR1   = 0xa
-       _SIGSEGV   = 0xb
-       _SIGUSR2   = 0xc
-       _SIGPIPE   = 0xd
-       _SIGALRM   = 0xe
-       _SIGSTKFLT = 0x10
-       _SIGCHLD   = 0x11
-       _SIGCONT   = 0x12
-       _SIGSTOP   = 0x13
-       _SIGTSTP   = 0x14
-       _SIGTTIN   = 0x15
-       _SIGTTOU   = 0x16
-       _SIGURG    = 0x17
-       _SIGXCPU   = 0x18
-       _SIGXFSZ   = 0x19
-       _SIGVTALRM = 0x1a
-       _SIGPROF   = 0x1b
-       _SIGWINCH  = 0x1c
-       _SIGIO     = 0x1d
-       _SIGPWR    = 0x1e
-       _SIGSYS    = 0x1f
-
-       _FPE_INTDIV = 0x1
-       _FPE_INTOVF = 0x2
-       _FPE_FLTDIV = 0x3
-       _FPE_FLTOVF = 0x4
-       _FPE_FLTUND = 0x5
-       _FPE_FLTRES = 0x6
-       _FPE_FLTINV = 0x7
-       _FPE_FLTSUB = 0x8
-
-       _BUS_ADRALN = 0x1
-       _BUS_ADRERR = 0x2
-       _BUS_OBJERR = 0x3
-
-       _SEGV_MAPERR = 0x1
-       _SEGV_ACCERR = 0x2
-
-       _ITIMER_REAL    = 0x0
-       _ITIMER_VIRTUAL = 0x1
-       _ITIMER_PROF    = 0x2
-
-       _EPOLLIN       = 0x1
-       _EPOLLOUT      = 0x4
-       _EPOLLERR      = 0x8
-       _EPOLLHUP      = 0x10
-       _EPOLLRDHUP    = 0x2000
-       _EPOLLET       = 0x80000000
-       _EPOLL_CLOEXEC = 0x80000
-       _EPOLL_CTL_ADD = 0x1
-       _EPOLL_CTL_DEL = 0x2
-       _EPOLL_CTL_MOD = 0x3
-)
-
-type timespec struct {
-       tv_sec  int64
-       tv_nsec int64
-}
-
-func (ts *timespec) set_sec(x int64) {
-       ts.tv_sec = x
-}
-
-func (ts *timespec) set_nsec(x int32) {
-       ts.tv_nsec = int64(x)
-}
-
-type timeval struct {
-       tv_sec  int64
-       tv_usec int64
-}
-
-func (tv *timeval) set_usec(x int32) {
-       tv.tv_usec = int64(x)
-}
-
-type sigactiont struct {
-       sa_handler  uintptr
-       sa_flags    uint64
-       sa_restorer uintptr
-       sa_mask     uint64
-}
-
-type siginfo struct {
-       si_signo int32
-       si_errno int32
-       si_code  int32
-       // below here is a union; si_addr is the only field we use
-       si_addr uint64
-}
-
-type itimerval struct {
-       it_interval timeval
-       it_value    timeval
-}
-
-type epollevent struct {
-       events    uint32
-       pad_cgo_0 [4]byte
-       data      [8]byte // unaligned uintptr
-}
-
-const (
-       _O_RDONLY    = 0x0
-       _O_CLOEXEC   = 0x80000
-       _SA_RESTORER = 0
-)
-
-type sigaltstackt struct {
-       ss_sp    *byte
-       ss_flags int32
-       ss_size  uintptr
-}
-
-type sigcontext struct {
-       psw_mask uint64
-       psw_addr uint64
-       gregs    [16]uint64
-       aregs    [16]uint32
-       fpc      uint32
-       fpregs   [16]uint64
-}
-
-type ucontext struct {
-       uc_flags    uint64
-       uc_link     *ucontext
-       uc_stack    sigaltstackt
-       uc_mcontext sigcontext
-       uc_sigmask  uint64
-}
diff --git a/libgo/go/runtime/defs_plan9_arm.go b/libgo/go/runtime/defs_plan9_arm.go
deleted file mode 100644 (file)
index 9c700ae..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2015 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.
-
-package runtime
-
-const _PAGESIZE = 0x1000
-
-type ureg struct {
-       r0   uint32 /* general registers */
-       r1   uint32 /* ... */
-       r2   uint32 /* ... */
-       r3   uint32 /* ... */
-       r4   uint32 /* ... */
-       r5   uint32 /* ... */
-       r6   uint32 /* ... */
-       r7   uint32 /* ... */
-       r8   uint32 /* ... */
-       r9   uint32 /* ... */
-       r10  uint32 /* ... */
-       r11  uint32 /* ... */
-       r12  uint32 /* ... */
-       sp   uint32
-       link uint32 /* ... */
-       trap uint32 /* trap type */
-       psr  uint32
-       pc   uint32 /* interrupted addr */
-}
-
-type sigctxt struct {
-       u *ureg
-}
-
-func (c *sigctxt) pc() uintptr { return uintptr(c.u.pc) }
-func (c *sigctxt) sp() uintptr { return uintptr(c.u.sp) }
-func (c *sigctxt) lr() uintptr { return uintptr(c.u.link) }
-
-func (c *sigctxt) setpc(x uintptr)  { c.u.pc = uint32(x) }
-func (c *sigctxt) setsp(x uintptr)  { c.u.sp = uint32(x) }
-func (c *sigctxt) setlr(x uintptr)  { c.u.link = uint32(x) }
-func (c *sigctxt) savelr(x uintptr) { c.u.r0 = uint32(x) }
-
-func dumpregs(u *ureg) {
-       print("r0    ", hex(u.r0), "\n")
-       print("r1    ", hex(u.r1), "\n")
-       print("r2    ", hex(u.r2), "\n")
-       print("r3    ", hex(u.r3), "\n")
-       print("r4    ", hex(u.r4), "\n")
-       print("r5    ", hex(u.r5), "\n")
-       print("r6    ", hex(u.r6), "\n")
-       print("r7    ", hex(u.r7), "\n")
-       print("r8    ", hex(u.r8), "\n")
-       print("r9    ", hex(u.r9), "\n")
-       print("r10   ", hex(u.r10), "\n")
-       print("r11   ", hex(u.r11), "\n")
-       print("r12   ", hex(u.r12), "\n")
-       print("sp    ", hex(u.sp), "\n")
-       print("link  ", hex(u.link), "\n")
-       print("pc    ", hex(u.pc), "\n")
-       print("psr   ", hex(u.psr), "\n")
-}
-
-func sigpanictramp()
index b22e8259add67fbd9a7ce2bf08fd8afc8aeaf852..1029de2dbaee033549e6a1c052a208c16a7b78f0 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 package runtime
 
 import "unsafe"
index c36d5835f64b3838cc5443fefc93312dab3190c4..47ae5e81fb11cde439a0007b4d13c444416ad2da 100644 (file)
@@ -2,6 +2,8 @@
 // Run go generate from src/runtime to update.
 // See mkfastlog2table.go for comments.
 
+// +build ignore
+
 package runtime
 
 const fastlogNumBits = 5
index 5367f08c561c9f8741d1a8be856bbca3daaed88f..3b0eb986ce3d8746335741f0b672ca2ce57f5798 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 // +build amd64 arm64 mips64 mips64le ppc64 ppc64le s390x
 
 package runtime
index 53617e41e4a40c1cad43d20338cfc8593bd9212e..02aafdd210e6a09e934a067b26e6d63df9604a24 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 // +build !plan9
 // +build !solaris
 // +build !windows
diff --git a/libgo/go/runtime/msan.go b/libgo/go/runtime/msan.go
deleted file mode 100644 (file)
index 7177c8e..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2015 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.
-
-// +build msan
-
-package runtime
-
-import (
-       "unsafe"
-)
-
-// Public memory sanitizer API.
-
-func MSanRead(addr unsafe.Pointer, len int) {
-       msanread(addr, uintptr(len))
-}
-
-func MSanWrite(addr unsafe.Pointer, len int) {
-       msanwrite(addr, uintptr(len))
-}
-
-// Private interface for the runtime.
-const msanenabled = true
-
-// If we are running on the system stack, the C program may have
-// marked part of that stack as uninitialized. We don't instrument
-// the runtime, but operations like a slice copy can call msanread
-// anyhow for values on the stack. Just ignore msanread when running
-// on the system stack. The other msan functions are fine.
-func msanread(addr unsafe.Pointer, sz uintptr) {
-       g := getg()
-       if g == g.m.g0 || g == g.m.gsignal {
-               return
-       }
-       domsanread(addr, sz)
-}
-
-//go:noescape
-func domsanread(addr unsafe.Pointer, sz uintptr)
-
-//go:noescape
-func msanwrite(addr unsafe.Pointer, sz uintptr)
-
-//go:noescape
-func msanmalloc(addr unsafe.Pointer, sz uintptr)
-
-//go:noescape
-func msanfree(addr unsafe.Pointer, sz uintptr)
-
-// These are called from msan_amd64.s
-//go:cgo_import_static __msan_read_go
-//go:cgo_import_static __msan_write_go
-//go:cgo_import_static __msan_malloc_go
-//go:cgo_import_static __msan_free_go
index 117c5e5789cb51e9224a58ec14bebbebb86bbe15..48ae3e4ffdc9127eca23609d3500a29e84cc4ff8 100644 (file)
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
 // +build !msan
 
 // Dummy MSan support API, used when not built with -msan.
index 1bf9d573b70f59bca185b9db62e91feb488b8492..6d0b5ac211b7df11bd1478a9b58711146e6a4e89 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 // Garbage collector: stack barriers
 //
 // Stack barriers enable the garbage collector to determine how much
diff --git a/libgo/go/runtime/os_android.go b/libgo/go/runtime/os_android.go
deleted file mode 100644 (file)
index 52c8c86..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2014 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.
-
-package runtime
-
-import _ "unsafe" // for go:cgo_export_static and go:cgo_export_dynamic
-
-// Export the main function.
-//
-// Used by the app package to start all-Go Android apps that are
-// loaded via JNI. See golang.org/x/mobile/app.
-
-//go:cgo_export_static main.main
-//go:cgo_export_dynamic main.main
diff --git a/libgo/go/runtime/os_linux_generic.go b/libgo/go/runtime/os_linux_generic.go
deleted file mode 100644 (file)
index a16d140..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2009 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.
-
-// +build !mips64
-// +build !mips64le
-// +build !s390x
-// +build linux
-
-package runtime
-
-const (
-       _SS_DISABLE  = 2
-       _NSIG        = 65
-       _SI_USER     = 0
-       _SIG_BLOCK   = 0
-       _SIG_UNBLOCK = 1
-       _SIG_SETMASK = 2
-       _RLIMIT_AS   = 9
-)
-
-// It's hard to tease out exactly how big a Sigset is, but
-// rt_sigprocmask crashes if we get it wrong, so if binaries
-// are running, this is right.
-type sigset [2]uint32
-
-type rlimit struct {
-       rlim_cur uintptr
-       rlim_max uintptr
-}
-
-var sigset_all = sigset{^uint32(0), ^uint32(0)}
-
-func sigaddset(mask *sigset, i int) {
-       (*mask)[(i-1)/32] |= 1 << ((uint32(i) - 1) & 31)
-}
-
-func sigdelset(mask *sigset, i int) {
-       (*mask)[(i-1)/32] &^= 1 << ((uint32(i) - 1) & 31)
-}
-
-func sigfillset(mask *uint64) {
-       *mask = ^uint64(0)
-}
-
-func sigcopyset(mask *sigset, m sigmask) {
-       copy((*mask)[:], m[:])
-}
diff --git a/libgo/go/runtime/os_linux_mips64x.go b/libgo/go/runtime/os_linux_mips64x.go
deleted file mode 100644 (file)
index 8039b2f..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright 2015 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.
-
-// +build linux
-// +build mips64 mips64le
-
-package runtime
-
-var randomNumber uint32
-
-func archauxv(tag, val uintptr) {
-       switch tag {
-       case _AT_RANDOM:
-               // sysargs filled in startupRandomData, but that
-               // pointer may not be word aligned, so we must treat
-               // it as a byte array.
-               randomNumber = uint32(startupRandomData[4]) | uint32(startupRandomData[5])<<8 |
-                       uint32(startupRandomData[6])<<16 | uint32(startupRandomData[7])<<24
-       }
-}
-
-//go:nosplit
-func cputicks() int64 {
-       // Currently cputicks() is used in blocking profiler and to seed fastrand1().
-       // nanotime() is a poor approximation of CPU ticks that is enough for the profiler.
-       // randomNumber provides better seeding of fastrand1.
-       return nanotime() + int64(randomNumber)
-}
-
-const (
-       _SS_DISABLE  = 2
-       _NSIG        = 65
-       _SI_USER     = 0
-       _SIG_BLOCK   = 1
-       _SIG_UNBLOCK = 2
-       _SIG_SETMASK = 3
-       _RLIMIT_AS   = 6
-)
-
-type sigset [2]uint64
-
-type rlimit struct {
-       rlim_cur uintptr
-       rlim_max uintptr
-}
-
-var sigset_all = sigset{^uint64(0), ^uint64(0)}
-
-func sigaddset(mask *sigset, i int) {
-       (*mask)[(i-1)/64] |= 1 << ((uint32(i) - 1) & 63)
-}
-
-func sigdelset(mask *sigset, i int) {
-       (*mask)[(i-1)/64] &^= 1 << ((uint32(i) - 1) & 63)
-}
-
-func sigfillset(mask *[2]uint64) {
-       (*mask)[0], (*mask)[1] = ^uint64(0), ^uint64(0)
-}
-
-func sigcopyset(mask *sigset, m sigmask) {
-       (*mask)[0] = uint64(m[0]) | uint64(m[1])<<32
-}
diff --git a/libgo/go/runtime/os_linux_noauxv.go b/libgo/go/runtime/os_linux_noauxv.go
deleted file mode 100644 (file)
index 22522dd..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2014 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.
-
-// +build !amd64,!arm,!arm64,!mips64,!mips64le
-
-package runtime
-
-func archauxv(tag, val uintptr) {
-}
diff --git a/libgo/go/runtime/os_linux_s390x.go b/libgo/go/runtime/os_linux_s390x.go
deleted file mode 100644 (file)
index e659dff..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2016 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.
-
-package runtime
-
-const (
-       _SS_DISABLE  = 2
-       _NSIG        = 65
-       _SI_USER     = 0
-       _SIG_BLOCK   = 0
-       _SIG_UNBLOCK = 1
-       _SIG_SETMASK = 2
-       _RLIMIT_AS   = 9
-)
-
-type sigset uint64
-
-type rlimit struct {
-       rlim_cur uintptr
-       rlim_max uintptr
-}
-
-var sigset_all = sigset(^uint64(0))
-
-func sigaddset(mask *sigset, i int) {
-       if i > 64 {
-               throw("unexpected signal greater than 64")
-       }
-       *mask |= 1 << (uint(i) - 1)
-}
-
-func sigdelset(mask *sigset, i int) {
-       if i > 64 {
-               throw("unexpected signal greater than 64")
-       }
-       *mask &^= 1 << (uint(i) - 1)
-}
-
-func sigfillset(mask *uint64) {
-       *mask = ^uint64(0)
-}
-
-func sigcopyset(mask *sigset, m sigmask) {
-       *mask = sigset(uint64(m[0]) | uint64(m[1])<<32)
-}
diff --git a/libgo/go/runtime/os_netbsd_386.go b/libgo/go/runtime/os_netbsd_386.go
deleted file mode 100644 (file)
index 037f7e3..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2009 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.
-
-package runtime
-
-import "unsafe"
-
-func lwp_mcontext_init(mc *mcontextt, stk unsafe.Pointer, mp *m, gp *g, fn uintptr) {
-       // Machine dependent mcontext initialisation for LWP.
-       mc.__gregs[_REG_EIP] = uint32(funcPC(lwp_tramp))
-       mc.__gregs[_REG_UESP] = uint32(uintptr(stk))
-       mc.__gregs[_REG_EBX] = uint32(uintptr(unsafe.Pointer(mp)))
-       mc.__gregs[_REG_EDX] = uint32(uintptr(unsafe.Pointer(gp)))
-       mc.__gregs[_REG_ESI] = uint32(fn)
-}
diff --git a/libgo/go/runtime/os_netbsd_amd64.go b/libgo/go/runtime/os_netbsd_amd64.go
deleted file mode 100644 (file)
index 5118b0c..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2009 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.
-
-package runtime
-
-import "unsafe"
-
-func lwp_mcontext_init(mc *mcontextt, stk unsafe.Pointer, mp *m, gp *g, fn uintptr) {
-       // Machine dependent mcontext initialisation for LWP.
-       mc.__gregs[_REG_RIP] = uint64(funcPC(lwp_tramp))
-       mc.__gregs[_REG_RSP] = uint64(uintptr(stk))
-       mc.__gregs[_REG_R8] = uint64(uintptr(unsafe.Pointer(mp)))
-       mc.__gregs[_REG_R9] = uint64(uintptr(unsafe.Pointer(gp)))
-       mc.__gregs[_REG_R12] = uint64(fn)
-}
diff --git a/libgo/go/runtime/os_plan9_arm.go b/libgo/go/runtime/os_plan9_arm.go
deleted file mode 100644 (file)
index 30cde8f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2015 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.
-
-package runtime
-
-func checkgoarm() {
-       return // TODO(minux)
-}
-
-//go:nosplit
-func cputicks() int64 {
-       // Currently cputicks() is used in blocking profiler and to seed runtime·fastrand1().
-       // runtime·nanotime() is a poor approximation of CPU ticks that is enough for the profiler.
-       // TODO: need more entropy to better seed fastrand1.
-       return nanotime()
-}
index 32626c1e9dff14e3ced2b37906340eb004aadc2e..97d595fb2fbd33a5626fb7ee6f17908ecfc58f0e 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 package runtime
 
 import "unsafe"
index b137169940759de0fef239c28e18e62a57f35131..b7479a71a778991a8c40678f55a54982e1669ed6 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 // +build darwin dragonfly freebsd linux netbsd openbsd
 
 package runtime
diff --git a/libgo/go/runtime/signal_linux_mips64x.go b/libgo/go/runtime/signal_linux_mips64x.go
deleted file mode 100644 (file)
index 0f590e4..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2015 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.
-
-// +build linux
-// +build mips64 mips64le
-
-package runtime
-
-import (
-       "runtime/internal/sys"
-       "unsafe"
-)
-
-type sigctxt struct {
-       info *siginfo
-       ctxt unsafe.Pointer
-}
-
-func (c *sigctxt) regs() *sigcontext { return &(*ucontext)(c.ctxt).uc_mcontext }
-func (c *sigctxt) r0() uint64        { return c.regs().sc_regs[0] }
-func (c *sigctxt) r1() uint64        { return c.regs().sc_regs[1] }
-func (c *sigctxt) r2() uint64        { return c.regs().sc_regs[2] }
-func (c *sigctxt) r3() uint64        { return c.regs().sc_regs[3] }
-func (c *sigctxt) r4() uint64        { return c.regs().sc_regs[4] }
-func (c *sigctxt) r5() uint64        { return c.regs().sc_regs[5] }
-func (c *sigctxt) r6() uint64        { return c.regs().sc_regs[6] }
-func (c *sigctxt) r7() uint64        { return c.regs().sc_regs[7] }
-func (c *sigctxt) r8() uint64        { return c.regs().sc_regs[8] }
-func (c *sigctxt) r9() uint64        { return c.regs().sc_regs[9] }
-func (c *sigctxt) r10() uint64       { return c.regs().sc_regs[10] }
-func (c *sigctxt) r11() uint64       { return c.regs().sc_regs[11] }
-func (c *sigctxt) r12() uint64       { return c.regs().sc_regs[12] }
-func (c *sigctxt) r13() uint64       { return c.regs().sc_regs[13] }
-func (c *sigctxt) r14() uint64       { return c.regs().sc_regs[14] }
-func (c *sigctxt) r15() uint64       { return c.regs().sc_regs[15] }
-func (c *sigctxt) r16() uint64       { return c.regs().sc_regs[16] }
-func (c *sigctxt) r17() uint64       { return c.regs().sc_regs[17] }
-func (c *sigctxt) r18() uint64       { return c.regs().sc_regs[18] }
-func (c *sigctxt) r19() uint64       { return c.regs().sc_regs[19] }
-func (c *sigctxt) r20() uint64       { return c.regs().sc_regs[20] }
-func (c *sigctxt) r21() uint64       { return c.regs().sc_regs[21] }
-func (c *sigctxt) r22() uint64       { return c.regs().sc_regs[22] }
-func (c *sigctxt) r23() uint64       { return c.regs().sc_regs[23] }
-func (c *sigctxt) r24() uint64       { return c.regs().sc_regs[24] }
-func (c *sigctxt) r25() uint64       { return c.regs().sc_regs[25] }
-func (c *sigctxt) r26() uint64       { return c.regs().sc_regs[26] }
-func (c *sigctxt) r27() uint64       { return c.regs().sc_regs[27] }
-func (c *sigctxt) r28() uint64       { return c.regs().sc_regs[28] }
-func (c *sigctxt) r29() uint64       { return c.regs().sc_regs[29] }
-func (c *sigctxt) r30() uint64       { return c.regs().sc_regs[30] }
-func (c *sigctxt) r31() uint64       { return c.regs().sc_regs[31] }
-func (c *sigctxt) sp() uint64        { return c.regs().sc_regs[29] }
-func (c *sigctxt) pc() uint64        { return c.regs().sc_pc }
-func (c *sigctxt) link() uint64      { return c.regs().sc_regs[31] }
-func (c *sigctxt) lo() uint64        { return c.regs().sc_mdlo }
-func (c *sigctxt) hi() uint64        { return c.regs().sc_mdhi }
-
-func (c *sigctxt) sigcode() uint32 { return uint32(c.info.si_code) }
-func (c *sigctxt) sigaddr() uint64 { return c.info.si_addr }
-
-func (c *sigctxt) set_r30(x uint64)  { c.regs().sc_regs[30] = x }
-func (c *sigctxt) set_pc(x uint64)   { c.regs().sc_pc = x }
-func (c *sigctxt) set_sp(x uint64)   { c.regs().sc_regs[29] = x }
-func (c *sigctxt) set_link(x uint64) { c.regs().sc_regs[31] = x }
-
-func (c *sigctxt) set_sigcode(x uint32) { c.info.si_code = int32(x) }
-func (c *sigctxt) set_sigaddr(x uint64) {
-       *(*uintptr)(add(unsafe.Pointer(c.info), 2*sys.PtrSize)) = uintptr(x)
-}
diff --git a/libgo/go/runtime/signal_linux_s390x.go b/libgo/go/runtime/signal_linux_s390x.go
deleted file mode 100644 (file)
index 155d3a3..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-// Copyright 2016 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.
-
-package runtime
-
-import (
-       "runtime/internal/sys"
-       "unsafe"
-)
-
-type sigctxt struct {
-       info *siginfo
-       ctxt unsafe.Pointer
-}
-
-func (c *sigctxt) regs() *sigcontext {
-       return (*sigcontext)(unsafe.Pointer(&(*ucontext)(c.ctxt).uc_mcontext))
-}
-func (c *sigctxt) r0() uint64      { return c.regs().gregs[0] }
-func (c *sigctxt) r1() uint64      { return c.regs().gregs[1] }
-func (c *sigctxt) r2() uint64      { return c.regs().gregs[2] }
-func (c *sigctxt) r3() uint64      { return c.regs().gregs[3] }
-func (c *sigctxt) r4() uint64      { return c.regs().gregs[4] }
-func (c *sigctxt) r5() uint64      { return c.regs().gregs[5] }
-func (c *sigctxt) r6() uint64      { return c.regs().gregs[6] }
-func (c *sigctxt) r7() uint64      { return c.regs().gregs[7] }
-func (c *sigctxt) r8() uint64      { return c.regs().gregs[8] }
-func (c *sigctxt) r9() uint64      { return c.regs().gregs[9] }
-func (c *sigctxt) r10() uint64     { return c.regs().gregs[10] }
-func (c *sigctxt) r11() uint64     { return c.regs().gregs[11] }
-func (c *sigctxt) r12() uint64     { return c.regs().gregs[12] }
-func (c *sigctxt) r13() uint64     { return c.regs().gregs[13] }
-func (c *sigctxt) r14() uint64     { return c.regs().gregs[14] }
-func (c *sigctxt) r15() uint64     { return c.regs().gregs[15] }
-func (c *sigctxt) link() uint64    { return c.regs().gregs[14] }
-func (c *sigctxt) sp() uint64      { return c.regs().gregs[15] }
-func (c *sigctxt) pc() uint64      { return c.regs().psw_addr }
-func (c *sigctxt) sigcode() uint32 { return uint32(c.info.si_code) }
-func (c *sigctxt) sigaddr() uint64 { return c.info.si_addr }
-
-func (c *sigctxt) set_r0(x uint64)      { c.regs().gregs[0] = x }
-func (c *sigctxt) set_r13(x uint64)     { c.regs().gregs[13] = x }
-func (c *sigctxt) set_link(x uint64)    { c.regs().gregs[14] = x }
-func (c *sigctxt) set_sp(x uint64)      { c.regs().gregs[15] = x }
-func (c *sigctxt) set_pc(x uint64)      { c.regs().psw_addr = x }
-func (c *sigctxt) set_sigcode(x uint32) { c.info.si_code = int32(x) }
-func (c *sigctxt) set_sigaddr(x uint64) {
-       *(*uintptr)(add(unsafe.Pointer(c.info), 2*sys.PtrSize)) = uintptr(x)
-}
-
-func dumpregs(c *sigctxt) {
-       print("r0   ", hex(c.r0()), "\t")
-       print("r1   ", hex(c.r1()), "\n")
-       print("r2   ", hex(c.r2()), "\t")
-       print("r3   ", hex(c.r3()), "\n")
-       print("r4   ", hex(c.r4()), "\t")
-       print("r5   ", hex(c.r5()), "\n")
-       print("r6   ", hex(c.r6()), "\t")
-       print("r7   ", hex(c.r7()), "\n")
-       print("r8   ", hex(c.r8()), "\t")
-       print("r9   ", hex(c.r9()), "\n")
-       print("r10  ", hex(c.r10()), "\t")
-       print("r11  ", hex(c.r11()), "\n")
-       print("r12  ", hex(c.r12()), "\t")
-       print("r13  ", hex(c.r13()), "\n")
-       print("r14  ", hex(c.r14()), "\t")
-       print("r15  ", hex(c.r15()), "\n")
-       print("pc   ", hex(c.pc()), "\t")
-       print("link ", hex(c.link()), "\n")
-}
-
-var crashing int32
-
-// May run during STW, so write barriers are not allowed.
-//
-//go:nowritebarrierrec
-func sighandler(sig uint32, info *siginfo, ctxt unsafe.Pointer, gp *g) {
-       _g_ := getg()
-       c := &sigctxt{info, ctxt}
-
-       if sig == _SIGPROF {
-               sigprof(uintptr(c.pc()), uintptr(c.sp()), uintptr(c.link()), gp, _g_.m)
-               return
-       }
-       flags := int32(_SigThrow)
-       if sig < uint32(len(sigtable)) {
-               flags = sigtable[sig].flags
-       }
-       if c.sigcode() != _SI_USER && flags&_SigPanic != 0 {
-               // Make it look like a call to the signal func.
-               // Have to pass arguments out of band since
-               // augmenting the stack frame would break
-               // the unwinding code.
-               gp.sig = sig
-               gp.sigcode0 = uintptr(c.sigcode())
-               gp.sigcode1 = uintptr(c.sigaddr())
-               gp.sigpc = uintptr(c.pc())
-
-               // We arrange link, and pc to pretend the panicking
-               // function calls sigpanic directly.
-               // Always save LINK to stack so that panics in leaf
-               // functions are correctly handled. This smashes
-               // the stack frame but we're not going back there
-               // anyway.
-               sp := c.sp() - sys.MinFrameSize
-               c.set_sp(sp)
-               *(*uint64)(unsafe.Pointer(uintptr(sp))) = c.link()
-
-               pc := uintptr(gp.sigpc)
-
-               // If we don't recognize the PC as code
-               // but we do recognize the link register as code,
-               // then assume this was a call to non-code and treat like
-               // pc == 0, to make unwinding show the context.
-               if pc != 0 && findfunc(pc) == nil && findfunc(uintptr(c.link())) != nil {
-                       pc = 0
-               }
-
-               // Don't bother saving PC if it's zero, which is
-               // probably a call to a nil func: the old link register
-               // is more useful in the stack trace.
-               if pc != 0 {
-                       c.set_link(uint64(pc))
-               }
-
-               // In case we are panicking from external C code
-               c.set_r0(0)
-               c.set_r13(uint64(uintptr(unsafe.Pointer(gp))))
-               c.set_pc(uint64(funcPC(sigpanic)))
-               return
-       }
-
-       if c.sigcode() == _SI_USER || flags&_SigNotify != 0 {
-               if sigsend(sig) {
-                       return
-               }
-       }
-
-       if c.sigcode() == _SI_USER && signal_ignored(sig) {
-               return
-       }
-
-       if flags&_SigKill != 0 {
-               dieFromSignal(int32(sig))
-       }
-
-       if flags&_SigThrow == 0 {
-               return
-       }
-
-       _g_.m.throwing = 1
-       _g_.m.caughtsig.set(gp)
-
-       if crashing == 0 {
-               startpanic()
-       }
-
-       if sig < uint32(len(sigtable)) {
-               print(sigtable[sig].name, "\n")
-       } else {
-               print("Signal ", sig, "\n")
-       }
-
-       print("PC=", hex(c.pc()), " m=", _g_.m.id, "\n")
-       if _g_.m.lockedg != nil && _g_.m.ncgo > 0 && gp == _g_.m.g0 {
-               print("signal arrived during cgo execution\n")
-               gp = _g_.m.lockedg
-       }
-       print("\n")
-
-       level, _, docrash := gotraceback()
-       if level > 0 {
-               goroutineheader(gp)
-               tracebacktrap(uintptr(c.pc()), uintptr(c.sp()), uintptr(c.link()), gp)
-               if crashing > 0 && gp != _g_.m.curg && _g_.m.curg != nil && readgstatus(_g_.m.curg)&^_Gscan == _Grunning {
-                       // tracebackothers on original m skipped this one; trace it now.
-                       goroutineheader(_g_.m.curg)
-                       traceback(^uintptr(0), ^uintptr(0), 0, gp)
-               } else if crashing == 0 {
-                       tracebackothers(gp)
-                       print("\n")
-               }
-               dumpregs(c)
-       }
-
-       if docrash {
-               crashing++
-               if crashing < sched.mcount {
-                       // There are other m's that need to dump their stacks.
-                       // Relay SIGQUIT to the next m by sending it to the current process.
-                       // All m's that have already received SIGQUIT have signal masks blocking
-                       // receipt of any signals, so the SIGQUIT will go to an m that hasn't seen it yet.
-                       // When the last m receives the SIGQUIT, it will fall through to the call to
-                       // crash below. Just in case the relaying gets botched, each m involved in
-                       // the relay sleeps for 5 seconds and then does the crash/exit itself.
-                       // In expected operation, the last m has received the SIGQUIT and run
-                       // crash/exit and the process is gone, all long before any of the
-                       // 5-second sleeps have finished.
-                       print("\n-----\n\n")
-                       raiseproc(_SIGQUIT)
-                       usleep(5 * 1000 * 1000)
-               }
-               crash()
-       }
-
-       exit(2)
-}
diff --git a/libgo/go/runtime/signal_mips64x.go b/libgo/go/runtime/signal_mips64x.go
deleted file mode 100644 (file)
index 4dbeb42..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-// Copyright 2015 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.
-
-// +build linux
-// +build mips64 mips64le
-
-package runtime
-
-import (
-       "runtime/internal/sys"
-       "unsafe"
-)
-
-func dumpregs(c *sigctxt) {
-       print("r0   ", hex(c.r0()), "\t")
-       print("r1   ", hex(c.r1()), "\n")
-       print("r2   ", hex(c.r2()), "\t")
-       print("r3   ", hex(c.r3()), "\n")
-       print("r4   ", hex(c.r4()), "\t")
-       print("r5   ", hex(c.r5()), "\n")
-       print("r6   ", hex(c.r6()), "\t")
-       print("r7   ", hex(c.r7()), "\n")
-       print("r8   ", hex(c.r8()), "\t")
-       print("r9   ", hex(c.r9()), "\n")
-       print("r10  ", hex(c.r10()), "\t")
-       print("r11  ", hex(c.r11()), "\n")
-       print("r12  ", hex(c.r12()), "\t")
-       print("r13  ", hex(c.r13()), "\n")
-       print("r14  ", hex(c.r14()), "\t")
-       print("r15  ", hex(c.r15()), "\n")
-       print("r16  ", hex(c.r16()), "\t")
-       print("r17  ", hex(c.r17()), "\n")
-       print("r18  ", hex(c.r18()), "\t")
-       print("r19  ", hex(c.r19()), "\n")
-       print("r20  ", hex(c.r20()), "\t")
-       print("r21  ", hex(c.r21()), "\n")
-       print("r22  ", hex(c.r22()), "\t")
-       print("r23  ", hex(c.r23()), "\n")
-       print("r24  ", hex(c.r24()), "\t")
-       print("r25  ", hex(c.r25()), "\n")
-       print("r26  ", hex(c.r26()), "\t")
-       print("r27  ", hex(c.r27()), "\n")
-       print("r28  ", hex(c.r28()), "\t")
-       print("r29  ", hex(c.r29()), "\n")
-       print("r30  ", hex(c.r30()), "\t")
-       print("r31  ", hex(c.r31()), "\n")
-       print("pc   ", hex(c.pc()), "\t")
-       print("link ", hex(c.link()), "\n")
-       print("lo   ", hex(c.lo()), "\t")
-       print("hi   ", hex(c.hi()), "\n")
-}
-
-var crashing int32
-
-// May run during STW, so write barriers are not allowed.
-//
-//go:nowritebarrierrec
-func sighandler(sig uint32, info *siginfo, ctxt unsafe.Pointer, gp *g) {
-       _g_ := getg()
-       c := &sigctxt{info, ctxt}
-
-       if sig == _SIGPROF {
-               sigprof(uintptr(c.pc()), uintptr(c.sp()), uintptr(c.link()), gp, _g_.m)
-               return
-       }
-       flags := int32(_SigThrow)
-       if sig < uint32(len(sigtable)) {
-               flags = sigtable[sig].flags
-       }
-       if c.sigcode() != _SI_USER && flags&_SigPanic != 0 {
-               // Make it look like a call to the signal func.
-               // Have to pass arguments out of band since
-               // augmenting the stack frame would break
-               // the unwinding code.
-               gp.sig = sig
-               gp.sigcode0 = uintptr(c.sigcode())
-               gp.sigcode1 = uintptr(c.sigaddr())
-               gp.sigpc = uintptr(c.pc())
-
-               // We arrange link, and pc to pretend the panicking
-               // function calls sigpanic directly.
-               // Always save LINK to stack so that panics in leaf
-               // functions are correctly handled. This smashes
-               // the stack frame but we're not going back there
-               // anyway.
-               sp := c.sp() - sys.PtrSize
-               c.set_sp(sp)
-               *(*uint64)(unsafe.Pointer(uintptr(sp))) = c.link()
-
-               pc := gp.sigpc
-
-               // If we don't recognize the PC as code
-               // but we do recognize the link register as code,
-               // then assume this was a call to non-code and treat like
-               // pc == 0, to make unwinding show the context.
-               if pc != 0 && findfunc(pc) == nil && findfunc(uintptr(c.link())) != nil {
-                       pc = 0
-               }
-
-               // Don't bother saving PC if it's zero, which is
-               // probably a call to a nil func: the old link register
-               // is more useful in the stack trace.
-               if pc != 0 {
-                       c.set_link(uint64(pc))
-               }
-
-               // In case we are panicking from external C code
-               c.set_r30(uint64(uintptr(unsafe.Pointer(gp))))
-               c.set_pc(uint64(funcPC(sigpanic)))
-               return
-       }
-
-       if c.sigcode() == _SI_USER || flags&_SigNotify != 0 {
-               if sigsend(sig) {
-                       return
-               }
-       }
-
-       if c.sigcode() == _SI_USER && signal_ignored(sig) {
-               return
-       }
-
-       if flags&_SigKill != 0 {
-               dieFromSignal(int32(sig))
-       }
-
-       if flags&_SigThrow == 0 {
-               return
-       }
-
-       _g_.m.throwing = 1
-       _g_.m.caughtsig.set(gp)
-
-       if crashing == 0 {
-               startpanic()
-       }
-
-       if sig < uint32(len(sigtable)) {
-               print(sigtable[sig].name, "\n")
-       } else {
-               print("Signal ", sig, "\n")
-       }
-
-       print("PC=", hex(c.pc()), " m=", _g_.m.id, "\n")
-       if _g_.m.lockedg != nil && _g_.m.ncgo > 0 && gp == _g_.m.g0 {
-               print("signal arrived during cgo execution\n")
-               gp = _g_.m.lockedg
-       }
-       print("\n")
-
-       level, _, docrash := gotraceback()
-       if level > 0 {
-               goroutineheader(gp)
-               tracebacktrap(uintptr(c.pc()), uintptr(c.sp()), uintptr(c.link()), gp)
-               if crashing > 0 && gp != _g_.m.curg && _g_.m.curg != nil && readgstatus(_g_.m.curg)&^_Gscan == _Grunning {
-                       // tracebackothers on original m skipped this one; trace it now.
-                       goroutineheader(_g_.m.curg)
-                       traceback(^uintptr(0), ^uintptr(0), 0, gp)
-               } else if crashing == 0 {
-                       tracebackothers(gp)
-                       print("\n")
-               }
-               dumpregs(c)
-       }
-
-       if docrash {
-               crashing++
-               if crashing < sched.mcount {
-                       // There are other m's that need to dump their stacks.
-                       // Relay SIGQUIT to the next m by sending it to the current process.
-                       // All m's that have already received SIGQUIT have signal masks blocking
-                       // receipt of any signals, so the SIGQUIT will go to an m that hasn't seen it yet.
-                       // When the last m receives the SIGQUIT, it will fall through to the call to
-                       // crash below. Just in case the relaying gets botched, each m involved in
-                       // the relay sleeps for 5 seconds and then does the crash/exit itself.
-                       // In expected operation, the last m has received the SIGQUIT and run
-                       // crash/exit and the process is gone, all long before any of the
-                       // 5-second sleeps have finished.
-                       print("\n-----\n\n")
-                       raiseproc(_SIGQUIT)
-                       usleep(5 * 1000 * 1000)
-               }
-               crash()
-       }
-
-       exit(2)
-}
index dbbbcd0392b1fe252b76a06ce166f2b08926580f..f4a6ebd71c1c9b024a87ece4f5cbb320e0490d6e 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 // +build dragonfly linux netbsd
 
 package runtime
diff --git a/libgo/go/runtime/sigtab_linux_generic.go b/libgo/go/runtime/sigtab_linux_generic.go
deleted file mode 100644 (file)
index ea36bf3..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-// Copyright 2009 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.
-
-// +build !mips64
-// +build !mips64le
-// +build linux
-
-package runtime
-
-type sigTabT struct {
-       flags int32
-       name  string
-}
-
-var sigtable = [...]sigTabT{
-       /* 0 */ {0, "SIGNONE: no trap"},
-       /* 1 */ {_SigNotify + _SigKill, "SIGHUP: terminal line hangup"},
-       /* 2 */ {_SigNotify + _SigKill, "SIGINT: interrupt"},
-       /* 3 */ {_SigNotify + _SigThrow, "SIGQUIT: quit"},
-       /* 4 */ {_SigThrow + _SigUnblock, "SIGILL: illegal instruction"},
-       /* 5 */ {_SigThrow + _SigUnblock, "SIGTRAP: trace trap"},
-       /* 6 */ {_SigNotify + _SigThrow, "SIGABRT: abort"},
-       /* 7 */ {_SigPanic + _SigUnblock, "SIGBUS: bus error"},
-       /* 8 */ {_SigPanic + _SigUnblock, "SIGFPE: floating-point exception"},
-       /* 9 */ {0, "SIGKILL: kill"},
-       /* 10 */ {_SigNotify, "SIGUSR1: user-defined signal 1"},
-       /* 11 */ {_SigPanic + _SigUnblock, "SIGSEGV: segmentation violation"},
-       /* 12 */ {_SigNotify, "SIGUSR2: user-defined signal 2"},
-       /* 13 */ {_SigNotify, "SIGPIPE: write to broken pipe"},
-       /* 14 */ {_SigNotify, "SIGALRM: alarm clock"},
-       /* 15 */ {_SigNotify + _SigKill, "SIGTERM: termination"},
-       /* 16 */ {_SigThrow + _SigUnblock, "SIGSTKFLT: stack fault"},
-       /* 17 */ {_SigNotify + _SigUnblock, "SIGCHLD: child status has changed"},
-       /* 18 */ {_SigNotify + _SigDefault, "SIGCONT: continue"},
-       /* 19 */ {0, "SIGSTOP: stop, unblockable"},
-       /* 20 */ {_SigNotify + _SigDefault, "SIGTSTP: keyboard stop"},
-       /* 21 */ {_SigNotify + _SigDefault, "SIGTTIN: background read from tty"},
-       /* 22 */ {_SigNotify + _SigDefault, "SIGTTOU: background write to tty"},
-       /* 23 */ {_SigNotify, "SIGURG: urgent condition on socket"},
-       /* 24 */ {_SigNotify, "SIGXCPU: cpu limit exceeded"},
-       /* 25 */ {_SigNotify, "SIGXFSZ: file size limit exceeded"},
-       /* 26 */ {_SigNotify, "SIGVTALRM: virtual alarm clock"},
-       /* 27 */ {_SigNotify + _SigUnblock, "SIGPROF: profiling alarm clock"},
-       /* 28 */ {_SigNotify, "SIGWINCH: window size change"},
-       /* 29 */ {_SigNotify, "SIGIO: i/o now possible"},
-       /* 30 */ {_SigNotify, "SIGPWR: power failure restart"},
-       /* 31 */ {_SigThrow, "SIGSYS: bad system call"},
-       /* 32 */ {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */
-       /* 33 */ {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */
-       /* 34 */ {_SigNotify, "signal 34"},
-       /* 35 */ {_SigNotify, "signal 35"},
-       /* 36 */ {_SigNotify, "signal 36"},
-       /* 37 */ {_SigNotify, "signal 37"},
-       /* 38 */ {_SigNotify, "signal 38"},
-       /* 39 */ {_SigNotify, "signal 39"},
-       /* 40 */ {_SigNotify, "signal 40"},
-       /* 41 */ {_SigNotify, "signal 41"},
-       /* 42 */ {_SigNotify, "signal 42"},
-       /* 43 */ {_SigNotify, "signal 43"},
-       /* 44 */ {_SigNotify, "signal 44"},
-       /* 45 */ {_SigNotify, "signal 45"},
-       /* 46 */ {_SigNotify, "signal 46"},
-       /* 47 */ {_SigNotify, "signal 47"},
-       /* 48 */ {_SigNotify, "signal 48"},
-       /* 49 */ {_SigNotify, "signal 49"},
-       /* 50 */ {_SigNotify, "signal 50"},
-       /* 51 */ {_SigNotify, "signal 51"},
-       /* 52 */ {_SigNotify, "signal 52"},
-       /* 53 */ {_SigNotify, "signal 53"},
-       /* 54 */ {_SigNotify, "signal 54"},
-       /* 55 */ {_SigNotify, "signal 55"},
-       /* 56 */ {_SigNotify, "signal 56"},
-       /* 57 */ {_SigNotify, "signal 57"},
-       /* 58 */ {_SigNotify, "signal 58"},
-       /* 59 */ {_SigNotify, "signal 59"},
-       /* 60 */ {_SigNotify, "signal 60"},
-       /* 61 */ {_SigNotify, "signal 61"},
-       /* 62 */ {_SigNotify, "signal 62"},
-       /* 63 */ {_SigNotify, "signal 63"},
-       /* 64 */ {_SigNotify, "signal 64"},
-}
diff --git a/libgo/go/runtime/sigtab_linux_mips64x.go b/libgo/go/runtime/sigtab_linux_mips64x.go
deleted file mode 100644 (file)
index 201fe3d..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright 2015 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.
-
-// +build mips64 mips64le
-// +build linux
-
-package runtime
-
-type sigTabT struct {
-       flags int32
-       name  string
-}
-
-var sigtable = [...]sigTabT{
-       /* 0 */ {0, "SIGNONE: no trap"},
-       /* 1 */ {_SigNotify + _SigKill, "SIGHUP: terminal line hangup"},
-       /* 2 */ {_SigNotify + _SigKill, "SIGINT: interrupt"},
-       /* 3 */ {_SigNotify + _SigThrow, "SIGQUIT: quit"},
-       /* 4 */ {_SigThrow + _SigUnblock, "SIGILL: illegal instruction"},
-       /* 5 */ {_SigThrow + _SigUnblock, "SIGTRAP: trace trap"},
-       /* 6 */ {_SigNotify + _SigThrow, "SIGABRT: abort"},
-       /* 7 */ {_SigThrow, "SIGEMT"},
-       /* 8 */ {_SigPanic + _SigUnblock, "SIGFPE: floating-point exception"},
-       /* 9 */ {0, "SIGKILL: kill"},
-       /* 10 */ {_SigPanic + _SigUnblock, "SIGBUS: bus error"},
-       /* 11 */ {_SigPanic + _SigUnblock, "SIGSEGV: segmentation violation"},
-       /* 12 */ {_SigThrow, "SIGSYS: bad system call"},
-       /* 13 */ {_SigNotify, "SIGPIPE: write to broken pipe"},
-       /* 14 */ {_SigNotify, "SIGALRM: alarm clock"},
-       /* 15 */ {_SigNotify + _SigKill, "SIGTERM: termination"},
-       /* 16 */ {_SigNotify, "SIGUSR1: user-defined signal 1"},
-       /* 17 */ {_SigNotify, "SIGUSR2: user-defined signal 2"},
-       /* 18 */ {_SigNotify + _SigUnblock, "SIGCHLD: child status has changed"},
-       /* 19 */ {_SigNotify, "SIGPWR: power failure restart"},
-       /* 20 */ {_SigNotify, "SIGWINCH: window size change"},
-       /* 21 */ {_SigNotify, "SIGURG: urgent condition on socket"},
-       /* 22 */ {_SigNotify, "SIGIO: i/o now possible"},
-       /* 23 */ {0, "SIGSTOP: stop, unblockable"},
-       /* 24 */ {_SigNotify + _SigDefault, "SIGTSTP: keyboard stop"},
-       /* 25 */ {_SigNotify + _SigDefault, "SIGCONT: continue"},
-       /* 26 */ {_SigNotify + _SigDefault, "SIGTTIN: background read from tty"},
-       /* 27 */ {_SigNotify + _SigDefault, "SIGTTOU: background write to tty"},
-       /* 28 */ {_SigNotify, "SIGVTALRM: virtual alarm clock"},
-       /* 29 */ {_SigNotify + _SigUnblock, "SIGPROF: profiling alarm clock"},
-       /* 30 */ {_SigNotify, "SIGXCPU: cpu limit exceeded"},
-       /* 31 */ {_SigNotify, "SIGXFSZ: file size limit exceeded"},
-       /* 32 */ {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */
-       /* 33 */ {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */
-       /* 34 */ {_SigNotify, "signal 34"},
-       /* 35 */ {_SigNotify, "signal 35"},
-       /* 36 */ {_SigNotify, "signal 36"},
-       /* 37 */ {_SigNotify, "signal 37"},
-       /* 38 */ {_SigNotify, "signal 38"},
-       /* 39 */ {_SigNotify, "signal 39"},
-       /* 40 */ {_SigNotify, "signal 40"},
-       /* 41 */ {_SigNotify, "signal 41"},
-       /* 42 */ {_SigNotify, "signal 42"},
-       /* 43 */ {_SigNotify, "signal 43"},
-       /* 44 */ {_SigNotify, "signal 44"},
-       /* 45 */ {_SigNotify, "signal 45"},
-       /* 46 */ {_SigNotify, "signal 46"},
-       /* 47 */ {_SigNotify, "signal 47"},
-       /* 48 */ {_SigNotify, "signal 48"},
-       /* 49 */ {_SigNotify, "signal 49"},
-       /* 50 */ {_SigNotify, "signal 50"},
-       /* 51 */ {_SigNotify, "signal 51"},
-       /* 52 */ {_SigNotify, "signal 52"},
-       /* 53 */ {_SigNotify, "signal 53"},
-       /* 54 */ {_SigNotify, "signal 54"},
-       /* 55 */ {_SigNotify, "signal 55"},
-       /* 56 */ {_SigNotify, "signal 56"},
-       /* 57 */ {_SigNotify, "signal 57"},
-       /* 58 */ {_SigNotify, "signal 58"},
-       /* 59 */ {_SigNotify, "signal 59"},
-       /* 60 */ {_SigNotify, "signal 60"},
-       /* 61 */ {_SigNotify, "signal 61"},
-       /* 62 */ {_SigNotify, "signal 62"},
-       /* 63 */ {_SigNotify, "signal 63"},
-       /* 64 */ {_SigNotify, "signal 64"},
-}
index 8398a101fd8f5d8713969654eae6b50b33bea59f..708a4c299cc39feea7522a4396c4c84ffff0f08b 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 package runtime
 
 import (
diff --git a/libgo/go/runtime/sys_mips64x.go b/libgo/go/runtime/sys_mips64x.go
deleted file mode 100644 (file)
index 9e7d805..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2015 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.
-
-// +build mips64 mips64le
-
-package runtime
-
-import "unsafe"
-
-// adjust Gobuf as if it executed a call to fn with context ctxt
-// and then did an immediate Gosave.
-func gostartcall(buf *gobuf, fn, ctxt unsafe.Pointer) {
-       if buf.lr != 0 {
-               throw("invalid use of gostartcall")
-       }
-       buf.lr = buf.pc
-       buf.pc = uintptr(fn)
-       buf.ctxt = ctxt
-}
-
-// Called to rewind context saved during morestack back to beginning of function.
-// To help us, the linker emits a jmp back to the beginning right after the
-// call to morestack. We just have to decode and apply that jump.
-func rewindmorestack(buf *gobuf) {
-       var inst uint32
-       if buf.pc&3 == 0 && buf.pc != 0 {
-               inst = *(*uint32)(unsafe.Pointer(buf.pc))
-               if inst>>26 == 2 { // JMP addr
-                       //print("runtime: rewind pc=", hex(buf.pc), " to pc=", hex(buf.pc &^ uintptr(1<<28-1) | uintptr((inst&^0xfc000000)<<2)), "\n");
-                       buf.pc &^= 1<<28 - 1
-                       buf.pc |= uintptr((inst &^ 0xfc000000) << 2)
-                       return
-               }
-               if inst>>16 == 0x1000 { // BEQ  R0, R0, offset
-                       //print("runtime: rewind pc=", hex(buf.pc), " to pc=", hex(buf.pc + uintptr(int32(int16(inst&0xffff))<<2 + 4)), "\n");
-                       buf.pc += uintptr(int32(int16(inst&0xffff))<<2 + 4)
-                       return
-               }
-       }
-       print("runtime: pc=", hex(buf.pc), " ", hex(inst), "\n")
-       throw("runtime: misuse of rewindmorestack")
-}
diff --git a/libgo/go/runtime/sys_nonppc64x.go b/libgo/go/runtime/sys_nonppc64x.go
deleted file mode 100644 (file)
index 4409374..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 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.
-
-// +build !ppc64,!ppc64le
-
-package runtime
-
-func prepGoExitFrame(sp uintptr) {
-}
diff --git a/libgo/go/runtime/sys_s390x.go b/libgo/go/runtime/sys_s390x.go
deleted file mode 100644 (file)
index 2aa81e7..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2016 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.
-
-package runtime
-
-import "unsafe"
-
-// adjust Gobuf as if it executed a call to fn with context ctxt
-// and then did an immediate Gosave.
-func gostartcall(buf *gobuf, fn, ctxt unsafe.Pointer) {
-       if buf.lr != 0 {
-               throw("invalid use of gostartcall")
-       }
-       buf.lr = buf.pc
-       buf.pc = uintptr(fn)
-       buf.ctxt = ctxt
-}
-
-// Called to rewind context saved during morestack back to beginning of function.
-// To help us, the linker emits a jmp back to the beginning right after the
-// call to morestack. We just have to decode and apply that jump.
-func rewindmorestack(buf *gobuf) {
-       var inst uint64
-       if buf.pc&1 == 0 && buf.pc != 0 {
-               inst = *(*uint64)(unsafe.Pointer(buf.pc))
-               switch inst >> 48 {
-               case 0xa7f4: // BRC (branch relative on condition) instruction.
-                       inst >>= 32
-                       inst &= 0xFFFF
-                       offset := int64(int16(inst))
-                       offset <<= 1
-                       buf.pc += uintptr(offset)
-                       return
-               case 0xc0f4: // BRCL (branch relative on condition long) instruction.
-                       inst >>= 16
-                       inst = inst & 0xFFFFFFFF
-                       inst = (inst << 1) & 0xFFFFFFFF
-                       buf.pc += uintptr(int32(inst))
-                       return
-               }
-       }
-       print("runtime: pc=", hex(buf.pc), " ", hex(inst), "\n")
-       throw("runtime: misuse of rewindmorestack")
-}
diff --git a/libgo/go/runtime/vlrt.go b/libgo/go/runtime/vlrt.go
deleted file mode 100644 (file)
index cd37828..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-// Inferno's libkern/vlrt-arm.c
-// http://code.google.com/p/inferno-os/source/browse/libkern/vlrt-arm.c
-//
-//         Copyright Â© 1994-1999 Lucent Technologies Inc. All rights reserved.
-//         Revisions Copyright Â© 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com).  All rights reserved.
-//         Portions Copyright 2009 The Go Authors. All rights reserved.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-// +build arm 386
-
-package runtime
-
-import "unsafe"
-
-const (
-       sign32 = 1 << (32 - 1)
-       sign64 = 1 << (64 - 1)
-)
-
-func float64toint64(d float64) (y uint64) {
-       _d2v(&y, d)
-       return
-}
-
-func float64touint64(d float64) (y uint64) {
-       _d2v(&y, d)
-       return
-}
-
-func int64tofloat64(y int64) float64 {
-       if y < 0 {
-               return -uint64tofloat64(-uint64(y))
-       }
-       return uint64tofloat64(uint64(y))
-}
-
-func uint64tofloat64(y uint64) float64 {
-       hi := float64(uint32(y >> 32))
-       lo := float64(uint32(y))
-       d := hi*(1<<32) + lo
-       return d
-}
-
-func _d2v(y *uint64, d float64) {
-       x := *(*uint64)(unsafe.Pointer(&d))
-
-       xhi := uint32(x>>32)&0xfffff | 0x100000
-       xlo := uint32(x)
-       sh := 1075 - int32(uint32(x>>52)&0x7ff)
-
-       var ylo, yhi uint32
-       if sh >= 0 {
-               sh := uint32(sh)
-               /* v = (hi||lo) >> sh */
-               if sh < 32 {
-                       if sh == 0 {
-                               ylo = xlo
-                               yhi = xhi
-                       } else {
-                               ylo = xlo>>sh | xhi<<(32-sh)
-                               yhi = xhi >> sh
-                       }
-               } else {
-                       if sh == 32 {
-                               ylo = xhi
-                       } else if sh < 64 {
-                               ylo = xhi >> (sh - 32)
-                       }
-               }
-       } else {
-               /* v = (hi||lo) << -sh */
-               sh := uint32(-sh)
-               if sh <= 11 {
-                       ylo = xlo << sh
-                       yhi = xhi<<sh | xlo>>(32-sh)
-               } else {
-                       /* overflow */
-                       yhi = uint32(d) /* causes something awful */
-               }
-       }
-       if x&sign64 != 0 {
-               if ylo != 0 {
-                       ylo = -ylo
-                       yhi = ^yhi
-               } else {
-                       yhi = -yhi
-               }
-       }
-
-       *y = uint64(yhi)<<32 | uint64(ylo)
-}
-
-func uint64div(n, d uint64) uint64 {
-       // Check for 32 bit operands
-       if uint32(n>>32) == 0 && uint32(d>>32) == 0 {
-               if uint32(d) == 0 {
-                       panicdivide()
-               }
-               return uint64(uint32(n) / uint32(d))
-       }
-       q, _ := dodiv(n, d)
-       return q
-}
-
-func uint64mod(n, d uint64) uint64 {
-       // Check for 32 bit operands
-       if uint32(n>>32) == 0 && uint32(d>>32) == 0 {
-               if uint32(d) == 0 {
-                       panicdivide()
-               }
-               return uint64(uint32(n) % uint32(d))
-       }
-       _, r := dodiv(n, d)
-       return r
-}
-
-func int64div(n, d int64) int64 {
-       // Check for 32 bit operands
-       if int64(int32(n)) == n && int64(int32(d)) == d {
-               if int32(n) == -0x80000000 && int32(d) == -1 {
-                       // special case: 32-bit -0x80000000 / -1 = -0x80000000,
-                       // but 64-bit -0x80000000 / -1 = 0x80000000.
-                       return 0x80000000
-               }
-               if int32(d) == 0 {
-                       panicdivide()
-               }
-               return int64(int32(n) / int32(d))
-       }
-
-       nneg := n < 0
-       dneg := d < 0
-       if nneg {
-               n = -n
-       }
-       if dneg {
-               d = -d
-       }
-       uq, _ := dodiv(uint64(n), uint64(d))
-       q := int64(uq)
-       if nneg != dneg {
-               q = -q
-       }
-       return q
-}
-
-func int64mod(n, d int64) int64 {
-       // Check for 32 bit operands
-       if int64(int32(n)) == n && int64(int32(d)) == d {
-               if int32(d) == 0 {
-                       panicdivide()
-               }
-               return int64(int32(n) % int32(d))
-       }
-
-       nneg := n < 0
-       if nneg {
-               n = -n
-       }
-       if d < 0 {
-               d = -d
-       }
-       _, ur := dodiv(uint64(n), uint64(d))
-       r := int64(ur)
-       if nneg {
-               r = -r
-       }
-       return r
-}
-
-//go:noescape
-func _mul64by32(lo64 *uint64, a uint64, b uint32) (hi32 uint32)
-
-//go:noescape
-func _div64by32(a uint64, b uint32, r *uint32) (q uint32)
-
-func dodiv(n, d uint64) (q, r uint64) {
-       if GOARCH == "arm" {
-               // arm doesn't have a division instruction, so
-               // slowdodiv is the best that we can do.
-               return slowdodiv(n, d)
-       }
-
-       if d > n {
-               return 0, n
-       }
-
-       if uint32(d>>32) != 0 {
-               t := uint32(n>>32) / uint32(d>>32)
-               var lo64 uint64
-               hi32 := _mul64by32(&lo64, d, t)
-               if hi32 != 0 || lo64 > n {
-                       return slowdodiv(n, d)
-               }
-               return uint64(t), n - lo64
-       }
-
-       // d is 32 bit
-       var qhi uint32
-       if uint32(n>>32) >= uint32(d) {
-               if uint32(d) == 0 {
-                       panicdivide()
-               }
-               qhi = uint32(n>>32) / uint32(d)
-               n -= uint64(uint32(d)*qhi) << 32
-       } else {
-               qhi = 0
-       }
-
-       var rlo uint32
-       qlo := _div64by32(n, uint32(d), &rlo)
-       return uint64(qhi)<<32 + uint64(qlo), uint64(rlo)
-}
-
-func slowdodiv(n, d uint64) (q, r uint64) {
-       if d == 0 {
-               panicdivide()
-       }
-
-       // Set up the divisor and find the number of iterations needed.
-       capn := n
-       if n >= sign64 {
-               capn = sign64
-       }
-       i := 0
-       for d < capn {
-               d <<= 1
-               i++
-       }
-
-       for ; i >= 0; i-- {
-               q <<= 1
-               if n >= d {
-                       n -= d
-                       q |= 1
-               }
-               d >>= 1
-       }
-       return q, n
-}
diff --git a/libgo/go/runtime/write_err.go b/libgo/go/runtime/write_err.go
deleted file mode 100644 (file)
index 6b1467b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright 2009 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.
-
-// +build !android
-
-package runtime
-
-import "unsafe"
-
-func writeErr(b []byte) {
-       write(2, unsafe.Pointer(&b[0]), int32(len(b)))
-}
diff --git a/libgo/go/runtime/write_err_android.go b/libgo/go/runtime/write_err_android.go
deleted file mode 100644 (file)
index 4411a14..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-// Copyright 2014 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.
-
-package runtime
-
-import "unsafe"
-
-var (
-       writeHeader = []byte{6 /* ANDROID_LOG_ERROR */, 'G', 'o', 0}
-       writePath   = []byte("/dev/log/main\x00")
-       writeLogd   = []byte("/dev/socket/logdw\x00")
-
-       // guarded by printlock/printunlock.
-       writeFD  uintptr
-       writeBuf [1024]byte
-       writePos int
-)
-
-// Prior to Android-L, logging was done through writes to /dev/log files implemented
-// in kernel ring buffers. In Android-L, those /dev/log files are no longer
-// accessible and logging is done through a centralized user-mode logger, logd.
-//
-// https://android.googlesource.com/platform/system/core/+/master/liblog/logd_write.c
-type loggerType int32
-
-const (
-       unknown loggerType = iota
-       legacy
-       logd
-       // TODO(hakim): logging for emulator?
-)
-
-var logger loggerType
-
-func writeErr(b []byte) {
-       if logger == unknown {
-               // Use logd if /dev/socket/logdw is available.
-               if v := uintptr(access(&writeLogd[0], 0x02 /* W_OK */)); v == 0 {
-                       logger = logd
-                       initLogd()
-               } else {
-                       logger = legacy
-                       initLegacy()
-               }
-       }
-
-       // Write to stderr for command-line programs.
-       write(2, unsafe.Pointer(&b[0]), int32(len(b)))
-
-       // Log format: "<header>\x00<message m bytes>\x00"
-       //
-       // <header>
-       //   In legacy mode: "<priority 1 byte><tag n bytes>".
-       //   In logd mode: "<android_log_header_t 11 bytes><priority 1 byte><tag n bytes>"
-       //
-       // The entire log needs to be delivered in a single syscall (the NDK
-       // does this with writev). Each log is its own line, so we need to
-       // buffer writes until we see a newline.
-       var hlen int
-       switch logger {
-       case logd:
-               hlen = writeLogdHeader()
-       case legacy:
-               hlen = len(writeHeader)
-       }
-
-       dst := writeBuf[hlen:]
-       for _, v := range b {
-               if v == 0 { // android logging won't print a zero byte
-                       v = '0'
-               }
-               dst[writePos] = v
-               writePos++
-               if v == '\n' || writePos == len(dst)-1 {
-                       dst[writePos] = 0
-                       write(writeFD, unsafe.Pointer(&writeBuf[0]), int32(hlen+writePos))
-                       memclrBytes(dst)
-                       writePos = 0
-               }
-       }
-}
-
-func initLegacy() {
-       // In legacy mode, logs are written to /dev/log/main
-       writeFD = uintptr(open(&writePath[0], 0x1 /* O_WRONLY */, 0))
-       if writeFD == 0 {
-               // It is hard to do anything here. Write to stderr just
-               // in case user has root on device and has run
-               //      adb shell setprop log.redirect-stdio true
-               msg := []byte("runtime: cannot open /dev/log/main\x00")
-               write(2, unsafe.Pointer(&msg[0]), int32(len(msg)))
-               exit(2)
-       }
-
-       // Prepopulate the invariant header part.
-       copy(writeBuf[:len(writeHeader)], writeHeader)
-}
-
-// used in initLogdWrite but defined here to avoid heap allocation.
-var logdAddr sockaddr_un
-
-func initLogd() {
-       // In logd mode, logs are sent to the logd via a unix domain socket.
-       logdAddr.family = _AF_UNIX
-       copy(logdAddr.path[:], writeLogd)
-
-       // We are not using non-blocking I/O because writes taking this path
-       // are most likely triggered by panic, we cannot think of the advantage of
-       // non-blocking I/O for panic but see disadvantage (dropping panic message),
-       // and blocking I/O simplifies the code a lot.
-       fd := socket(_AF_UNIX, _SOCK_DGRAM|_O_CLOEXEC, 0)
-       if fd < 0 {
-               msg := []byte("runtime: cannot create a socket for logging\x00")
-               write(2, unsafe.Pointer(&msg[0]), int32(len(msg)))
-               exit(2)
-       }
-
-       errno := connect(fd, unsafe.Pointer(&logdAddr), int32(unsafe.Sizeof(logdAddr)))
-       if errno < 0 {
-               msg := []byte("runtime: cannot connect to /dev/socket/logdw\x00")
-               write(2, unsafe.Pointer(&msg[0]), int32(len(msg)))
-               // TODO(hakim): or should we just close fd and hope for better luck next time?
-               exit(2)
-       }
-       writeFD = uintptr(fd)
-
-       // Prepopulate invariant part of the header.
-       // The first 11 bytes will be populated later in writeLogdHeader.
-       copy(writeBuf[11:11+len(writeHeader)], writeHeader)
-}
-
-// writeLogdHeader populates the header and returns the length of the payload.
-func writeLogdHeader() int {
-       hdr := writeBuf[:11]
-
-       // The first 11 bytes of the header corresponds to android_log_header_t
-       // as defined in system/core/include/private/android_logger.h
-       //   hdr[0] log type id (unsigned char), defined in <log/log.h>
-       //   hdr[1:2] tid (uint16_t)
-       //   hdr[3:11] log_time defined in <log/log_read.h>
-       //      hdr[3:7] sec unsigned uint32, little endian.
-       //      hdr[7:11] nsec unsigned uint32, little endian.
-       hdr[0] = 0 // LOG_ID_MAIN
-       sec, nsec := time_now()
-       packUint32(hdr[3:7], uint32(sec))
-       packUint32(hdr[7:11], uint32(nsec))
-
-       // TODO(hakim):  hdr[1:2] = gettid?
-
-       return 11 + len(writeHeader)
-}
-
-func packUint32(b []byte, v uint32) {
-       // little-endian.
-       b[0] = byte(v)
-       b[1] = byte(v >> 8)
-       b[2] = byte(v >> 16)
-       b[3] = byte(v >> 24)
-}
index 55bf2d2f6fc77a05eb4f3f7dbecbefb121b1c80f..4b06f8a0c18f353d2ca03500f657a7475d601e57 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 package strings
 
 // indexShortStr returns the index of the first instance of c in s, or -1 if c is not present in s.
index d356f50f8775edba44b42cf2f45b1acbfc2187ae..aef2c1e355b2b6d9603855dd31251ce908361fda 100644 (file)
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !amd64
-
 package strings
 
 // TODO: implements short string optimization on non amd64 platforms
index aa656ca7cbebd273a2bb6e31ec9d56be0263a2e8..25b0063e76f49e3b0d5d1da234dac3feb654f539 100644 (file)
@@ -4,6 +4,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build !linux
+
 package syscall
 
 //sysnb        strerror_r(errnum int, buf []byte) (err Errno)
index d10476d3cb184ed6258bab00b7982a6e996219fb..7156b790da5e96ce27b6fa113bb89ed5c9a7b69c 100644 (file)
@@ -1,9 +1,12 @@
-// errstr_rtems.go -- RTEMS specific error strings.
+// errstr_linux.go -- GNU/Linux specific error strings.
 
 // Copyright 2010 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.
 
+// We use this rather than errstr.go because on GNU/Linux sterror_r
+// returns a pointer to the error message, and may not use buf at all.
+
 package syscall
 
 import "unsafe"
diff --git a/libgo/go/syscall/errstr_nor.go b/libgo/go/syscall/errstr_nor.go
deleted file mode 100644 (file)
index 796561a..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// errstr.go -- Error strings when there is no strerror_r.
-
-// Copyright 2011 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.
-
-package syscall
-
-import (
-       "sync"
-       "unsafe"
-)
-
-//sysnb        strerror(errnum int) (buf *byte)
-//strerror(errnum _C_int) *byte
-
-var errstr_lock sync.Mutex
-
-func Errstr(errno int) string {
-       errstr_lock.Lock()
-
-       bp := strerror(errno)
-       b := (*[1000]byte)(unsafe.Pointer(bp))
-       i := 0
-       for b[i] != 0 {
-               i++
-       }
-
-       // Lowercase first letter: Bad -> bad, but STREAM -> STREAM.
-       var s string
-       if i > 1 && 'A' <= b[0] && b[0] <= 'Z' && 'a' <= b[1] && b[1] <= 'z' {
-               c := b[0] + 'a' - 'A'
-               s = string(c) + string(b[1:i])
-       } else {
-               s = string(b[:i])
-       }
-
-       errstr_lock.Unlock()
-
-       return s
-}
index ab0750d0b6b28dd822f9d6a3c1b58ebfdcf1041f..af025e4c0472dc76e984d44008568143de6f23e3 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build darwin dragonfly freebsd netbsd openbsd
+// +build darwin dragonfly freebsd netbsd openbsd solaris
 
 package syscall
 
index 35bb17487b74c6f47f3cf097352c2f7af000c871..e95b4158e1a073a80370e0b0eebe56fed9f67b33 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build rtems
+
 // Stubs for fork, exec and wait.
 
 package syscall
index fe6a3e3a27bf9a847450e1907128bb1254c6a8c2..9a4b2d65825fe985c8a59b56f03f7fb86eb53461 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build darwin dragonfly freebsd netbsd openbsd solaris
+
 // BSD library calls.
 
 package syscall
index 50863fadf1809256b80a5c0d180c1ae2e530295d..9b6cdcca2c81cfbcceb3b5a2941827a91522bd9b 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build irix
+
 package syscall
 
 //sysnb raw_ptrace(request int, pid int, addr *byte, data *byte) (err Errno)
index f7f3406a6a8ac94210344f7a97bf8dada0544272..261f086f47e2f8647287fc11cbdd746f2570d069 100644 (file)
@@ -4,6 +4,7 @@
 
 // GNU/Linux library ustat call.
 // This is not supported on some kernels, such as arm64.
+// +build !arm64
 
 package syscall
 
index c05d3d2a5ec1756cc91cc963a81932d2bf5c9fff..1f437b41fb260b04795fc3016c91f28bc83819b7 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build linux solaris,386 solaris,sparc
+
 // POSIX library calls on systems which use the largefile interface.
 
 package syscall
index 7de58009393fb31f95d867cd094913f0949cbede..d106a7b6f68b2705e8544183f55139b63cfb6de5 100644 (file)
@@ -2,6 +2,10 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build !linux
+// +build !solaris !386
+// +build !solaris !sparc
+
 // POSIX library calls on systems which do not use the largefile
 // interface.
 
index e0751f5467d46abe9b7f61386975472fce3618f5..5d9d02eba34ed8455a801240ed0d5a39776cdc4f 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build darwin dragonfly freebsd openbsd netbsd solaris
+
 // General POSIX version of UtimesNano.
 
 package syscall
index 1e164ef1a5a0124673a0c5ed7c72f994ccdcac6c..165b3251b6e1ff1f482d82939f16bb805cb37d16 100644 (file)
@@ -2,6 +2,10 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// Build on all systems other than solaris/386.
+// 32-bit Solaris 2/x86 needs _nuname, handled in libcall_solaris_386.go.
+// +build !386 !solaris
+
 package syscall
 
 //sysnb        Uname(buf *Utsname) (err error)
diff --git a/libgo/go/syscall/libcall_waitpid.go b/libgo/go/syscall/libcall_waitpid.go
deleted file mode 100644 (file)
index b0e04b5..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2009 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.
-
-// For systems with the waitpid library call.
-
-package syscall
-
-//sys  waitpid(pid Pid_t, status *_C_int, options int) (wpid Pid_t, err error)
-//waitpid(pid Pid_t, status *_C_int, options _C_int) Pid_t
-
-func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {
-       var status _C_int
-       r, err := waitpid(Pid_t(pid), &status, options)
-       wpid = int(r)
-       if wstatus != nil {
-               *wstatus = WaitStatus(status)
-       }
-       return
-}
diff --git a/libgo/go/syscall/msan.go b/libgo/go/syscall/msan.go
deleted file mode 100644 (file)
index baaad6d..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2015 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.
-
-// +build msan
-
-package syscall
-
-import (
-       "runtime"
-       "unsafe"
-)
-
-const msanenabled = true
-
-func msanRead(addr unsafe.Pointer, len int) {
-       runtime.MSanRead(addr, len)
-}
-
-func msanWrite(addr unsafe.Pointer, len int) {
-       runtime.MSanWrite(addr, len)
-}
index 9d72203e8eff82b14c455a89c8c9930850488a03..480c77556540d17a1d6bfc8d1b85d69fc03c21a5 100644 (file)
@@ -4,6 +4,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build rtems
+
 package syscall
 
 func Sleep(nsec int64) (err error) {
index 533f554da05387885f969e276b568902e1408a1d..bb1694fceec37d61dcedb929240eaff4f6820916 100644 (file)
@@ -4,10 +4,12 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build !rtems
+
 package syscall
 
 func Sleep(nsec int64) (err error) {
-       tv := NsecToTimeval(nsec);
-       _, err = Select(0, nil, nil, nil, &tv);
-       return err;
+       tv := NsecToTimeval(nsec)
+       _, err = Select(0, nil, nil, nil, &tv)
+       return err
 }
index c8da1022218be01e9cbc61893fb6ccc3ff3579b9..0f0962729ed1d9d43a15701ea6a34d6092c36b31 100644 (file)
@@ -4,6 +4,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build darwin dragonfly freebsd openbsd netbsd
+
 package syscall
 
 const SizeofSockaddrInet4 = 16
index bcd1781d570e5f7f61530527491ac6f3efde3d5d..dc50fdd24fa39384cac2760bb2395e4adcf764b5 100644 (file)
@@ -4,6 +4,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build irix
+
 package syscall
 
 const SizeofSockaddrInet4 = 16
index 8a707ce49dad04ee92f20ff6565b1244bfeb3034..96afdeb85fdf68dd31638350d0eb96b9ac202fbb 100644 (file)
@@ -4,6 +4,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build linux,ppc64 linux,ppc64le
+
 package syscall
 
 // Type needed on ppc64le & ppc64
index 45b8c6ec1d0e9f5d9ed3ee6267183b8e12ad7c40..190c11cc27037e806e6ba6bee0de12fa23819bbc 100644 (file)
@@ -4,6 +4,10 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build linux
+// +build !ppc64
+// +build !ppc64le
+
 package syscall
 
 // Type needed if not on ppc64le or ppc64
index fda7dc65e413dbc58ca633b02b91e9f091e0acb5..fe835d3c43e40d1abdb74e28eb21dc760e3d34d6 100644 (file)
@@ -4,6 +4,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build !solaris
+
 package syscall
 
 //sys  bind(fd int, sa *RawSockaddrAny, len Socklen_t) (err error)
index 3c5b6b4180742b2798d73c275c40a991dc68df33..c0699c44a894308f2e309d08580eea7c2e8cc7da 100644 (file)
@@ -5,6 +5,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build solaris
+
 package syscall
 
 //sys  bind(fd int, sa *RawSockaddrAny, len Socklen_t) (err error)
index 76c05cb546a1a229d5fff24bc05e187a44dd9706..00288ee5ea7284a0e538bd210da7f89dcdaf67af 100644 (file)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build rtems
+
 // These are stubs.
 
 package syscall
index 7ae5af93bf47d9a85b38d601c6d64ef54f03c787..0da5d07bdf9db53a44b5657f86482f67b6252a60 100644 (file)
@@ -22,11 +22,12 @@ fi
 output=$1
 shift
 
-deps=`for f in $*; do cat $f; done | 
+files=$*
+deps=`for f in $files; do cat $f; done | 
   sed -n -e '/^import.*"/p; /^import[  ]*(/,/^)/p' |
   grep '"' |
   grep -v '"unsafe"' |
   sed -e 's/^.*"\([^"]*\)".*$/\1/' -e 's/$/.gox/' |
   sort -u`
 
-echo $output: $deps
+echo $output: $files $deps
diff --git a/libgo/match.sh b/libgo/match.sh
new file mode 100755 (executable)
index 0000000..e415acd
--- /dev/null
@@ -0,0 +1,197 @@
+#!/bin/sh
+
+# Copyright 2016 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.
+
+# Given a source directory, returns the non-test Go files that should
+# be built for this target.  This implements Go's build constraints in
+# a shell script.  There is similar code in testsuite/gotest.
+
+set -e
+
+unset LANG
+LC_ALL=C
+LC_CTYPE=C
+export LC_ALL LC_CTYPE
+
+srcdir=""
+goarch=""
+goos=""
+extrafiles=""
+cmdlinetag="nosuchtag"
+cgotag="cgo"
+
+for arg; do
+    case "x$arg" in
+       x--srcdir)
+           srcdir=$2
+           shift
+           shift
+           ;;
+       x--srcdir=*)
+           srcdir=`echo $1 | sed -e 's/^--srcdir=//'`
+           shift
+           ;;
+       x--goarch)
+           goarch=$2
+           shift
+           shift
+           ;;
+       x--goarch=*)
+           goarch=`echo $1 | sed -e 's/^--goarch=//'`
+           shift
+           ;;
+       x--goos)
+           goos=$2
+           shift
+           shift
+           ;;
+       x--goos=*)
+           goos=`echo $1 | sed -e 's/^--goos=//'`
+           shift
+           ;;
+       x--extrafiles)
+           extrafiles=$2
+           shift
+           shift
+           ;;
+       x--extrafiles=*)
+           extrafiles=`echo $1 | sed -e 's/^--extrafiles=//'`
+           shift
+           ;;
+       x--tag)
+           cmdlinetag=$2
+           shift
+           shift
+           ;;
+       x--tag=*)
+           cmdlinetag=`echo $1 | sed -e 's/^--tag=//'`
+           shift
+           ;;
+       x--nocgo)
+           cgotag="nosuchtag"
+           shift
+           ;;
+       *)
+           echo 1>&2 "unknown argument $arg"
+           exit 1
+           ;;
+    esac
+done
+
+cd $srcdir
+
+gofiles=
+for f in *.go; do
+    case $f in
+       *_test.go)
+           ;;
+       *.go)
+           gofiles="$gofiles $f"
+           ;;
+    esac
+done
+
+if test "$gofiles" = ""; then
+    echo 1>&2 "no non-test .go files in $srcdir"
+    exit 1
+fi
+
+matched=
+for f in $gofiles; do
+    tag1=`echo $f | sed -e 's/^.*_\([^_]*\).go$/\1/'`
+    tag2=`echo $f | sed -e 's/^.*_\([^_]*\)_[^_]*.go$/\1/'`
+    if test x$tag1 = x$f; then
+       tag1=
+    fi
+    if test x$tag2 = x$f; then
+       tag2=
+    fi
+
+    case "$tag1" in
+       "") ;;
+       $goarch) ;;
+       $goos) ;;
+       android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
+           tag1=nonmatchingtag
+           ;;
+       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
+           tag1=nonmatchingtag
+           ;;
+    esac
+
+    case "$tag2" in
+       "") ;;
+       $goarch) ;;
+       $goos) ;;
+       android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
+           tag2=nonmatchingtag
+           ;;
+       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
+           tag2=nonmatchingtag
+           ;;
+    esac
+
+    if test x$tag1 != xnonmatchingtag -a x$tag2 != xnonmatchingtag; then
+       # Pipe through cat so that `set -e` doesn't affect fgrep.
+       tags=`sed '/^package /q' < $f | grep '^// +build ' | cat`
+       omatch=true
+       first=true
+       match=false
+       for tag in $tags; do
+           case $tag in
+               "//")
+                   ;;
+               "+build")
+                   if test "$first" = "true"; then
+                       first=false
+                   elif test "$match" = "false"; then
+                       omatch=false
+                   fi
+                   match=false
+                   ;;
+               $goos | $goarch | $cgotag | $cmdlinetag)
+                   match=true
+                   ;;
+               "!"$goos | "!"$goarch | "!"$cgotag | "!"$cmdlinetag)
+                   ;;
+               *,*)
+                   cmatch=true
+                   for ctag in `echo $tag | sed -e 's/,/ /g'`; do
+                       case $ctag in
+                           $goos | $goarch | $cgotag | $cmdlinetag)
+                               ;;
+                           "!"$goos | "!"$goarch | "!"$cgotag | "!"$cmdlinetag)
+                               cmatch=false
+                               ;;
+                           "!"*)
+                               ;;
+                           *)
+                               cmatch=false
+                               ;;
+                       esac
+                   done
+                   if test "$cmatch" = "true"; then
+                       match=true
+                   fi
+                   ;;
+               "!"*)
+                   match=true
+                   ;;
+           esac
+       done
+
+       if test "$match" = "false" -a "$first" = "false"; then
+           omatch=false
+       fi
+
+       if test "$omatch" = "true"; then
+           matched="$matched $srcdir/$f"
+       fi
+    fi
+done
+
+echo $matched $extrafiles
+
+exit 0
index 0a94de0523e1bf8500db316657ecfbce24260ef8..be8fb3ef19b936f1baf07e37081bb096fd3f7f66 100644 (file)
 #include <errno.h>
 #include <fcntl.h>
 #include <math.h>
+#include <pthread.h>
 #include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
 #include <sys/types.h>
+#include <sys/resource.h>
 #include <sys/socket.h>
 #include <sys/stat.h>
 #include <sys/time.h>
+#include <sys/wait.h>
 #include <time.h>
 #include <unistd.h>
 
@@ -448,3 +453,54 @@ log1pl (long double a)
   return (long double) log1p ((double) a);
 }
 #endif
+
+#ifndef HAVE_STRERROR_R
+
+/* Some old systems do not have strerror_r.  This is a replacement.
+   It assumes that nothing else in the program calls strerror.  */
+
+static pthread_mutex_t strerror_lock = PTHREAD_MUTEX_INITIALIZER;
+
+int
+strerror_r (int errnum, char *buf, size_t buflen)
+{
+  int i;
+  char *errmsg;
+  size_t len;
+  int ret;
+
+  i = pthread_mutex_lock (&strerror_lock);
+  if (i != 0)
+    abort ();
+
+  errmsg = strerror (errnum);
+  len = strlen (errmsg);
+  if (len >= buflen)
+    ret = ERANGE;
+  else
+    {
+      memcpy (buf, errmsg, len + 1);
+      ret = 0;
+    }
+
+  i = pthread_mutex_unlock (&strerror_lock);
+  if (i != 0)
+    abort ();
+
+  return ret;
+}
+
+#endif /* ! HAVE_STRERROR_R */
+
+#ifndef HAVE_WAIT4
+
+/* Some old systems do not have wait4.  This is a replacement that
+   uses waitpid.  */
+
+pid_t
+wait4 (pid_t pid, int *status, int options, struct rusage *rusage __attribute__ ((unused)))
+{
+  return waitpid (pid, status, options);
+}
+
+#endif
index 1f19bb5809c61afe1236fca007012f53d56c1809..0957805a78d4837a6a52c7ce23c7c9deff994cab 100755 (executable)
@@ -313,19 +313,11 @@ x)
            esac
 
            if test x$tag1 != xnonmatchingtag -a x$tag2 != xnonmatchingtag; then
-               tags=`sed '/^package /q' < $f | fgrep '// +build '`
+               tags=`sed '/^package /q' < $f | grep '^// +build '`
                omatch=true
                first=true
                match=false
                for tag in $tags; do
-                   reverse=false
-                   case $tag in
-                   "!"*)
-                       reverse=true
-                       tag=`echo $tag | sed -e 's/^!//'`
-                       ;;
-                   esac
-
                    case $tag in
                    "//")
                        ;;
@@ -340,27 +332,32 @@ x)
                    $goos | $goarch | cgo)
                        match=true
                        ;;
+                   "!"$goos | "!"$goarch | "!cgo")
+                       ;;
                    *,*)
-                       match=true
+                       cmatch=true
                        for ctag in `echo $tag | sed -e 's/,/ /g'`; do
                            case $ctag in
                            $goos | $goarch | cgo)
                                ;;
+                           "!"$goos | "!"$goarch | "!cgo")
+                               cmatch=false
+                               ;;
+                           "!"*)
+                               ;;
                            *)
-                               match=false
+                               cmatch=false
                                ;;
                            esac
                        done
-                       ;;
-                   esac
-
-                   if test "$reverse" = true; then
-                       if test "$match" = true; then
-                           match=false
-                       else
+                       if test "$cmatch" = "true"; then
                            match=true
                        fi
-                   fi
+                       ;;
+                   "!"*)
+                       match=true
+                       ;;
+                   esac
                done
 
                if test "$match" = "false" -a "$first" = "false"; then