diff --git a/pkgs/development/compilers/gcc/4.6/default.nix b/pkgs/development/compilers/gcc/4.6/default.nix index d630f5562c57..b31f06514628 100644 --- a/pkgs/development/compilers/gcc/4.6/default.nix +++ b/pkgs/development/compilers/gcc/4.6/default.nix @@ -43,6 +43,16 @@ with stdenv.lib; with builtins; let version = "4.6.3"; + + patches = [ ] + ++ optional (cross != null) ./libstdc++-target.patch + ++ optional noSysDirs ./no-sys-dirs.patch + # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its + # target libraries and tools. + ++ optional langAda ./gnat-cflags.patch + ++ optional langVhdl ./ghdl-ortho-cflags.patch + ++ optional stdenv.isGNU ./hurd-sigrtmin.patch; + javaEcj = fetchurl { # The `$(top_srcdir)/ecj.jar' file is automatically picked up at # `configure' time. @@ -137,15 +147,7 @@ stdenv.mkDerivation ({ inherit langC langCC langFortran langJava langAda langGo; }; - patches = - [ ] - ++ optional (cross != null) ./libstdc++-target.patch - ++ optional noSysDirs ./no-sys-dirs.patch - # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its - # target libraries and tools. - ++ optional langAda ./gnat-cflags.patch - ++ optional langVhdl ./ghdl-ortho-cflags.patch - ; + inherit patches; postPatch = if (stdenv.system == "i586-pc-gnu" @@ -278,6 +280,7 @@ stdenv.mkDerivation ({ else "install"; crossAttrs = { + patches = patches ++ [ ./hurd-sigrtmin.patch ]; AR = "${stdenv.cross.config}-ar"; LD = "${stdenv.cross.config}-ld"; CC = "${stdenv.cross.config}-gcc"; diff --git a/pkgs/development/compilers/gcc/4.6/hurd-sigrtmin.patch b/pkgs/development/compilers/gcc/4.6/hurd-sigrtmin.patch new file mode 100644 index 000000000000..dc8236d2b99f --- /dev/null +++ b/pkgs/development/compilers/gcc/4.6/hurd-sigrtmin.patch @@ -0,0 +1,14 @@ +GNU libc on GNU/Hurd doesn't define `__SIGRTMIN'. +From . + +--- a/libgcc/generic-morestack.c 2011-12-19 21:14:52.000000000 +0100 ++++ b/libgcc/generic-morestack.c 2011-12-19 21:15:35.000000000 +0100 +@@ -507,7 +507,7 @@ + sigemptyset (&__morestack_initial_sp.mask); + + sigfillset (&__morestack_fullmask); +-#ifdef __GLIBC__ ++#if defined(__GLIBC__) && defined(__SIGRTMIN) + /* In glibc, the first two real time signals are used by the NPTL + threading library. By taking them out of the set of signals, we + avoiding copying the signal mask in pthread_sigmask. More