Browse Source

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

Original patch by Thomas Wouters.
pull/224/head
Ned Deily 12 years ago
parent
commit
b166191886
  1. 5
      Misc/NEWS
  2. 14
      Modules/getpath.c
  3. 8
      Modules/makesetup

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

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

8
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

Loading…
Cancel
Save