subdirs = testsuite
endif
+if LIBGO_IS_DARWIN
+GO_EXPORT_SECTION_NAME = __GNU_GO.__go_export
+else
+GO_EXPORT_SECTION_NAME = .go_export
+endif
+
SUBDIRS = ${subdirs}
gcc_version := $(shell $(GOC) -dumpversion)
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) $(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.
toolexeclib_LIBRARIES = libgobegin.a libgolibbegin.a
endif
+noinst_LIBRARIES = libgotool.a
+
toolexeclibgo_DATA = \
bufio.gox \
bytes.gox \
encoding/pem.gox \
encoding/xml.gox
-toolexeclibgoexpdir = $(toolexeclibgodir)/exp
-
-toolexeclibgoexp_DATA = \
- exp/proxy.gox \
- exp/terminal.gox
-
toolexeclibgogodir = $(toolexeclibgodir)/go
toolexeclibgogo_DATA = \
toolexeclibgomath_DATA = \
math/big.gox \
+ math/bits.gox \
math/cmplx.gox \
math/rand.gox
toolexeclibgoruntime_DATA = \
runtime/debug.gox \
- runtime/pprof.gox
+ runtime/pprof.gox \
+ runtime/trace.gox
toolexeclibgosyncdir = $(toolexeclibgodir)/sync
testing/iotest.gox \
testing/quick.gox
+toolexeclibgotestinginternaldir = $(toolexeclibgotestingdir)/internal
+
+toolexeclibgotestinginternal_DATA = \
+ testing/internal/testdeps.gox
+
toolexeclibgotextdir = $(toolexeclibgodir)/text
toolexeclibgotext_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 = \
+ internal/x/net/internal/nettest.gox \
+ internal/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
rtems_task_variable_add_file =
endif
-if LIBGO_IS_LINUX
-runtime_thread_files = runtime/thread-linux.c
-else
-runtime_thread_files = runtime/thread-sema.c
-endif
-
if LIBGO_IS_LINUX
runtime_getncpu_file = runtime/getncpu-linux.c
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
+if LIBGO_IS_HURD
+runtime_getncpu_file = runtime/getncpu-hurd.c
+else
runtime_getncpu_file = runtime/getncpu-none.c
endif
endif
endif
endif
endif
+endif
+endif
runtime_files = \
runtime/aeshash.c \
runtime/go-assert.c \
- runtime/go-breakpoint.c \
runtime/go-caller.c \
runtime/go-callers.c \
runtime/go-cdiv.c \
runtime/go-memmove.c \
runtime/go-nanotime.c \
runtime/go-now.c \
- runtime/go-new.c \
runtime/go-nosys.c \
runtime/go-reflect-call.c \
runtime/go-runtime-error.c \
runtime/go-setenv.c \
runtime/go-signal.c \
runtime/go-strslice.c \
- runtime/go-type-complex.c \
- runtime/go-type-float.c \
- runtime/go-type-identity.c \
- runtime/go-type-string.c \
runtime/go-typedesc-equal.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/env_posix.c \
- runtime/heapdump.c \
- runtime/mcache.c \
- runtime/mcentral.c \
- $(runtime_mem_file) \
- runtime/mfixalloc.c \
- runtime/mgc0.c \
- runtime/mheap.c \
- runtime/msize.c \
runtime/panic.c \
- runtime/parfor.c \
runtime/print.c \
runtime/proc.c \
runtime/runtime_c.c \
- runtime/thread.c \
- $(runtime_thread_files) \
+ runtime/stack.c \
runtime/yield.c \
$(rtems_task_variable_add_file) \
- malloc.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 $@
-
-%.c: $(srcdir)/runtime/%.goc goc2c
- ./goc2c $< > $@.tmp
- mv -f $@.tmp $@
-
version.go: s-version; @true
s-version: Makefile
rm -f version.go.tmp
echo "package sys" > version.go.tmp
- echo 'const DefaultGoroot = "$(prefix)"' >> 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
done
echo >> version.go.tmp
echo "const (" >> version.go.tmp
- echo " ArchFamily = $(GOARCH_FAMILY)" >> version.go.tmp
- echo " BigEndian = $(GOARCH_BIGENDIAN)" >> version.go.tmp
- echo " CacheLineSize = $(GOARCH_CACHELINESIZE)" >> version.go.tmp
- echo " PhysPageSize = $(GOARCH_PHYSPAGESIZE)" >> version.go.tmp
- echo " PCQuantum = $(GOARCH_PCQUANTUM)" >> version.go.tmp
- echo " Int64Align = $(GOARCH_INT64ALIGN)" >> version.go.tmp
- echo " HugePageSize = $(GOARCH_HUGEPAGESIZE)" >> version.go.tmp
- echo " MinFrameSize = $(GOARCH_MINFRAMESIZE)" >> 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 \
$(SHELL) $(srcdir)/mvifdiff.sh version.go.tmp version.go
$(STAMP) $@
+cpugen.go: s-cpu; @true
+s-cpu: Makefile
+ rm -f cpugen.go.tmp
+ echo "package cpu" > cpugen.go.tmp
+ echo "const CacheLinePadSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) cachelinesize`" >> cpugen.go.tmp
+ echo "const FunctionDescriptors = $(FUNCTION_DESCRIPTORS)" >> cpugen.go.tmp
+ $(SHELL) $(srcdir)/mvifdiff.sh cpugen.go.tmp cpugen.go
+ $(STAMP) $@
+
+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 stackGuardMultiplierDefault = 1' >> objabi.go.tmp
+ echo 'const goexperiment = ``' >> objabi.go.tmp
+ $(SHELL) $(srcdir)/mvifdiff.sh objabi.go.tmp objabi.go
+ $(STAMP) $@
+
+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) $@
+
runtime_sysinfo.go: s-runtime_sysinfo; @true
s-runtime_sysinfo: $(srcdir)/mkrsysinfo.sh gen-sysinfo.go
- $(SHELL) $(srcdir)/mkrsysinfo.sh
+ GOARCH=$(GOARCH) GOOS=$(GOOS) $(SHELL) $(srcdir)/mkrsysinfo.sh
$(SHELL) $(srcdir)/mvifdiff.sh tmp-runtime_sysinfo.go runtime_sysinfo.go
$(STAMP) $@
$(SHELL) $(srcdir)/mvifdiff.sh tmp-sigtab.go sigtab.go
$(STAMP) $@
+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
- rm -f runtime.inc.tmp2
- grep -v "#define _" runtime.inc.tmp | grep -v "#define [cm][01234] " > runtime.inc.tmp2
- for pattern in '_[GP][a-z]' _Max _Lock _Sig _Trace _MHeap _Num; do \
- grep "#define $$pattern" runtime.inc.tmp >> runtime.inc.tmp2; \
- done
- $(SHELL) $(srcdir)/mvifdiff.sh runtime.inc.tmp2 runtime.inc
+ $(SHELL) $(srcdir)/mkruntimeinc.sh
+ $(SHELL) $(srcdir)/mvifdiff.sh tmp-runtime.inc runtime.inc
$(STAMP) $@
-noinst_DATA = zstdpkglist.go
+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 main' > 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/\.lo /\": true,\n/g' | grep -v _c | sed 's/\.lo/\": true,/' | sed 's/^/\t\"/' | sort -u >> 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) $@
sysinfo.go: s-sysinfo; @true
s-sysinfo: $(srcdir)/mksysinfo.sh gen-sysinfo.go errno.i
- $(SHELL) $(srcdir)/mksysinfo.sh
+ GOARCH=$(GOARCH) GOOS=$(GOOS) $(SHELL) $(srcdir)/mksysinfo.sh
$(SHELL) $(srcdir)/mvifdiff.sh tmp-sysinfo.go sysinfo.go
$(STAMP) $@
syscall_lib_clone_lo =
endif
-PACKAGES = \
- archive/tar \
- archive/zip \
- bufio \
- bytes \
- compress/bzip2 \
- compress/flate \
- compress/gzip \
- compress/lzw \
- compress/zlib \
- container/heap \
- container/list \
- container/ring \
- context \
- crypto \
- crypto/aes \
- crypto/cipher \
- crypto/des \
- crypto/dsa \
- crypto/ecdsa \
- crypto/elliptic \
- crypto/hmac \
- crypto/md5 \
- crypto/rand \
- crypto/rc4 \
- crypto/rsa \
- crypto/sha1 \
- crypto/sha256 \
- crypto/sha512 \
- crypto/subtle \
- crypto/tls \
- crypto/x509 \
- crypto/x509/pkix \
- database/sql \
- database/sql/driver \
- debug/dwarf \
- debug/elf \
- debug/gosym \
- debug/macho \
- debug/pe \
- debug/plan9obj \
- encoding \
- encoding/ascii85 \
- encoding/asn1 \
- encoding/base32 \
- encoding/base64 \
- encoding/binary \
- encoding/csv \
- encoding/gob \
- encoding/hex \
- encoding/json \
- encoding/pem \
- encoding/xml \
- errors \
- exp/proxy \
- exp/terminal \
- expvar \
- flag \
- fmt \
- go/ast \
- go/build \
- go/constant \
- go/doc \
- go/format \
- go/importer \
- go/internal/gccgoimporter \
- go/internal/gcimporter \
- go/parser \
- go/printer \
- go/scanner \
- go/token \
- go/types \
- golang_org/x/net/http2/hpack \
- golang_org/x/net/lex/httplex \
- hash \
- hash/adler32 \
- hash/crc32 \
- hash/crc64 \
- hash/fnv \
- html \
- html/template \
- image \
- image/color \
- image/color/palette \
- image/draw \
- image/gif \
- image/internal/imageutil \
- image/jpeg \
- image/png \
- index/suffixarray \
- internal/nettrace \
- internal/race \
- internal/singleflight \
- internal/syscall/unix \
- internal/testenv \
- internal/trace \
- io \
- io/ioutil \
- log \
- log/syslog \
- math \
- math/big \
- math/cmplx \
- math/rand \
- mime \
- mime/multipart \
- mime/quotedprintable \
- net \
- net/http \
- net/http/cgi \
- net/http/cookiejar \
- net/http/fcgi \
- net/http/httptest \
- net/http/httptrace \
- net/http/httputil \
- net/http/internal \
- net/http/pprof \
- net/internal/socktest \
- net/mail \
- net/rpc \
- net/rpc/jsonrpc \
- net/smtp \
- net/textproto \
- net/url \
- os \
- os/exec \
- os/signal \
- os/user \
- path \
- path/filepath \
- reflect \
- regexp \
- regexp/syntax \
- runtime \
- runtime/debug \
- runtime/internal/atomic \
- runtime/internal/sys \
- runtime/pprof \
- sort \
- strconv \
- strings \
- sync \
- sync/atomic \
- syscall \
- testing \
- testing/iotest \
- testing/quick \
- text/scanner \
- text/tabwriter \
- text/template \
- text/template/parse \
- time \
- unicode \
- unicode/utf16 \
- unicode/utf8
+PACKAGES = $(shell cat $(srcdir)/libgo-packages.txt)
libgo_go_objs = \
$(addsuffix .lo,$(PACKAGES)) \
- bytes/index.lo \
+ internal/bytealg/bytealg.lo \
reflect/makefunc_ffi_c.lo \
- strings/index.lo \
$(syscall_lib_clone_lo) \
syscall/errno.lo \
syscall/signame.lo \
syscall/wait.lo \
- $(golang_org_x_net_route_lo) \
+ $(internal_x_net_lif_lo) \
+ $(internal_x_net_route_lo) \
log/syslog/syslog_c.lo \
$(os_lib_inotify_lo) \
runtime/internal/atomic_c.lo \
- sync/atomic_c.lo
+ sync/atomic_c.lo \
+ internal/cpu/cpu_gccgo.lo
libgo_ldflags = \
-version-info $(libtool_VERSION) $(PTHREAD_CFLAGS) $(AM_LDFLAGS)
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
$(LTGOCOMPILE) -I . -c -fgo-pkgpath=`echo $@ | sed -e 's/.lo$$//'` $($(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=`echo $< | sed -e 's/.lo$$/.o/'`; \
- $(OBJCOPY) -j .go_export $$f $@.tmp; \
+ f="$(basename $<).o"; \
+ if test ! -f $$f; then \
+ f="$(basename $(<D)/.libs/$(<F)).o"; \
+ fi; \
+ $(OBJCOPY) -j $(GO_EXPORT_SECTION_NAME) $$f $@.tmp; \
$(SHELL) $(srcdir)/mvifdiff.sh $@.tmp `echo $@ | sed -e 's/s-gox/gox/'`
GOTESTFLAGS =
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; \
$(toolexeclibgocrypto_DATA) \
$(toolexeclibgodebug_DATA) \
$(toolexeclibgoencoding_DATA) \
- $(toolexeclibgoexp_DATA) \
$(toolexeclibgogo_DATA) \
$(toolexeclibgohash_DATA) \
$(toolexeclibgoimage_DATA) \
$(toolexeclibgotesting_DATA) \
$(toolexeclibgotext_DATA) \
$(toolexeclibgotexttemplate_DATA) \
- $(toolexeclibgounicode_DATA)
+ $(toolexeclibgounicode_DATA) \
+ $(noinst_DATA) \
+ $(noinst_LIBRARIES)
if GOC_IS_LLGO
CHECK_DEPS += libgo-llgo.la libgobegin-llgo.a
# 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
syscall.lo.dep: $(extra_go_files_syscall)
# Pass -fgo-compiling-runtime when compiling the runtime package.
-runtime_lo_GOCFLAGS = -fgo-c-header=runtime.inc.tmp -fgo-compiling-runtime
+runtime_lo_GOCFLAGS = -fgo-c-header=runtime.inc.raw -fgo-compiling-runtime
runtime_check_GOCFLAGS = -fgo-compiling-runtime
runtime_internal_atomic_lo_GOCFLAGS = -fgo-compiling-runtime
runtime_internal_atomic_lo_check_GOCFLAGS = -fgo-compiling-runtime
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_lockedfile = $(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 $@ $(srcdir)/go/bytes/indexbyte.c
-strings/index.lo: go/strings/indexbyte.c runtime.inc
- @$(MKDIR_P) strings
- $(LTCOMPILE) -c -o $@ $(srcdir)/go/strings/indexbyte.c
+# Use C code to speed up internal/bytealg.IndexByte and friends.
+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.
@$(MKDIR_P) syscall
$(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/wait.c
-# Solaris 12 changed the type of fields in struct stat.
+# 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
if LIBGO_IS_BSD
-# Build golang_org/x/net/route only on BSD systems.
+# Build internal/x/net/route only on BSD systems.
-$(eval $(call PACKAGE_template,golang_org/x/net/route)
+$(eval $(call PACKAGE_template,internal/x/net/route))
-golang_org_x_net_route_lo = \
- golang_org/x/net/route/route.lo
-golang_org_x_net_route_check = \
- golang_org/x/net/route/check
+internal_x_net_route_lo = \
+ internal/x/net/route.lo
+internal_x_net_route_check = \
+ internal/x/net/route/check
endif
-TEST_PACKAGES = \
- bufio/check \
- bytes/check \
- context/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 \
- debug/plan9obj/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 \
- go/constant/check \
- go/doc/check \
- go/format/check \
- go/internal/gcimporter/check \
- go/internal/gccgoimporter/check \
- go/parser/check \
- go/printer/check \
- go/scanner/check \
- go/token/check \
- go/types/check \
- golang_org/x/net/http2/hpack/check \
- golang_org/x/net/lex/httplex/check \
- $(golang_org_x_net_route_check) \
- hash/adler32/check \
- hash/crc32/check \
- hash/crc64/check \
- hash/fnv/check \
- image/color/check \
- image/draw/check \
- image/jpeg/check \
- image/png/check \
- index/suffixarray/check \
- internal/singleflight/check \
- internal/trace/check \
- io/ioutil/check \
- log/syslog/check \
- math/big/check \
- math/cmplx/check \
- math/rand/check \
- mime/multipart/check \
- mime/quotedprintable/check \
- net/http/check \
- net/http/cgi/check \
- net/http/cookiejar/check \
- net/http/fcgi/check \
- net/http/httptest/check \
- net/http/httptrace/check \
- net/http/httputil/check \
- net/http/internal/check \
- net/internal/socktest/check \
- net/mail/check \
- net/rpc/check \
- net/smtp/check \
- net/textproto/check \
- net/url/check \
- net/rpc/jsonrpc/check \
- os/exec/check \
- os/signal/check \
- os/user/check \
- path/filepath/check \
- regexp/syntax/check \
- runtime/debug/check \
- runtime/pprof/check \
- runtime/internal/atomic/check \
- runtime/internal/sys/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
+if LIBGO_IS_SOLARIS
+
+# Build internal/x/net/lif only on Solaris systems.
+
+$(eval $(call PACKAGE_template,internal/x/net/lif))
+
+internal_x_net_lif_lo = \
+ internal/x/net/lif.lo
+internal_x_net_lif_check = \
+ internal/x/net/lif/check
+
+endif
+
+TPACKAGES = $(shell cat $(srcdir)/check-packages.txt)
+TEST_PACKAGES = $(addsuffix /check,$(TPACKAGES)) \
+ $(internal_x_net_lif_check) \
+ $(internal_x_net_route_check)
check: check-tail
check-recursive: check-head
@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; \
$(MULTIDO) $(AM_MAKEFLAGS) DO=check-am multi-do # $(MAKE)
bench:
- -@$(MAKE) -k $(TEST_PACKAGES) GOBENCH=.
+ -@$(MAKE) $(AM_MAKEFLAGS) -k $(TEST_PACKAGES) GOBENCH=.
-MOSTLYCLEAN_FILES = libgo.head libgo.sum.sep libgo.log.sep
+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
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