# By default use select with pipes. Most systems should have
# something better.
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = go/net/fd_rtems.go
+@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = go/net/fd_select.go
@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = go/net/fd_linux.go
-@LIBGO_IS_RTEMS_TRUE@go_net_fd_os_file = go/net/fd_rtems.go
+@LIBGO_IS_RTEMS_TRUE@go_net_fd_os_file = go/net/fd_select.go
@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = go/net/newpollserver.go
@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = go/net/newpollserver.go
@LIBGO_IS_RTEMS_TRUE@go_net_newpollserver_file = go/net/newpollserver_rtems.go
go_net_files = \
+ go/net/cgo_stub.go \
go/net/dial.go \
go/net/dnsclient.go \
go/net/dnsconfig.go \
$(go_net_newpollserver_file) \
go/net/fd.go \
$(go_net_fd_os_file) \
+ go/net/file.go \
go/net/hosts.go \
go/net/ip.go \
go/net/iprawsock.go \
go/net/ipsock.go \
+ go/net/lookup.go \
go/net/net.go \
go/net/parse.go \
go/net/pipe.go \
go/netchan/export.go \
go/netchan/import.go
-@LIBGO_IS_386_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_os_dir_file = go/os/dir_regfile.go
+@LIBGO_IS_386_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_FALSE@go_os_dir_file = go/os/dir_regfile.go
+@LIBGO_IS_386_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_TRUE@go_os_dir_file = go/os/dir_largefile.go
@LIBGO_IS_386_TRUE@@LIBGO_IS_SOLARIS_TRUE@go_os_dir_file = go/os/dir_largefile.go
@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_dir_file = go/os/dir_regfile.go
@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_os_dir_file = go/os/dir_largefile.go
go/go/ast/ast.go \
go/go/ast/filter.go \
go/go/ast/print.go \
+ go/go/ast/resolve.go \
go/go/ast/scope.go \
go/go/ast/walk.go
# Define Syscall and Syscall6.
@LIBGO_IS_RTEMS_TRUE@syscall_syscall_file = syscalls/syscall_stubs.go
-# Use lseek on amd64 Solaris.
-@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_filesize_file = syscalls/sysfile_regfile.go
-# FIXME: Same for sparc vs. sparc64. Introduce new/additional conditional?
-# Use lseek64 on 386 Solaris.
+# Use lseek on 64-bit Solaris.
+@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_FALSE@syscall_filesize_file = syscalls/sysfile_regfile.go
+# Use lseek64 on 32-bit Solaris/SPARC.
+@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_TRUE@syscall_filesize_file = syscalls/sysfile_largefile.go
+# Use lseek64 on 32-bit Solaris/x86.
@LIBGO_IS_386_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_filesize_file = syscalls/sysfile_largefile.go
# Use lseek by default.
@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@syscall_filesize_file = syscalls/sysfile_regfile.go
# Declare libc functions that vary for largefile systems.
# Always use lseek64 on GNU/Linux.
@LIBGO_IS_LINUX_TRUE@syscall_filesize_file = syscalls/sysfile_largefile.go
-@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_stat_file = syscalls/sysfile_stat_regfile.go
+@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_FALSE@syscall_stat_file = syscalls/sysfile_stat_regfile.go
+@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_TRUE@syscall_stat_file = syscalls/sysfile_stat_largefile.go
@LIBGO_IS_386_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_stat_file = syscalls/sysfile_stat_largefile.go
@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@syscall_stat_file = syscalls/sysfile_stat_regfile.go
@LIBGO_IS_LINUX_TRUE@syscall_stat_file = syscalls/sysfile_stat_largefile.go
@LIBGO_IS_RTEMS_FALSE@syscall_exec_os_file = syscalls/exec.go
-# Define ForkExec, PtraceForkExec, Exec, and Wait4.
+# Define ForkExec, PtraceForkExec, and Exec.
@LIBGO_IS_RTEMS_TRUE@syscall_exec_os_file = syscalls/exec_stubs.go
+@HAVE_WAIT4_FALSE@syscall_wait_file = syscalls/waitpid.go
+
+# Define Wait4.
+@HAVE_WAIT4_TRUE@syscall_wait_file = syscalls/wait4.go
@LIBGO_IS_RTEMS_FALSE@syscall_sleep_file = syscalls/sleep_select.go
# Define Sleep.
@LIBGO_IS_RTEMS_TRUE@syscall_sleep_file = syscalls/sleep_rtems.go
-@LIBGO_IS_RTEMS_FALSE@syscall_errstr_file = syscalls/errstr.go
+@HAVE_STRERROR_R_FALSE@@LIBGO_IS_RTEMS_FALSE@syscall_errstr_file = syscalls/errstr_nor.go
+@HAVE_STRERROR_R_TRUE@@LIBGO_IS_RTEMS_FALSE@syscall_errstr_file = syscalls/errstr.go
# Define Errstr.
@LIBGO_IS_RTEMS_TRUE@syscall_errstr_file = syscalls/errstr_rtems.go
# On other systems we hope strerror_r is just strerror_r.
@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@syscall_errstr_decl_file = syscalls/errstr_decl.go
-# In Linux the POSIX strerror_r is called __xpg_strerror_r.
+# On GNU/Linux the POSIX strerror_r is called __xpg_strerror_r.
@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@syscall_errstr_decl_file = syscalls/errstr_decl_linux.go
# Declare libc_strerror_r which is the Go name for strerror_r.
$(syscall_errstr_decl_file) \
syscalls/exec_helpers.go \
$(syscall_exec_os_file) \
+ $(syscall_wait_file) \
$(syscall_filesize_file) \
$(syscall_stat_file) \
$(syscall_sleep_file) \
export RUNTESTFLAGS; \
MAKE="$(MAKE)"; \
export MAKE; \
- rm -f $@-log; \
+ rm -f $@-testlog; \
prefix=`if test "$(@D)" = "regexp"; then echo regexp-test; else dirname $(@D); fi`; \
test "$${prefix}" != "." || prefix="$(@D)"; \
if test "$(use_dejagnu)" = "yes"; then \
$(SHELL) $(srcdir)/testsuite/gotest --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" $(GOTESTFLAGS); \
else \
- if $(SHELL) $(srcdir)/testsuite/gotest --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" $(GOTESTFLAGS) >>$@-log 2>&1; then \
+ if $(SHELL) $(srcdir)/testsuite/gotest --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" $(GOTESTFLAGS) >>$@-testlog 2>&1; then \
echo "PASS: $(@D)"; \
+ echo "PASS: $(@D)" >> libgo.sum; \
+ echo "PASS: $(@D)" >> $@-testlog; \
+ cat $@-testlog >> libgo.log; \
else \
- echo "FAIL: $(@D)"; \
- cat $@-log; \
+ echo "FAIL: $(@D)" >> $@-testlog; \
+ cat $@-testlog; \
+ echo "FAIL: $(@D)" >> libgo.sum; \
+ cat $@-testlog >> libgo.log; \
exit 1; \
fi; \
fi
# Build all packages before checking any.
CHECK_DEPS = libgo.la libgobegin.a \
- $(toolexeclib_DATA) \
- $(toolexeclibarchive_DATA) \
- $(toolexeclibcompress_DATA) \
- $(toolexeclibcontainer_DATA) \
- $(toolexeclibcrypto_DATA) \
- $(toolexeclibdebug_DATA) \
- $(toolexeclibencoding_DATA) \
- $(toolexeclibexp_DATA) \
$(toolexeclibgo_DATA) \
- $(toolexeclibhash_DATA) \
- $(toolexeclibhttp_DATA) \
- $(toolexeclibimage_DATA) \
- $(toolexeclibio_DATA) \
- $(toolexeclibos_DATA) \
- $(toolexeclibrpc_DATA) \
- $(toolexeclibruntime_DATA) \
- $(toolexeclibtesting_DATA)
+ $(toolexeclibgoarchive_DATA) \
+ $(toolexeclibgocompress_DATA) \
+ $(toolexeclibgocontainer_DATA) \
+ $(toolexeclibgocrypto_DATA) \
+ $(toolexeclibgocryptoopenpgp_DATA) \
+ $(toolexeclibgodebug_DATA) \
+ $(toolexeclibgoencoding_DATA) \
+ $(toolexeclibgoexp_DATA) \
+ $(toolexeclibgogo_DATA) \
+ $(toolexeclibgohash_DATA) \
+ $(toolexeclibgohttp_DATA) \
+ $(toolexeclibgoimage_DATA) \
+ $(toolexeclibgoindex_DATA) \
+ $(toolexeclibgoio_DATA) \
+ $(toolexeclibgomime_DATA) \
+ $(toolexeclibgonet_DATA) \
+ $(toolexeclibgoos_DATA) \
+ $(toolexeclibgopath_DATA) \
+ $(toolexeclibgorpc_DATA) \
+ $(toolexeclibgoruntime_DATA) \
+ $(toolexeclibgosync_DATA) \
+ $(toolexeclibgotesting_DATA)
# How to build a .gox file from a .lo file.
testing/quick/check \
testing/script/check
-CLEANFILES = *.go *.gox goc2c *.c s-version
+MOSTLYCLEAN_FILES = libgo.tail
+CLEANFILES = *.go *.gox goc2c *.c s-version libgo.sum libgo.log
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
$(CHECK)
.PHONY: mime/check
-net/net.lo: $(go_net_files) bytes.gox fmt.gox io.gox os.gox reflect.gox \
- strconv.gox strings.gox sync.gox syscall.gox
+net/net.lo: $(go_net_files) bytes.gox fmt.gox io.gox os.gox rand.gox \
+ reflect.gox strconv.gox strings.gox sync.gox syscall.gox \
+ time.gox
$(BUILDPACKAGE)
net/check: $(CHECK_DEPS)
$(CHECK)
crypto/cast5.lo: $(go_crypto_cast5_files) os.gox
$(BUILDPACKAGE)
-crypt/cast5/check: $(CHECK_DEPS)
+crypto/cast5/check: $(CHECK_DEPS)
@$(MKDIR_P) crypto/cast5
$(CHECK)
.PHONY: crypto/cast5/check
$(CHECK)
.PHONY: exp/eval/check
-go/ast.lo: $(go_go_ast_files) bytes.gox fmt.gox go/token.gox io.gox os.gox \
- reflect.gox unicode.gox utf8.gox
+go/ast.lo: $(go_go_ast_files) bytes.gox fmt.gox go/scanner.gox go/token.gox \
+ io.gox os.gox reflect.gox unicode.gox utf8.gox
$(BUILDPACKAGE)
go/ast/check: $(CHECK_DEPS)
@$(MKDIR_P) go/ast
testing/script.gox: testing/script.lo
$(BUILDGOX)
-check-recursive: $(TEST_PACKAGES)
+check-am:
+ @rm -f libgo.sum libgo.log
+ @echo "Test Run By $${USER} on `date`" > libgo.sum
+ @echo "Native configuration is $(host_triplet)" >> libgo.sum
+ @echo >> libgo.sum
+ @echo " === libgo tests ===" >> libgo.sum
+ @echo >> libgo.sum
+ @echo "Schedule of variations:" >> libgo.sum
+ @echo " unix" >> libgo.sum
+ @echo >> libgo.sum
+ @echo "Running target unix" >> libgo.sum
+ @echo "Running $(srcdir)/libgo.exp ..." >> libgo.sum
+ @cp libgo.sum libgo.log
+ @rm -f libgo.tail
+ @$(MAKE) -k $(TEST_PACKAGES); \
+ status=$$?; \
+ echo > libgo.tail; \
+ echo " === libgo summary ===" >> libgo.tail; \
+ echo >> libgo.tail; \
+ p=`grep -c PASS libgo.sum`; \
+ if test "$$p" != "0"; then \
+ echo "# of expected passes $$p" >> libgo.tail; \
+ fi; \
+ p=`grep -c FAIL libgo.sum`; \
+ if test "$$p" != "0"; then \
+ echo "# of unexpected failures $$p" >> libgo.tail; \
+ fi; \
+ cat libgo.tail >> libgo.sum; \
+ cat libgo.tail >> libgo.log; \
+ echo `echo $(GOC) | sed -e 's/ .*//'` `$(GOC) -v 2>&1 | grep " version" | sed -n -e 's/.* \(version.*$$\)/\1/p'` >> libgo.sum; \
+ echo >> libgo.log; \
+ echo "runtest completed at `date`" >> libgo.log; \
+ exit $$status
mostlyclean-local:
find . -name '*.lo' -print | xargs $(LIBTOOL) --mode=clean rm -f
find . -name '*.$(OBJEXT)' -print | xargs rm -f
+ find . -name '*-testlog' -print | xargs rm -f
clean-local:
find . -name '*.la' -print | xargs $(LIBTOOL) --mode=clean rm -f