nixpkgs/pkgs/development/libraries/libstdc++5/struct-ucontext.patch
aszlig a2045e029a
libstdc++5: Add patch to fix type for ucontext_t
Since glibc 2.26, struct ucontext no longer exists but is wrapped in a
typedef ucontext_t.

This is basically a backport of the patch to gcc version 4.5 which was
introduced by @vcunat in f04b64c1e9.

Building against x86_64-linux and i686-linux now succeeds.

Signed-off-by: aszlig <aszlig@nix.build>
Cc: @abbradar
2017-11-08 20:52:20 +01:00

62 lines
2.1 KiB
Diff

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;