Daily bump.
[gcc.git] / libgo / Makefile.am
index b6be7e48867d8d5d9d6b132adc4d8960023b5cdc..461adcf867d61d49e2f1349327bf0c985a640bfd 100644 (file)
@@ -15,7 +15,7 @@ endif
 
 SUBDIRS = ${subdirs}
 
-gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
+gcc_version := $(shell $(GOC) -dumpversion)
 
 MAINT_CHARSET = latin1
 
@@ -26,6 +26,7 @@ STAMP = echo timestamp >
 toolexecdir = $(glibgo_toolexecdir)
 toolexeclibdir = $(glibgo_toolexeclibdir)
 toolexeclibgodir = $(nover_glibgo_toolexeclibdir)/go/$(gcc_version)/$(target_alias)
+libexecsubdir = $(libexecdir)/gcc/$(target_alias)/$(gcc_version)
 
 LIBFFI = @LIBFFI@
 LIBFFIINCS = @LIBFFIINCS@
@@ -39,14 +40,23 @@ AM_CPPFLAGS = -I $(srcdir)/runtime $(LIBFFIINCS) $(PTHREAD_CFLAGS)
 
 ACLOCAL_AMFLAGS = -I ./config -I ../config
 
-AM_CFLAGS = -fexceptions -fnon-call-exceptions -fplan9-extensions \
+AM_CFLAGS = -fexceptions -fnon-call-exceptions \
        $(SPLIT_STACK) $(WARN_CFLAGS) \
-       $(STRINGOPS_FLAG) $(OSCFLAGS) \
+       $(STRINGOPS_FLAG) $(HWCAP_CFLAGS) $(OSCFLAGS) \
        -I $(srcdir)/../libgcc -I $(srcdir)/../libbacktrace \
        -I $(MULTIBUILDTOP)../../gcc/include
 
+AM_LDFLAGS =
+
 if USING_SPLIT_STACK
-AM_LDFLAGS = -XCClinker $(SPLIT_STACK)
+AM_LDFLAGS += -XCClinker $(SPLIT_STACK)
+endif
+
+if LIBGO_IS_AIX
+# Using an import file for libgo avoid requiring to use the -brtl flag
+# when builing a go program
+AM_LDFLAGS += -Wl,-bbigtoc -Wl,-bI:$(srcdir)/libgo.imp
+EXTRA_libgo_la_DEPENDENCIES = libgo.imp
 endif
 
 # Multilib support.
@@ -99,12 +109,20 @@ AM_MAKEFLAGS = \
 # Subdir rules rely on $(FLAGS_TO_PASS)
 FLAGS_TO_PASS = $(AM_MAKEFLAGS)
 
+if GOC_IS_LLGO
+toolexeclib_LTLIBRARIES = libgo-llgo.la
+toolexeclib_LIBRARIES = libgobegin-llgo.a
+else
 toolexeclib_LTLIBRARIES = libgo.la
-toolexeclib_LIBRARIES = libgobegin.a
+toolexeclib_LIBRARIES = libgobegin.a libgolibbegin.a
+endif
+
+noinst_LIBRARIES = libgotool.a
 
 toolexeclibgo_DATA = \
        bufio.gox \
        bytes.gox \
+       context.gox \
        crypto.gox \
        encoding.gox \
        errors.gox \
@@ -196,10 +214,11 @@ toolexeclibgodebugdir = $(toolexeclibgodir)/debug
 toolexeclibgodebug_DATA = \
        debug/dwarf.gox \
        debug/elf.gox \
-       debug/goobj.gox \
        debug/gosym.gox \
        debug/macho.gox \
-       debug/pe.gox
+       debug/pe.gox \
+       debug/plan9obj.gox \
+       debug/xcoff.gox
 
 toolexeclibgoencodingdir = $(toolexeclibgodir)/encoding
 
@@ -216,23 +235,20 @@ toolexeclibgoencoding_DATA = \
        encoding/pem.gox \
        encoding/xml.gox
 
-toolexeclibgoexpdir = $(toolexeclibgodir)/exp
-
-toolexeclibgoexp_DATA = \
-       exp/proxy.gox \
-       exp/terminal.gox
-
 toolexeclibgogodir = $(toolexeclibgodir)/go
 
 toolexeclibgogo_DATA = \
        go/ast.gox \
        go/build.gox \
+       go/constant.gox \
        go/doc.gox \
        go/format.gox \
+       go/importer.gox \
        go/parser.gox \
        go/printer.gox \
        go/scanner.gox \
-       go/token.gox
+       go/token.gox \
+       go/types.gox
 
 toolexeclibgohashdir = $(toolexeclibgodir)/hash
 
@@ -280,13 +296,15 @@ toolexeclibgomathdir = $(toolexeclibgodir)/math
 
 toolexeclibgomath_DATA = \
        math/big.gox \
+       math/bits.gox \
        math/cmplx.gox \
        math/rand.gox
 
 toolexeclibgomimedir = $(toolexeclibgodir)/mime
 
 toolexeclibgomime_DATA = \
-       mime/multipart.gox
+       mime/multipart.gox \
+       mime/quotedprintable.gox
 
 toolexeclibgonetdir = $(toolexeclibgodir)/net
 
@@ -305,6 +323,7 @@ toolexeclibgonethttp_DATA = \
        net/http/cookiejar.gox \
        net/http/fcgi.gox \
        net/http/httptest.gox \
+       net/http/httptrace.gox \
        net/http/httputil.gox \
        net/http/pprof.gox
 
@@ -313,12 +332,6 @@ toolexeclibgonetrpcdir = $(toolexeclibgonetdir)/rpc
 toolexeclibgonetrpc_DATA = \
        net/rpc/jsonrpc.gox
 
-toolexeclibgoolddir = $(toolexeclibgodir)/old
-
-toolexeclibgoold_DATA = \
-       old/regexp.gox \
-       old/template.gox
-
 toolexeclibgoosdir = $(toolexeclibgodir)/os
 
 toolexeclibgoos_DATA = \
@@ -340,7 +353,8 @@ toolexeclibgoruntimedir = $(toolexeclibgodir)/runtime
 
 toolexeclibgoruntime_DATA = \
        runtime/debug.gox \
-       runtime/pprof.gox
+       runtime/pprof.gox \
+       runtime/trace.gox
 
 toolexeclibgosyncdir = $(toolexeclibgodir)/sync
 
@@ -353,6 +367,11 @@ toolexeclibgotesting_DATA = \
        testing/iotest.gox \
        testing/quick.gox
 
+toolexeclibgotestinginternaldir = $(toolexeclibgotestingdir)/internal
+
+toolexeclibgotestinginternal_DATA = \
+       testing/internal/testdeps.gox
+
 toolexeclibgotextdir = $(toolexeclibgodir)/text
 
 toolexeclibgotext_DATA = \
@@ -371,11 +390,17 @@ toolexeclibgounicode_DATA = \
        unicode/utf16.gox \
        unicode/utf8.gox
 
-if HAVE_SYS_MMAN_H
-runtime_mem_file = runtime/mem.c
-else
-runtime_mem_file = runtime/mem_posix_memalign.c
-endif
+# Some packages are only needed for tests, so unlike the other
+# internal packages nothing will explicitly depend on them.
+# Force them to be built.
+noinst_DATA = \
+       golang_org/x/net/internal/nettest.gox \
+       golang_org/x/net/nettest.gox \
+       internal/testenv.gox \
+       internal/trace.gox \
+       net/internal/socktest.gox \
+       os/signal/internal/pty.gox \
+       runtime/pprof/internal/profile.gox
 
 if LIBGO_IS_RTEMS
 rtems_task_variable_add_file = runtime/rtems-task-variable-add.c
@@ -383,12 +408,6 @@ else
 rtems_task_variable_add_file =
 endif
 
-if LIBGO_IS_LINUX
-runtime_lock_files = runtime/lock_futex.c runtime/thread-linux.c
-else
-runtime_lock_files = runtime/lock_sema.c runtime/thread-sema.c
-endif
-
 if LIBGO_IS_LINUX
 runtime_getncpu_file = runtime/getncpu-linux.c
 else
@@ -407,6 +426,9 @@ else
 if LIBGO_IS_NETBSD
 runtime_getncpu_file = runtime/getncpu-bsd.c
 else
+if LIBGO_IS_AIX
+runtime_getncpu_file = runtime/getncpu-aix.c
+else
 runtime_getncpu_file = runtime/getncpu-none.c
 endif
 endif
@@ -414,1344 +436,213 @@ endif
 endif
 endif
 endif
-
-if LIBGO_IS_LINUX
-runtime_netpoll_files = runtime/netpoll_epoll.c
-else
-if LIBGO_IS_SOLARIS
-runtime_netpoll_files = runtime/netpoll_select.c
-else
-runtime_netpoll_files = runtime/netpoll_kqueue.c
-endif
 endif
 
 runtime_files = \
-       runtime/go-append.c \
+       runtime/aeshash.c \
        runtime/go-assert.c \
-       runtime/go-assert-interface.c \
-       runtime/go-byte-array-to-string.c \
-       runtime/go-breakpoint.c \
        runtime/go-caller.c \
        runtime/go-callers.c \
-       runtime/go-can-convert-interface.c \
        runtime/go-cdiv.c \
        runtime/go-cgo.c \
-       runtime/go-check-interface.c \
        runtime/go-construct-map.c \
-       runtime/go-convert-interface.c \
-       runtime/go-copy.c \
-       runtime/go-defer.c \
-       runtime/go-deferred-recover.c \
-       runtime/go-eface-compare.c \
-       runtime/go-eface-val-compare.c \
+       runtime/go-ffi.c \
        runtime/go-fieldtrack.c \
-       runtime/go-getgoroot.c \
-       runtime/go-int-array-to-string.c \
-       runtime/go-int-to-string.c \
-       runtime/go-interface-compare.c \
-       runtime/go-interface-eface-compare.c \
-       runtime/go-interface-val-compare.c \
-       runtime/go-make-slice.c \
-       runtime/go-map-delete.c \
-       runtime/go-map-index.c \
-       runtime/go-map-len.c \
-       runtime/go-map-range.c \
        runtime/go-matherr.c \
+       runtime/go-memclr.c \
        runtime/go-memcmp.c \
+       runtime/go-memequal.c \
+       runtime/go-memmove.c \
        runtime/go-nanotime.c \
        runtime/go-now.c \
-       runtime/go-new-map.c \
-       runtime/go-new.c \
        runtime/go-nosys.c \
-       runtime/go-panic.c \
-       runtime/go-print.c \
-       runtime/go-recover.c \
        runtime/go-reflect-call.c \
-       runtime/go-reflect-map.c \
-       runtime/go-rune.c \
        runtime/go-runtime-error.c \
        runtime/go-setenv.c \
        runtime/go-signal.c \
-       runtime/go-strcmp.c \
-       runtime/go-string-to-byte-array.c \
-       runtime/go-string-to-int-array.c \
-       runtime/go-strplus.c \
        runtime/go-strslice.c \
-       runtime/go-traceback.c \
-       runtime/go-type-complex.c \
-       runtime/go-type-eface.c \
-       runtime/go-type-error.c \
-       runtime/go-type-float.c \
-       runtime/go-type-identity.c \
-       runtime/go-type-interface.c \
-       runtime/go-type-string.c \
        runtime/go-typedesc-equal.c \
-       runtime/go-typestring.c \
-       runtime/go-unsafe-new.c \
-       runtime/go-unsafe-newarray.c \
        runtime/go-unsafe-pointer.c \
