mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	Many of the things defined by bits/signum.h are invariant across all supported operating systems. This patch factors out all of them to a new header bits/signum-generic.h, which each bits/signum.h will include and then override whichever things need adjustment. Normally that will mean, at most, adding or changing a few signal numbers. A user-visible side effect is that the obsolete signal constant SIGUNUSED (which is an alias for SIGSYS on all platforms that define it) is no longer exposed by any version of bits/signum.h. A side effect only relevant to glibc hackers is that _NSIG is now defined in terms of __SIGRTMAX, instead of the other way around. This is because __SIGRTMAX varies from platform to platform, but _NSIG==__SIGRTMAX+1 is true universally. If your platform doesn't support realtime signals, leave __SIGRTMAX equal to __SIGRTMIN. I also added a Linux-specific test to make sure that our signal constants match the ones in <asm/signal.h>, since we can't use that header (it's not even vaguely namespace-clean). * bits/signum-generic.h: Renamed from bits/signum.h. Add proper multiple include guard and misuse check. Define __SIGRTMIN = __SIGRTMAX = 32, and define _NSIG = __SIGRTMAX+1. Move definition of SIGIO to "archaic names for compatibility" section. * bits/signum.h: New file which just includes bits/signum-generic.h. * sysdeps/unix/bsd/bits/signum.h * sysdeps/unix/sysv/linux/bits/signum.h * sysdeps/unix/sysv/linux/alpha/bits/signum.h * sysdeps/unix/sysv/linux/hppa/bits/signum.h * sysdeps/unix/sysv/linux/mips/bits/signum.h * sysdeps/unix/sysv/linux/sparc/bits/signum.h Just include <bits/signum-generic.h> and then add or adjust signal constants. Do not define SIGUNUSED, SIGRTMIN, or SIGRTMAX. * signal/Makefile: Install bits/signum-generic.h. * signal/signal.h: Define SIGRTMIN and SIGRTMAX here. * sysdeps/generic/siglist.h: SIGSYS and SIGWINCH are universal. Prefer SIGPOLL to SIGIO. Simplify #ifdeffage. * sysdeps/unix/sysv/linux/tst-signal-numbers.sh: New test. * sysdeps/unix/sysv/linux/Makefile: Run it.
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Signal number definitions.  Linux/HPPA version.
 | |
|    Copyright (C) 1995-2017 Free Software Foundation, Inc.
 | |
|    This file is part of the GNU C Library.
 | |
| 
 | |
|    The GNU C Library is free software; you can redistribute it and/or
 | |
|    modify it under the terms of the GNU Lesser General Public
 | |
|    License as published by the Free Software Foundation; either
 | |
|    version 2.1 of the License, or (at your option) any later version.
 | |
| 
 | |
|    The GNU C Library is distributed in the hope that it will be useful,
 | |
|    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | |
|    Lesser General Public License for more details.
 | |
| 
 | |
|    You should have received a copy of the GNU Lesser General Public
 | |
|    License along with the GNU C Library.  If not, see
 | |
|    <http://www.gnu.org/licenses/>.  */
 | |
| 
 | |
| #ifndef _BITS_SIGNUM_H
 | |
| #define _BITS_SIGNUM_H 1
 | |
| 
 | |
| #ifndef _SIGNAL_H
 | |
| #error "Never include <bits/signum.h> directly; use <signal.h> instead."
 | |
| #endif
 | |
| 
 | |
| #include <bits/signum-generic.h>
 | |
| 
 | |
| /* Adjustments and additions to the signal number constants for
 | |
|    Linux/HPPA.  These values were originally chosen for HP/UX
 | |
|    compatibility, but were renumbered as of kernel 3.17 and glibc 2.21
 | |
|    to accommodate software (notably systemd) that assumed at least 29
 | |
|    real-time signal numbers would be available.  SIGEMT and SIGLOST
 | |
|    were removed, and the values of SIGSTKFLT, SIGXCPU, XIGXFSZ, and
 | |
|    SIGSYS were changed, enabling __SIGRTMIN to be 32.  */
 | |
| 
 | |
| #define	SIGSTKFLT	 7	/* Stack fault (obsolete).  */
 | |
| #define	SIGPWR		19	/* Power failure imminent.  */
 | |
| 
 | |
| #undef	SIGXCPU
 | |
| #define	SIGXCPU		12
 | |
| #undef	SIGUSR1
 | |
| #define	SIGUSR1		16
 | |
| #undef	SIGUSR2
 | |
| #define SIGUSR2		17
 | |
| #undef	SIGCHLD
 | |
| #define	SIGCHLD		18
 | |
| #undef	SIGVTALRM
 | |
| #define	SIGVTALRM	20
 | |
| #undef	SIGPROF
 | |
| #define	SIGPROF		21
 | |
| #undef	SIGPOLL
 | |
| #define	SIGPOLL		22
 | |
| #undef	SIGWINCH
 | |
| #define	SIGWINCH	23
 | |
| #undef	SIGSTOP
 | |
| #define	SIGSTOP		24
 | |
| #undef	SIGTSTP
 | |
| #define	SIGTSTP		25
 | |
| #undef	SIGCONT
 | |
| #define	SIGCONT		26
 | |
| #undef	SIGTTIN
 | |
| #define	SIGTTIN		27
 | |
| #undef	SIGTTOU
 | |
| #define	SIGTTOU		28
 | |
| #undef	SIGURG
 | |
| #define	SIGURG		29
 | |
| #undef	SIGXFSZ
 | |
| #define	SIGXFSZ		30
 | |
| #undef	SIGSYS
 | |
| #define SIGSYS		31
 | |
| 
 | |
| #undef	__SIGRTMAX
 | |
| #define __SIGRTMAX	64
 | |
| 
 | |
| #endif	/* <signal.h> included.  */
 |