Issue #17095: Fix Modules/Setup *shared* support.

Original patch by Thomas Wouters.
This commit is contained in:
Ned Deily 2014-06-02 01:05:29 -07:00
parent e81c637bf8
commit b166191886
3 changed files with 21 additions and 6 deletions

View File

@ -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
-----

View File

@ -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;

View File

@ -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