diff options
Diffstat (limited to 'man7')
| -rw-r--r-- | man7/signal.7 | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/man7/signal.7 b/man7/signal.7 index a0406d6493..2bcec4ad5b 100644 --- a/man7/signal.7 +++ b/man7/signal.7 @@ -796,16 +796,36 @@ Linux 2.4 and earlier: .BR nanosleep (2). .SH CONFORMING TO POSIX.1, except as noted. -.\" It must be a *very* long time since this was true: -.\" .SH BUGS -.\" .B SIGIO -.\" and -.\" .B SIGLOST -.\" have the same value. -.\" The latter is commented out in the kernel source, but -.\" the build process of some software still thinks that -.\" signal 29 is -.\" .BR SIGLOST . +.SH BUGS +There are six signals that can be delivered +as a consequence of a hardware exception: +.BR SIGBUS , +.BR SIGEMT , +.BR SIGFPE , +.BR SIGILL , +.BR SIGSEGV , +and +.BR SIGTRAP . +Which of these signals is delivered, +for any given hardware exception, +is not documented and does not always make sense. +.PP +For example, an invalid memory access that causes delivery of +.B SIGSEGV +on one CPU architecture may cause delivery of +.B SIGBUS +on another architecture, or vice versa. +.PP +For another example, using the x86 +.I int +instruction with a forbidden argument +(any number other than 3 or 128) +causes delivery of +.BR SIGSEGV , +even though +.B SIGILL +would make more sense, +because of how the CPU reports the forbidden operation to the kernel. .SH NOTES For a discussion of async-signal-safe functions, see .BR signal-safety (7). |
