summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Osipov <1983-01-06@gmx.net>2018-08-23 15:27:19 +0200
committerBerker Peksag <berker.peksag@gmail.com>2018-08-23 16:27:19 +0300
commit48ce4897f8f8d91d948ecd1241ffab002df2be9e (patch)
treec07a85ee488b78bf02db2716d2ca7619e370171b
parent89487f51b8d6ba8a55f5de0ed689e46fefe73cc9 (diff)
downloadcpython-git-48ce4897f8f8d91d948ecd1241ffab002df2be9e.tar.gz
bpo-34412: Make signal.strsignal() work on HP-UX (GH-8786)
Introduce a configure check for strsignal(3) which defines HAVE_STRSIGNAL for signalmodule.c. Add some common signals on HP-UX. This change applies for Windows and HP-UX.
-rw-r--r--Lib/test/test_signal.py1
-rw-r--r--Misc/NEWS.d/next/Library/2018-08-16-19-07-05.bpo-34412.NF5Jm2.rst1
-rw-r--r--Modules/signalmodule.c22
-rwxr-xr-xconfigure2
-rw-r--r--configure.ac2
-rw-r--r--pyconfig.h.in3
6 files changed, 27 insertions, 4 deletions
diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py
index ecdffa60a6..d30a2d6129 100644
--- a/Lib/test/test_signal.py
+++ b/Lib/test/test_signal.py
@@ -60,6 +60,7 @@ class PosixTests(unittest.TestCase):
def test_strsignal(self):
self.assertIn("Interrupt", signal.strsignal(signal.SIGINT))
self.assertIn("Terminated", signal.strsignal(signal.SIGTERM))
+ self.assertIn("Hangup", signal.strsignal(signal.SIGHUP))
# Issue 3864, unknown if this affects earlier versions of freebsd also
def test_interprocess_signal(self):
diff --git a/Misc/NEWS.d/next/Library/2018-08-16-19-07-05.bpo-34412.NF5Jm2.rst b/Misc/NEWS.d/next/Library/2018-08-16-19-07-05.bpo-34412.NF5Jm2.rst
new file mode 100644
index 0000000000..8d7320f25e
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2018-08-16-19-07-05.bpo-34412.NF5Jm2.rst
@@ -0,0 +1 @@
+Make :func:`signal.strsignal` work on HP-UX. Patch by Michael Osipov.
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index 9de5c2ed18..d120948582 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -530,9 +530,27 @@ signal_strsignal_impl(PyObject *module, int signalnum)
return NULL;
}
-#ifdef MS_WINDOWS
- /* Custom redefinition of POSIX signals allowed on Windows */
+#ifndef HAVE_STRSIGNAL
switch (signalnum) {
+ /* Though being a UNIX, HP-UX does not provide strsignal(3). */
+#ifndef MS_WINDOWS
+ case SIGHUP:
+ res = "Hangup";
+ break;
+ case SIGALRM:
+ res = "Alarm clock";
+ break;
+ case SIGPIPE:
+ res = "Broken pipe";
+ break;
+ case SIGQUIT:
+ res = "Quit";
+ break;
+ case SIGCHLD:
+ res = "Child exited";
+ break;
+#endif
+ /* Custom redefinition of POSIX signals allowed on Windows. */
case SIGINT:
res = "Interrupt";
break;
diff --git a/configure b/configure
index 87f3392fec..4de68432cb 100755
--- a/configure
+++ b/configure
@@ -11256,7 +11256,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
sched_get_priority_max sched_setaffinity sched_setscheduler sched_setparam \
sched_rr_get_interval \
sigaction sigaltstack sigfillset siginterrupt sigpending sigrelse \
- sigtimedwait sigwait sigwaitinfo snprintf strftime strlcpy symlinkat sync \
+ sigtimedwait sigwait sigwaitinfo snprintf strftime strlcpy strsignal symlinkat sync \
sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
truncate uname unlinkat unsetenv utimensat utimes waitid waitpid wait3 wait4 \
wcscoll wcsftime wcsxfrm wmemcmp writev _getpty
diff --git a/configure.ac b/configure.ac
index 749303ee1b..1e0b7f5e7b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3448,7 +3448,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
sched_get_priority_max sched_setaffinity sched_setscheduler sched_setparam \
sched_rr_get_interval \
sigaction sigaltstack sigfillset siginterrupt sigpending sigrelse \
- sigtimedwait sigwait sigwaitinfo snprintf strftime strlcpy symlinkat sync \
+ sigtimedwait sigwait sigwaitinfo snprintf strftime strlcpy strsignal symlinkat sync \
sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
truncate uname unlinkat unsetenv utimensat utimes waitid waitpid wait3 wait4 \
wcscoll wcsftime wcsxfrm wmemcmp writev _getpty)
diff --git a/pyconfig.h.in b/pyconfig.h.in
index d80ddc0dc2..a82c3737c3 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -984,6 +984,9 @@
/* Define to 1 if you have the <stropts.h> header file. */
#undef HAVE_STROPTS_H
+/* Define to 1 if you have the `strsignal' function. */
+#undef HAVE_STRSIGNAL
+
/* Define to 1 if `pw_gecos' is a member of `struct passwd'. */
#undef HAVE_STRUCT_PASSWD_PW_GECOS