From: Joel Sing Date: Fri, 8 Jan 2016 12:22:12 +0000 (+1100) Subject: cmd/dist: fix cgoTestSO on FreeBSD amd64 with GOHOSTARCH=386 X-Git-Tag: go1.6beta2~64 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=beb1741ae380d4e196f9d6e2e720fc0dc007ef00;p=gostls13.git cmd/dist: fix cgoTestSO on FreeBSD amd64 with GOHOSTARCH=386 The cgoTestSO test currently fails when run on FreeBSD amd64 with GOHOSTARCH=386. This is due to it failing to find the shared object. On FreeBSD 64-bit architectures, the linker for 32-bit objects looks for a separate environment variable. Export both LD_LIBRARY_PATH and LD_32_LIBRARY_PATH on FreeBSD when GOHOSTARCH=386. Update issue #13873. Change-Id: I1fb20dd04eb2007061768b2e4530886521813d42 Reviewed-on: https://go-review.googlesource.com/18420 Reviewed-by: Ian Lance Taylor Run-TryBot: Brad Fitzpatrick Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go index 679c23bb22..9e0412e05b 100644 --- a/src/cmd/dist/test.go +++ b/src/cmd/dist/test.go @@ -913,6 +913,12 @@ func (t *tester) cgoTestSO(dt *distTest, testpath string) error { s = "DYLD_LIBRARY_PATH" } cmd.Env = mergeEnvLists([]string{s + "=."}, os.Environ()) + + // On FreeBSD 64-bit architectures, the 32-bit linker looks for + // different environment variables. + if t.goos == "freebsd" && t.gohostarch == "386" { + cmd.Env = mergeEnvLists([]string{"LD_32_LIBRARY_PATH=."}, cmd.Env) + } } return cmd.Run() }