This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
libgo patch committed: Copy runtime_printf from other library
- From: Ian Lance Taylor <iant at google dot com>
- To: gcc-patches at gcc dot gnu dot org, gofrontend-dev at googlegroups dot com
- Date: Thu, 24 May 2012 13:45:39 -0700
- Subject: libgo patch committed: Copy runtime_printf from other library
This patch to libgo copies the implementation of runtime_printf from the
other Go library, and use that instead of calling the C library printf
function. This removes some unnecessary differences in shared files,
and removes some unnecessary stack splits. However, the main reason I'm
doing it is to pick up the support for sending the printf output into a
goroutine-specific buffer, used to implement runtime.Stack, coming up
next. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu.
Committed to mainline and 4.7 branch.
Ian
diff -r d99f020243e7 libgo/runtime/go-callers.c
--- a/libgo/runtime/go-callers.c Tue May 22 09:54:14 2012 -0700
+++ b/libgo/runtime/go-callers.c Tue May 22 14:50:06 2012 -0700
@@ -72,5 +72,8 @@
int
Callers (int skip, struct __go_open_array pc)
{
- return runtime_callers (skip, (uintptr *) pc.__values, pc.__count);
+ /* In the Go 1 release runtime.Callers has an off-by-one error,
+ which we can not correct because it would break backward
+ compatibility. Adjust SKIP here to be compatible. */
+ return runtime_callers (skip - 1, (uintptr *) pc.__values, pc.__count);
}