From aa0179744aad809d58c2cd34fe6e6a98bb3677e4 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Wed, 2 Jul 2014 12:11:45 +0200 Subject: [PATCH] go: fix build of 1.0.3 --- .../compilers/go/1_0-gcc-bug.patch | 19 +++++++++++++++++++ .../compilers/go/1_0-opt-error.patch | 12 ++++++++++++ pkgs/development/compilers/go/default.nix | 2 +- 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/compilers/go/1_0-gcc-bug.patch create mode 100644 pkgs/development/compilers/go/1_0-opt-error.patch diff --git a/pkgs/development/compilers/go/1_0-gcc-bug.patch b/pkgs/development/compilers/go/1_0-gcc-bug.patch new file mode 100644 index 00000000000..34cf7ab7456 --- /dev/null +++ b/pkgs/development/compilers/go/1_0-gcc-bug.patch @@ -0,0 +1,19 @@ +http://code.google.com/p/go/source/detail?r=8b13b2ec6b18 +--- a/src/cmd/cgo/gcc.go 2014-07-02 12:00:12.171796197 +0200 ++++ b/src/cmd/cgo/gcc.go 2014-07-02 12:01:57.844472754 +0200 +@@ -840,6 +840,15 @@ + func (p *Package) gccErrors(stdin []byte) string { + // TODO(rsc): require failure + args := p.gccCmd() ++ ++ // GCC 4.8.0 has a bug: it sometimes does not apply ++ // -Wunused-value to values that are macros defined in system ++ // headers. See issue 5118. Adding -Wsystem-headers avoids ++ // that problem. This will produce additional errors, but it ++ // doesn't matter because we will ignore all errors that are ++ // not marked for the cgo-test file. ++ args = append(args, "-Wsystem-headers") ++ + if *debugGcc { + fmt.Fprintf(os.Stderr, "$ %s <sym); o++) ++ for(o=0; osym); o++) + f->sym[o] = S; + + t->funct = f; diff --git a/pkgs/development/compilers/go/default.nix b/pkgs/development/compilers/go/default.nix index 9e74643e161..b9a76a6f82b 100644 --- a/pkgs/development/compilers/go/default.nix +++ b/pkgs/development/compilers/go/default.nix @@ -51,7 +51,7 @@ stdenv.mkDerivation { sed -i '/TestHostname/areturn' src/pkg/os/os_test.go ''; - patches = [ ./cacert.patch ]; + patches = [ ./cacert.patch ./1_0-opt-error.patch ./1_0-gcc-bug.patch ]; GOOS = "linux"; GOARCH = if stdenv.system == "i686-linux" then "386"