From: Ian Lance Taylor Date: Fri, 1 Apr 2016 15:33:25 +0000 (-0700) Subject: runtime/cgo: only build _cgo_callers if x_cgo_callers is defined X-Git-Tag: go1.7beta1~955 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=58394fd7d56ff233a5e32aa3001ec8ad5988e8f3;p=gostls13.git runtime/cgo: only build _cgo_callers if x_cgo_callers is defined Fixes a problem when using the external linker on Solaris. The Solaris external linker still doesn't work due to issue #14957. The problem is, for example, with `go test cmd/objdump`: objdump_test.go:71: go build fmthello.go: exit status 2 # command-line-arguments /var/gcc/iant/go/pkg/tool/solaris_amd64/link: running gcc failed: exit status 1 Undefined first referenced symbol in file x_cgo_callers /tmp/go-link-355600608/go.o ld: fatal: symbol referencing errors collect2: error: ld returned 1 exit status Change-Id: I54917cfd5c288ee77ea25c439489bd2c9124fe73 Reviewed-on: https://go-review.googlesource.com/21392 Run-TryBot: Ian Lance Taylor Reviewed-by: David Crawshaw --- diff --git a/src/runtime/cgo/callbacks.go b/src/runtime/cgo/callbacks.go index 4f31d1c82c..47bd2b0edc 100644 --- a/src/runtime/cgo/callbacks.go +++ b/src/runtime/cgo/callbacks.go @@ -92,13 +92,5 @@ var _cgo_sys_thread_create = &x_cgo_sys_thread_create var x_cgo_notify_runtime_init_done byte var _cgo_notify_runtime_init_done = &x_cgo_notify_runtime_init_done -// Calls the traceback function passed to SetCgoTraceback. - -//go:cgo_import_static x_cgo_callers -//go:linkname x_cgo_callers x_cgo_callers -//go:linkname _cgo_callers _cgo_callers -var x_cgo_callers byte -var _cgo_callers = &x_cgo_callers - //go:cgo_export_static _cgo_topofstack //go:cgo_export_dynamic _cgo_topofstack diff --git a/src/runtime/cgo/callbacks_traceback.go b/src/runtime/cgo/callbacks_traceback.go new file mode 100644 index 0000000000..f754846722 --- /dev/null +++ b/src/runtime/cgo/callbacks_traceback.go @@ -0,0 +1,17 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build linux + +package cgo + +import _ "unsafe" // for go:linkname + +// Calls the traceback function passed to SetCgoTraceback. + +//go:cgo_import_static x_cgo_callers +//go:linkname x_cgo_callers x_cgo_callers +//go:linkname _cgo_callers _cgo_callers +var x_cgo_callers byte +var _cgo_callers = &x_cgo_callers