diff --git a/pkgs/development/libraries/libstdc++5/default.nix b/pkgs/development/libraries/libstdc++5/default.nix index abe0538b8a9c..baea981ca4a1 100644 --- a/pkgs/development/libraries/libstdc++5/default.nix +++ b/pkgs/development/libraries/libstdc++5/default.nix @@ -29,6 +29,8 @@ stdenv.mkDerivation rec { sha256 = "11m5lc51b0addhc4yq4rz0dwpv6k73rrj73wya3lqdk8rly6cjpm"; addPrefixes = true; }) + # Required because of glibc 2.26 + ./struct-ucontext.patch ]; postPatch = '' diff --git a/pkgs/development/libraries/libstdc++5/struct-ucontext.patch b/pkgs/development/libraries/libstdc++5/struct-ucontext.patch new file mode 100644 index 000000000000..5462e0e33ecd --- /dev/null +++ b/pkgs/development/libraries/libstdc++5/struct-ucontext.patch @@ -0,0 +1,61 @@ +diff --git a/gcc/config/alpha/linux.h b/gcc/config/alpha/linux.h +index 3a2940c..67f9899 100644 +--- a/gcc/config/alpha/linux.h ++++ b/gcc/config/alpha/linux.h +@@ -89,7 +89,7 @@ Boston, MA 02111-1307, USA. */ + { \ + struct rt_sigframe { \ + struct siginfo info; \ +- struct ucontext uc; \ ++ ucontext_t uc; \ + } *rt_ = (CONTEXT)->cfa; \ + sc_ = &rt_->uc.uc_mcontext; \ + } \ +diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h +index e86ab3d..30797a7 100644 +--- a/gcc/config/i386/linux.h ++++ b/gcc/config/i386/linux.h +@@ -260,7 +260,7 @@ Boston, MA 02111-1307, USA. */ + siginfo_t *pinfo; \ + void *puc; \ + siginfo_t info; \ +- struct ucontext uc; \ ++ ucontext_t uc; \ + } *rt_ = (CONTEXT)->cfa; \ + sc_ = (struct sigcontext *) &rt_->uc.uc_mcontext; \ + } \ +diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h +index fbfaa58..200c8dc 100644 +--- a/gcc/config/i386/linux64.h ++++ b/gcc/config/i386/linux64.h +@@ -112,7 +112,7 @@ Boston, MA 02111-1307, USA. */ + if (*(unsigned char *)(pc_+0) == 0x48 \ + && *(unsigned long *)(pc_+1) == 0x050f0000000fc0c7) \ + { \ +- struct ucontext *uc_ = (CONTEXT)->cfa; \ ++ ucontext_t *uc_ = (CONTEXT)->cfa; \ + sc_ = (struct sigcontext *) &uc_->uc_mcontext; \ + } \ + else \ +@@ -182,7 +182,7 @@ Boston, MA 02111-1307, USA. */ + struct siginfo *pinfo; \ + void *puc; \ + struct siginfo info; \ +- struct ucontext uc; \ ++ ucontext_t uc; \ + } *rt_ = (CONTEXT)->cfa; \ + sc_ = (struct sigcontext *) &rt_->uc.uc_mcontext; \ + } \ +diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h +index ba70ec1..0fff8b1 100644 +--- a/gcc/config/rs6000/linux.h ++++ b/gcc/config/rs6000/linux.h +@@ -101,7 +101,7 @@ Boston, MA 02111-1307, USA. */ + + struct kernel_old_ucontext { + unsigned long uc_flags; +- struct ucontext *uc_link; ++ ucontext_t *uc_link; + stack_t uc_stack; + struct sigcontext_struct uc_mcontext; + sigset_t uc_sigmask;