3
0
Fork 0
forked from mirrors/nixpkgs

GCC 4.6: Add patch to fix GNU/Hurd builds.

svn path=/nixpkgs/trunk/; revision=32837
This commit is contained in:
Ludovic Courtès 2012-03-06 21:33:20 +00:00
parent 3214f4a844
commit 8bab00e0ad
2 changed files with 26 additions and 9 deletions

View file

@ -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";

View file

@ -0,0 +1,14 @@
GNU libc on GNU/Hurd doesn't define `__SIGRTMIN'.
From <http://patch-tracker.debian.org/patch/series/view/gcc-4.6/4.6.3-1/hurd-fixes.diff>.
--- 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