+       runtime/go-unsetenv.c \
        runtime/go-unwind.c \
        runtime/go-varargs.c \
-       runtime/chan.c \
-       runtime/cpuprof.c \
        runtime/env_posix.c \
-       runtime/lfstack.c \
-       $(runtime_lock_files) \
-       runtime/mcache.c \
-       runtime/mcentral.c \
-       $(runtime_mem_file) \
-       runtime/mfinal.c \
-       runtime/mfixalloc.c \
-       runtime/mgc0.c \
-       runtime/mheap.c \
-       runtime/msize.c \
-       $(runtime_netpoll_files) \
        runtime/panic.c \
-       runtime/parfor.c \
        runtime/print.c \
        runtime/proc.c \
-       runtime/runtime.c \
-       runtime/signal_unix.c \
+       runtime/runtime_c.c \
+       runtime/stack.c \
        runtime/thread.c \
        runtime/yield.c \
        $(rtems_task_variable_add_file) \
-       iface.c \
-       malloc.c \
-       map.c \
-       mprof.c \
-       netpoll.c \
-       reflect.c \
-       runtime1.c \
-       sema.c \
-       sigqueue.c \
-       string.c \
-       time.c \
        $(runtime_getncpu_file)
 
-goc2c.$(OBJEXT): runtime/goc2c.c
-       $(CC_FOR_BUILD) -c $(CFLAGS_FOR_BUILD) $<
-
-goc2c: goc2c.$(OBJEXT)
-       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ $<
-
-malloc.c: $(srcdir)/runtime/malloc.goc goc2c
-       ./goc2c $< > $@.tmp
-       mv -f $@.tmp $@
-
-mprof.c: $(srcdir)/runtime/mprof.goc goc2c
-       ./goc2c $< > $@.tmp
-       mv -f $@.tmp $@
-
-netpoll.c: $(srcdir)/runtime/netpoll.goc goc2c
-       ./goc2c $< > $@.tmp
-       mv -f $@.tmp $@
-
-reflect.c: $(srcdir)/runtime/reflect.goc goc2c
-       ./goc2c $< > $@.tmp
-       mv -f $@.tmp $@
-
-runtime1.c: $(srcdir)/runtime/runtime1.goc goc2c
-       ./goc2c $< > $@.tmp
-       mv -f $@.tmp $@
-
-sema.c: $(srcdir)/runtime/sema.goc goc2c
-       ./goc2c $< > $@.tmp
-       mv -f $@.tmp $@
-
-sigqueue.c: $(srcdir)/runtime/sigqueue.goc goc2c
-       ./goc2c --go-pkgpath os_signal $< > $@.tmp
-       mv -f $@.tmp $@
-
-time.c: $(srcdir)/runtime/time.goc goc2c
-       ./goc2c $< > $@.tmp
-       mv -f $@.tmp $@
-
-%.c: $(srcdir)/runtime/%.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_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
-
-go_mime_files = \
-       go/mime/grammar.go \
-       go/mime/mediatype.go \
-       go/mime/type.go \
-       go/mime/type_unix.go
-
-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
-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
-else
-if LIBGO_IS_SOLARIS
-go_net_cgo_file = go/net/cgo_linux.go
-go_net_sock_file = go/net/sock_solaris.go
-go_net_sockopt_file = go/net/sockopt_bsd.go
-go_net_sockoptip_file = go/net/sockoptip_bsd.go go/net/sockoptip_posix.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
-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
-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
-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
-go_net_sendfile_file = go/net/sendfile_stub.go
-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_netbsd.go
-else
-if LIBGO_IS_DRAGONFLY
-go_net_interface_file = go/net/interface_dragonfly.go
-else
-go_net_interface_file = go/net/interface_stub.go
-endif
-endif
-endif
-
-if LIBGO_IS_LINUX
-go_net_cloexec_file = go/net/sock_cloexec.go
-else
-go_net_cloexec_file = go/net/sys_cloexec.go
-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_darwin.go
-else
-go_net_tcpsockopt_file =  go/net/tcpsockopt_unix.go
-endif
-endif
-endif
-
-go_net_files = \
-       go/net/cgo_unix.go \
-       $(go_net_cgo_file) \
-       $(go_net_cloexec_file) \
-       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_unix.go \
-       go/net/file_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/parse.go \
-       go/net/pipe.go \
-       go/net/fd_poll_runtime.go \
-       go/net/port.go \
-       go/net/port_unix.go \
-       go/net/race0.go \
-       $(go_net_sendfile_file) \
-       go/net/singleflight.go \
-       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
-
-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_SOLARIS
-go_os_stat_file = go/os/stat_solaris.go
-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
-
-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/str.go \
-       $(go_os_sys_file) \
-       go/os/types.go \
-       go/os/types_notwin.go
-
-go_path_files = \
-       go/path/match.go \
-       go/path/path.go
-
-if LIBGO_IS_X86_64
-go_reflect_makefunc_file = \
-       go/reflect/makefuncgo_amd64.go
-go_reflect_makefunc_s_file = \
-       go/reflect/makefunc_amd64.S
-else
-if LIBGO_IS_386
-go_reflect_makefunc_file = \
-       go/reflect/makefuncgo_386.go
-go_reflect_makefunc_s_file = \
-       go/reflect/makefunc_386.S
-else
-go_reflect_makefunc_file =
-go_reflect_makefunc_s_file = \
-       go/reflect/makefunc_dummy.c
-endif
-endif
-
-go_reflect_files = \
-       go/reflect/deepequal.go \
-       go/reflect/makefunc.go \
-       $(go_reflect_makefunc_file) \
-       go/reflect/type.go \
-       go/reflect/value.go
-
-go_regexp_files = \
-       go/regexp/exec.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/softfloat64.go \
-       go/runtime/type.go \
-       version.go
-
 version.go: s-version; @true
 s-version: Makefile
        rm -f version.go.tmp
-       echo "package runtime" > version.go.tmp
-       echo 'const defaultGoroot = "$(prefix)"' >> version.go.tmp
-       echo 'const theVersion = "'`$(GOC) --version | sed 1q`'"' >> version.go.tmp
-       echo 'const theGoarch = "'$(GOARCH)'"' >> version.go.tmp
-       echo 'const theGoos = "'$(GOOS)'"' >> version.go.tmp
-       $(SHELL) $(srcdir)/../move-if-change version.go.tmp version.go
+       echo "package sys" > version.go.tmp
+       echo 'func init() { DefaultGoroot = "$(prefix)" }' >> version.go.tmp
+       echo 'const TheVersion = "'`cat $(srcdir)/VERSION | sed 1q`' '`$(GOC) --version | sed 1q`'"' >> version.go.tmp
+       echo 'const Goexperiment = ``' >> version.go.tmp
+       echo 'const GOARCH = "'$(GOARCH)'"' >> version.go.tmp
+       echo 'const GOOS = "'$(GOOS)'"' >> version.go.tmp
+       echo 'const GccgoToolDir = "$(libexecsubdir)"' >> version.go.tmp
+       echo >> version.go.tmp
+       echo "type ArchFamilyType int" >> version.go.tmp
+       echo >> version.go.tmp
+       echo "const (" >> version.go.tmp
+       echo "  UNKNOWN ArchFamilyType = iota" >> version.go.tmp
+       for a in $(ALLGOARCHFAMILY); do \
+         echo "        $${a}" >> version.go.tmp; \
+       done
+       echo ")" >> version.go.tmp
+       echo >> version.go.tmp
+       for a in $(ALLGOARCH); do \
+         f=`echo $${a} | sed -e 's/\(.\).*/\1/' -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`; \
+         n="$${f}`echo $${a} | sed -e 's/.//'`"; \
+         if test "$${a}" = "$(GOARCH)"; then \
+           echo "const Goarch$${n} = 1" >> version.go.tmp; \
+         else \
+           echo "const Goarch$${n} = 0" >> version.go.tmp; \
+         fi; \
+       done
+       echo >> version.go.tmp
+       echo "const (" >> version.go.tmp
+       echo "  ArchFamily = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) family`" >> version.go.tmp
+       echo "  BigEndian = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) bigendian`" >> version.go.tmp
+       echo "  CacheLineSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) cachelinesize`" >> version.go.tmp
+       echo "  DefaultPhysPageSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) defaultphyspagesize`" >> version.go.tmp
+       echo "  HugePageSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) hugepagesize`" >> version.go.tmp
+       echo "  Int64Align = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) int64align`" >> version.go.tmp
+       echo "  MinFrameSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) minframesize`" >> version.go.tmp
+       echo "  PCQuantum = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) pcquantum`" >> version.go.tmp
+       echo ")" >> version.go.tmp
+       echo >> version.go.tmp
+       for a in $(ALLGOOS); do \
+         f=`echo $${a} | sed -e 's/\(.\).*/\1/' -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`; \
+         n="$${f}`echo $${a} | sed -e 's/.//'`"; \
+         if test "$${a}" = "$(GOOS)"; then \
+           echo "const Goos$${n} = 1" >> version.go.tmp; \
+         else \
+           echo "const Goos$${n} = 0" >> version.go.tmp; \
+         fi; \
+       done
+       echo >> version.go.tmp
+       echo "type Uintreg uintptr" >> version.go.tmp
+       $(SHELL) $(srcdir)/mvifdiff.sh version.go.tmp version.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/extfloat.go \
-       go/strconv/ftoa.go \
-       go/strconv/isprint.go \
-       go/strconv/itoa.go \
-       go/strconv/quote.go
-
-go_strings_files = \
-       go/strings/reader.go \
-       go/strings/replace.go \
-       go/strings/search.go \
-       go/strings/strings.go \
-       go/strings/strings_decl.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/race0.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/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/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/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/copy.go \
-       go/compress/flate/deflate.go \
-       go/compress/flate/fixedhuff.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_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_rand_files = \
-       go/crypto/rand/rand.go \
-       go/crypto/rand/rand_unix.go \
-       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_sha256_files = \
-       go/crypto/sha256/sha256.go \
-       go/crypto/sha256/sha256block.go
-go_crypto_sha512_files = \
-       go/crypto/sha512/sha512.go \
-       go/crypto/sha512/sha512block.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
-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/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/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/unit.go
-go_debug_elf_files = \
-       go/debug/elf/elf.go \
-       go/debug/elf/file.go
-go_debug_goobj_files = \
-       go/debug/goobj/read.go
-go_debug_gosym_files = \
-       go/debug/gosym/pclntab.go \
-       go/debug/gosym/symtab.go
-go_debug_macho_files = \
-       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_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/doc.go \
-       go/encoding/gob/encode.go \
-       go/encoding/gob/encoder.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_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_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_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_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_io_ioutil_files = \
-       go/io/ioutil/ioutil.go \
-       go/io/ioutil/tempfile.go
-
-go_math_big_files = \
-       go/math/big/arith.go \
-       go/math/big/int.go \
-       go/math/big/nat.go \
-       go/math/big/rat.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/quotedprintable.go \
-       go/mime/multipart/writer.go
-
-go_net_http_files = \
-       go/net/http/chunked.go \
-       go/net/http/client.go \
-       go/net/http/cookie.go \
-       go/net/http/filetransport.go \
-       go/net/http/fs.go \
-       go/net/http/header.go \
-       go/net/http/jar.go \
-       go/net/http/lex.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/recorder.go \
-       go/net/http/httptest/server.go
-go_net_http_pprof_files = \
-       go/net/http/pprof/pprof.go
-go_net_http_httputil_files = \
-       go/net/http/httputil/chunked.go \
-       go/net/http/httputil/dump.go \
-       go/net/http/httputil/persist.go \
-       go/net/http/httputil/reverseproxy.go
-
-
-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/lp_unix.go
-
-go_os_signal_files = \
-       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
-else
-os_user_decls_file = go/os/user/decls_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)
-
-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_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/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_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
-else
-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
+cpugen.go: s-cpu; @true
+s-cpu: Makefile
+       rm -f cpugen.go.tmp
+       echo "package cpu" > cpugen.go.tmp
+       echo "const CacheLineSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) cachelinesize`" >> cpugen.go.tmp
+       $(SHELL) $(srcdir)/mvifdiff.sh cpugen.go.tmp cpugen.go
+       $(STAMP) $@
 
