- 24 Mar, 2015 2 commits
-
-
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
Ian Lance Taylor committed -
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
Ian Lance Taylor committed
-
- 13 Mar, 2015 1 commit
-
-
In particular, mention that libgo should not be stripped. From-SVN: r221427
Ian Lance Taylor committed
-
- 12 Mar, 2015 2 commits
-
-
From-SVN: r221398
Ian Lance Taylor committed -
PR go/65404 go/build: cgo works on linux/pcc. From-SVN: r221396
Ian Lance Taylor committed
-
- 10 Mar, 2015 1 commit
-
-
PR go/65353. cmd/cgo: Add all gccgo GOARCH values to size maps. From-SVN: r221293
Ian Lance Taylor committed
-
- 09 Mar, 2015 2 commits
-
-
PR go/65349 runtime: Don't crash if explicitly freeing small map. From-SVN: r221292
Ian Lance Taylor committed -
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
Ian Lance Taylor committed
-
- 06 Mar, 2015 1 commit
-
-
From-SVN: r221245
Ian Lance Taylor committed
-
- 06 Feb, 2015 2 commits
-
-
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
Ian Lance Taylor committed -
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
Ian Lance Taylor committed
-
- 03 Feb, 2015 1 commit
-
-
The go/types package was removed in July 2013, but the testdata files were accidentally left behind. From-SVN: r220378
Ian Lance Taylor committed
-
- 23 Jan, 2015 3 commits
-
-
PR go/64573 syscall: Restore line somehow lost in libgo merge. From-SVN: r220068
Ian Lance Taylor committed -
re PR go/64725 (FAIL: libgo/runtime TestFinalizerType testing.go:278: #2: finalizer for type func(*int) didn't run) PR go/64725 runtime: Disable tests that require that a finalizer run. From-SVN: r220067
Ian Lance Taylor committed -
PR go/64595 runtime: Don't crash in runtime_callers if no debug info available. From-SVN: r220057
Ian Lance Taylor committed
-
- 21 Jan, 2015 1 commit
-
-
From-SVN: r219976
Ian Lance Taylor committed
-
- 20 Jan, 2015 2 commits
-
-
PR go/64683 runtime/pprof: Let memory profiler test pass if value not collected. Since gccgo's GC is not precise, the transient value may not be collected. Let the regexp match that case as well. From-SVN: r219900
Ian Lance Taylor committed -
All supported libgo 386 targets now have complex support in libffi. From Uros Bizjak. From-SVN: r219877
Ian Lance Taylor committed
-
- 19 Jan, 2015 2 commits
-
-
From-SVN: r219862
Richard Henderson committed -
From-SVN: r219831
Ian Lance Taylor committed
-
- 16 Jan, 2015 5 commits
-
-
The glibc setcontext incorrectly modifies %g7 on SPARC. From Richard Henderson. From-SVN: r219778
Ian Lance Taylor committed -
No longer needed now that libffi supports complex types. From-SVN: r219777
Ian Lance Taylor committed -
Change from using __go_set_closure to passing the closure value in the static chain field. Uses new backend support for setting the closure chain in a call from C via __builtin_call_with_static_chain. Uses new support in libffi for Go closures. The old architecture specific support for reflect.MakeFunc is removed, replaced by the libffi support. All work done by Richard Henderson. * go-gcc.cc (Gcc_backend::call_expression): Add chain_expr argument. (Gcc_backend::static_chain_variable): New method. From-SVN: r219776
Richard Henderson committed -
The version from the master repository seems to be appropriate for OpenSolaris but not for Solaris itself. Solaris 11.2 proper does not define TCP_KEEPIDLE or TCP_KEEPINTVL. From-SVN: r219749
Ian Lance Taylor committed -
A recent libffi upgrade caused the reflect test to fail on 386. The problem case is a function that returns an empty struct--a struct with no fields. The libffi library does not recognize the existence of empty structs, presumably since they can't happen in C. To work around this, the Go interface to the libffi library changes an empty struct to void. This normally works fine, but with the new libffi upgrade it fails for a function that returns an empty struct. On 386 a function that returns a struct is expected to pop the hidden pointer when it returns. So when we convert an empty struct to void, libffi is calling a function that pops the hidden pointer but does not expect that to happen. In the older version of libffi, this didn't matter, because the libffi code for 386 used a frame pointer, so the fact that the stack pointer was wonky when the function returned was ignored as the stack pointer was immediately replaced by the saved frame pointer. In the newer version of libffi, the 386 code is more efficient and does not use a frame pointer, and therefore it matters whether libffi expects the function to pop the hidden pointer or not. This patch changes libgo to convert an empty to a struct with a single field of type void. This seems to be enough to get the test cases working again. Of course the real fix would be to change libffi to handle empty types, but as libffi uses size == 0 as a marker for an uninitialized type, that would be a non-trivial change. From-SVN: r219701
Ian Lance Taylor committed
-
- 15 Jan, 2015 5 commits
-
-
From Uros Bizjak. From-SVN: r219691
Ian Lance Taylor committed -
From-SVN: r219685
Ian Lance Taylor committed -
From-SVN: r219629
Ian Lance Taylor committed -
From-SVN: r219628
Ian Lance Taylor committed -
This upgrades all of libgo other than the runtime package to the Go 1.4 release. In Go 1.4 much of the runtime was rewritten into Go. Merging that code will take more time and will not change the API, so I'm putting it off for now. There are a few runtime changes anyhow, to accomodate other packages that rely on minor modifications to the runtime support. The compiler changes slightly to add a one-bit flag to each type descriptor kind that is stored directly in an interface, which for gccgo is currently only pointer types. Another one-bit flag (gcprog) is reserved because it is used by the gc compiler, but gccgo does not currently use it. There is another error check in the compiler since I ran across it during testing. gotools/: * Makefile.am (go_cmd_go_files): Sort entries. Add generate.go. * Makefile.in: Rebuild. From-SVN: r219627
Ian Lance Taylor committed
-
- 10 Jan, 2015 1 commit
-
-
From-SVN: r219419
Ian Lance Taylor committed
-
- 09 Jan, 2015 1 commit
-
-
From-SVN: r219406
Ian Lance Taylor committed
-
- 08 Jan, 2015 1 commit
-
-
Don't look it up on PATH. This lets a go tool built as part of a GCC build use the gccgo from the same build. Also pass -c when assembling a .s file with gccgo. From-SVN: r219358
Ian Lance Taylor committed
-
- 06 Jan, 2015 1 commit
-
-
The new commands are not yet built. That will be done separately. Also include a few changes to go/build to support them. From-SVN: r219272
Ian Lance Taylor committed
-
- 05 Jan, 2015 1 commit
-
-
PR go/61871 runtime: Increase stack size on 64-bit non-split-stack systems. From Uros Bizjak. From-SVN: r219192
Ian Lance Taylor committed
-
- 23 Dec, 2014 1 commit
-
-
From-SVN: r219049
Ian Lance Taylor committed
-
- 17 Dec, 2014 1 commit
-
-
From Uros Bizjak. https://gcc.gnu.org/ml/gcc-patches/2014-12/msg01366.html From-SVN: r218819
Ian Lance Taylor committed
-
- 13 Dec, 2014 3 commits
-
-
PR go/61258 runtime: Don't crash when deleting zero-sized key. From-SVN: r218702
Ian Lance Taylor committed -
This patches in the Go 1.4 function, for convenience for people using the Go 1.4 go tool with mainline gccgo. From-SVN: r218700
Ian Lance Taylor committed -
Fix an unusual C to Go callback case. Newly created C threads call into Go code, forcing the Go code to allocate new M and G structures. While executing Go code, the stack is split. The Go code then returns. Returning from a Go callback is treated as entering a system call, so the G gcstack field is set to point to the Go stack. In this case, though, we were called from a newly created C thread, so we drop the extra M and G structures. The C thread then exits. Then a new C thread calls into Go code, reusing the previously created M and G. The Go code requires a larger stack frame, causing the old stack segment to be unmapped and a new stack segment allocated. At this point the gcstack field is pointing to the old stack segment. Then a garbage collection occurs. The garbage collector sees that the gcstack field is not nil, so it scans it as the first stack segment. Unfortunately it points to memory that was unmapped. So the program crashes. The fix is simple: when handling extra G structures created for callbacks from new C threads, clear the gcstack field. From-SVN: r218699
Ian Lance Taylor committed
-