diff options
author | Jude Taylor <me@jude.bio> | 2015-10-19 16:14:30 -0700 |
---|---|---|
committer | Jude Taylor <me@jude.bio> | 2015-10-19 16:14:36 -0700 |
commit | f77bf46c1e705934a00c52d90cc62a76fbb1f6b5 (patch) | |
tree | 6a8a2ba9f291f6e7a49f89c8f48222e2cb400716 /pkgs/development/compilers | |
parent | 48d837f31004f33683df1af1b074ccf547658110 (diff) | |
download | nixlib-f77bf46c1e705934a00c52d90cc62a76fbb1f6b5.tar nixlib-f77bf46c1e705934a00c52d90cc62a76fbb1f6b5.tar.gz nixlib-f77bf46c1e705934a00c52d90cc62a76fbb1f6b5.tar.bz2 nixlib-f77bf46c1e705934a00c52d90cc62a76fbb1f6b5.tar.lz nixlib-f77bf46c1e705934a00c52d90cc62a76fbb1f6b5.tar.xz nixlib-f77bf46c1e705934a00c52d90cc62a76fbb1f6b5.tar.zst nixlib-f77bf46c1e705934a00c52d90cc62a76fbb1f6b5.zip |
go-1.5: fix build on darwin, set to default version for all platforms
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r-- | pkgs/development/compilers/go/1.4.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/go/1.5.nix | 16 | ||||
-rw-r--r-- | pkgs/development/compilers/go/strip.patch | 12 |
3 files changed, 27 insertions, 3 deletions
diff --git a/pkgs/development/compilers/go/1.4.nix b/pkgs/development/compilers/go/1.4.nix index 413320d2d454..408759013e80 100644 --- a/pkgs/development/compilers/go/1.4.nix +++ b/pkgs/development/compilers/go/1.4.nix @@ -72,6 +72,8 @@ stdenv.mkDerivation rec { sed -i '/TestResolveTCPAddr/areturn' src/net/tcp_test.go sed -i '/TestResolveUDPAddr/areturn' src/net/udp_test.go + sed -i '/TestCgoExternalThreadSIGPROF/areturn' src/runtime/crash_cgo_test.go + touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd ''; diff --git a/pkgs/development/compilers/go/1.5.nix b/pkgs/development/compilers/go/1.5.nix index 3858d2566f44..ccbb50f42d10 100644 --- a/pkgs/development/compilers/go/1.5.nix +++ b/pkgs/development/compilers/go/1.5.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchurl, tzdata, iana_etc, go_1_4, runCommand , perl, which, pkgconfig, patch , pcre -, Security }: +, Security, Foundation }: let goBootstrap = runCommand "go-bootstrap" {} '' @@ -25,7 +25,9 @@ stdenv.mkDerivation rec { # perl is used for testing go vet nativeBuildInputs = [ perl which pkgconfig patch ]; buildInputs = [ pcre ]; - propagatedBuildInputs = lib.optional stdenv.isDarwin Security; + propagatedBuildInputs = lib.optionals stdenv.isDarwin [ + Security Foundation + ]; # I'm not sure what go wants from its 'src', but the go installation manual # describes an installation keeping the src. @@ -67,18 +69,26 @@ stdenv.mkDerivation rec { '' + lib.optionalString stdenv.isLinux '' sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/time/zoneinfo_unix.go '' + lib.optionalString stdenv.isDarwin '' + substituteInPlace src/race.bash --replace \ + "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true + sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go sed -i '/TestRead0/areturn' src/os/os_test.go sed -i '/TestSystemRoots/areturn' src/crypto/x509/root_darwin_test.go + sed -i '/TestDisasmExtld/areturn' src/cmd/objdump/objdump_test.go + touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd ''; patches = [ ./cacert-1.5.patch ./remove-tools-1.5.patch - ]; + ] + # -ldflags=-s is required to compile on Darwin, see + # https://github.com/golang/go/issues/11994 + ++ stdenv.lib.optional stdenv.isDarwin ./strip.patch; GOOS = if stdenv.isDarwin then "darwin" else "linux"; GOARCH = if stdenv.isDarwin then "amd64" diff --git a/pkgs/development/compilers/go/strip.patch b/pkgs/development/compilers/go/strip.patch new file mode 100644 index 000000000000..7b036802d51c --- /dev/null +++ b/pkgs/development/compilers/go/strip.patch @@ -0,0 +1,12 @@ +diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go +index 0b14725..a7608ce 100644 +--- a/src/cmd/go/build.go ++++ b/src/cmd/go/build.go +@@ -2310,6 +2310,7 @@ func (gcToolchain) ld(b *builder, root *action, out string, allactions []*action + } + } + var ldflags []string ++ ldflags = append(ldflags, "-s") + if buildContext.InstallSuffix != "" { + ldflags = append(ldflags, "-installsuffix", buildContext.InstallSuffix) + } |