hppa: Make __SIGRTMIN 32 (ABI break).

In the Linux kernel version 3.17 the signal numbers were rearranged in
order to make hppa like every other arch. Previously we started
__SIGRTMIN at 37, and that meant several pieces of important software,
including systemd, would fail to build. To support systemd we removed
SIGEMT and SIGLOST, and rearranged the others according to expected
values. This is technically an ABI incompatible change, but because
zero applications use SIGSTKFLT, SIGXCPU, SIGXFSZ and SIGSYS nothing
broke.  Nothing uses SIGEMT and SIGLOST, and they were present for
HPUX compatibility which is no longer supported. Thus because nothing
breaks we don't do any compatibility work here.

Upstream kernel commit is 1f25df2eff5b25f52c139d3ff31bc883eee9a0ab.

Signed-off-by: Carlos O'Donell <carlos@systemhalted.org>
Signed-off-by: Helge Deller <deller@gmx.de>

2014-10-23  Carlos O'Donell  <carlos@systemhalted.org>
	    Helge Deller <deller@gmx.de>

	[BZ #17508]
	* sysdeps/unix/sysv/linux/hppa/bits/signum.h: Remove SIGEMT.
	Define SIGSTKFLT as 7. Define SIGSYS as 31. Define SIGXCPU as 12.
	Remove SIGLOST. Define SIGXFSZ as 30. Define __SIGRTMIN as 32.
This commit is contained in:
Carlos O'Donell 2014-10-23 23:14:12 -04:00
parent 15f9c5dfaf
commit 13d845549e
3 changed files with 24 additions and 8 deletions

View File

@ -1,3 +1,11 @@
2014-10-23 Carlos O'Donell <carlos@systemhalted.org>
Helge Deller <deller@gmx.de>
[BZ #17508]
* sysdeps/unix/sysv/linux/hppa/bits/signum.h: Remove SIGEMT.
Define SIGSTKFLT as 7. Define SIGSYS as 31. Define SIGXCPU as 12.
Remove SIGLOST. Define SIGXFSZ as 30. Define __SIGRTMIN as 32.
2014-10-23 Joseph Myers <joseph@codesourcery.com>
[BZ #14132]

2
NEWS
View File

@ -10,7 +10,7 @@ Version 2.21
* The following bugs are resolved with this release:
6652, 12926, 14171, 15884, 17266, 17363, 17370, 17371, 17411, 17460,
17485.
17485, 17508.
Version 2.20

View File

@ -36,12 +36,12 @@
#define SIGTRAP 5 /* Trace trap (POSIX). */
#define SIGABRT 6 /* Abort (ANSI). */
#define SIGIOT 6 /* IOT trap (4.2 BSD). */
#define SIGEMT 7
#define SIGSTKFLT 7 /* Stack fault. */
#define SIGFPE 8 /* Floating-point exception (ANSI). */
#define SIGKILL 9 /* Kill, unblockable (POSIX). */
#define SIGBUS 10 /* BUS error (4.2 BSD). */
#define SIGSEGV 11 /* Segmentation violation (ANSI). */
#define SIGSYS 12 /* Bad system call. */
#define SIGXCPU 12 /* CPU limit exceeded (4.2 BSD). */
#define SIGPIPE 13 /* Broken pipe (POSIX). */
#define SIGALRM 14 /* Alarm clock (POSIX). */
#define SIGTERM 15 /* Termination (ANSI). */
@ -61,11 +61,9 @@
#define SIGTTIN 27 /* Background read from tty (POSIX). */
#define SIGTTOU 28 /* Background write to tty (POSIX). */
#define SIGURG 29 /* Urgent condition on socket (4.2 BSD). */
#define SIGLOST 30 /* Operating System Has Lost (HP/UX). */
#define SIGXFSZ 30 /* File size limit exceeded (4.2 BSD). */
#define SIGSYS 31 /* Bad system call. */
#define SIGUNUSED 31
#define SIGXCPU 33 /* CPU limit exceeded (4.2 BSD). */
#define SIGXFSZ 34 /* File size limit exceeded (4.2 BSD). */
#define SIGSTKFLT 36 /* Stack fault. */
#define _NSIG 65 /* Biggest signal number + 1
(including real-time signals). */
@ -75,7 +73,17 @@
/* These are the hard limits of the kernel. These values should not be
used directly at user level. */
#define __SIGRTMIN 37
/* In the Linux kernel version 3.17, and glibc 2.21, the signal numbers
were rearranged in order to make hppa like every other arch. Previously
we started __SIGRTMIN at 37, and that meant several pieces of important
software, including systemd, would fail to build. To support systemd we
removed SIGEMT and SIGLOST, and rearranged the others according to
expected values. This is technically an ABI incompatible change, but
because zero applications use SIGSTKFLT, SIGXCPU, SIGXFSZ and SIGSYS
nothing broke. Nothing uses SIGEMT and SIGLOST, and they were present
for HPUX compatibility which is no longer supported. Thus because
nothing breaks we don't do any compatibility work here. */
#define __SIGRTMIN 32 /* Kernel > 3.17. */
#define __SIGRTMAX (_NSIG - 1)
#endif /* <signal.h> included. */