]> Cypherpunks.ru repositories - gostls13.git/commit
runtime/internal/startlinetest: work around shared buildmode linking issue
authorCherry Mui <cherryyz@google.com>
Tue, 20 Dec 2022 22:26:18 +0000 (17:26 -0500)
committerCherry Mui <cherryyz@google.com>
Thu, 22 Dec 2022 04:34:33 +0000 (04:34 +0000)
commitde6abd78893e91f26337eb399644b7a6bc3ea583
tree2d220da7d3b3695d70de20edeb797b8b8696da86
parent18baca6765f75c0973b9d90cb6123f1eb339ad4c
runtime/internal/startlinetest: work around shared buildmode linking issue

The runtime/internal/startlinetest package contains a call to a
function defined in runtime_test. Generally this is fine as this
package is only linked in for runtime_test. Except that for "go
install -buildmode=shared std", which include all packages in std,
including this test-only internal package. In this mode, the
caller is included in the linking but the callee is not, causing
linking error. Work around it by calling
runtime_test.callerStartLine via a function pointer. The function
pointer is only set in runtime_test. In the shared std build, the
function pointer will not be set, and this is fine.

Fixes #57334.

Change-Id: I7d871c50ce6599c6ea2802cf6e14bb749deab220
Reviewed-on: https://go-review.googlesource.com/c/go/+/458696
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
src/runtime/internal/startlinetest/func_amd64.go
src/runtime/internal/startlinetest/func_amd64.s
src/runtime/start_line_amd64_test.go