-# 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
+objabi.go: s-objabi; @true
+s-objabi: Makefile
+       rm -f objabi.go.tmp
+       echo "package objabi" > objabi.go.tmp
+       echo "import \"runtime\"" >> objabi.go.tmp
+       echo 'func init() { defaultGOROOT = `$(prefix)` }' >> objabi.go.tmp
+       echo 'const defaultGO386 = `sse2`' >> objabi.go.tmp
+       echo 'const defaultGOARM = `5`' >> objabi.go.tmp
+       echo 'const defaultGOMIPS = `hardfloat`' >> objabi.go.tmp
+       echo 'const defaultGOMIPS64 = `hardfloat`' >> objabi.go.tmp
+       echo 'const defaultGOOS = runtime.GOOS' >> objabi.go.tmp
+       echo 'const defaultGOARCH = runtime.GOARCH' >> objabi.go.tmp
+       echo 'const defaultGO_EXTLINK_ENABLED = ``' >> objabi.go.tmp
+       echo 'const version = `'`cat $(srcdir)/VERSION | sed 1q`' '`$(GOC) --version | sed 1q`'`' >> objabi.go.tmp
+       echo 'const stackGuardMultiplier = 1' >> objabi.go.tmp
+       echo 'const goexperiment = ``' >> objabi.go.tmp
+       $(SHELL) $(srcdir)/mvifdiff.sh objabi.go.tmp objabi.go
+       $(STAMP) $@
 
-# 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
+gccgosizes.go: s-gccgosizes; @true
+s-gccgosizes: Makefile goarch.sh
+       rm -f gccgosizes.go.tmp
+       echo "package types" > gccgosizes.go.tmp
+       echo >> gccgosizes.go.tmp
+       echo "var gccgoArchSizes = map[string]*StdSizes{" >> gccgosizes.go.tmp
+       for a in $(ALLGOARCH); do \
+         ptrsize=`$(SHELL) $(srcdir)/goarch.sh $$a ptrsize`; \
+         maxalign=`$(SHELL) $(srcdir)/goarch.sh $$a maxalign`; \
+         echo "        \"$$a\": {$${ptrsize}, $${maxalign}}," >> gccgosizes.go.tmp; \
+       done
+       echo "}" >> gccgosizes.go.tmp
+       $(SHELL) $(srcdir)/mvifdiff.sh gccgosizes.go.tmp gccgosizes.go
+       $(STAMP) $@
 
-# GNU/Linux specific socket control messages.
-if LIBGO_IS_LINUX
-syscall_sockcmsg_file = go/syscall/sockcmsg_linux.go
-else
-syscall_sockcmsg_file =
-endif
+runtime_sysinfo.go: s-runtime_sysinfo; @true
+s-runtime_sysinfo: $(srcdir)/mkrsysinfo.sh gen-sysinfo.go
+       GOARCH=$(GOARCH) GOOS=$(GOOS) $(SHELL) $(srcdir)/mkrsysinfo.sh
+       $(SHELL) $(srcdir)/mvifdiff.sh tmp-runtime_sysinfo.go runtime_sysinfo.go
+       $(STAMP) $@
 
-# Support for netlink sockets and messages.
-if LIBGO_IS_LINUX
-syscall_netlink_file = go/syscall/netlink_linux.go
-else
-syscall_netlink_file =
-endif
+sigtab.go: s-sigtab; @true
+s-sigtab: $(srcdir)/mksigtab.sh gen-sysinfo.go
+       GOOS=$(GOOS) $(SHELL) $(srcdir)/mksigtab.sh > tmp-sigtab.go
+       $(SHELL) $(srcdir)/mvifdiff.sh tmp-sigtab.go sigtab.go
+       $(STAMP) $@
 
-# GNU/Linux specific socket filters.
-if LIBGO_IS_LINUX
-syscall_lsf_file = go/syscall/lsf_linux.go
-else
-syscall_lsf_file =
-endif
+GCCGO_INSTALL_NAME := $(shell echo gccgo|sed '$(program_transform_name)')
+GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
+GXX_INSTALL_NAME := $(shell echo g++|sed '$(program_transform_name)')
+
+zdefaultcc.go: s-zdefaultcc; @true
+s-zdefaultcc: Makefile
+       echo 'package cfg' > zdefaultcc.go.tmp
+       echo >> zdefaultcc.go.tmp
+       echo 'func DefaultGCCGO(goos, goarch string) string { return "$(bindir)/$(GCCGO_INSTALL_NAME)" }' >> zdefaultcc.go.tmp
+       echo 'func DefaultCC(goos, goarch string) string { return "$(GCC_INSTALL_NAME)" }' >> zdefaultcc.go.tmp
+       echo 'func DefaultCXX(goos, goarch string) string { return "$(GXX_INSTALL_NAME)" }' >> zdefaultcc.go.tmp
+       echo 'const DefaultPkgConfig = "pkg-config"' >> zdefaultcc.go.tmp
+       echo 'var OSArchSupportsCgo = map[string]bool{}' >> zdefaultcc.go.tmp
+       $(SHELL) $(srcdir)/../move-if-change zdefaultcc.go.tmp zdefaultcc.go
+       $(STAMP) $@ 
+
+# Post-process runtime.inc.raw (raw output of -fgo-c-header option when
+# compiling runtime) to prune out certain types that should not be
+# exported back to C. See comments in mkruntimeinc.sh for more details.
+runtime.inc: s-runtime-inc; @true
+s-runtime-inc: runtime.lo Makefile
+       $(SHELL) $(srcdir)/mkruntimeinc.sh
+       $(SHELL) $(srcdir)/mvifdiff.sh tmp-runtime.inc runtime.inc
+       $(STAMP) $@
 
-# 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
+noinst_DATA += zdefaultcc.go
+
+# Generate the list of go std packages that were included in libgo
+zstdpkglist.go: s-zstdpkglist; @true
+s-zstdpkglist: Makefile
+       rm -f zstdpkglist.go.tmp
+       echo 'package goroot' > zstdpkglist.go.tmp
+       echo "" >> zstdpkglist.go.tmp
+       echo 'var stdpkg = map[string]bool{' >> zstdpkglist.go.tmp
+       echo $(libgo_go_objs) 'unsafe.lo' 'runtime/cgo.lo' | sed 's|[a-z0-9_/]*_c\.lo||g' | sed 's|\([a-z0-9_/]*\)\.lo|"\1": true,|g' >> zstdpkglist.go.tmp
+       echo '}' >> zstdpkglist.go.tmp
+       $(SHELL) $(srcdir)/mvifdiff.sh zstdpkglist.go.tmp zstdpkglist.go
+       $(STAMP) $@
 
-# Test files.
 if LIBGO_IS_LINUX
-syscall_creds_test_file = go/syscall/creds_test.go
+syscall_epoll_file = epoll.go
 else
-syscall_creds_test_file =
+syscall_epoll_file =
 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/race0.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_socket_file) \
-       $(syscall_socket_os_file) \
-       $(syscall_uname_file) \
-       $(syscall_netlink_file) \
-       $(syscall_lsf_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) \
-       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) \
-       go/syscall/passfd_test.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
-       $(SHELL) $(srcdir)/../move-if-change libcalls.go.tmp libcalls.go
+       $(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)/../move-if-change libcalls-list.tmp libcalls-list
+       $(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) $@
 
 syscall_arch.go: s-syscall_arch; @true
@@ -1760,13 +651,30 @@ s-syscall_arch: Makefile
        echo "package syscall" > syscall_arch.go.tmp
        echo 'const ARCH = "'$(GOARCH)'"' >> syscall_arch.go.tmp
        echo 'const OS = "'$(GOOS)'"' >> syscall_arch.go.tmp
-       $(SHELL) $(srcdir)/../move-if-change syscall_arch.go.tmp syscall_arch.go
+       $(SHELL) $(srcdir)/mvifdiff.sh syscall_arch.go.tmp syscall_arch.go
+       $(STAMP) $@
+
+SYSINFO_FLAGS = \
+       $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(OSCFLAGS) -O
+
+gen-sysinfo.go: s-gen-sysinfo; @true
+s-gen-sysinfo: $(srcdir)/sysinfo.c config.h
+       $(CC) $(SYSINFO_FLAGS) -fdump-go-spec=tmp-gen-sysinfo.go -std=gnu99 -S -o sysinfo.s $(srcdir)/sysinfo.c
+       rm -f sysinfo.s
+       $(SHELL) $(srcdir)/mvifdiff.sh tmp-gen-sysinfo.go gen-sysinfo.go
+       $(STAMP) $@
+
+errno.i: s-errno; @true
+s-errno:
+       echo '#include <errno.h>' | $(CC) $(SYSINFO_FLAGS) -x c - -E -dM > tmp-errno.i
+       $(SHELL) $(srcdir)/mvifdiff.sh tmp-errno.i errno.i
        $(STAMP) $@
 
 sysinfo.go: s-sysinfo; @true
-s-sysinfo: $(srcdir)/mksysinfo.sh config.h
-       CC="$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(OSCFLAGS)" $(SHELL) $(srcdir)/mksysinfo.sh
-       $(SHELL) $(srcdir)/../move-if-change tmp-sysinfo.go sysinfo.go
+s-sysinfo: $(srcdir)/mksysinfo.sh gen-sysinfo.go errno.i
+       GOARCH=$(GOARCH) GOOS=$(GOOS) $(SHELL) $(srcdir)/mksysinfo.sh
+       $(SHELL) $(srcdir)/mvifdiff.sh tmp-sysinfo.go sysinfo.go
        $(STAMP) $@
 
 # The epoll struct has an embedded union and is packed on x86_64,
@@ -1794,178 +702,88 @@ s-epoll: Makefile
           exit 1; ;; \
        esac
        echo '}' >> epoll.go.tmp
