summary refs log tree commit diff
path: root/pkgs/development/compilers
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-01-29 11:44:08 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-01-29 11:44:08 +0100
commit5f638a4e535e1e384fe7c91b9874893e0a6e972a (patch)
tree05c6c913c23bbf381619f6f93b33a1161ee8e5ae /pkgs/development/compilers
parenteeb116a2ebfade225e2846ace6182760a8fb7b55 (diff)
downloadnixlib-5f638a4e535e1e384fe7c91b9874893e0a6e972a.tar
nixlib-5f638a4e535e1e384fe7c91b9874893e0a6e972a.tar.gz
nixlib-5f638a4e535e1e384fe7c91b9874893e0a6e972a.tar.bz2
nixlib-5f638a4e535e1e384fe7c91b9874893e0a6e972a.tar.lz
nixlib-5f638a4e535e1e384fe7c91b9874893e0a6e972a.tar.xz
nixlib-5f638a4e535e1e384fe7c91b9874893e0a6e972a.tar.zst
nixlib-5f638a4e535e1e384fe7c91b9874893e0a6e972a.zip
gcc-4.4: Fix build
http://hydra.nixos.org/build/3896514
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r--pkgs/development/compilers/gcc/4.4/default.nix19
-rw-r--r--pkgs/development/compilers/gcc/4.4/siginfo_t_fix.patch174
2 files changed, 185 insertions, 8 deletions
diff --git a/pkgs/development/compilers/gcc/4.4/default.nix b/pkgs/development/compilers/gcc/4.4/default.nix
index 804a797bac12..60e7baa77812 100644
--- a/pkgs/development/compilers/gcc/4.4/default.nix
+++ b/pkgs/development/compilers/gcc/4.4/default.nix
@@ -104,16 +104,19 @@ stdenv.mkDerivation ({
   };
 
   patches =
-    [./pass-cxxcpp.patch
+    [ ./pass-cxxcpp.patch
 
-     # libmudflap and libstdc++ receive the build CPP,
-     # and not the target.
-     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42279
-     ./target-cpp.patch
+      # libmudflap and libstdc++ receive the build CPP,
+      # and not the target.
+      # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42279
+      ./target-cpp.patch
 
-     # Bad mixture of build/target flags
-     ./libstdc++-target.patch
-     ]
+      # Bad mixture of build/target flags
+      ./libstdc++-target.patch
+
+      # Compatibility with newer Glibc.
+      ./siginfo_t_fix.patch
+    ]
     ++ optional noSysDirs ./no-sys-dirs.patch
     # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
     # target libraries and tools.
diff --git a/pkgs/development/compilers/gcc/4.4/siginfo_t_fix.patch b/pkgs/development/compilers/gcc/4.4/siginfo_t_fix.patch
new file mode 100644
index 000000000000..8b126cd08c36
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.4/siginfo_t_fix.patch
@@ -0,0 +1,174 @@
+https://bugs.gentoo.org/424970
+
+fix from upstream for building with newer glibc versions
+
+From f0cdca2bf2230005025e13e7354fedb612933c96 Mon Sep 17 00:00:00 2001
+From: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 20 Apr 2012 08:14:00 +0000
+Subject: [PATCH] 	struct siginfo vs. siginfo_t
+
+	Backport from trunk (but apply to gcc/):
+
+	2012-04-20  Thomas Schwinge  <thomas@codesourcery.com>
+
+gcc/
+	* config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
+	siginfo_t instead of struct siginfo.
+	* config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
+	* config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
+	* config/ia64/linux-unwind.h (ia64_fallback_frame_state)
+	(ia64_handle_unwabi): Likewise.
+	* config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
+	* config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
+	* config/sh/linux-unwind.h (shmedia_fallback_frame_state)
+	(sh_fallback_frame_state): Likewise.
+	* config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch@186613 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ gcc/ChangeLog                    |   20 ++++++++++++++++++++
+ gcc/config/alpha/linux-unwind.h  |    4 ++--
+ gcc/config/bfin/linux-unwind.h   |    6 +++---
+ gcc/config/i386/linux-unwind.h   |    6 +++---
+ gcc/config/ia64/linux-unwind.h   |    6 +++---
+ gcc/config/mips/linux-unwind.h   |    5 +++--
+ gcc/config/pa/linux-unwind.h     |    4 ++--
+ gcc/config/sh/linux-unwind.h     |    9 +++++----
+ gcc/config/xtensa/linux-unwind.h |    4 ++--
+ 9 files changed, 43 insertions(+), 21 deletions(-)
+
+diff --git a/gcc/config/alpha/linux-unwind.h b/gcc/config/alpha/linux-unwind.h
+index 4c811dc..8c04b3b 100644
+--- a/gcc/config/alpha/linux-unwind.h
++++ b/gcc/config/alpha/linux-unwind.h
+@@ -49,7 +49,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
+   else if (pc[1] == 0x201f015f)		/* lda $0,NR_rt_sigreturn */
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/bfin/linux-unwind.h b/gcc/config/bfin/linux-unwind.h
+index 88c8285..15bb2f1 100644
+--- a/gcc/config/bfin/linux-unwind.h
++++ b/gcc/config/bfin/linux-unwind.h
+@@ -48,10 +48,10 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+ 	char retcode[8];
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+ 
+diff --git a/gcc/config/i386/linux-unwind.h b/gcc/config/i386/linux-unwind.h
+index 36ee370..fe0ea3e 100644
+--- a/gcc/config/i386/linux-unwind.h
++++ b/gcc/config/i386/linux-unwind.h
+@@ -133,9 +133,9 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
+     {
+       struct rt_sigframe {
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/ia64/linux-unwind.h b/gcc/config/ia64/linux-unwind.h
+index 93f762d..da31259 100644
+--- a/gcc/config/ia64/linux-unwind.h
++++ b/gcc/config/ia64/linux-unwind.h
+@@ -47,7 +47,7 @@ ia64_fallback_frame_state (struct _Unwind_Context *context,
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame_ = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame_->sc;
+@@ -137,7 +137,7 @@ ia64_handle_unwabi (struct _Unwind_Context *context, _Unwind_FrameState *fs)
+       struct sigframe {
+ 	char scratch[16];
+ 	unsigned long sig_number;
+-	struct siginfo *info;
++	siginfo_t *info;
+ 	struct sigcontext *sc;
+       } *frame = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame->sc;
+diff --git a/gcc/config/mips/linux-unwind.h b/gcc/config/mips/linux-unwind.h
+index 02f7cd5..094ff58 100644
+--- a/gcc/config/mips/linux-unwind.h
++++ b/gcc/config/mips/linux-unwind.h
+@@ -75,7 +76,7 @@ mips_fallback_frame_state (struct _Unwind_Context *context,
+       struct rt_sigframe {
+ 	u_int32_t ass[4];  /* Argument save space for o32.  */
+ 	u_int32_t trampoline[2];
+-	struct siginfo info;
++	siginfo_t info;
+ 	_sig_ucontext_t uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff --git a/gcc/config/pa/linux-unwind.h b/gcc/config/pa/linux-unwind.h
+index a0560e9..38b4eda 100644
+--- a/gcc/config/pa/linux-unwind.h
++++ b/gcc/config/pa/linux-unwind.h
+@@ -63,7 +63,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
+   int i;
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *frame;
+ 
+diff --git a/gcc/config/sh/linux-unwind.h b/gcc/config/sh/linux-unwind.h
+index 94ed95d..5a78e31 100644
+--- a/gcc/config/sh/linux-unwind.h
++++ b/gcc/config/sh/linux-unwind.h
+@@ -80,9 +81,9 @@ shmedia_fallback_frame_state (struct _Unwind_Context *context,
+ 	   && (*(unsigned long *) (pc+11)  == 0x6ff0fff0))
+     {
+       struct rt_sigframe {
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+@@ -179,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
+ 		&& (*(unsigned short *) (pc+14)  == 0x00ad))))
+     {
+       struct rt_sigframe {
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/gcc/config/xtensa/linux-unwind.h b/gcc/config/xtensa/linux-unwind.h
+index 32e9349..2456497 100644
+--- a/gcc/config/xtensa/linux-unwind.h
++++ b/gcc/config/xtensa/linux-unwind.h
+@@ -62,7 +62,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
+   struct sigcontext *sc;
+ 
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *rt_;
+ 
+-- 
+1.7.9.7
+