glibc/sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym
James Clarke 3e1b518550 Bug 21053: sh: Reduce namespace pollution from sys/ucontext.h
The problem is basically that sys/ucontext.h is defining R0..R15
which happens to conflict with some packages like Firefox when
trying to build on SH.

The very same problem existed on arm back then [1] and it was fixed by
renaming R0..R15 to REG_R0..REG_R15.  This patch imploy a similar
strategy for SH.

Checked on sh4-linux-gnu with run-built-tests=no and I also got reports
that it fixes Firefox build on Debian sh4.

	* sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym: Use new REG_R*
	constants instead of the old R* ones.
	* sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym: Likewise.
	* sysdeps/unix/sysv/linux/sh/sys/ucontext.h (NGPREG): Rename...
	(NGREG): ... to this, to fit in with other architectures.
	(gpregset_t): Use new NGREG macro.
	[__USE_GNU]: Remove condition; all architectures other than tile
	are unconditional.
	(R*): Rename to REG_R*.
2017-01-24 09:20:06 -02:00

39 lines
949 B
Plaintext

#include <stddef.h>
#include <signal.h>
#include <sys/ucontext.h>
--
SIG_BLOCK
SIG_SETMASK
#define ucontext(member) offsetof (ucontext_t, member)
#define mcontext(member) ucontext (uc_mcontext.member)
oLINK ucontext (uc_link)
oSS_SP ucontext (uc_stack.ss_sp)
oSS_SIZE ucontext (uc_stack.ss_size)
oR0 mcontext (gregs[REG_R0])
oR1 mcontext (gregs[REG_R1])
oR2 mcontext (gregs[REG_R2])
oR3 mcontext (gregs[REG_R3])
oR4 mcontext (gregs[REG_R4])
oR5 mcontext (gregs[REG_R5])
oR6 mcontext (gregs[REG_R6])
oR7 mcontext (gregs[REG_R7])
oR8 mcontext (gregs[REG_R8])
oR9 mcontext (gregs[REG_R9])
oR10 mcontext (gregs[REG_R10])
oR11 mcontext (gregs[REG_R11])
oR12 mcontext (gregs[REG_R12])
oR13 mcontext (gregs[REG_R13])
oR14 mcontext (gregs[REG_R14])
oR15 mcontext (gregs[REG_R15])
oPC mcontext (pc)
oPR mcontext (pr)
oSR mcontext (sr)
oGBR mcontext (gbr)
oMACH mcontext (mach)
oMACL mcontext (macl)
oSIGMASK ucontext (uc_sigmask)