summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@python.org>2019-06-29 21:28:59 (GMT)
committerGitHub <noreply@github.com>2019-06-29 21:28:59 (GMT)
commit323e743d4879f1cd861d0b252775797fb7938755 (patch)
treecfaccee98a1695fabc022c04450b972e4f79071d /Include
parent0cba121029bae0a891b02c493cb77633620701be (diff)
downloadcpython-323e743d4879f1cd861d0b252775797fb7938755.zip
cpython-323e743d4879f1cd861d0b252775797fb7938755.tar.gz
cpython-323e743d4879f1cd861d0b252775797fb7938755.tar.bz2
bpo-37369: Fix initialization of sys members when launched via an app container (GH-14467)
sys._base_executable is now always defined on all platforms, and can be overridden through configuration. Also adds test.support.PythonSymlink to encapsulate platform-specific logic for symlinking sys.executable
Diffstat (limited to 'Include')
-rw-r--r--Include/cpython/initconfig.h9
-rw-r--r--Include/internal/pycore_pathconfig.h2
2 files changed, 7 insertions, 4 deletions
diff --git a/Include/cpython/initconfig.h b/Include/cpython/initconfig.h
index 67f38e2..297fbf7 100644
--- a/Include/cpython/initconfig.h
+++ b/Include/cpython/initconfig.h
@@ -373,10 +373,11 @@ typedef struct {
module_search_paths_set is equal
to zero. */
- wchar_t *executable; /* sys.executable */
- wchar_t *prefix; /* sys.prefix */
- wchar_t *base_prefix; /* sys.base_prefix */
- wchar_t *exec_prefix; /* sys.exec_prefix */
+ wchar_t *executable; /* sys.executable */
+ wchar_t *base_executable; /* sys._base_executable */
+ wchar_t *prefix; /* sys.prefix */
+ wchar_t *base_prefix; /* sys.base_prefix */
+ wchar_t *exec_prefix; /* sys.exec_prefix */
wchar_t *base_exec_prefix; /* sys.base_exec_prefix */
/* --- Parameter only used by Py_Main() ---------- */
diff --git a/Include/internal/pycore_pathconfig.h b/Include/internal/pycore_pathconfig.h
index be12c6f..9e0ba0b 100644
--- a/Include/internal/pycore_pathconfig.h
+++ b/Include/internal/pycore_pathconfig.h
@@ -27,6 +27,8 @@ typedef struct _PyPathConfig {
are ignored when their value are equal to -1 (unset). */
int isolated;
int site_import;
+ /* Set when a venv is detected */
+ wchar_t *base_executable;
} _PyPathConfig;
#define _PyPathConfig_INIT \