Mercurial > hg > aboriginal
changeset 1669:b74df510d10d
Update gcc-core musl support patches.
author | Rob Landley <rob@landley.net> |
---|---|
date | Fri, 04 Jul 2014 23:55:54 -0500 |
parents | 04b6f9a8c6af |
children | 1669660a7a97 |
files | sources/patches/gcc-core-musl.patch sources/patches/gcc-core-portability.patch |
diffstat | 2 files changed, 122 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/patches/gcc-core-musl.patch Fri Jul 04 23:55:54 2014 -0500 @@ -0,0 +1,122 @@ +Build against musl (or current glibc) using the standard name instead of the random implementation detail leakage. + +And on powerpc gcc assumes the existence of a nonstandard symbol (__libc_stack_end) which musl hasn't got. + +diff -ruN gcc-core/gcc/config/i386/linux-unwind.h gcc-core.bak/gcc/config/i386/linux-unwind.h +--- gcc-core/gcc/config/i386/linux-unwind.h 2006-02-27 11:26:26.000000000 -0600 ++++ gcc-core.bak/gcc/config/i386/linux-unwind.h 2014-07-02 18:27:17.931529601 -0500 +@@ -137,9 +137,9 @@ + { + 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 -ru gcc-core.bak/gcc/config/alpha/linux-unwind.h gcc-core/gcc/config/alpha/linux-unwind.h +--- gcc-core.bak/gcc/config/alpha/linux-unwind.h 2014-07-02 13:51:18.938839448 -0500 ++++ gcc-core/gcc/config/alpha/linux-unwind.h 2014-07-04 12:27:31.215361161 -0500 +@@ -54,7 +54,7 @@ + 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 -ru gcc-core.bak/gcc/config/ia64/linux-unwind.h gcc-core/gcc/config/ia64/linux-unwind.h +--- gcc-core.bak/gcc/config/ia64/linux-unwind.h 2005-06-24 20:22:41.000000000 -0500 ++++ gcc-core/gcc/config/ia64/linux-unwind.h 2014-07-04 12:27:31.215361161 -0500 +@@ -51,7 +51,7 @@ + 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; +@@ -130,7 +130,7 @@ + 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 -ru gcc-core.bak/gcc/config/mips/linux-unwind.h gcc-core/gcc/config/mips/linux-unwind.h +--- gcc-core.bak/gcc/config/mips/linux-unwind.h 2006-05-19 07:52:26.000000000 -0500 ++++ gcc-core/gcc/config/mips/linux-unwind.h 2014-07-04 12:27:31.211361161 -0500 +@@ -77,7 +77,7 @@ + { + struct rt_sigframe { + u_int32_t trampoline[2]; +- struct siginfo info; ++ siginfo_t info; + _sig_ucontext_t uc; + } *rt_ = context->ra; + sc = &rt_->uc.uc_mcontext; +diff -ru gcc-core.bak/gcc/config/pa/linux-unwind.h gcc-core/gcc/config/pa/linux-unwind.h +--- gcc-core.bak/gcc/config/pa/linux-unwind.h 2005-11-17 21:22:18.000000000 -0600 ++++ gcc-core/gcc/config/pa/linux-unwind.h 2014-07-04 12:27:31.195361161 -0500 +@@ -63,7 +63,7 @@ + int i; + struct sigcontext *sc; + struct rt_sigframe { +- struct siginfo info; ++ siginfo_t info; + struct ucontext uc; + } *frame; + +diff -ru gcc-core.bak/gcc/config/sh/linux-unwind.h gcc-core/gcc/config/sh/linux-unwind.h +--- gcc-core.bak/gcc/config/sh/linux-unwind.h 2014-07-02 13:51:18.930839444 -0500 ++++ gcc-core/gcc/config/sh/linux-unwind.h 2014-07-04 12:27:31.207361161 -0500 +@@ -82,9 +82,9 @@ + && (*(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. +@@ -181,7 +181,7 @@ + && (*(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 -ru gcc-core/gcc/config/rs6000/linux-unwind.h gcc-core.bak/gcc/config/rs6000/linux-unwind.h +--- gcc-core/gcc/config/rs6000/linux-unwind.h 2007-01-03 17:47:14.000000000 -0600 ++++ gcc-core.bak/gcc/config/rs6000/linux-unwind.h 2014-07-04 18:15:48.935951119 -0500 +@@ -188,6 +188,7 @@ + static long + ppc_linux_aux_vector (long which) + { ++#ifdef __GLIBC__ + /* __libc_stack_end holds the original stack passed to a process. */ + extern long *__libc_stack_end; + long argc; +@@ -212,6 +213,10 @@ + if (auxp->a_type == which) + return auxp->a_val; + return 0; ++#else ++ /* pretend we have everything, save it all */ ++ return -1; ++#endif + } + + /* Do code reading to identify a signal frame, and set the frame
--- a/sources/patches/gcc-core-portability.patch Wed Jul 02 21:18:19 2014 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -Build against musl (or current glibc) using the standard name instead of the random implementation detail leakage. - -diff -ruN gcc-core/gcc/config/i386/linux-unwind.h gcc-core.bak/gcc/config/i386/linux-unwind.h ---- gcc-core/gcc/config/i386/linux-unwind.h 2006-02-27 11:26:26.000000000 -0600 -+++ gcc-core.bak/gcc/config/i386/linux-unwind.h 2014-07-02 18:27:17.931529601 -0500 -@@ -137,9 +137,9 @@ - { - 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.