Upstream cdef9602fb [signal: always clear sa_restorer on execve] was also applied to v3.0 and v3.4 stable branches. So, the SA_RESTORER patch Ralf applied to v3.8 is needed as well. Here's the original commit message: SA_RESTORER used to be defined as 0x04000000 but only the O32 ABI ever supported its use and no libc was using it, so the entire sa-restorer functionality was removed with lmo commit 39bffc12c3580ab [Zap sa_restorer.] for 2.5.48 retaining only the SA_RESTORER definition as a reminder to avoid accidental reuse of the mask bit. Upstream cdef9602fbf1871a43f0f1b5cea10dd0f275167d [signal: always clear sa_restorer on execve] adds code that assumes sa_sigaction has an sa_restorer field, if SA_RESTORER is defined which would break MIPS. So remove the SA_RESTORER definition before the v3.8.4 merge. Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx> Signed-off-by: Tony Wu <tung7970@xxxxxxxxx> diff --git a/arch/mips/include/asm/signal.h b/arch/mips/include/asm/signal.h index c783f36..edfb2b0 100644 --- a/arch/mips/include/asm/signal.h +++ b/arch/mips/include/asm/signal.h @@ -84,8 +84,6 @@ typedef unsigned long old_sigset_t; /* at least 32 bits */ #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND -#define SA_RESTORER 0x04000000 /* Only for o32 */ - /* * sigaltstack controls */ On Wed, Apr 03, 2013 at 12:54:30AM +0800, Tony Wu wrote: > Hi, Ralf, > > Also need to remove SA_RESTORER from arch/mips/include/signal.h for > linux-3.0-stable and linux-3.4-stable or it will break compilation. > > Thanks, > Tony > > ---------- Forwarded message ---------- > From: <linux-mips@xxxxxxxxxxxxxx> > Date: Tue, Apr 2, 2013 at 11:20 PM > Subject: MIPS: Delete definition of SA_RESTORER. > To: git-commits@xxxxxxxxxxxxxx > > > Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx> Mon Mar 25 13:43:14 2013 +0100 > Commit: 17da8d63add23830892ac4dc2cbb3b5d4ffb79a8 > Gitweb: http://git.linux-mips.org/g/ralf/linux/17da8d63add2 > Branch: linux-3.8-stable > > SA_RESTORER used to be defined as 0x04000000 but only the O32 ABI ever > supported its use and no libc was using it, so the entire sa-restorer > functionality was removed with lmo commit 39bffc12c3580ab [Zap sa_restorer.] > for 2.5.48 retaining only the SA_RESTORER definition as a reminder to avoid > accidental reuse of the mask bit. > > Upstream cdef9602fbf1871a43f0f1b5cea10dd0f275167d [signal: always clear > sa_restorer on execve] adds code that assumes sa_sigaction has an > sa_restorer field, if SA_RESTORER is defined which would break MIPS. > So remove the SA_RESTORER definition before the v3.8.4 merge. > > Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx> > > --- > > arch/mips/include/uapi/asm/signal.h | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/arch/mips/include/uapi/asm/signal.h > b/arch/mips/include/uapi/asm/signal.h > index 770732c..dfd6b5e 100644 > --- a/arch/mips/include/uapi/asm/signal.h > +++ b/arch/mips/include/uapi/asm/signal.h > @@ -72,6 +72,12 @@ typedef unsigned long old_sigset_t; /* at least > 32 bits */ > * > * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single > * Unix names RESETHAND and NODEFER respectively. > + * > + * SA_RESTORER used to be defined as 0x04000000 but only the O32 ABI ever > + * supported its use and no libc was using it, so the entire sa-restorer > + * functionality was removed with lmo commit 39bffc12c3580ab for 2.5.48 > + * retaining only the SA_RESTORER definition as a reminder to avoid > + * accidental reuse of the mask bit. > */ > #define SA_ONSTACK 0x08000000 > #define SA_RESETHAND 0x80000000 > @@ -84,8 +90,6 @@ typedef unsigned long old_sigset_t; /* at least > 32 bits */ > #define SA_NOMASK SA_NODEFER > #define SA_ONESHOT SA_RESETHAND > > -#define SA_RESTORER 0x04000000 /* Only for o32 */ > - > #define MINSIGSTKSZ 2048 > #define SIGSTKSZ 8192