summaryrefslogtreecommitdiffstats
path: root/Modules/posixmodule.c
diff options
context:
space:
mode:
authorRonald Oussoren <ronaldoussoren@mac.com>2013-01-25 17:02:35 (GMT)
committerRonald Oussoren <ronaldoussoren@mac.com>2013-01-25 17:02:35 (GMT)
commit20190e2d54e6d513bb197a160cdfd236bf63f168 (patch)
tree9a3df3739904b4f9adc0ac727dee0aef5e3554e1 /Modules/posixmodule.c
parent454ea92a4cbae62fcf7ef836a3792294ddbdf1f5 (diff)
parent1c90eed8a9a10b6b7eb5f791931cc86754d4028c (diff)
downloadcpython-20190e2d54e6d513bb197a160cdfd236bf63f168.zip
cpython-20190e2d54e6d513bb197a160cdfd236bf63f168.tar.gz
cpython-20190e2d54e6d513bb197a160cdfd236bf63f168.tar.bz2
Issue #1602133: 'environ' is not really available with shared libraries on OSX (merge from 3.3)
There already was a workaround for this for framework builds on OSX, this changeset enables the same workaround for shared libraries. Closes #1602133
Diffstat (limited to 'Modules/posixmodule.c')
-rw-r--r--Modules/posixmodule.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index fb58507..2e65da2 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -924,9 +924,10 @@ win32_get_reparse_tag(HANDLE reparse_point_handle, ULONG *reparse_tag)
#endif /* MS_WINDOWS */
/* Return a dictionary corresponding to the POSIX environment table */
-#ifdef WITH_NEXT_FRAMEWORK
+#if defined(WITH_NEXT_FRAMEWORK) || (defined(__APPLE__) && defined(Py_ENABLE_SHARED))
/* On Darwin/MacOSX a shared library or framework has no access to
-** environ directly, we must obtain it with _NSGetEnviron().
+** environ directly, we must obtain it with _NSGetEnviron(). See also
+** man environ(7).
*/
#include <crt_externs.h>
static char **environ;
@@ -947,7 +948,7 @@ convertenviron(void)
d = PyDict_New();
if (d == NULL)
return NULL;
-#ifdef WITH_NEXT_FRAMEWORK
+#if defined(WITH_NEXT_FRAMEWORK) || (defined(__APPLE__) && defined(Py_ENABLE_SHARED))
if (environ == NULL)
environ = *_NSGetEnviron();
#endif