forked from mirrors/nixpkgs
a2045e029a
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
62 lines
2.1 KiB
Diff
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;
|