summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNed Deily <nad@acm.org>2014-06-02 08:05:29 (GMT)
committerNed Deily <nad@acm.org>2014-06-02 08:05:29 (GMT)
commitb16619188633a22a924ea9497c55932cd03fdc44 (patch)
tree5c6035b7c4335d374f20bf55d08c1415506727ec
parente81c637bf8042660a76e0c9138c789369f880ccc (diff)
downloadcpython-b16619188633a22a924ea9497c55932cd03fdc44.zip
cpython-b16619188633a22a924ea9497c55932cd03fdc44.tar.gz
cpython-b16619188633a22a924ea9497c55932cd03fdc44.tar.bz2
Issue #17095: Fix Modules/Setup *shared* support.
Original patch by Thomas Wouters.
-rw-r--r--Misc/NEWS5
-rw-r--r--Modules/getpath.c14
-rwxr-xr-xModules/makesetup8
3 files changed, 21 insertions, 6 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 902d72e..c03534b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -58,6 +58,11 @@ Library
- Issue #21538: The plistlib module now supports loading of binary plist files
when reference or offset size is not a power of two.
+Build
+-----
+
+- Issue #17095: Fix Modules/Setup *shared* support.
+
Tests
-----
diff --git a/Modules/getpath.c b/Modules/getpath.c
index c057737..f26b8e9 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
@@ -734,6 +734,11 @@ calculate_path(void)
bufsz += wcslen(zip_path) + 1;
bufsz += wcslen(exec_prefix) + 1;
+ /* When running from the build directory, add room for the Modules
+ * subdirectory too.
+ */
+ if (efound == -1)
+ bufsz += wcslen(argv0_path) + wcslen(L"Modules") + 2;
buf = (wchar_t *)PyMem_Malloc(bufsz * sizeof(wchar_t));
if (buf == NULL) {
@@ -781,6 +786,15 @@ calculate_path(void)
/* Finally, on goes the directory for dynamic-load modules */
wcscat(buf, exec_prefix);
+ /* And, if we run from a build directory, the Modules directory (for
+ * modules built with Modules/Setup.)
+ */
+ if (efound == -1) {
+ wcscat(buf, delimiter);
+ wcscat(buf, argv0_path);
+ wcscat(buf, separator);
+ wcscat(buf, L"Modules");
+ }
/* And publish the results */
module_search_path = buf;
diff --git a/Modules/makesetup b/Modules/makesetup
index 40dfa9d..8b5cc28 100755
--- a/Modules/makesetup
+++ b/Modules/makesetup
@@ -217,7 +217,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
*) src='$(srcdir)/'"$srcdir/$src";;
esac
case $doconfig in
- no) cc="$cc \$(CCSHARED) \$(CFLAGS) \$(CPPFLAGS)";;
+ no) cc="$cc \$(CCSHARED) \$(PY_CFLAGS) \$(PY_CPPFLAGS)";;
*)
cc="$cc \$(PY_CORE_CFLAGS)";;
esac
@@ -229,11 +229,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
esac
for mod in $mods
do
- case $objs in
- *$mod.o*) base=$mod;;
- *) base=${mod}module;;
- esac
- file="$srcdir/$base\$(SO)"
+ file="$srcdir/$mod\$(EXT_SUFFIX)"
case $doconfig in
no) SHAREDMODS="$SHAREDMODS $file";;
esac