Commit f8560085 authored by Ian Lance Taylor's avatar Ian Lance Taylor

cmd/ld: really import runtime/cgo for external link

Fixes #8032.

LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/95580043
parent 80f0a7df
// Copyright 2014 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.
// Test that -static works when not using cgo. This test is in
// misc/cgo to take advantage of the testing framework support for
// when -static is expected to work.
package nocgo
func NoCgo() int {
c := make(chan int)
// The test is run with external linking, which means that
// goroutines will be created via the runtime/cgo package.
// Make sure that works.
go func() {
c <- 42
}()
return <-c
}
// Copyright 2014 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.
package nocgo
import "testing"
func TestNop(t *testing.T) {
i := NoCgo()
if i != 42 {
t.Errorf("got %d, want %d", i, 42)
}
}
......@@ -205,6 +205,8 @@ loadlib(void)
// whether to initialize the TLS. So give it one. This could
// be handled differently but it's an unusual case.
loadinternal("runtime/cgo");
if(i < ctxt->libraryp)
objfile(ctxt->library[i].file, ctxt->library[i].pkg);
// Pretend that we really imported the package.
s = linklookup(ctxt, "go.importpath.runtime/cgo.", 0);
......
......@@ -145,6 +145,9 @@ dragonfly-386 | dragonfly-amd64 | freebsd-386 | freebsd-amd64 | freebsd-arm | li
echo "No support for static linking found (lacks libc.a?), skip cgo static linking test."
else
go test -ldflags '-linkmode=external -extldflags "-static -pthread"' ../testtls || exit 1
go test ../nocgo || exit 1
go test -ldflags '-linkmode=external' ../nocgo || exit 1
go test -ldflags '-linkmode=external -extldflags "-static -pthread"' ../nocgo || exit 1
fi
;;
esac
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment