Skip to content

Commit

Permalink
pythongh-113119: Fix the macOS framework installer build (python#113268)
Browse files Browse the repository at this point in the history
`--enable-framework` builds were failing.  we apparently do not have good CI & buildbot coverage here.
  • Loading branch information
gpshead committed Dec 19, 2023
1 parent 893c9cc commit c895403
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion Modules/posixmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -1557,6 +1557,7 @@ _Py_Sigset_Converter(PyObject *obj, void *addr)
** man environ(7).
*/
#include <crt_externs.h>
#define USE_DARWIN_NS_GET_ENVIRON 1
#elif !defined(_MSC_VER) && (!defined(__WATCOMC__) || defined(__QNX__) || defined(__VXWORKS__))
extern char **environ;
#endif /* !_MSC_VER */
Expand All @@ -1579,7 +1580,7 @@ convertenviron(void)
through main() instead of wmain(). */
(void)_wgetenv(L"");
e = _wenviron;
#elif defined(WITH_NEXT_FRAMEWORK) || (defined(__APPLE__) && defined(Py_ENABLE_SHARED))
#elif defined(USE_DARWIN_NS_GET_ENVIRON)
/* environ is not accessible as an extern in a shared object on OSX; use
_NSGetEnviron to resolve it. The value changes if you add environment
variables between calls to Py_Initialize, so don't cache the value. */
Expand Down Expand Up @@ -7166,7 +7167,15 @@ py_posix_spawn(int use_posix_spawnp, PyObject *module, path_t *path, PyObject *a
goto exit;
}

#ifdef USE_DARWIN_NS_GET_ENVIRON
// There is no environ global in this situation.
char **environ = NULL;
#endif

if (env == Py_None) {
#ifdef USE_DARWIN_NS_GET_ENVIRON
environ = *_NSGetEnviron();
#endif
envlist = environ;
} else {
envlist = parse_envlist(env, &envc);
Expand Down

0 comments on commit c895403

Please sign in to comment.