summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeoffrey Thomas <geofft@ldpreload.com>2021-07-27 22:58:12 (GMT)
committerGitHub <noreply@github.com>2021-07-27 22:58:12 (GMT)
commit196998e220d6ca030e5a1c8ad63fcaed8e049a98 (patch)
tree6545c196d9a44d85272fac71d1b6cdbac1e6f505
parentecc3c8e4216958d85385bf2467441c975128f26c (diff)
downloadcpython-196998e220d6ca030e5a1c8ad63fcaed8e049a98.zip
cpython-196998e220d6ca030e5a1c8ad63fcaed8e049a98.tar.gz
cpython-196998e220d6ca030e5a1c8ad63fcaed8e049a98.tar.bz2
closes bpo-44751: Move crypt.h include from public header to _cryptmodule (GH-27394)
Automerge-Triggered-By: GH:benjaminp
-rw-r--r--Include/Python.h13
-rw-r--r--Misc/NEWS.d/next/C API/2021-07-27-17-29-12.bpo-44751.4qmbDG.rst1
-rw-r--r--Modules/_cryptmodule.c3
3 files changed, 4 insertions, 13 deletions
diff --git a/Include/Python.h b/Include/Python.h
index 04858f2..a83befa 100644
--- a/Include/Python.h
+++ b/Include/Python.h
@@ -35,19 +35,6 @@
#ifndef MS_WINDOWS
#include <unistd.h>
#endif
-#ifdef HAVE_CRYPT_H
-#if defined(HAVE_CRYPT_R) && !defined(_GNU_SOURCE)
-/* Required for glibc to expose the crypt_r() function prototype. */
-# define _GNU_SOURCE
-# define _Py_GNU_SOURCE_FOR_CRYPT
-#endif
-#include <crypt.h>
-#ifdef _Py_GNU_SOURCE_FOR_CRYPT
-/* Don't leak the _GNU_SOURCE define to other headers. */
-# undef _GNU_SOURCE
-# undef _Py_GNU_SOURCE_FOR_CRYPT
-#endif
-#endif
/* For size_t? */
#ifdef HAVE_STDDEF_H
diff --git a/Misc/NEWS.d/next/C API/2021-07-27-17-29-12.bpo-44751.4qmbDG.rst b/Misc/NEWS.d/next/C API/2021-07-27-17-29-12.bpo-44751.4qmbDG.rst
new file mode 100644
index 0000000..d7b9f09
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2021-07-27-17-29-12.bpo-44751.4qmbDG.rst
@@ -0,0 +1 @@
+Remove ``crypt.h`` include from the public ``Python.h`` header.
diff --git a/Modules/_cryptmodule.c b/Modules/_cryptmodule.c
index a95f55a..72a4f44 100644
--- a/Modules/_cryptmodule.c
+++ b/Modules/_cryptmodule.c
@@ -4,6 +4,9 @@
#include "Python.h"
#include <sys/types.h>
+#ifdef HAVE_CRYPT_H
+#include <crypt.h>
+#endif
/* Module crypt */