1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-30 17:41:16 +03:00
Commit Graph

15 Commits

Author SHA1 Message Date
Joseph Myers
5df4854ed2 Condition some sys/ucontext.h contents on __USE_MISC (bug 21457).
Continuing the fixes for namespace issues arising from sys/ucontext.h,
this patch conditions various definitions, that are not needed for
defining mcontext_t / ucontext_t, on __USE_MISC, so they do not appear
in strict POSIX modes.

This patch is non-exhaustive; that is, it only conditions
straightforward cases and there may be more such definitions that can
be conditioned for these and other architectures, to be dealt with
later in separate patches.  Also, using __USE_MISC is the minimum
change for these definitions where they conflict with POSIX; some
headers already have __USE_GNU conditionals on similar definitions of
names for registers.  The patch specifically does not do anything with
definitions in bits/sigcontext.h, and nor does it condition any
inclusions of bits/sigcontext.h even where in fact that is not needed
on some architectures for the definitions of mcontext_t / ucontext_t.

As other namespace issues in these headers remain, this patch does not
fix bug 21457, nor allow any XFAILs to be removed.

Tested with build-many-glibcs.py.

	[BZ #21457]
	* sysdeps/arm/sys/ucontext.h (R0): Condition on [__USE_MISC].
	(R1): Likewise.
	(R2): Likewise.
	(R3): Likewise.
	(R4): Likewise.
	(R5): Likewise.
	(R6): Likewise.
	(R7): Likewise.
	(R8): Likewise.
	(R9): Likewise.
	(R10): Likewise.
	(R11): Likewise.
	(R12): Likewise.
	(R13): Likewise.
	(R14): Likewise.
	(R15): Likewise.
	* sysdeps/i386/sys/ucontext.h (REG_GS): Likewise.
	(REG_FS): Likewise.
	(REG_ES): Likewise.
	(REG_DS): Likewise.
	(REG_EDI): Likewise.
	(REG_ESI): Likewise.
	(REG_EBP): Likewise.
	(REG_ESP): Likewise.
	(REG_EBX): Likewise.
	(REG_EDX): Likewise.
	(REG_ECX): Likewise.
	(REG_EAX): Likewise.
	(REG_TRAPNO): Likewise.
	(REG_ERR): Likewise.
	(REG_EIP): Likewise.
	(REG_CS): Likewise.
	(REG_EFL): Likewise.
	(REG_UESP): Likewise.
	(REG_SS): Likewise.
	* sysdeps/m68k/sys/ucontext.h (R_D0): Likewise.
	(R_D1): Likewise.
	(R_D2): Likewise.
	(R_D3): Likewise.
	(R_D4): Likewise.
	(R_D5): Likewise.
	(R_D6): Likewise.
	(R_D7): Likewise.
	(R_A0): Likewise.
	(R_A1): Likewise.
	(R_A2): Likewise.
	(R_A3): Likewise.
	(R_A4): Likewise.
	(R_A5): Likewise.
	(R_A6): Likewise.
	(R_A7): Likewise.
	(R_SP): Likewise.
	(R_PC): Likewise.
	(R_PS): Likewise.
	(fpregset_t): Likewise.
	(MCONTEXT_VERSION): Likewise.
	* sysdeps/mips/sys/ucontext.h (CTX_R0): Likewise.
	(CTX_AT): Likewise.
	(CTX_V0): Likewise.
	(CTX_V1): Likewise.
	(CTX_A0): Likewise.
	(CTX_A1): Likewise.
	(CTX_A2): Likewise.
	(CTX_A3): Likewise.
	(CTX_T0): Likewise.
	(CTX_T1): Likewise.
	(CTX_T2): Likewise.
	(CTX_T3): Likewise.
	(CTX_T4): Likewise.
	(CTX_T5): Likewise.
	(CTX_T6): Likewise.
	(CTX_T7): Likewise.
	(CTX_S0): Likewise.
	(CTX_S1): Likewise.
	(CTX_S2): Likewise.
	(CTX_S3): Likewise.
	(CTX_S4): Likewise.
	(CTX_S5): Likewise.
	(CTX_S6): Likewise.
	(CTX_S7): Likewise.
	(CTX_T8): Likewise.
	(CTX_T9): Likewise.
	(CTX_K0): Likewise.
	(CTX_K1): Likewise.
	(CTX_GP): Likewise.
	(CTX_SP): Likewise.
	(CTX_S8): Likewise.
	(CTX_RA): Likewise.
	(CTX_MDLO): Likewise.
	(CTX_MDHI): Likewise.
	(CTX_CAUSE): Likewise.
	(CTX_EPC): Likewise.
	* sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h: Condition
	inclusion of <sys/procfs.h> on [__USE_MISC].
	(greg_t): Condition on [__USE_MISC].
	(gregset_t): Likewise.
	(fpregset_t): Likewise.
	* sysdeps/unix/sysv/linux/arm/sys/ucontext.h (greg_t): Likewise.
	(NGREG): Likewise.
	(gregset_t): Likewise.
	(REG_R0): Likewise.
	(REG_R1): Likewise.
	(REG_R2): Likewise.
	(REG_R3): Likewise.
	(REG_R4): Likewise.
	(REG_R5): Likewise.
	(REG_R6): Likewise.
	(REG_R7): Likewise.
	(REG_R8): Likewise.
	(REG_R9): Likewise.
	(REG_R10): Likewise.
	(REG_R11): Likewise.
	(REG_R12): Likewise.
	(REG_R13): Likewise.
	(REG_R14): Likewise.
	(REG_R15): Likewise.
	(struct _libc_fpstate): Likewise.
	(fpregset_t): Likewise.
	* sysdeps/unix/sysv/linux/hppa/sys/ucontext.h (NGREG): Likewise.
	(NFPREG): Likewise.
	(gregset_t): Likewise.
	(fpregset_t): Likewise.
	* sysdeps/unix/sysv/linux/m68k/sys/ucontext.h (R_D0): Likewise.
	(R_D1): Likewise.
	(R_D2): Likewise.
	(R_D3): Likewise.
	(R_D4): Likewise.
	(R_D5): Likewise.
	(R_D6): Likewise.
	(R_D7): Likewise.
	(R_A0): Likewise.
	(R_A1): Likewise.
	(R_A2): Likewise.
	(R_A3): Likewise.
	(R_A4): Likewise.
	(R_A5): Likewise.
	(R_A6): Likewise.
	(R_A7): Likewise.
	(R_SP): Likewise.
	(R_PC): Likewise.
	(R_PS): Likewise.
	(fpregset_t): Likewise.
	(MCONTEXT_VERSION): Likewise.
	* sysdeps/unix/sysv/linux/nios2/sys/ucontext.h (MCONTEXT_VERSION):
	Likewise.
	* sysdeps/unix/sysv/linux/sh/sys/ucontext.h (REG_R0): Likewise.
	(REG_R1): Likewise.
	(REG_R2): Likewise.
	(REG_R3): Likewise.
	(REG_R4): Likewise.
	(REG_R5): Likewise.
	(REG_R6): Likewise.
	(REG_R7): Likewise.
	(REG_R8): Likewise.
	(REG_R9): Likewise.
	(REG_R10): Likewise.
	(REG_R11): Likewise.
	(REG_R12): Likewise.
	(REG_R13): Likewise.
	(REG_R14): Likewise.
	(REG_R15): Likewise.
	* sysdeps/unix/sysv/linux/tile/sys/ucontext.h: Condition inclusion
	of <arch/abi.h> on [__USE_MISC].
	(greg_t): Condition on [__USE_MISC].
	(NGREG): Likewise.
	(gregset_t): Likewise.
2017-05-11 14:15:26 +00:00
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
Joseph Myers
bfff8b1bec Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Joseph Myers
f07820b7d1 Make SH ucontext always match current kernels.
As discussed in the thread starting at
<https://sourceware.org/ml/libc-alpha/2015-06/msg00657.html>, there
are various problems with the sigcontext / mcontext / ucontext
structures on SH.  The soft-float SH4 case in fact does not build at
present, with errors processing
sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym with gen-as-const.awk
("error: 'mcontext_t {aka struct <anonymous>}' has no member named
'fpregs'").

Linux 4.8 (commit bbe6c77857c38f4acbdc4fc70399515226d1859a) moved to
always using the same sigcontext structure on SH, with room for
floating-point registers whether or not present on the processor.
This patch makes the glibc header match.

Tested (compilation only) for sh4-linux-gnu hard float, and in
conjunction with other fixes for soft float.

	* sysdeps/unix/sysv/linux/sh/sys/ucontext.h [__SH4__ || __SH4A__]:
	Make code unconditional.
	[!(__SH4__ || __SH4A__)]: Remove conditional code.
2016-11-15 21:44:36 +00:00
Zack Weinberg
c66b29f9cc Installed-header hygiene (BZ#20366): stack_t.
sys/ucontext.h unconditionally uses stack_t, and it does not make
sense to change that.  But signal.h only declares stack_t under
__USE_XOPEN_EXTENDED || __USE_XOPEN2K8.  The actual definition is
already in a bits header, bits/sigstack.h, but that header insists on
only being included by signal.h, so we have to change that as well as
all of the sys/ucontext.h variants.  (Some but not all variants of
bits/sigcontext.h, which sys/ucontext.h may also need, had already
received this adjustment; for consistency, I made them all the same,
even if that's not strictly necessary in some configurations.)
bits/sigcontext.h and bits/sigstack.h also all need to receive
multiple inclusion guards.

	* sysdeps/generic/sys/ucontext.h
	* sysdeps/arm/sys/ucontext.h
	* sysdeps/i386/sys/ucontext.h
	* sysdeps/m68k/sys/ucontext.h
	* sysdeps/mips/sys/ucontext.h
	* sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
	* sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
	* sysdeps/unix/sysv/linux/arm/sys/ucontext.h
	* sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
	* sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
	* sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
	* sysdeps/unix/sysv/linux/mips/sys/ucontext.h
	* sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
	* sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
	* sysdeps/unix/sysv/linux/s390/sys/ucontext.h
	* sysdeps/unix/sysv/linux/sh/sys/ucontext.h
	* sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
	* sysdeps/unix/sysv/linux/tile/sys/ucontext.h
	* sysdeps/unix/sysv/linux/x86/sys/ucontext.h:
	Include both bits/sigcontext.h and bits/sigstack.h.
	Fix grammar error in comment, if present.

	* bits/sigstack.h
	* sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
	* sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
	* sysdeps/unix/sysv/linux/bits/sigstack.h
	* sysdeps/unix/sysv/linux/ia64/bits/sigstack.h
	* sysdeps/unix/sysv/linux/mips/bits/sigstack.h
	* sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
	* sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
	* bits/sigcontext.h
	* sysdeps/mach/hurd/i386/bits/sigcontext.h
	* sysdeps/unix/sysv/linux/bits/sigcontext.h
	* sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
	* sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h:
	Add multiple inclusion guard.  Permit inclusion by sys/ucontext.h
	as well as signal.h, if this was not already allowed.  Request
	definition of size_t if necessary.  Minimize semantically-null
	differences across files.
2016-09-23 08:43:56 -04:00
Joseph Myers
f7a9f785e5 Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Joseph Myers
b168057aaa Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Kaz Kojima
0bad441c77 Restore ucontext ABI for soft-float sh4. 2014-01-24 12:56:12 +09:00
Kaz Kojima
7007c661ad Adjust SH specific fpu_control.h and ucontext.h files. 2014-01-23 14:22:58 +09:00
Ulrich Drepper
76e95c8899 * sysdeps/unix/sysv/linux/sh/makecontext.S: New file.
* sysdeps/unix/sysv/linux/sh/sh3/getcontext.S: New file.
	* sysdeps/unix/sysv/linux/sh/sh4/getcontext.S: New file.
	* sysdeps/unix/sysv/linux/sh/sh3/setcontext.S: New file.
	* sysdeps/unix/sysv/linux/sh/sh4/setcontext.S: New file.
	* sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S: New file.
	* sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S: New file.
	* sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.h: New file.
	* sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.h: New file.
	* sysdeps/unix/sysv/linux/sh/sys/ucontext.h: Removed.
	* sysdeps/unix/sysv/linux/sh/sh3/sys/ucontext.h: New file.
	* sysdeps/unix/sysv/linux/sh/sh4/sys/ucontext.h: New file.
2005-10-16 15:49:27 +00:00
Ulrich Drepper
a334319f65 (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. 2004-12-22 20:10:10 +00:00
Jakub Jelinek
0ecb606cb6 2.5-18.1 2007-07-12 18:26:36 +00:00
Andreas Jaeger
41bdb6e20c Update to LGPL v2.1.
2001-07-06  Paul Eggert  <eggert@twinsun.com>

	* manual/argp.texi: Remove ignored LGPL copyright notice; it's
	not appropriate for documentation anyway.
	* manual/libc-texinfo.sh: "Library General Public License" ->
	"Lesser General Public License".

2001-07-06  Andreas Jaeger  <aj@suse.de>

	* All files under GPL/LGPL version 2: Place under LGPL version
	2.1.
2001-07-06 04:58:11 +00:00
Ulrich Drepper
601ecd316f Rename to NFPREG. 2001-03-27 17:19:37 +00:00
Ulrich Drepper
3846ef75cf Update.
2000-06-12  Kazumoto Kojima  <kkojima@rr.iij4u.or.jp>
	    Yutaka Niibe  <gniibe@chroot.org>

	* sysdeps/sh/Dist: New file.
	* sysdeps/sh/Implies: New file.
	* sysdeps/sh/gmp-mparam.h: New file.
	* sysdeps/sh/init-first.c: New file.
	* sysdeps/sh/machine-gmon.h: New file.
	* sysdeps/sh/memcpy.S: New file.
	* sysdeps/sh/memprof.h: New file.
	* sysdeps/sh/memset.S: New file.
	* sysdeps/sh/sh3/__longjmp.S: New file.
	* sysdeps/sh/sh3/bits/endian.h: New file.
	* sysdeps/sh/sh3/bits/huge_val.h: New file.
	* sysdeps/sh/sh3/bits/setjmp.h: New file.
	* sysdeps/sh/sh3/bsd-_setjmp.S: New file.
	* sysdeps/sh/sh3/bsd-setjmp.S: New file.
	* sysdeps/sh/sh3/dl-machine.h: New file.
	* sysdeps/sh/sh3/elf/initfini.c: New file.
	* sysdeps/sh/sh3/elf/start.S: New file.
	* sysdeps/sh/sh3/setjmp.S: New file.
	* sysdeps/sh/sh3/sys/ucontext.h: New file.
	* sysdeps/sh/sh4/__longjmp.S: New file.
	* sysdeps/sh/sh4/bits/endian.h: New file.
	* sysdeps/sh/sh4/bits/huge_val.h: New file.
	* sysdeps/sh/sh4/bits/setjmp.h: New file.
	* sysdeps/sh/sh4/bsd-_setjmp.S: New file.
	* sysdeps/sh/sh4/bsd-setjmp.S: New file.
	* sysdeps/sh/sh4/dl-machine.h: New file.
	* sysdeps/sh/sh4/elf/initfini.c: New file.
	* sysdeps/sh/sh4/elf/start.S: New file.
	* sysdeps/sh/sh4/fpu/bits/fenv.h: New file.
	* sysdeps/sh/sh4/fpu/bits/huge_val.h: New file.
	* sysdeps/sh/sh4/fpu/bits/mathdef.h: New file.
	* sysdeps/sh/sh4/fpu/fclrexcpt.c: New file.
	* sysdeps/sh/sh4/fpu/fegetenv.c: New file.
	* sysdeps/sh/sh4/fpu/fegetround.c: New file.
	* sysdeps/sh/sh4/fpu/feholdexcpt.c: New file.
	* sysdeps/sh/sh4/fpu/fesetenv.c: New file.
	* sysdeps/sh/sh4/fpu/fesetround.c: New file.
	* sysdeps/sh/sh4/fpu/fpu_control.h: New file.
	* sysdeps/sh/sh4/fpu/fraiseexcpt.c: New file.
	* sysdeps/sh/sh4/fpu/fsetexcptflg.c: New file.
	* sysdeps/sh/sh4/fpu/ftestexcept.c: New file.
	* sysdeps/sh/sh4/fpu/libm-test-ulps: New file.
	* sysdeps/sh/sh4/setjmp.S: New file.
	* sysdeps/sh/sh4/sys/ucontext.h: New file.
	* sysdeps/sh/strlen.S: New file.
	* sysdeps/sh/sysdep.h: New file.
	* sysdeps/unix/sh/sysdep.S: New file.
	* sysdeps/unix/sh/sysdep.h: New file.
	* sysdeps/unix/sysv/linux/sh/Dist: New file.
	* sysdeps/unix/sysv/linux/sh/Makefile: New file.
	* sysdeps/unix/sysv/linux/sh/Versions: New file.
	* sysdeps/unix/sysv/linux/sh/bits/mman.h: New file.
	* sysdeps/unix/sysv/linux/sh/bits/resource.h: New file.
	* sysdeps/unix/sysv/linux/sh/brk.c: New file.
	* sysdeps/unix/sysv/linux/sh/chown.c: New file.
	* sysdeps/unix/sysv/linux/sh/clone.S: New file.
	* sysdeps/unix/sysv/linux/sh/fchown.c: New file.
	* sysdeps/unix/sysv/linux/sh/fxstat.c: New file.
	* sysdeps/unix/sysv/linux/sh/getegid.c: New file.
	* sysdeps/unix/sysv/linux/sh/geteuid.c: New file.
	* sysdeps/unix/sysv/linux/sh/getgroups.c: New file.
	* sysdeps/unix/sysv/linux/sh/getresgid.c: New file.
	* sysdeps/unix/sysv/linux/sh/getresuid.c: New file.
	* sysdeps/unix/sysv/linux/sh/getrlimit.c: New file.
	* sysdeps/unix/sysv/linux/sh/getrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/sh/getuid.c: New file.
	* sysdeps/unix/sysv/linux/sh/lchown.c: New file.
	* sysdeps/unix/sysv/linux/sh/lxstat.c: New file.
	* sysdeps/unix/sysv/linux/sh/msgctl.c: New file.
	* sysdeps/unix/sysv/linux/sh/oldgetrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/sh/pipe.S: New file.
	* sysdeps/unix/sysv/linux/sh/profil-counter.h: New file.
	* sysdeps/unix/sysv/linux/sh/semctl.c: New file.
	* sysdeps/unix/sysv/linux/sh/setegid.c: New file.
	* sysdeps/unix/sysv/linux/sh/seteuid.c: New file.
	* sysdeps/unix/sysv/linux/sh/setfsgid.c: New file.
	* sysdeps/unix/sysv/linux/sh/setfsuid.c: New file.
	* sysdeps/unix/sysv/linux/sh/setgid.c: New file.
	* sysdeps/unix/sysv/linux/sh/setgroups.c: New file.
	* sysdeps/unix/sysv/linux/sh/setregid.c: New file.
	* sysdeps/unix/sysv/linux/sh/setresgid.c: New file.
	* sysdeps/unix/sysv/linux/sh/setresuid.c: New file.
	* sysdeps/unix/sysv/linux/sh/setreuid.c: New file.
	* sysdeps/unix/sysv/linux/sh/setrlimit.c: New file.
	* sysdeps/unix/sysv/linux/sh/setuid.c: New file.
	* sysdeps/unix/sysv/linux/sh/sh3/register-dump.h: New file.
	* sysdeps/unix/sysv/linux/sh/sh4/register-dump.h: New file.
	* sysdeps/unix/sysv/linux/sh/shmctl.c: New file.
	* sysdeps/unix/sysv/linux/sh/sigcontextinfo.h: New file.
	* sysdeps/unix/sysv/linux/sh/socket.S: New file.
	* sysdeps/unix/sysv/linux/sh/sys/io.h: New file.
	* sysdeps/unix/sysv/linux/sh/sys/ucontext.h: New file.
	* sysdeps/unix/sysv/linux/sh/sys/user.h: New file.
	* sysdeps/unix/sysv/linux/sh/syscalls.list: New file.
	* sysdeps/unix/sysv/linux/sh/sysdep.S: New file.
	* sysdeps/unix/sysv/linux/sh/sysdep.h: New file.
	* sysdeps/unix/sysv/linux/sh/vfork.S: New file.
	* sysdeps/unix/sysv/linux/sh/xstat.c: New file.
2000-06-12 20:50:37 +00:00