summaryrefslogtreecommitdiff
path: root/libgo
Commit message (Collapse)AuthorAgeFilesLines
* runtime: Remove now unnecessary pad field from ParFor.ian2015-10-311006-30196/+86205
| | | | | | | | | It is not needed due to the removal of the ctx field. Reviewed-on: https://go-review.googlesource.com/16525 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229616 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler, reflect, runtime: remove zero field from type descriptorian2015-10-294-23/+3
| | | | | | | | | | | | Type descriptors picked up a zero field because the gc map implementation used it. However, it's since been dropped by the gc library. It was never used by gccgo. Drop it now in preparation for upgrading to the Go 1.5 library. Reviewed-on: https://go-review.googlesource.com/16486 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229546 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler, runtime: change type hash/equal to Go funcsian2015-10-2919-37/+111
| | | | | | | | | | | | | Change the type descriptor hash and equal functions from C code pointers to Go func values. This permits them to be set to a Go function closure. This is in preparation for the Go 1.5, so that we can use a closure for the hash/equal functions returned by the new reflect.ArrayOf function. Reviewed-on: https://go-review.googlesource.com/16485 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229541 138bc75d-0d04-0410-961f-82ee72b054a4
* Testsuite: add dg-{begin|end}-multiline-output commandsdmalcolm2015-10-091-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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228655 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/67874ian2015-10-072-1/+33
| | | | | | | | | | | | | 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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228576 138bc75d-0d04-0410-961f-82ee72b054a4
* runtime: Fix recent lfstack change on Solaris.ian2015-09-241-1/+1
| | | | | | | Reviewed-on: https://go-review.googlesource.com/14922 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228087 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/67695ian2015-09-231-1/+1
| | | | | | | | | | | mksysinfo.sh: Use = with test rather than ==. Fixes GCC PR 67695. Reviewed-on: https://go-review.googlesource.com/14858 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228064 138bc75d-0d04-0410-961f-82ee72b054a4
* runtime: rewrite lfstack packing/unpacking to look more like that in Goian2015-09-231-21/+37
| | | | | | | Reviewed-on: https://go-review.googlesource.com/13037 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228057 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo: If compiler can split-stack and linker can not, use -fno-split-stack.ian2015-09-155-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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227811 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo: test linking split-stack and non-split-stack togetherian2015-09-152-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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227802 138bc75d-0d04-0410-961f-82ee72b054a4
* runtime: Ignore stack sizes when deciding when to GC.ian2015-09-151-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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227784 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo: don't provide ustat on arm64 GNU/Linuxian2015-09-157-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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227777 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo/runtime: return 0, not NULL, from mainian2015-09-111-1/+1
| | | | | | | Reviewed-on: https://go-review.googlesource.com/13421 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227673 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo: Use stat_atim.go on Solaris 12+ian2015-09-104-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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227665 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo/testsuite: another fix for killing the sleep processian2015-08-201-3/+6
| | | | | | | | | | Avoid ps padding issues. Make sure we locate and kill just the sleep process. Reviewed-on: https://go-review.googlesource.com/13634 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227037 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo/testsuite: don't call kill without argsian2015-08-071-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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226719 138bc75d-0d04-0410-961f-82ee72b054a4
* runtime: initialize variable to avoid compiler warningian2015-08-041-1/+1
| | | | | | | Reviewed-on: https://go-review.googlesource.com/13095 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226543 138bc75d-0d04-0410-961f-82ee72b054a4
* syscall: RawSockaddr fix for ppc64, ppc64leian2015-08-035-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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226533 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo/testsuite: kill sleep process in gotestian2015-08-031-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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226526 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/67101ian2015-08-031-3/+1
| | | | | | | | | | | | | | 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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226525 138bc75d-0d04-0410-961f-82ee72b054a4
* syscall: Fix to libgo/mksysinfo.shian2015-07-291-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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226366 138bc75d-0d04-0410-961f-82ee72b054a4
* syscall: Add ioctl consts from if_tun.hian2015-07-251-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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226196 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler,runtime: Determine if allocations need new pointers in runtime.ian2015-07-141-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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225757 138bc75d-0d04-0410-961f-82ee72b054a4
* syscall: remove calls to Entersyscall & Exitsyscall in Getdentsian2015-07-131-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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225745 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo: Use __USING_SJLJ_EXCEPTIONS__ rather than configure test.ian2015-05-164-121/+3
| | | | | | | From Eric Botcazou. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223231 138bc75d-0d04-0410-961f-82ee72b054a4
* runtime: Fix runtime/pprof test when libgo is not optimized.ian2015-05-111-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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223006 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/66016ian2015-05-051-0/+2
| | | | | | | | | runtime: Don't crash in Func.Name if the Func is nil. Related to Go issue 10696 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222816 138bc75d-0d04-0410-961f-82ee72b054a4
* runtime: Support -buildmode=c-shared.ian2015-04-297-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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222594 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/65616ian2015-04-242-13/+36
| | | | | | | libgo: Compile go-main, in libgobegin, with -fPIC. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222431 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/65798ian2015-04-171-1/+1
| | | | | | | | | runtime: In Caller don't return ok == true if PC == 0. GCC PR 65798 reports that this can happen in some cases. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222204 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/64683ian2015-04-171-0/+4
| | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222200 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/64999ian2015-04-171-1/+14
| | | | | | | | | | PR go/65180 runtime: Adjust libbacktrace PC value to what runtime.Callers expects. From Lynn Boger. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222196 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/65755ian2015-04-172-18/+1
| | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222194 138bc75d-0d04-0410-961f-82ee72b054a4
* mksysinfo.sh: Define Solaris zone_net_addr_t struct.ian2015-04-081-0/+5
| | | | | | | From Rainer Orth. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221920 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/63731ian2015-04-072-31/+89
| | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221906 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove some files that were accidentally committed in 2014.ian2015-03-313-1612/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221802 138bc75d-0d04-0410-961f-82ee72b054a4
* go/cmd/go: always link external test packages firstian2015-03-313-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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221800 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/65587ian2015-03-261-1/+1
| | | | | | | debug/elf: apply relocations for SHT_RELA/EM_PPC git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221698 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo: Fix go/runtime test failure on S390.ian2015-03-262-1/+11
| | | | | | | | The tests run out of memory on 31-bit S390 systems because it does not have split stacks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221681 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/65570ian2015-03-252-2/+2
| | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221673 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/65417ian2015-03-243-0/+49
| | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221644 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/65462ian2015-03-245-31/+65
| | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221643 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo/README: Minor updates.ian2015-03-131-9/+8
| | | | | | | In particular, mention that libgo should not be stripped. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221427 138bc75d-0d04-0410-961f-82ee72b054a4
* go/build: cgo works on linux/arm64.ian2015-03-121-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221398 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/65404ian2015-03-121-0/+1
| | | | | | | go/build: cgo works on linux/pcc. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221396 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/65353.ian2015-03-101-10/+32
| | | | | | | cmd/cgo: Add all gccgo GOARCH values to size maps. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221293 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/65349ian2015-03-091-1/+3
| | | | | | | runtime: Don't crash if explicitly freeing small map. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221292 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/65349ian2015-03-091-30/+6
| | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221291 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo: Upgrade to Go 1.4.2 release.ian2015-03-0618-66/+170
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221245 138bc75d-0d04-0410-961f-82ee72b054a4
* mksysinfo.sh: Remove _zone_net_addr_t handling.ian2015-02-061-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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@220481 138bc75d-0d04-0410-961f-82ee72b054a4