-       $(SHELL) $(srcdir)/../move-if-change epoll.go.tmp epoll.go
+       $(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 =
+syscall_lib_clone_lo = syscall/clone_linux.lo
 else
-os_lib_inotify_lo =
+syscall_lib_clone_lo =
 endif
 
+PACKAGES = $(shell cat $(srcdir)/libgo-packages.txt)
+
 libgo_go_objs = \
-       bufio.lo \
-       bytes.lo \
+       $(addsuffix .lo,$(PACKAGES)) \
        bytes/index.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.lo \
-       regexp.lo \
-       runtime-go.lo \
-       sort.lo \
-       strconv.lo \
-       strings.lo \
+       internal/bytealg/bytealg.lo \
+       reflect/makefunc_ffi_c.lo \
        strings/index.lo \
-       sync.lo \
-       syscall.lo \
+       $(syscall_lib_clone_lo) \
        syscall/errno.lo \
        syscall/signame.lo \
        syscall/wait.lo \
-       testing.lo \
-       time-go.lo \
-       unicode.lo \
-       archive/tar.lo \
-       archive/zip.lo \
-       compress/bzip2.lo \
-       compress/flate.lo \
-       compress/gzip.lo \
-       compress/lzw.lo \
-       compress/zlib.lo \
-       container/heap.lo \
-       container/list.lo \
-       container/ring.lo \
-       crypto/aes.lo \
-       crypto/cipher.lo \
-       crypto/des.lo \
-       crypto/dsa.lo \
-       crypto/ecdsa.lo \
-       crypto/elliptic.lo \
-       crypto/hmac.lo \
-       crypto/md5.lo \
-       crypto/rand.lo \
-       crypto/rc4.lo \
-       crypto/rsa.lo \
-       crypto/sha1.lo \
-       crypto/sha256.lo \
-       crypto/sha512.lo \
-       crypto/subtle.lo \
-       crypto/tls.lo \
-       crypto/x509.lo \
-       crypto/x509/pkix.lo \
-       database/sql.lo \
-       database/sql/driver.lo \
-       debug/dwarf.lo \
-       debug/elf.lo \
-       debug/goobj.lo \
-       debug/gosym.lo \
-       debug/macho.lo \
-       debug/pe.lo \
-       encoding/ascii85.lo \
-       encoding/asn1.lo \
-       encoding/base32.lo \
-       encoding/base64.lo \
-       encoding/binary.lo \
-       encoding/csv.lo \
-       encoding/gob.lo \
-       encoding/hex.lo \
-       encoding/json.lo \
-       encoding/pem.lo \
-       encoding/xml.lo \
-       exp/proxy.lo \
-       exp/terminal.lo \
-       html/template.lo \
-       go/ast.lo \
-       go/build.lo \
-       go/doc.lo \
-       go/format.lo \
-       go/parser.lo \
-       go/printer.lo \
-       go/scanner.lo \
-       go/token.lo \
-       hash/adler32.lo \
-       hash/crc32.lo \
-       hash/crc64.lo \
-       hash/fnv.lo \
-       net/http/cgi.lo \
-       net/http/cookiejar.lo \
-       net/http/fcgi.lo \
-       net/http/httptest.lo \
-       net/http/httputil.lo \
-       net/http/pprof.lo \
-       image/color.lo \
-       image/color/palette.lo \
-       image/draw.lo \
-       image/gif.lo \
-       image/jpeg.lo \
-       image/png.lo \
-       index/suffixarray.lo \
-       io/ioutil.lo \
-       log/syslog.lo \
+       $(golang_org_x_net_lif_lo) \
+       $(golang_org_x_net_route_lo) \
        log/syslog/syslog_c.lo \
-       math/big.lo \
-       math/cmplx.lo \
-       math/rand.lo \
-       mime/multipart.lo \
-       net/http.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 \
        $(os_lib_inotify_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 \
+       runtime/internal/atomic_c.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
+       internal/cpu/cpu_gccgo.lo
 
-libgo_la_SOURCES = $(runtime_files)
-
-libgo_la_LDFLAGS = \
+libgo_ldflags = \
        -version-info $(libtool_VERSION) $(PTHREAD_CFLAGS) $(AM_LDFLAGS)
 
-libgo_la_LIBADD = \
+libgo_libadd = \
        $(libgo_go_objs) ../libbacktrace/libbacktrace.la \
        $(LIBATOMIC) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
 
+libgo_la_SOURCES = $(runtime_files)
+libgo_la_LDFLAGS = $(libgo_ldflags)
+libgo_la_LIBADD = $(libgo_libadd)
+
+libgo_llgo_la_SOURCES = $(runtime_files)
+libgo_llgo_la_LDFLAGS = $(libgo_ldflags)
+libgo_llgo_la_LIBADD = $(libgo_libadd)
+
 libgobegin_a_SOURCES = \
        runtime/go-main.c
 
+libgobegin_llgo_a_SOURCES = \
+       runtime/go-main.c
+
+# Use -fPIC for libgobegin so that it can be put in a PIE.
+libgobegin_a_CFLAGS = $(AM_CFLAGS) -fPIC
+libgobegin_llgo_a_CFLAGS = $(AM_CFLAGS) -fPIC
+
+libgolibbegin_a_SOURCES = \
+       runtime/go-libmain.c
+
+libgolibbegin_a_CFLAGS = $(AM_CFLAGS) -fPIC
+
+GOTOOL_PACKAGES = $(shell cat $(srcdir)/gotool-packages.txt)
+
+libgotool_a_SOURCES =
+libgotool_a_DEPENDENCIES = $(addsuffix .lo,$(GOTOOL_PACKAGES))
+libgotool_a_LIBADD = $(addsuffix .o,$(GOTOOL_PACKAGES))
+
+define STATIC_template
+$(subst -,_,$(subst .,_,$(subst /,_,$(1))))_GOCFLAGS = -static
+endef
+
+$(foreach package,$(GOTOOL_PACKAGES),$(eval $(call STATIC_template,$(package).lo)))
+
+# Make sure runtime.inc is built before compiling any .c file.
+$(libgo_la_OBJECTS): runtime.inc
+$(libgo_llgo_la_OBJECTS): runtime.inc
+$(libgobegin_a_OBJECTS): runtime.inc
+$(libgobegin_llgo_a_OBJECTS): runtime.inc
+$(libgolibbegin_a_OBJECTS): runtime.inc
+
 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
 
 GOCFLAGS = $(CFLAGS)
-AM_GOCFLAGS = $(STRINGOPS_FLAG)
+AM_GOCFLAGS = $(STRINGOPS_FLAG) $(GO_SPLIT_STACK)
 GOCOMPILE = $(GOC) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_GOCFLAGS) $(GOCFLAGS)
 
 LTGOCOMPILE = $(LIBTOOL) --tag GO --mode=compile $(GOC) $(INCLUDES) \
@@ -1977,37 +795,59 @@ 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$$//'`; \
+       files=`$(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/$$dir --extrafiles="$(extra_go_files_$(subst /,_,$(subst .lo.dep,,$@)))" $(matchargs_$(subst /,_,$(subst .lo.dep,,$@)))`; \
+       $(SHELL) $(srcdir)/godeps.sh `echo $@ | sed -e 's/.dep$$//'` $$files > $@.tmp; \
+       if ! cmp $@.tmp $@ >/dev/null 2>/dev/null; then \
+         rm -f `echo $@ | sed -e 's/\.dep$$//'`; \
+       fi; \
        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'`; \
-       $(LTGOCOMPILE) -I . -c -fgo-pkgpath=`echo $@ | sed -e 's/.lo$$//' -e 's/-go$$//'` -o $@ $$files
+       files=`echo $^ | sed -e 's/[^ ]*\.gox//g' -e 's/[^ ]*\.dep//'`; \
+       $(LTGOCOMPILE) -I . -c -fgo-pkgpath=`echo $@ | sed -e 's/.lo$$//' -e 's|golang_org|vendor/golang_org|'` $($(subst -,_,$(subst .,_,$(subst /,_,$@)))_GOCFLAGS) -o $@ $$files
+
+# How to build a .gox file from a .lo file.
+# Matching .o file can either be in the same directory as the .lo (non-PIC
+# object) or in the .libs directory (PIC object).
+BUILDGOX = \
+       f="$(basename $<).o"; \
+       if test ! -f $$f; then \
+         f="$(basename $(<D)/.libs/$(<F)).o"; \
+       fi; \
+       $(OBJCOPY) -j .go_export $$f $@.tmp; \
+       $(SHELL) $(srcdir)/mvifdiff.sh $@.tmp `echo $@ | sed -e 's/s-gox/gox/'`
 
 GOTESTFLAGS =
+GOBENCH = 
 
 # Check a package.
 CHECK = \
        GC="$(GOC) $(GOCFLAGS) $($(subst /,_,$@)_GOCFLAGS) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs"; \
        export GC; \
-       GOLIBS="$(MATH_LIBS) $(NET_LIBS) $(LIBS)"; \
+       GOLIBS="$(extra_check_libs_$(subst /,_,$(@D))) $(MATH_LIBS) $(NET_LIBS) $(LIBS)"; \
        export GOLIBS; \
        RUNTESTFLAGS="$(RUNTESTFLAGS)"; \
        export RUNTESTFLAGS; \
        MAKE="$(MAKE)"; \
        export MAKE; \
-       libgccdir=`${GOC} -print-libgcc-file-name | sed -e 's|/[^/]*$$||'`; \
+       NM="$(NM)"; \
+       export NM; \
+       libgccdir=`${GOC} ${GOCFLAGS} -print-libgcc-file-name | sed -e 's|/[^/]*$$||'`; \
        LD_LIBRARY_PATH="`${PWD_COMMAND}`/.libs:$${libgccdir}:${LD_LIBRARY_PATH}"; \
        LD_LIBRARY_PATH=`echo $${LD_LIBRARY_PATH} | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; \
        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 --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" --testname="$(@D)" --goarch="$(GOARCH)" $(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="$$files" --bench="$(GOBENCH)" $(GOTESTFLAGS); \
        else \
-         if $(SHELL) $(srcdir)/testsuite/gotest --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" --goarch="$(GOARCH)" $(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; \
@@ -2020,7 +860,7 @@ CHECK = \
        fi
 
 # Build all packages before checking any.
-CHECK_DEPS = libgo.la libgobegin.a \
+CHECK_DEPS = \
        $(toolexeclibgo_DATA) \
        $(toolexeclibgoarchive_DATA) \
        $(toolexeclibgocompress_DATA) \
@@ -2028,7 +868,6 @@ CHECK_DEPS = libgo.la libgobegin.a \
        $(toolexeclibgocrypto_DATA) \
        $(toolexeclibgodebug_DATA) \
        $(toolexeclibgoencoding_DATA) \
-       $(toolexeclibgoexp_DATA) \
        $(toolexeclibgogo_DATA) \
        $(toolexeclibgohash_DATA) \
        $(toolexeclibgoimage_DATA) \
@@ -2047,1683 +886,218 @@ CHECK_DEPS = libgo.la libgobegin.a \
        $(toolexeclibgotesting_DATA) \
        $(toolexeclibgotext_DATA) \
        $(toolexeclibgotexttemplate_DATA) \
-       $(toolexeclibgounicode_DATA)
-
-@go_include@ bufio.lo.dep
-bufio.lo.dep: $(go_bufio_files)
-       $(BUILDDEPS)
-bufio.lo: $(go_bufio_files)
-       $(BUILDPACKAGE)
-bufio/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: bufio/check
-
-@go_include@ bytes.lo.dep
-bytes.lo.dep: $(go_bytes_files)
-       $(BUILDDEPS)
-bytes.lo: $(go_bytes_files)
-       $(BUILDPACKAGE)
-bytes/index.lo: $(go_bytes_c_files)
+       $(toolexeclibgounicode_DATA) \
+       $(noinst_DATA) \
+       $(noinst_LIBRARIES)
+
+if GOC_IS_LLGO
+CHECK_DEPS += libgo-llgo.la libgobegin-llgo.a
+else
+CHECK_DEPS += libgo.la libgobegin.a
+endif
+
+# PACKAGE_template defines the rules for each package.
+# For example, for the package bufio, it produces:
+#
+# @go_include@ bufio.lo.dep
+# bufio.lo.dep: $(srcdir)/go/bufio/*.go
+#      $(BUILDDEPS)
+# bufio.lo:
+#      $(BUILDPACKAGE)
+# bufio/check: $(CHECK_DEPS)
+#      @$(CHECK)
+# .PHONY: bufio/check
+#
+# This is invoked with $(1) set to a package, which is a directory name,
+# such as "bufio" or "archive/tar".
+define PACKAGE_template
+@go_include@ $(1).lo.dep
+$(1).lo.dep: $(srcdir)/go/$(1)/*.go
+       $$(BUILDDEPS)
+$(1).lo:
+       $$(BUILDPACKAGE)
+$(1)/check: $$(CHECK_DEPS)
+       @$$(CHECK)
+.PHONY: $(1)/check
+$(1).gox: $(1).s-gox; @true
+$(1).s-gox: $(1).lo
+       $$(BUILDGOX)
+       $$(STAMP) $$@
+endef
+
+# This line expands PACKAGE_template once for each package name listed
+# in $(PACKAGES).
+$(foreach package,$(PACKAGES),$(eval $(call PACKAGE_template,$(package))))
+$(foreach package,$(GOTOOL_PACKAGES),$(eval $(call PACKAGE_template,$(package))))
+
+# Pass -ffp-contract=off, or 386-specific options, when building the
+# math package.  MATH_FLAG is defined in configure.ac.
+math_lo_GOCFLAGS = $(MATH_FLAG)
+math_check_GOCFLAGS = $(MATH_FLAG)
+
+# Add the generated file runtime_sysinfo.go to the runtime package.
+extra_go_files_runtime = runtime_sysinfo.go sigtab.go
+runtime.lo.dep: $(extra_go_files_runtime)
+
+# Add generated files to the syscall package.
+extra_go_files_syscall = \
+       libcalls.go \
+       sysinfo.go \
+       syscall_arch.go \
+       $(syscall_epoll_file)
+syscall.lo.dep: $(extra_go_files_syscall)
+
+# Pass -fgo-compiling-runtime when compiling the runtime package.
+runtime_lo_GOCFLAGS = -fgo-c-header=runtime.inc.raw -fgo-compiling-runtime
+runtime_check_GOCFLAGS = -fgo-compiling-runtime
+runtime_internal_atomic_lo_GOCFLAGS = -fgo-compiling-runtime
+runtime_internal_atomic_lo_check_GOCFLAGS = -fgo-compiling-runtime
+runtime_internal_sys_lo_GOCFLAGS = -fgo-compiling-runtime
+runtime_internal_sys_lo_check_GOCFLAGS = -fgo-compiling-runtime
+
+# If libffi is supported (the normal case) use the ffi build tag for
+# the runtime package.
+if USE_LIBFFI
+matchargs_runtime = --tag=libffi
+else
+matchargs_runtime =
+endif
+
+# 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.
+runtime_pprof_check_GOCFLAGS = -static-libgo -fno-inline
+
+extra_go_files_runtime_internal_sys = version.go
+runtime/internal/sys.lo.dep: $(extra_go_files_runtime_internal_sys)
+
+extra_go_files_internal_cpu = cpugen.go
+internal/cpu.lo.dep: $(extra_go_files_internal_cpu)
+
+extra_go_files_internal_goroot = zstdpkglist.go
+internal/goroot.lo.dep: $(extra_go_files_internal_goroot)
+
+extra_go_files_go_types = gccgosizes.go
+go/types.lo.dep: $(extra_go_files_go_types)
+
+extra_go_files_cmd_internal_objabi = objabi.go
+cmd/internal/objabi.lo.dep: $(extra_go_files_cmd_internal_objabi)
+
+extra_go_files_cmd_go_internal_cfg = zdefaultcc.go
+cmd/go/internal/cfg.lo.dep: $(extra_go_files_cmd_go_internal_cfg)
+
+extra_check_libs_cmd_go_internal_cache = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_generate = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_get = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_load = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_imports = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_modconv = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_modfetch = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_modfetch_codehost = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_modfile = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_modload = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_module = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_mvs = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_search = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_web2 = $(abs_builddir)/libgotool.a
+extra_check_libs_cmd_go_internal_work = $(abs_builddir)/libgotool.a
+
+extra_check_libs_cmd_vet_internal_cfg = $(abs_builddir)/libgotool.a
+
+# FIXME: The following C files may as well move to the runtime
+# directory and be treated like other C files.
+
+# Use C code to speed up {bytes,strings}.IndexByte and friends.
+bytes/index.lo: go/bytes/indexbyte.c runtime.inc
        @$(MKDIR_P) bytes
-       $(LTCOMPILE) -c -o bytes/index.lo $(srcdir)/go/bytes/indexbyte.c
-bytes/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: bytes/check
-
-@go_include@ crypto.lo.dep
-crypto.lo.dep: $(go_crypto_files)
-       $(BUILDDEPS)
-crypto.lo: $(go_crypto_files)
-       $(BUILDPACKAGE)
-crypto/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: crypto/check
-
-@go_include@ encoding.lo.dep
-encoding.lo.dep: $(go_encoding_files)
-       $(BUILDDEPS)
-encoding.lo: $(go_encoding_files)
-       $(BUILDPACKAGE)
-encoding/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: encoding/check
-
-@go_include@ errors.lo.dep
-errors.lo.dep: $(go_errors_files)
-       $(BUILDDEPS)
-errors.lo: $(go_errors_files)
-       $(BUILDPACKAGE)
-errors/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: errors/check
-
-@go_include@ expvar.lo.dep
-expvar.lo.dep: $(go_expvar_files)
-       $(BUILDDEPS)
-expvar.lo: $(go_expvar_files)
-       $(BUILDPACKAGE)
-expvar/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: expvar/check
-
-@go_include@ flag.lo.dep
-flag.lo.dep: $(go_flag_files)
-       $(BUILDDEPS)
-flag.lo: $(go_flag_files)
-       $(BUILDPACKAGE)
-flag/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: flag/check
-
-@go_include@ fmt.lo.dep
-fmt.lo.dep: $(go_fmt_files)
-       $(BUILDDEPS)
-fmt.lo: $(go_fmt_files)
-       $(BUILDPACKAGE)
-fmt/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: fmt/check
-
-@go_include@ hash.lo.dep
-hash.lo.dep: $(go_hash_files)
-       $(BUILDDEPS)
-hash.lo: $(go_hash_files)
-       $(BUILDPACKAGE)
-hash/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: hash/check
-
-@go_include@ html.lo.dep
-html.lo.dep: $(go_html_files)
-       $(BUILDDEPS)
-html.lo: $(go_html_files)
-       $(BUILDPACKAGE)
-html/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: html/check
-
-@go_include@ image.lo.dep
-image.lo.dep: $(go_image_files)
-       $(BUILDDEPS)
-image.lo: $(go_image_files)
-       $(BUILDPACKAGE)
-image/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: image/check
-
-@go_include@ io.lo.dep
-io.lo.dep: $(go_io_files)
-       $(BUILDDEPS)
-io.lo: $(go_io_files)
-       $(BUILDPACKAGE)
-io/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: io/check
-
-@go_include@ log.lo.dep
-log.lo.dep: $(go_log_files)
-       $(BUILDDEPS)
-log.lo: $(go_log_files)
-       $(BUILDPACKAGE)
-log/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: log/check
-
-@go_include@ math.lo.dep
-math.lo.dep: $(go_math_files)
-       $(BUILDDEPS)
-math.lo: $(go_math_files)
-       $(MKDIR_P) $(@D)
-       files=`echo $^ | sed -e 's/[^ ]*\.gox//g'`; \
-       $(LTGOCOMPILE) $(MATH_FLAG) -I . -c -fgo-pkgpath=math -o $@ $$files
-math/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: math/check
-
-@go_include@ mime.lo.dep
-mime.lo.dep: $(go_mime_files)
-       $(BUILDDEPS)
-mime.lo: $(go_mime_files)
-       $(BUILDPACKAGE)
-mime/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: mime/check
-
-@go_include@ net.lo.dep
-net.lo.dep: $(go_net_files)
-       $(BUILDDEPS)
-net.lo: $(go_net_files)
-       $(BUILDPACKAGE)
-net/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: net/check
-
-@go_include@ os.lo.dep
-os.lo.dep: $(go_os_files)
-       $(BUILDDEPS)
-os.lo: $(go_os_files)
-       $(BUILDPACKAGE)
-os/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: os/check
-
-@go_include@ path.lo.dep
-path.lo.dep: $(go_path_files)
-       $(BUILDDEPS)
-path.lo: $(go_path_files)
-       $(BUILDPACKAGE)
-path/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: path/check
-
-@go_include@ reflect-go.lo.dep
-reflect-go.lo.dep: $(go_reflect_files)
-       $(BUILDDEPS)
-reflect-go.lo: $(go_reflect_files)
-       $(BUILDPACKAGE)
-reflect/check: $(CHECK_DEPS)
-       @$(CHECK)
-reflect/makefunc.lo: $(go_reflect_makefunc_s_file)
-       @$(MKDIR_P) reflect
-       $(LTCOMPILE) -c -o $@ $<
-.PHONY: reflect/check
-
-@go_include@ regexp.lo.dep
-regexp.lo.dep: $(go_regexp_files)
-       $(BUILDDEPS)
-regexp.lo: $(go_regexp_files)
-       $(BUILDPACKAGE)
-regexp/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: regexp/check
-
-@go_include@ runtime-go.lo.dep
-runtime-go.lo.dep: $(go_runtime_files)
-       $(BUILDDEPS)
-runtime-go.lo: $(go_runtime_files)
-       $(BUILDPACKAGE)
-runtime/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: runtime/check
-
-@go_include@ sort.lo.dep
-sort.lo.dep: $(go_sort_files)
-       $(BUILDDEPS)
-sort.lo: $(go_sort_files)
-       $(BUILDPACKAGE)
-sort/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: sort/check
-
-@go_include@ strconv.lo.dep
-strconv.lo.dep: $(go_strconv_files)
-       $(BUILDDEPS)
-strconv.lo: $(go_strconv_files)
-       $(BUILDPACKAGE)
-strconv/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: strconv/check
-
-@go_include@ strings.lo.dep
-strings.lo.dep: $(go_strings_files)
-       $(BUILDDEPS)
-strings.lo: $(go_strings_files)
-       $(BUILDPACKAGE)
-strings/index.lo: $(go_strings_c_files)
+       $(LTCOMPILE) -c -o $@ $(srcdir)/go/bytes/indexbyte.c
+strings/index.lo: go/strings/indexbyte.c runtime.inc
        @$(MKDIR_P) strings
-       $(LTCOMPILE) -c -o strings/index.lo $(srcdir)/go/strings/indexbyte.c
-strings/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: strings/check
-
-@go_include@ sync.lo.dep
-sync.lo.dep: $(go_sync_files)
-       $(BUILDDEPS)
-sync.lo: $(go_sync_files)
-       $(BUILDPACKAGE)
-sync/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: sync/check
-
-@go_include@ testing.lo.dep
-testing.lo.dep: $(go_testing_files)
-       $(BUILDDEPS)
-testing.lo: $(go_testing_files)
-       $(BUILDPACKAGE)
-testing/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: testing/check
-
-@go_include@ time-go.lo.dep
-time-go.lo.dep: $(go_time_files)
-       $(BUILDDEPS)
-time-go.lo: $(go_time_files)
-       $(BUILDPACKAGE)
-time/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: time/check
-
-@go_include@ unicode.lo.dep
-unicode.lo.dep: $(go_unicode_files)
-       $(BUILDDEPS)
-unicode.lo: $(go_unicode_files)
-       $(BUILDPACKAGE)
-unicode/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: unicode/check
-
-@go_include@ archive/tar.lo.dep
-archive/tar.lo.dep: $(go_archive_tar_files)
-       $(BUILDDEPS)
-archive/tar.lo: $(go_archive_tar_files)
-       $(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)
-       $(BUILDDEPS)
-archive/zip.lo: $(go_archive_zip_files)
-       $(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)
-       $(BUILDDEPS)
-compress/bzip2.lo: $(go_compress_bzip2_files)
-       $(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)
-       $(BUILDDEPS)
-compress/flate.lo: $(go_compress_flate_files)
-       $(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)
-       $(BUILDDEPS)
-compress/gzip.lo: $(go_compress_gzip_files)
-       $(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)
-       $(BUILDDEPS)
-compress/lzw.lo: $(go_compress_lzw_files)
-       $(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)
-       $(BUILDDEPS)
-compress/zlib.lo: $(go_compress_zlib_files)
-       $(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)
-       $(BUILDDEPS)
-container/heap.lo: $(go_container_heap_files)
-       $(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)
-       $(BUILDDEPS)
-container/list.lo: $(go_container_list_files)
-       $(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)
-       $(BUILDDEPS)
-container/ring.lo: $(go_container_ring_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/aes.lo: $(go_crypto_aes_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/cipher.lo: $(go_crypto_cipher_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/des.lo: $(go_crypto_des_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/dsa.lo: $(go_crypto_dsa_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/ecdsa.lo: $(go_crypto_ecdsa_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/elliptic.lo: $(go_crypto_elliptic_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/hmac.lo: $(go_crypto_hmac_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/md5.lo: $(go_crypto_md5_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/rand.lo: $(go_crypto_rand_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/rc4.lo: $(go_crypto_rc4_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/rsa.lo: $(go_crypto_rsa_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/sha1.lo: $(go_crypto_sha1_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/sha256.lo: $(go_crypto_sha256_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/sha512.lo: $(go_crypto_sha512_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/subtle.lo: $(go_crypto_subtle_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/tls.lo: $(go_crypto_tls_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/x509.lo: $(go_crypto_x509_files)
-       $(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)
-       $(BUILDDEPS)
-crypto/x509/pkix.lo: $(go_crypto_x509_pkix_files)
-       $(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)
-       $(BUILDDEPS)
-database/sql.lo: $(go_database_sql_files)
-       $(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)
-       $(BUILDDEPS)
-database/sql/driver.lo: $(go_database_sql_driver_files)
-       $(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)
-       $(BUILDDEPS)
-debug/dwarf.lo: $(go_debug_dwarf_files)
-       $(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)
-       $(BUILDDEPS)
-debug/elf.lo: $(go_debug_elf_files)
-       $(BUILDPACKAGE)
-debug/elf/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: debug/elf/check
-
-@go_include@ debug/goobj.lo.dep
-debug/goobj.lo.dep: $(go_debug_goobj_files)
-       $(BUILDDEPS)
-debug/goobj.lo: $(go_debug_goobj_files)
-       $(BUILDPACKAGE)
-debug/goobj/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: debug/goobj/check
-
-@go_include@ debug/gosym.lo.dep
-debug/gosym.lo.dep: $(go_debug_gosym_files)
-       $(BUILDDEPS)
-debug/gosym.lo: $(go_debug_gosym_files)
-       $(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)
-       $(BUILDDEPS)
-debug/macho.lo: $(go_debug_macho_files)
-       $(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)
-       $(BUILDDEPS)
-debug/pe.lo: $(go_debug_pe_files)
-       $(BUILDPACKAGE)
-debug/pe/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: debug/pe/check
-
-@go_include@ encoding/asn1.lo.dep
-encoding/asn1.lo.dep: $(go_encoding_asn1_files)
-       $(BUILDDEPS)
-encoding/asn1.lo: $(go_encoding_asn1_files)
-       $(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)
-       $(BUILDDEPS)
-encoding/ascii85.lo: $(go_encoding_ascii85_files)
-       $(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)
-       $(BUILDDEPS)
-encoding/base32.lo: $(go_encoding_base32_files)
-       $(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)
-       $(BUILDDEPS)
-encoding/base64.lo: $(go_encoding_base64_files)
-       $(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)
-       $(BUILDDEPS)
-encoding/binary.lo: $(go_encoding_binary_files)
-       $(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)
-       $(BUILDDEPS)
-encoding/csv.lo: $(go_encoding_csv_files)
-       $(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)
-       $(BUILDDEPS)
-encoding/gob.lo: $(go_encoding_gob_files)
-       $(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)
-       $(BUILDDEPS)
-encoding/hex.lo: $(go_encoding_hex_files)
-       $(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)
-       $(BUILDDEPS)
-encoding/json.lo: $(go_encoding_json_files)
-       $(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)
-       $(BUILDDEPS)
-encoding/pem.lo: $(go_encoding_pem_files)
-       $(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)
-       $(BUILDDEPS)
-encoding/xml.lo: $(go_encoding_xml_files)
-       $(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)
-       $(BUILDDEPS)
-exp/proxy.lo: $(go_exp_proxy_files)
-       $(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)
-       $(BUILDDEPS)
-exp/terminal.lo: $(go_exp_terminal_files)
-       $(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)
-       $(BUILDDEPS)
-html/template.lo: $(go_html_template_files)
-       $(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)
-       $(BUILDDEPS)
-go/ast.lo: $(go_go_ast_files)
-       $(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)
-       $(BUILDDEPS)
-go/build.lo: $(go_go_build_files)
-       $(BUILDPACKAGE)
-go/build/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: go/build/check
-
-@go_include@ go/doc.lo.dep
-go/doc.lo.dep: $(go_go_doc_files)
-       $(BUILDDEPS)
-go/doc.lo: $(go_go_doc_files)
-       $(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)
-       $(BUILDDEPS)
-go/format.lo: $(go_go_format_files)
-       $(BUILDPACKAGE)
-go/format/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: go/format/check
-
-@go_include@ go/parser.lo.dep
-go/parser.lo.dep: $(go_go_parser_files)
-       $(BUILDDEPS)
-go/parser.lo: $(go_go_parser_files)
-       $(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)
-       $(BUILDDEPS)
-go/printer.lo: $(go_go_printer_files)
-       $(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)
-       $(BUILDDEPS)
-go/scanner.lo: $(go_go_scanner_files)
-       $(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)
-       $(BUILDDEPS)
-go/token.lo: $(go_go_token_files)
-       $(BUILDPACKAGE)
-go/token/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: go/token/check
-
-@go_include@ hash/adler32.lo.dep
-hash/adler32.lo.dep: $(go_hash_adler32_files)
-       $(BUILDDEPS)
-hash/adler32.lo: $(go_hash_adler32_files)
-       $(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)
-       $(BUILDDEPS)
-hash/crc32.lo: $(go_hash_crc32_files)
-       $(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)
-       $(BUILDDEPS)
-hash/crc64.lo: $(go_hash_crc64_files)
-       $(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)
-       $(BUILDDEPS)
-hash/fnv.lo: $(go_hash_fnv_files)
-       $(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)
-       $(BUILDDEPS)
-image/color.lo: $(go_image_color_files)
-       $(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)
-       $(BUILDDEPS)
-image/color/palette.lo: $(go_image_color_palette_files)
-       $(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)
-       $(BUILDDEPS)
-image/draw.lo: $(go_image_draw_files)
-       $(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)
-       $(BUILDDEPS)
-image/gif.lo: $(go_image_gif_files)
-       $(BUILDPACKAGE)
-image/gif/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: image/gif/check
-
-@go_include@ image/jpeg.lo.dep
-image/jpeg.lo.dep: $(go_image_jpeg_files)
-       $(BUILDDEPS)
-image/jpeg.lo: $(go_image_jpeg_files)
-       $(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)
-       $(BUILDDEPS)
-image/png.lo: $(go_image_png_files)
-       $(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)
-       $(BUILDDEPS)
-index/suffixarray.lo: $(go_index_suffixarray_files)
-       $(BUILDPACKAGE)
-index/suffixarray/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: index/suffixarray/check
-
-@go_include@ io/ioutil.lo.dep
-io/ioutil.lo.dep: $(go_io_ioutil_files)
-       $(BUILDDEPS)
-io/ioutil.lo: $(go_io_ioutil_files)
-       $(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)
-       $(BUILDDEPS)
-log/syslog.lo: $(go_log_syslog_files)
-       $(BUILDPACKAGE)
-log/syslog/syslog_c.lo: $(go_syslog_c_files) log/syslog.lo
+       $(LTCOMPILE) -c -o $@ $(srcdir)/go/strings/indexbyte.c
+internal/bytealg/bytealg.lo: go/internal/bytealg/bytealg.c runtime.inc
+       @$(MKDIR_P) internal/bytealg
+       $(LTCOMPILE) -c -o $@ $(srcdir)/go/internal/bytealg/bytealg.c
+
+# Use a C function with a fixed number of arguments to call a C
+# varargs function.
+log/syslog/syslog_c.lo: go/log/syslog/syslog_c.c runtime.inc
        @$(MKDIR_P) log/syslog
        $(LTCOMPILE) -c -o $@ $(srcdir)/go/log/syslog/syslog_c.c
-log/syslog/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: log/syslog/check
-
-@go_include@ math/big.lo.dep
-math/big.lo.dep: $(go_math_big_files)
-       $(BUILDDEPS)
-math/big.lo: $(go_math_big_files)
-       $(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)
-       $(BUILDDEPS)
-math/cmplx.lo: $(go_math_cmplx_files)
-       $(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)
-       $(BUILDDEPS)
-math/rand.lo: $(go_math_rand_files)
-       $(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)
-       $(BUILDDEPS)
-mime/multipart.lo: $(go_mime_multipart_files)
-       $(BUILDPACKAGE)
-mime/multipart/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: mime/multipart/check
-
-@go_include@ net/http.lo.dep
-net/http.lo.dep: $(go_net_http_files)
-       $(BUILDDEPS)
-net/http.lo: $(go_net_http_files)
-       $(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)
-       $(BUILDDEPS)
-net/mail.lo: $(go_net_mail_files)
-       $(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)
-       $(BUILDDEPS)
-net/rpc.lo: $(go_net_rpc_files)
-       $(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)
-       $(BUILDDEPS)
-net/smtp.lo: $(go_net_smtp_files)
-       $(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)
-       $(BUILDDEPS)
-net/url.lo: $(go_net_url_files)
-       $(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)
-       $(BUILDDEPS)
-net/textproto.lo: $(go_net_textproto_files)
-       $(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)
-       $(BUILDDEPS)
-net/http/cgi.lo: $(go_net_http_cgi_files)
-       $(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)
-       $(BUILDDEPS)
-net/http/cookiejar.lo: $(go_net_http_cookiejar_files)
-       $(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)
-       $(BUILDDEPS)
-net/http/fcgi.lo: $(go_net_http_fcgi_files)
-       $(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)
-       $(BUILDDEPS)
-net/http/httptest.lo: $(go_net_http_httptest_files)
-       $(BUILDPACKAGE)
-net/http/httptest/check: $(check_deps)
-       @$(CHECK)
-.PHONY: net/http/httptest/check
-
-@go_include@ net/http/httputil.lo.dep
-net/http/httputil.lo.dep: $(go_net_http_httputil_files)
-       $(BUILDDEPS)
-net/http/httputil.lo: $(go_net_http_httputil_files)
-       $(BUILDPACKAGE)
-net/http/httputil/check: $(check_deps)
-       @$(CHECK)
-.PHONY: net/http/httputil/check
-
-@go_include@ net/http/pprof.lo.dep
-net/http/pprof.lo.dep: $(go_net_http_pprof_files)
-       $(BUILDDEPS)
-net/http/pprof.lo: $(go_net_http_pprof_files)
-       $(BUILDPACKAGE)
-net/http/pprof/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: net/http/pprof/check
-
-@go_include@ net/rpc/jsonrpc.lo.dep
-net/rpc/jsonrpc.lo.dep: $(go_net_rpc_jsonrpc_files)
-       $(BUILDDEPS)
-net/rpc/jsonrpc.lo: $(go_net_rpc_jsonrpc_files)
-       $(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)
-       $(BUILDDEPS)
-old/regexp.lo: $(go_old_regexp_files)
-       $(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)
-       $(BUILDDEPS)
-old/template.lo: $(go_old_template_files)
-       $(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)
-       $(BUILDDEPS)
-os/exec.lo: $(go_os_exec_files)
-       $(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)
-       $(BUILDDEPS)
-os/signal.lo: $(go_os_signal_files)
-       $(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)
-       $(BUILDDEPS)
-os/user.lo: $(go_os_user_files)
-       $(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)
-       $(BUILDDEPS)
-path/filepath.lo: $(go_path_filepath_files)
-       $(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)
-       $(BUILDDEPS)
-regexp/syntax.lo: $(go_regexp_syntax_files)
-       $(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)
-       $(BUILDDEPS)
-runtime/debug.lo: $(go_runtime_debug_files)
-       $(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)
-       $(BUILDDEPS)
-runtime/pprof.lo: $(go_runtime_pprof_files)
-       $(BUILDPACKAGE)
-runtime/pprof/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: runtime/pprof/check
-# At least for now, we need -static-libgo for this test, because
-# otherwise we can't get the line numbers.
-runtime_pprof_check_GOCFLAGS = -static-libgo
-
-@go_include@ sync/atomic.lo.dep
-sync/atomic.lo.dep: $(go_sync_atomic_files)
-       $(BUILDDEPS)
-sync/atomic.lo: $(go_sync_atomic_files)
-       $(BUILDPACKAGE)
-sync/atomic_c.lo: $(go_sync_atomic_c_files) sync/atomic.lo
+
+# The interface to libffi from the reflect package is written in C.
+reflect/makefunc_ffi_c.lo: go/reflect/makefunc_ffi_c.c runtime.inc
+       @$(MKDIR_P) reflect
+       $(LTCOMPILE) -c -o $@ $(srcdir)/go/reflect/makefunc_ffi_c.c
+
+# The atomic functions are written in C.
+runtime/internal/atomic_c.lo: go/runtime/internal/atomic/atomic.c runtime.inc
+       @$(MKDIR_P) runtime/internal
+       $(LTCOMPILE) -c -o $@ $(srcdir)/go/runtime/internal/atomic/atomic.c
+sync/atomic_c.lo: go/sync/atomic/atomic.c runtime.inc
+       @$(MKDIR_P) sync
        $(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)
-       $(BUILDDEPS)
-text/scanner.lo: $(go_text_scanner_files)
-       $(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)
-       $(BUILDDEPS)
-text/tabwriter.lo: $(go_text_tabwriter_files)
-       $(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)
-       $(BUILDDEPS)
-text/template.lo: $(go_text_template_files)
-       $(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)
-       $(BUILDDEPS)
-text/template/parse.lo: $(go_text_template_parse_files)
-       $(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)
-       $(BUILDDEPS)
-testing/iotest.lo: $(go_testing_iotest_files)
-       $(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)
-       $(BUILDDEPS)
-testing/quick.lo: $(go_testing_quick_files)
-       $(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)
-       $(BUILDDEPS)
-unicode/utf16.lo: $(go_unicode_utf16_files)
-       $(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)
-       $(BUILDDEPS)
-unicode/utf8.lo: $(go_unicode_utf8_files)
-       $(BUILDPACKAGE)
-unicode/utf8/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: unicode/utf8/check
-
-@go_include@ syscall.lo.dep
-syscall.lo.dep: $(go_syscall_files)
-       $(BUILDDEPS)
-syscall.lo: $(go_syscall_files)
-       $(BUILDPACKAGE)
-syscall/errno.lo: go/syscall/errno.c
+
+# A few syscall functions are written in C.
+syscall/clone_linux.lo: go/syscall/clone_linux.c runtime.inc
+       @$(MKDIR_P) syscall
+       $(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/clone_linux.c
+syscall/errno.lo: go/syscall/errno.c runtime.inc
        @$(MKDIR_P) syscall
-       $(LTCOMPILE) -c -o $@ $<
-syscall/signame.lo: go/syscall/signame.c
+       $(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/errno.c
+syscall/signame.lo: go/syscall/signame.c runtime.inc
        @$(MKDIR_P) syscall
-       $(LTCOMPILE) -c -o $@ $<
-syscall/wait.lo: go/syscall/wait.c
+       $(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/signame.c
+syscall/wait.lo: go/syscall/wait.c runtime.inc
        @$(MKDIR_P) syscall
-       $(LTCOMPILE) -c -o $@ $<
-syscall/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: syscall/check
+       $(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/wait.c
 
-# How to build a .gox file from a .lo file.
-BUILDGOX = \
-       f=`echo $< | sed -e 's/.lo$$/.o/'`; \
-       $(OBJCOPY) -j .go_export $$f $@.tmp && mv -f $@.tmp $@
-
-bufio.gox: bufio.lo
-       $(BUILDGOX)
-bytes.gox: bytes.lo
-       $(BUILDGOX)
-crypto.gox: crypto.lo
-       $(BUILDGOX)
-encoding.gox: encoding.lo
-       $(BUILDGOX)
-errors.gox: errors.lo
-       $(BUILDGOX)
-expvar.gox: expvar.lo
-       $(BUILDGOX)
-flag.gox: flag.lo
-       $(BUILDGOX)
-fmt.gox: fmt.lo
-       $(BUILDGOX)
-hash.gox: hash.lo
-       $(BUILDGOX)
-html.gox: html.lo
-       $(BUILDGOX)
-image.gox: image.lo
-       $(BUILDGOX)
-io.gox: io.lo
-       $(BUILDGOX)
-log.gox: log.lo
-       $(BUILDGOX)
-math.gox: math.lo
-       $(BUILDGOX)
-mime.gox: mime.lo
-       $(BUILDGOX)
-net.gox: net.lo
-       $(BUILDGOX)
-os.gox: os.lo
-       $(BUILDGOX)
-path.gox: path.lo
-       $(BUILDGOX)
-reflect.gox: reflect-go.lo
-       $(BUILDGOX)
-regexp.gox: regexp.lo
-       $(BUILDGOX)
-runtime.gox: runtime-go.lo
-       $(BUILDGOX)
-sort.gox: sort.lo
-       $(BUILDGOX)
-strconv.gox: strconv.lo
-       $(BUILDGOX)
-strings.gox: strings.lo
-       $(BUILDGOX)
-sync.gox: sync.lo
-       $(BUILDGOX)
-syscall.gox: syscall.lo
-       $(BUILDGOX)
-testing.gox: testing.lo
-       $(BUILDGOX)
-time.gox: time-go.lo
-       $(BUILDGOX)
-unicode.gox: unicode.lo
-       $(BUILDGOX)
-
-archive/tar.gox: archive/tar.lo
-       $(BUILDGOX)
-archive/zip.gox: archive/zip.lo
-       $(BUILDGOX)
-
-compress/bzip2.gox: compress/bzip2.lo
-       $(BUILDGOX)
-compress/flate.gox: compress/flate.lo
-       $(BUILDGOX)
-compress/gzip.gox: compress/gzip.lo
-       $(BUILDGOX)
-compress/lzw.gox: compress/lzw.lo
-       $(BUILDGOX)
-compress/zlib.gox: compress/zlib.lo
-       $(BUILDGOX)
-
-container/heap.gox: container/heap.lo
-       $(BUILDGOX)
-container/list.gox: container/list.lo
-       $(BUILDGOX)
-container/ring.gox: container/ring.lo
-       $(BUILDGOX)
-
-crypto/aes.gox: crypto/aes.lo
-       $(BUILDGOX)
-crypto/cipher.gox: crypto/cipher.lo
-       $(BUILDGOX)
-crypto/des.gox: crypto/des.lo
-       $(BUILDGOX)
-crypto/dsa.gox: crypto/dsa.lo
-       $(BUILDGOX)
-crypto/ecdsa.gox: crypto/ecdsa.lo      
-       $(BUILDGOX)
-crypto/elliptic.gox: crypto/elliptic.lo
-       $(BUILDGOX)
-crypto/hmac.gox: crypto/hmac.lo
-       $(BUILDGOX)
-crypto/md5.gox: crypto/md5.lo
-       $(BUILDGOX)
-crypto/rand.gox: crypto/rand.lo
-       $(BUILDGOX)
-crypto/rc4.gox: crypto/rc4.lo
-       $(BUILDGOX)
-crypto/rsa.gox: crypto/rsa.lo
-       $(BUILDGOX)
-crypto/sha1.gox: crypto/sha1.lo
-       $(BUILDGOX)
-crypto/sha256.gox: crypto/sha256.lo
-       $(BUILDGOX)
-crypto/sha512.gox: crypto/sha512.lo
-       $(BUILDGOX)
-crypto/subtle.gox: crypto/subtle.lo
-       $(BUILDGOX)
-crypto/tls.gox: crypto/tls.lo
-       $(BUILDGOX)
-crypto/x509.gox: crypto/x509.lo
-       $(BUILDGOX)
-
-crypto/x509/pkix.gox: crypto/x509/pkix.lo
-       $(BUILDGOX)
-
-database/sql.gox: database/sql.lo
-       $(BUILDGOX)
-
-database/sql/driver.gox: database/sql/driver.lo
-       $(BUILDGOX)
-
-debug/dwarf.gox: debug/dwarf.lo
-       $(BUILDGOX)
-debug/elf.gox: debug/elf.lo
-       $(BUILDGOX)
-debug/goobj.gox: debug/goobj.lo
-       $(BUILDGOX)
-debug/gosym.gox: debug/gosym.lo
-       $(BUILDGOX)
-debug/macho.gox: debug/macho.lo
-       $(BUILDGOX)
-debug/pe.gox: debug/pe.lo
-       $(BUILDGOX)
-
-encoding/ascii85.gox: encoding/ascii85.lo
-       $(BUILDGOX)
-encoding/asn1.gox: encoding/asn1.lo
-       $(BUILDGOX)
-encoding/base32.gox: encoding/base32.lo
-       $(BUILDGOX)
-encoding/base64.gox: encoding/base64.lo
-       $(BUILDGOX)
-encoding/binary.gox: encoding/binary.lo
-       $(BUILDGOX)
-encoding/csv.gox: encoding/csv.lo
-       $(BUILDGOX)
-encoding/gob.gox: encoding/gob.lo
-       $(BUILDGOX)
-encoding/hex.gox: encoding/hex.lo
-       $(BUILDGOX)
-encoding/json.gox: encoding/json.lo
-       $(BUILDGOX)
-encoding/pem.gox: encoding/pem.lo
-       $(BUILDGOX)
-encoding/xml.gox: encoding/xml.lo
-       $(BUILDGOX)
-
-exp/proxy.gox: exp/proxy.lo
-       $(BUILDGOX)
-exp/terminal.gox: exp/terminal.lo
-       $(BUILDGOX)
-
-html/template.gox: html/template.lo
-       $(BUILDGOX)
-
-go/ast.gox: go/ast.lo
-       $(BUILDGOX)
-go/build.gox: go/build.lo
-       $(BUILDGOX)
-go/doc.gox: go/doc.lo
-       $(BUILDGOX)
-go/format.gox: go/format.lo
-       $(BUILDGOX)
-go/parser.gox: go/parser.lo
-       $(BUILDGOX)
-go/printer.gox: go/printer.lo
-       $(BUILDGOX)
-go/scanner.gox: go/scanner.lo
-       $(BUILDGOX)
-go/token.gox: go/token.lo
-       $(BUILDGOX)
-
-hash/adler32.gox: hash/adler32.lo
-       $(BUILDGOX)
-hash/crc32.gox: hash/crc32.lo
-       $(BUILDGOX)
-hash/crc64.gox: hash/crc64.lo
-       $(BUILDGOX)
-hash/fnv.gox: hash/fnv.lo
-       $(BUILDGOX)
-
-image/color.gox: image/color.lo
-       $(BUILDGOX)
-image/draw.gox: image/draw.lo
-       $(BUILDGOX)
-image/gif.gox: image/gif.lo
-       $(BUILDGOX)
-image/jpeg.gox: image/jpeg.lo
-       $(BUILDGOX)
-image/png.gox: image/png.lo
-       $(BUILDGOX)
-
-image/color/palette.gox: image/color/palette.lo
-       $(BUILDGOX)
-
-index/suffixarray.gox: index/suffixarray.lo
-       $(BUILDGOX)
-
-io/ioutil.gox: io/ioutil.lo
-       $(BUILDGOX)
-
-log/syslog.gox: log/syslog.lo
-       $(BUILDGOX)
-
-math/big.gox: math/big.lo
-       $(BUILDGOX)
-math/cmplx.gox: math/cmplx.lo
-       $(BUILDGOX)
-math/rand.gox: math/rand.lo
-       $(BUILDGOX)
-
-mime/multipart.gox: mime/multipart.lo
-       $(BUILDGOX)
-
-net/http.gox: net/http.lo
-       $(BUILDGOX)
-net/mail.gox: net/mail.lo
-       $(BUILDGOX)
-net/rpc.gox: net/rpc.lo
-       $(BUILDGOX)
-net/smtp.gox: net/smtp.lo
-       $(BUILDGOX)
-net/textproto.gox: net/textproto.lo
-       $(BUILDGOX)
-net/url.gox: net/url.lo
-       $(BUILDGOX)
-
-net/http/cgi.gox: net/http/cgi.lo
-       $(BUILDGOX)
-net/http/cookiejar.gox: net/http/cookiejar.lo
-       $(BUILDGOX)
-net/http/fcgi.gox: net/http/fcgi.lo
-       $(BUILDGOX)
-net/http/httptest.gox: net/http/httptest.lo
-       $(BUILDGOX)
-net/http/httputil.gox: net/http/httputil.lo
-       $(BUILDGOX)
-net/http/pprof.gox: net/http/pprof.lo
-       $(BUILDGOX)
-
-net/rpc/jsonrpc.gox: net/rpc/jsonrpc.lo
-       $(BUILDGOX)
-
-old/regexp.gox: old/regexp.lo
-       $(BUILDGOX)
-old/template.gox: old/template.lo
-       $(BUILDGOX)
-
-os/exec.gox: os/exec.lo
-       $(BUILDGOX)
-os/signal.gox: os/signal.lo
-       $(BUILDGOX)
-os/user.gox: os/user.lo
-       $(BUILDGOX)
-
-path/filepath.gox: path/filepath.lo
-       $(BUILDGOX)
-
-regexp/syntax.gox: regexp/syntax.lo
-       $(BUILDGOX)
-
-runtime/debug.gox: runtime/debug.lo
-       $(BUILDGOX)
-runtime/pprof.gox: runtime/pprof.lo
-       $(BUILDGOX)
-
-sync/atomic.gox: sync/atomic.lo
-       $(BUILDGOX)
-
-text/scanner.gox: text/scanner.lo
-       $(BUILDGOX)
-text/tabwriter.gox: text/tabwriter.lo
-       $(BUILDGOX)
-text/template.gox: text/template.lo
-       $(BUILDGOX)
-text/template/parse.gox: text/template/parse.lo
-       $(BUILDGOX)
-
-testing/iotest.gox: testing/iotest.lo
-       $(BUILDGOX)
-testing/quick.gox: testing/quick.lo
-       $(BUILDGOX)
-
-unicode/utf16.gox: unicode/utf16.lo
-       $(BUILDGOX)
-unicode/utf8.gox: unicode/utf8.lo
-       $(BUILDGOX)
-
-TEST_PACKAGES = \
-       bufio/check \
-       bytes/check \
-       errors/check \
-       expvar/check \
-       flag/check \
-       fmt/check \
-       html/check \
-       image/check \
-       io/check \
-       log/check \
-       math/check \
-       mime/check \
-       net/check \
-       os/check \
-       path/check \
-       reflect/check \
-       regexp/check \
-       runtime/check \
-       sort/check \
-       strconv/check \
-       strings/check \
-       sync/check \
-       syscall/check \
-       time/check \
-       unicode/check \
-       archive/tar/check \
-       archive/zip/check \
-       compress/bzip2/check \
-       compress/flate/check \
-       compress/gzip/check \
-       compress/lzw/check \
-       compress/zlib/check \
-       container/heap/check \
-       container/list/check \
-       container/ring/check \
-       crypto/aes/check \
-       crypto/cipher/check \
-       crypto/des/check \
-       crypto/dsa/check \
-       crypto/ecdsa/check \
-       crypto/elliptic/check \
-       crypto/hmac/check \
-       crypto/md5/check \
-       crypto/rand/check \
-       crypto/rc4/check \
-       crypto/rsa/check \
-       crypto/sha1/check \
-       crypto/sha256/check \
-       crypto/sha512/check \
-       crypto/subtle/check \
-       crypto/tls/check \
-       crypto/x509/check \
-       database/sql/check \
-       database/sql/driver/check \
-       debug/dwarf/check \
-       debug/elf/check \
-       debug/macho/check \
-       debug/pe/check \
-       encoding/ascii85/check \
-       encoding/asn1/check \
-       encoding/base32/check \
-       encoding/base64/check \
-       encoding/binary/check \
-       encoding/csv/check \
-       encoding/gob/check \
-       encoding/hex/check \
-       encoding/json/check \
-       encoding/pem/check \
-       encoding/xml/check \
-       exp/proxy/check \
-       exp/terminal/check \
-       html/template/check \
-       go/ast/check \
-       $(go_build_check_omitted_since_it_calls_6g) \
-       go/doc/check \
-       go/format/check \
-       go/parser/check \
-       go/printer/check \
-       go/scanner/check \
-       go/token/check \
-       hash/adler32/check \
-       hash/crc32/check \
-       hash/crc64/check \
-       hash/fnv/check \
-       image/color/check \
-       image/draw/check \
-       image/jpeg/check \
-       image/png/check \
-       index/suffixarray/check \
-       io/ioutil/check \
-       log/syslog/check \
-       math/big/check \
-       math/cmplx/check \
-       math/rand/check \
-       mime/multipart/check \
-       net/http/check \
-       net/http/cgi/check \
-       net/http/cookiejar/check \
-       net/http/fcgi/check \
-       net/http/httptest/check \
-       net/http/httputil/check \
-       net/mail/check \
-       net/rpc/check \
-       net/smtp/check \
-       net/textproto/check \
-       net/url/check \
-       net/rpc/jsonrpc/check \
-       old/regexp/check \
-       old/template/check \
-       os/exec/check \
-       os/signal/check \
-       os/user/check \
-       path/filepath/check \
-       regexp/syntax/check \
-       runtime/pprof/check \
-       sync/atomic/check \
-       text/scanner/check \
-       text/tabwriter/check \
-       text/template/check \
-       text/template/parse/check \
-       testing/quick/check \
-       unicode/utf16/check \
-       unicode/utf8/check
+# internal/cpu needs some C code.
+internal/cpu/cpu_gccgo.lo: go/internal/cpu/cpu_gccgo.c runtime.inc
+       @$(MKDIR_P) internal/cpu
+       $(LTCOMPILE) -c -o $@ $(srcdir)/go/internal/cpu/cpu_gccgo.c
+
+# Solaris 11.4 changed the type of fields in struct stat.
+# Use a build tag, based on a configure check, to cope.
+if LIBGO_IS_SOLARIS
+if HAVE_STAT_TIMESPEC
+matchargs_os = --tag=solaristag
+else
+matchargs_os =
+endif
+else
+matchargs_os =
+endif
+
+if LIBGO_IS_BSD
+
+# Build golang_org/x/net/route only on BSD systems.
+
+$(eval $(call PACKAGE_template,golang_org/x/net/route))
+
+golang_org_x_net_route_lo = \
+       golang_org/x/net/route.lo
+golang_org_x_net_route_check = \
+       golang_org/x/net/route/check
+
+endif
+
+if LIBGO_IS_SOLARIS
+
+# Build golang_org/x/net/lif only on Solaris systems.
+
+$(eval $(call PACKAGE_template,golang_org/x/net/lif))
+
+golang_org_x_net_lif_lo = \
+       golang_org/x/net/lif.lo
+golang_org_x_net_lif_check = \
+       golang_org/x/net/lif/check
+
+endif
+
+TPACKAGES = $(shell cat $(srcdir)/check-packages.txt)
+TEST_PACKAGES = $(addsuffix /check,$(TPACKAGES)) \
+       $(golang_org_x_net_lif_check) \
+       $(golang_org_x_net_route_check)
 
 check: check-tail
 check-recursive: check-head
@@ -3811,7 +1185,7 @@ check-am:
        @for f in $(TEST_PACKAGES); do \
           rm -f $$f-testsum $$f-testlog; \
         done
-       -@$(MAKE) -k $(TEST_PACKAGES)
+       -@$(MAKE) $(AM_MAKEFLAGS) -k $(TEST_PACKAGES)
        @for f in $(TEST_PACKAGES); do \
          if test -f $$f-testsum; then \
            cat $$f-testsum >> libgo.sum; \
@@ -3824,7 +1198,15 @@ check-am:
 check-multi:
        $(MULTIDO) $(AM_MAKEFLAGS) DO=check-am multi-do # $(MAKE)
 
-MOSTLYCLEAN_FILES = libgo.head libgo.sum.sep libgo.log.sep
+bench:
+       -@$(MAKE) $(AM_MAKEFLAGS) -k $(TEST_PACKAGES) GOBENCH=.
+
+MOSTLYCLEANFILES = \
+       s-runtime_sysinfo s-sigtab s-runtime-inc s-zstdpkglist \
+       s-libcalls s-libcalls-list s-syscall_arch s-gen-sysinfo s-sysinfo \
+       s-errno s-epoll \
+       libgo.head libgo.sum.sep libgo.log.sep libgo.var \
+       libcalls-list runtime.inc runtime.inc.tmp2 runtime.inc.tmp3
 
 mostlyclean-local:
        find . -name '*.lo' -print | xargs $(LIBTOOL) --mode=clean rm -f
@@ -3832,8 +1214,15 @@ mostlyclean-local:
        find . -name '*-testsum' -print | xargs rm -f
        find . -name '*-testlog' -print | xargs rm -f
 
-CLEANFILES = *.go *.gox goc2c *.c s-version libgo.sum libgo.log
+CLEANFILES = *.go *.c s-* libgo.sum libgo.log runtime.inc
 
 clean-local:
        find . -name '*.la' -print | xargs $(LIBTOOL) --mode=clean rm -f
        find . -name '*.a' -print | xargs rm -f
+       find . -name '*.gox' -print | xargs rm -f
+       find . -name '*.s-gox' -print | xargs rm -f
+
+distclean-local:
+       find . -name '*.lo.dep' -print | xargs rm -f
+
+include $(top_srcdir)/../multilib.am