aboutsummaryrefslogtreecommitdiff
path: root/libgo
AgeCommit message (Collapse)AuthorFilesLines
2015-10-09Testsuite: add dg-{begin|end}-multiline-output commandsDavid Malcolm1-0/+1
This patch adds an easy way to write tests for expected multiline output. For example we can test carets and underlines for a particular diagnostic with: /* { dg-begin-multiline-output "" } typedef struct _GMutex GMutex; ^~~~~~~ { dg-end-multiline-output "" } */ multiline.exp is used by prune.exp; hence we need to load it before prune.exp via *load_gcc_lib* for the testsuites of the various non-"gcc" support libraries (e.g. boehm-gc). gcc/testsuite/ChangeLog: * lib/multiline.exp: New file. * lib/prune.exp: Load multiline.exp. (prune_gcc_output): Call into multiline.exp to handle any multiline output directives. * lib/libgo.exp: Load multiline.exp before prune.exp, using load_gcc_lib. boehm-gc/ChangeLog: * testsuite/lib/boehm-gc.exp: Load multiline.exp before prune.exp, using load_gcc_lib. libatomic/ChangeLog: * testsuite/lib/libatomic.exp: Load multiline.exp before prune.exp, using load_gcc_lib. libgomp/ChangeLog: * testsuite/lib/libgomp.exp: Load multiline.exp before prune.exp, using load_gcc_lib. libitm/ChangeLog: * testsuite/lib/libitm.exp: Load multiline.exp before prune.exp, using load_gcc_lib. libvtv/ChangeLog: * testsuite/lib/libvtv.exp: Load multiline.exp before prune.exp, using load_gcc_lib. From-SVN: r228655
2015-10-07re PR go/67874 (fd_unix.go does not build when there is fcntl64 and no fcntl ↵Ian Lance Taylor2-1/+33
syscall) PR go/67874 net, runtime: Call C library fcntl function rather than syscall.Syscall. Not all systems define a fcntl syscall; some only have fcntl64. Fixes GCC PR go/67874. Reviewed-on: https://go-review.googlesource.com/15497 From-SVN: r228576
2015-09-24runtime: Fix recent lfstack change on Solaris.Ian Lance Taylor1-1/+1
Reviewed-on: https://go-review.googlesource.com/14922 From-SVN: r228087
2015-09-23re PR go/67695 (Please improve POSIX shell compatibility of libgo/mksysinfo.sh)Ian Lance Taylor1-1/+1
PR go/67695 mksysinfo.sh: Use = with test rather than ==. Fixes GCC PR 67695. Reviewed-on: https://go-review.googlesource.com/14858 From-SVN: r228064
2015-09-23runtime: rewrite lfstack packing/unpacking to look more like that in GoIan Lance Taylor1-21/+37
Reviewed-on: https://go-review.googlesource.com/13037 From-SVN: r228057
2015-09-15libgo: If compiler can split-stack and linker can not, use -fno-split-stack.Ian Lance Taylor5-4/+23
If the compiler supports split-stack but we are using a gold linker that does not, as happens on PPC with current GCC but old gold, then we need to compile the Go code with -fno-split-stack to avoid a linker error avoid the inability to call from split-stack code to non-split-stack code. Reviewed-on: https://go-review.googlesource.com/14598 From-SVN: r227811
2015-09-15libgo: test linking split-stack and non-split-stack togetherIan Lance Taylor2-4/+53
PPC has split-stack support in current GCC, but old version of gold will reject attempts to link PPC split-stack and non-split-stack code together. Test for that, and don't compile the C code with -fsplit-stack if it doesn't work. Reviewed-on: https://go-review.googlesource.com/14594 From-SVN: r227802
2015-09-15runtime: Ignore stack sizes when deciding when to GC.Ian Lance Taylor1-1/+1
This restores https://golang.org/cl/6081043 which was lost accidentally when updating a new version of libgo in https://golang.org/cl/22440043 . Reviewed-on: https://go-review.googlesource.com/14569 From-SVN: r227784
2015-09-15libgo: don't provide ustat on arm64 GNU/LinuxIan Lance Taylor7-209/+357
This avoids linker warnings when linking against glibc, as apparently arm64 GNU/Linux does not support the ustat system call. Also update to automake 1.11.6, as that is the new GCC standard. Reviewed-on: https://go-review.googlesource.com/14567 From-SVN: r227777
2015-09-11libgo/runtime: return 0, not NULL, from mainIan Lance Taylor1-1/+1
Reviewed-on: https://go-review.googlesource.com/13421 From-SVN: r227673
2015-09-10libgo: Use stat_atim.go on Solaris 12+Ian Lance Taylor4-3/+42
From Rainer Orth. Solaris 12 changes the stat_[amc]tim members of struct stat from timestruc_t to timespec_t for XPG7 compatiblity, thus breaking the libgo build. The following patch checks for this change and uses the common stat_atim.go if appropriate. Reviewed-on: https://go-review.googlesource.com/14495 From-SVN: r227665
2015-08-20libgo/testsuite: another fix for killing the sleep processIan Lance Taylor1-3/+6
Avoid ps padding issues. Make sure we locate and kill just the sleep process. Reviewed-on: https://go-review.googlesource.com/13634 From-SVN: r227037
2015-08-07libgo/testsuite: don't call kill without argsIan Lance Taylor1-1/+4
If the timeout subshell has no child processes, the "xargs | kill" will fail. Ensure there is some input for kill before calling it. Reviewed-on: https://go-review.googlesource.com/13295 From-SVN: r226719
2015-08-04runtime: initialize variable to avoid compiler warningIan Lance Taylor1-1/+1
Reviewed-on: https://go-review.googlesource.com/13095 From-SVN: r226543
2015-08-03syscall: RawSockaddr fix for ppc64, ppc64leIan Lance Taylor5-5/+44
The struct RawSockaddr contains a field Data which should be uint8 on ppc64 and ppc64le, but is declared as int8 in gccgo. This change adds a two new files which contain the structure declaration for RawSockaddr, one with the correct types for for ppc64 and ppc64le, and the other for non-ppc64 platforms. Fixes golang/go#11469 Reviewed-on: https://go-review.googlesource.com/11946 From-SVN: r226533
2015-08-03libgo/testsuite: kill sleep process in gotestIan Lance Taylor1-1/+1
This change modifies the "gotest" shell script to kill all processes, including "sleep", spawned by the timeout subshell. This prevents the sleep process from living beyond the gotest process. BACKGROUND The "gotest" shell script spawns "sleep" processes in the background to kill off test cases that run past their specified timeout. There are commands included that appear to kill the sleep process, but they only kill the parent shell, causing the sleep process to reparent. The orphaned sleep process can cause issues when gotest is run under some build systems, such as Ninja [0]. The particular issue with Ninja is the method it uses to identify terminated processes: it creates a pipe, passes the write end to the child process, and waits for EOF. In the case of libgo/gotest, the orphaned sleep process inherits the pipe FD and keeps it open for 4 minutes by default. [0] https://github.com/martine/ninja Reviewed-on: https://go-review.googlesource.com/12227 From-SVN: r226526
2015-08-03re PR go/67101 (mprof.goc:408:5: error: calling ↵Ian Lance Taylor1-3/+1
‘__builtin_frame_address’ with a nonzero argument is unsafe [-Werror=frame-address]) PR go/67101 runtime: Remove call to __builtin_frame_address. __builtin_frame_address was only supposed to use nonzero arguments for debugging purposes. Calling it with nonzero arguments can have unpredictable results and uses are now marked unsafe when -Wframe-address is enabled. Reviewed-on: https://go-review.googlesource.com/13063 From-SVN: r226525
2015-07-29syscall: Fix to libgo/mksysinfo.shIan Lance Taylor1-3/+3
In a recent change to mksysinfo.sh, a space was missing on some lines which caused the libgo build to hang on some systems. This corrects that problem. Fixes golang/go#11924 Reviewed-on: https://go-review.googlesource.com/12835 From-SVN: r226366
2015-07-25syscall: Add ioctl consts from if_tun.hIan Lance Taylor1-0/+187
During the gccgo build define constants from some header files are processed by mksysinfo.sh and added to syscall.go. In some cases the constants are based on macros which are not processed correctly by mksysinfo.sh. This adds the support to generate the correct values for the TUN* constants from linux/if_tun.h. Fixes golang/go#11707 Reviewed-on: https://go-review.googlesource.com/12491 From-SVN: r226196
2015-07-14compiler,runtime: Determine if allocations need new pointers in runtime.Ian Lance Taylor1-9/+2
As the removed comment states, if the package being compiled played certain tricks with pointers that looked like integers, the compiler might allocate space for new pointers unnecessarily. Since the type information on the heap is now precise, this logic can be moved to the runtime. Reviewed-on: https://go-review.googlesource.com/11581 From-SVN: r225757
2015-07-13syscall: remove calls to Entersyscall & Exitsyscall in GetdentsIan Lance Taylor1-2/+0
The syscall for Getdents in syscall/libcall_linux.go called Entersyscall and Exitsyscall, causing the runtime_sched counts for goroutines to be incorrect. Inconsistent counts caused checkdead in runtime/proc.c to panic. Fixes golang/go#11406 Reviewed-on: https://go-review.googlesource.com/11761 From-SVN: r225745
2015-05-16libgo: Use __USING_SJLJ_EXCEPTIONS__ rather than configure test.Ian Lance Taylor4-121/+3
From Eric Botcazou. From-SVN: r223231
2015-05-11runtime: Fix runtime/pprof test when libgo is not optimized.Ian Lance Taylor1-3/+3
When libgo is not optimized the static function profilealloc in malloc.goc shows up in the stack trace. Rename it to runtime_profilealloc so that runtime/pprof.printStackRecord ignores it. From-SVN: r223006
2015-05-05re PR go/66016 (Accessing nil Func's name results in crash)Ian Lance Taylor1-0/+2
PR go/66016 runtime: Don't crash in Func.Name if the Func is nil. Related to Go issue 10696 From-SVN: r222816
2015-04-29runtime: Support -buildmode=c-shared.Ian Lance Taylor7-8/+333
These changes permit using the go tool from the upcoming Go 1.5 release with -buildmode=c-archive to build gccgo code into an archive file that can be linked with a C program. From-SVN: r222594
2015-04-24re PR go/65616 (libgobegin.a not compiled with -fPIC)Ian Lance Taylor2-13/+36
PR go/65616 libgo: Compile go-main, in libgobegin, with -fPIC. From-SVN: r222431
2015-04-17re PR go/65798 (runtime.Caller returns ok=true when return data is invalid)Ian Lance Taylor1-1/+1
PR go/65798 runtime: In Caller don't return ok == true if PC == 0. GCC PR 65798 reports that this can happen in some cases. From-SVN: r222204
2015-04-17re PR go/64683 (FAIL: runtime/pprof -- testing.go:278: The entry did not match)Ian Lance Taylor1-0/+4
PR go/64683 runtime/pprof: Assume function with no name is in runtime. GCC PR 65797 causes some of the runtime functions to be compiled with no name in the debug info. This in turn causes the runtime/pprof test to fail as reported in GCC PR 64683. There are no good choices when a function has no name in the debug info, but here we assume that if we see such a function while reading the runtime functions, we assume that it is also a runtime function. From-SVN: r222200
2015-04-17re PR go/64999 (s390x libgo test failure in TestMemoryProfiler)Ian Lance Taylor1-1/+14
PR go/64999 PR go/65180 runtime: Adjust libbacktrace PC value to what runtime.Callers expects. From Lynn Boger. From-SVN: r222196
2015-04-17re PR go/65755 (incorrect reflection of struct fields with gccgo)Ian Lance Taylor2-18/+1
PR go/65755 compiler, runtime, reflect: Use reflection string for type comparisons. Change the runtime and reflect libraries to always use only the type reflection string to determine whether two types are equal. It previously used the PkgPath and Name values for a type name, but that required a PkgPath that did not match the gc compiler. Change the compiler to use the same PkgPath value as the gc compiler in all cases. Change the compiler to put the receiver type in the reflection string for a type defined inside a method. From-SVN: r222194
2015-04-08mksysinfo.sh: Define Solaris zone_net_addr_t struct.Ian Lance Taylor1-0/+5
From Rainer Orth. From-SVN: r221920
2015-04-07re PR go/63731 (Fallback to netgo does not work)Ian Lance Taylor2-31/+89
PR go/63731 libgo: Build and install libnetgo.a libnetgo.a provides the net package built with the netgo tag enabled. This provides the netgo fallback solution for gccgo. This lib must be explicitly linked in using the -gccgoflags, so is not included by default. From-SVN: r221906
2015-03-31Remove some files that were accidentally committed in 2014.Ian Lance Taylor3-1612/+0
From-SVN: r221802
2015-03-31go/cmd/go: always link external test packages firstIan Lance Taylor3-5/+14
When linking complex packages that use both internal and external tests as well as many dependencies it is critical that the link order be external test package, internal test package, everything else. This change is a back (forward?) port of the same change that canonical have been maintaining on their fork of the go tool for gccgo. Now that gccgo uses the go tool from upstream, this patch should be applied both to the gofrontend and golang/go repos. From-SVN: r221800
2015-03-26re PR go/65587 (C package incomplete/not working for powerpc-linux-gnu)Ian Lance Taylor1-1/+1
PR go/65587 debug/elf: apply relocations for SHT_RELA/EM_PPC From-SVN: r221698
2015-03-26libgo: Fix go/runtime test failure on S390.Ian Lance Taylor2-1/+11
The tests run out of memory on 31-bit S390 systems because it does not have split stacks. From-SVN: r221681
2015-03-25re PR go/65570 (cannot find package "runtime/cgo")Ian Lance Taylor2-2/+2
PR go/65570 libgo/Makefile.am: add runtime/cgo to list of standard packages The runtime/cgo package is treated specially by the go tool. It needs to know that it is always available for gccgo. From-SVN: r221673
2015-03-24re PR go/65417 (debug/elf: lacks support for PPC relocations)Ian Lance Taylor3-0/+49
PR go/65417 debug/elf: support reading debug info from 32-bit PPC objects This is a backport of http://golang.org/7590 from the master Go library. From-SVN: r221644
2015-03-24re PR go/65462 (Use of 'go get' with gccgo is not finding dependencies ↵Ian Lance Taylor5-31/+65
correctly) PR go/65462 cmd: Fix dependencies for 'go get' with gccgo Problem described in GCC BZ 65462. Generate the list of the standard GO package names based on what was built into libgo in the libgo Makefile. Change the var name from reqPkgSrc to reqStdPkgSrc to clarify it only affects standard GO packages. Skip the attempted loading of a package only if it is a standard GO package and the flag is set indicating its source is not required to be available. This requires a corresponding change to gotools to build and link in the new file containing the list of standard GO package names that was generated by the libgo Makefile. gotools/: PR go/65462 * Makefile.am (go_cmd_go_files): Add $(libgodir)/zstdpkglist.go. * Makefile.in: Rebuild. From-SVN: r221643
2015-03-13libgo/README: Minor updates.Ian Lance Taylor1-9/+8
In particular, mention that libgo should not be stripped. From-SVN: r221427
2015-03-12go/build: cgo works on linux/arm64.Ian Lance Taylor1-0/+1
From-SVN: r221398
2015-03-12re PR go/65404 (cgo tool on powerpc-linux-gnu maybe incomplete)Ian Lance Taylor1-0/+1
PR go/65404 go/build: cgo works on linux/pcc. From-SVN: r221396
2015-03-10re PR go/65353 (unknown ptrSize for $GOARCH "arm64" on aarch64-linux-gnu)Ian Lance Taylor1-10/+32
PR go/65353. cmd/cgo: Add all gccgo GOARCH values to size maps. From-SVN: r221293
2015-03-09re PR go/65349 (go tool crashes, can't compile go code on 32bit linux systems)Ian Lance Taylor1-1/+3
PR go/65349 runtime: Don't crash if explicitly freeing small map. From-SVN: r221292
2015-03-09re PR go/65349 (go tool crashes, can't compile go code on 32bit linux systems)Ian Lance Taylor1-30/+6
PR go/65349 runtime: Don't call malloc from __go_file_line callback. When crashing, we call runtime_printcreatedby which calls __go_file_line which used to call the Go malloc. If we are crashing due to a signal due to heap corruption of some sort, the GO malloc lock might already be held, leading to a crash within a crash. Avoid that by assuming that the libbacktrace strings will stick around, as we already do in go-callers.c. From-SVN: r221291
2015-03-06libgo: Upgrade to Go 1.4.2 release.Ian Lance Taylor18-66/+170
From-SVN: r221245
2015-02-06mksysinfo.sh: Remove _zone_net_addr_t handling.Ian Lance Taylor1-5/+0
From Rainer Orth. The recent godump changes broke Solaris 11.1+ bootstrap in libgo: before, gen-sysinfo.so had type _zone_net_addr_t struct { zna_family uint16; zna_plen uint16; zna_addru struct { znau_addr6 _in6_addr; }; } which was filtered out by mksysinfo.sh due to the use of _in6_addr. After the change, there's now type _zone_net_addr_t struct { zna_family uint16; zna_plen uint16; zna_addru struct { znau_addr6 [16]byte; Godump_0_align [0]uint32; }; } instead, not filtered, but added a second time by the _zone_net_addr_t code in mksysinfo.sh, which leads to redefinition warnings/errors. Simply removing the old _zone_net_addr_t fragment fixes this and restores bootstrap. From-SVN: r220481
2015-02-06runtime: Add memprofilerate to GODEBUGIan Lance Taylor2-1/+19
Add memprofilerate as a value recognized in the GODEBUG env var. The value provided is used as the new setting for runtime.MemProfileRate, allowing the user to adjust memory profiling. From-SVN: r220470
2015-02-03go/types: Remove unused testdata files.Ian Lance Taylor13-1992/+0
The go/types package was removed in July 2013, but the testdata files were accidentally left behind. From-SVN: r220378
2015-01-23re PR go/64573 (Cmd.Start swallows error from fork()/clone())Ian Lance Taylor1-0/+1
PR go/64573 syscall: Restore line somehow lost in libgo merge. From-SVN: r220068