This patch to libgo exports the cgoCheck functions. The functions cgoCheckPointer and cgoCheckResult are called by code generated by cgo. That means that we need to export them using go:linkname, as otherwise they are local symbols. The cgo code currently uses weak references to only call the symbols if they are defined, which is why it has been working--the cgo code has not been doing any checks. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline.
Ian
Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 255346) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -1949a203fca0c8bde6f2690ebc36427c5e3953c7 +338f7434175bb71f3c8905e9ad7f480aec3afee6 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. Index: libgo/go/runtime/cgocall.go =================================================================== --- libgo/go/runtime/cgocall.go (revision 255340) +++ libgo/go/runtime/cgocall.go (working copy) @@ -11,6 +11,10 @@ import ( "unsafe" ) +// Functions called by cgo-generated code. +//go:linkname cgoCheckPointer runtime.cgoCheckPointer +//go:linkname cgoCheckResult runtime.cgoCheckResult + // Pointer checking for cgo code. // We want to detect all cases where a program that does not use