- 03 Oct, 2014 2 commits
-
-
PR go/61877 refect: fix direct call of variadic method value As reported in bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61877 gcc mainline has regressed in this. This CL adds the tests proposed for the main Go repository: https://codereview.appspot.com/151280043/ https://codereview.appspot.com/152060043/ restores the code from the amd64/386 path that makes this work and was lost when the Go 1.3 stdlib was merged and changes the FFI path to call into the same helper code as the amd64/386 path. I've only tested this on amd64 but I did test a version that was patched to unconditionally take the FFI path. From-SVN: r215859
Ian Lance Taylor committed -
Fixes issue 38. From-SVN: r215832
Ian Lance Taylor committed
-
- 29 Sep, 2014 1 commit
-
-
This supports clang, which by default issues warnings about unused command line arguments, a habit that interacts poorly with configure scripts. From-SVN: r215699
Ian Lance Taylor committed
-
- 22 Sep, 2014 1 commit
-
-
If the compiler inlines this function into kickoff, it may reuse the TLS block address to load g. However, this is not necessarily correct, as the call to g->entry in kickoff may cause the TLS address to change. If the wrong value is loaded for g->status in runtime_goexit, it may cause a runtime panic. By marking the function as noinline we prevent the compiler from reusing the TLS address. From-SVN: r215484
Ian Lance Taylor committed
-
- 20 Sep, 2014 1 commit
-
-
From-SVN: r215423
Ian Lance Taylor committed
-
- 05 Sep, 2014 2 commits
-
-
Without this we weren't supporting the standard Cloneflags field of SysProcAttr. From-SVN: r214972
Ian Lance Taylor committed -
From-SVN: r214965
Ian Lance Taylor committed
-
- 03 Sep, 2014 1 commit
-
-
* go-gcc.cc (Gcc_backend::implicit_variable): Remove init parameter. Add is_hidden parameter. (Gcc_backend::implicit_variable_set_init): New method. (Gcc_backend::implicit_variable_reference): New method. From-SVN: r214894
Chris Manghane committed
-
- 15 Aug, 2014 1 commit
-
-
From-SVN: r214048
Ian Lance Taylor committed
-
- 13 Aug, 2014 1 commit
-
-
The Go frontend passes closures through to functions using the functions __go_set_closure and __go_get_closure. The expectation is that there are no function calls between set_closure and get_closure. However, it turns out that there can be function calls if some of the function arguments require type conversion to an interface type. Converting to an interface type can allocate memory, and that can in turn trigger a garbage collection, and that can in turn call pool cleanup functions that may call __go_set_closure. So the called function can see the wrong closure value, which is bad. This patch fixes the problem in two different ways. First, we move all type conversions in function arguments into temporary variables so that they can not appear before the call to __go_set_closure. (This required shifting the flatten phase after the simplify_thunk phase, since the latter expects to work with unconverted argument types.) Second, we fix the memory allocation function to preserve the closure value across any possible garbage collection. A test case is the libgo database/sql check run with the environment variable GOGC set to 1. From-SVN: r213932
Ian Lance Taylor committed
-
- 04 Aug, 2014 1 commit
-
-
Based on patch from Rainer Orth. From-SVN: r213599
Ian Lance Taylor committed
-
- 02 Aug, 2014 1 commit
-
-
PR other/61895 runtime: Ignore small argv[0] file for backtrace. Reportedly in some cases Docker starts processes with argv[0] pointing to an empty file. That would cause libgo to pass that empty file to libbacktrace, which would then fail to do any backtraces. Everything should work fine if libbacktrace falls back to /proc/self/exe. This patch to libgo works around the problem by ignoring argv[0] if it is a small file, or if stat fails. This is not a perfect fix but it's an unusual problem. From-SVN: r213513
Ian Lance Taylor committed
-
- 20 Jul, 2014 3 commits
-
-
This variable is unused apparently as a result of local changes. gccgo accepts this variable declaration, but other frontends may not. From-SVN: r212873
Ian Lance Taylor committed -
This adds an import of the runtime package to fix compilation of the TestStopCPUProfilingWithProfilerOff function. The gccgo compiler should never have accepted this. The patch for the comiler is http://codereview.appspot.com/116960043 . The test is https://codereview.appspot.com/118000043 . From-SVN: r212870
Ian Lance Taylor committed -
From-SVN: r212862
Ian Lance Taylor committed
-
- 19 Jul, 2014 3 commits
-
-
Keep using the existing 386 and amd64 code on those archs, since it is more efficient. From-SVN: r212853
Ian Lance Taylor committed -
From-SVN: r212840
Ian Lance Taylor committed -
From-SVN: r212837
Ian Lance Taylor committed
-
- 12 Jul, 2014 1 commit
-
-
This revision renames several files in the runtime directory from .c to .goc. From-SVN: r212472
Ian Lance Taylor committed
-
- 11 Jul, 2014 2 commits
-
-
Rename in order to avoid confusion with the new runtime/iface.goc file in the Go library master sources. From-SVN: r212447
Ian Lance Taylor committed -
The flags were used by the reflect package in the past, but not for a couple of years now. From-SVN: r212446
Ian Lance Taylor committed
-
- 02 Jul, 2014 1 commit
-
-
PR go/61620 runtime: Don't free tiny blocks in map deletion. The memory allocator now has a special case for tiny blocks (smaller than 16 bytes) and they can not be explicitly freed. From-SVN: r212233
Ian Lance Taylor committed
-
- 01 Jul, 2014 1 commit
-
-
This introduces the "bench" build target, which can be used to run all benchmarks. It is also possible to run subsets of benchmarks with the "package/check" build targets by setting GOBENCH to a matching regex. From-SVN: r212212
Ian Lance Taylor committed
-
- 24 Jun, 2014 1 commit
-
-
From-SVN: r211961
Ian Lance Taylor committed
-
- 13 Jun, 2014 2 commits
-
-
PR go/52583 runtime: Stop backtrace at a few recognized functions. On x86_64 Solaris the makecontext function does not properly indicate that it is at the top of the stack. Attempting to unwind the stack past a call to makecontext tends to crash. This patch changes libgo to look for certain functions that are always found at the top of the stack, and to stop unwinding when it reaches one of those functions. There is never anything interesting past these functions--that is, there is never any code written by the user. From-SVN: r211640
Ian Lance Taylor committed -
PR go/61498 runtime: Always set gcnext_sp to pointer-aligned address. The gcnext_sp field is only used on systems that do not use split stacks. It marks the bottom of the stack for the garbage collector. This change makes sure that the stack bottom is always aligned to a pointer value. Previously the garbage collector would align all the addresses that it scanned, but it now expects them to be aligned before scanning. From-SVN: r211639
Ian Lance Taylor committed
-
- 10 Jun, 2014 1 commit
-
-
From-SVN: r211394
Ian Lance Taylor committed
-
- 06 Jun, 2014 1 commit
-
-
The next revision, 19185, renames several runtime files, and will be handled in a separate change. From-SVN: r211328
Ian Lance Taylor committed
-
- 04 Jun, 2014 1 commit
-
-
This revision was committed January 7, 2014. The next revision deleted runtime/mfinal.c. That will be done in a subsequent merge. This merge changes type descriptors to add a zero field, pointing to a zero value for that type. This is implemented as a common variable. * go-gcc.cc (Gcc_backend::implicit_variable): Add is_common and alignment parameters. Permit init parameter to be NULL. From-SVN: r211249
Ian Lance Taylor committed
-
- 30 May, 2014 1 commit
-
-
Based on a patch from Peter Collingbourne. From-SVN: r211081
Ian Lance Taylor committed
-
- 29 May, 2014 2 commits
-
-
This adds the --without-libatomic configure option, which is useful for building libgo with a non-gcc compiler. It disables libgo's dependency on libatomic. This is useful for platforms where it is known that the libatomic runtime functions are not required, or where the compiler automatically provides an implementation of them. From-SVN: r211065
Ian Lance Taylor committed -
LLVM's code generator does not currently support split stacks for vararg functions, so we disable split stacks for the only function that uses this feature under Clang. This appears to be OK as long as: - this function only calls non-inlined, internal-linkage (hence no dynamic loader) functions compiled with split stacks (i.e. go_vprintf), which can allocate more stack space as required; - this function itself does not occupy more than BACKOFF bytes of stack space (see libgcc/config/i386/morestack.S). These conditions are currently known to be satisfied by Clang on x86-32 and x86-64. Note that signal handlers receive slightly less stack space than they would normally do if they happen to be called while this function is being run. If this turns out to be a problem we could consider increasing BACKOFF. From-SVN: r211037
Ian Lance Taylor committed
-
- 28 May, 2014 1 commit
-
-
This includes the use of __complex and __builtin_ functions where unprefixed entities would suffice, and the use of a union for bit-casting between types. From-SVN: r211036
Ian Lance Taylor committed
-
- 27 May, 2014 1 commit
-
-
Result of runtime_write is ignored, causing an unused-result result warning (error in my case, with -Werror=unused-result). From-SVN: r210987
Ian Lance Taylor committed
-
- 07 May, 2014 2 commits
-
-
From-SVN: r210192
Ian Lance Taylor committed -
From-SVN: r210189
Ian Lance Taylor committed
-
- 01 May, 2014 1 commit
-
-
The Go compiler may have different values for these than the C compiler. From-SVN: r209967
Ian Lance Taylor committed
-
- 25 Apr, 2014 1 commit
-
-
PR go/60931 runtime: Fix garbage collector issue with non 4kB system page size The go garbage collector tracks memory in terms of 4kB pages. Most of the code checks getpagesize() at runtime and does the right thing. On a 64kB ppc64 box I see SEGVs in long running processes which has been diagnosed as a bug in scavengelist. scavengelist does a madvise(MADV_DONTNEED) without rounding the arguments to the system page size. A strace of one of the failures shows the problem: madvise(0xc211030000, 4096, MADV_DONTNEED) = 0 The kernel rounds the length up to 64kB and we mark 60kB of valid data as no longer needed. Round start up to a system page and end down before calling madvise. From-SVN: r209777
Ian Lance Taylor committed
-
- 17 Apr, 2014 2 commits
-
-
A gccgo language extension allows a function to be declared multiple times. Avoid the use of this extension by dedeplicating declarations in mksyscall.awk. From-SVN: r209508
Ian Lance Taylor committed -
The use of this syntax was eliminated upstream in Go 992248b2adc2, but this particular use slipped through somehow. From-SVN: r209506
Ian Lance Taylor committed
-