[Python-checkins] cpython (3.2): Issue #1602133: 'environ' is not really available with shared libraries on OSX
ronald.oussoren
python-checkins at python.org
Fri Jan 25 18:03:23 CET 2013
http://hg.python.org/cpython/rev/ea9fd9c9c677
changeset: 81730:ea9fd9c9c677
branch: 3.2
parent: 81726:e28b30e6eee6
user: Ronald Oussoren <ronaldoussoren at mac.com>
date: Fri Jan 25 17:57:13 2013 +0100
summary:
Issue #1602133: 'environ' is not really available with shared libraries on OSX
There already was a workaround for this for framework builds on OSX,
this changeset enables the same workaround for shared libraries.
Closes #1602133
files:
Misc/NEWS | 3 +++
Modules/posixmodule.c | 7 ++++---
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -197,6 +197,9 @@
- Issue #13521: dict.setdefault() now does only one lookup for the given key,
making it "atomic" for many purposes. Patch by Filip Gruszczyński.
+- Issue #1602133: on Mac OS X a shared library build (``--enable-shared``)
+ now fills the ``os.environ`` variable correctly.
+
- Issue #14471: Fix a possible buffer overrun in the winreg module.
Library
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -501,9 +501,10 @@
#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;
@@ -528,7 +529,7 @@
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
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list