diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2019-03-07 20:36:03 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2019-03-07 20:37:43 +0100 |
| commit | 4b69c3cbaccd51b7ea719e7bd756d680e825988d (patch) | |
| tree | f73f4504fccb75ef084a9f311fd21cc627f8f38c /sys | |
| parent | 5fb683f0dacad8149e6702cac650c81474fbfcf7 (diff) | |
pkg/runtest: make tests pass on freebsd
The problem is stupid: <endian.h> should be included as <sys/endian.h> on freebsd.
Pass actual host OS to executor build as HOSTGOOS and use it to figure out
how we should include this header.
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/targets/targets.go | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/targets/targets.go b/sys/targets/targets.go index 4f569a778..37737f16e 100644 --- a/sys/targets/targets.go +++ b/sys/targets/targets.go @@ -383,6 +383,13 @@ func init() { for _, target := range List["test"] { target.CCompiler = List[goos][runtime.GOARCH].CCompiler target.CPP = List[goos][runtime.GOARCH].CPP + target.BuildOS = goos + if runtime.GOOS == "freebsd" && runtime.GOARCH == "amd64" && target.PtrSize == 4 { + // -m32 alone does not work on freebsd with gcc. + // TODO(dvyukov): consider switching to clang on freebsd instead. + target.CFlags = append(target.CFlags, "-B/usr/lib32") + target.CrossCFlags = append(target.CrossCFlags, "-B/usr/lib32") + } } } @@ -410,9 +417,6 @@ func initTarget(target *Target, OS, arch string) { if target.BuildOS == "" { target.BuildOS = OS } - if OS == "test" { - target.BuildOS = "linux" - } if runtime.GOOS != target.BuildOS { // Spoil native binaries if they are not usable, so that nobody tries to use them later. target.CCompiler = fmt.Sprintf("cant-build-%v-on-%v", target.OS, runtime.GOOS) |
