Signed-off-by: falkTX <falktx@falktx.com>tags/v1.1
@@ -1,7 +1,8 @@ | |||||
diff -Naur Python-3.8.0-orig/Makefile.pre.in Python-3.8.0/Makefile.pre.in | |||||
--- Python-3.8.0-orig/Makefile.pre.in 2019-10-22 10:03:21.368190400 +0300 | |||||
+++ Python-3.8.0/Makefile.pre.in 2019-10-22 10:03:31.336607900 +0300 | |||||
@@ -710,20 +710,20 @@ | |||||
diff --git a/Makefile.pre.in b/Makefile.pre.in | |||||
index e2143a2..4ee959f 100644 | |||||
--- a/Makefile.pre.in | |||||
+++ b/Makefile.pre.in | |||||
@@ -730,26 +730,26 @@ Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) | |||||
Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile | Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile | ||||
@@ -26,7 +27,14 @@ diff -Naur Python-3.8.0-orig/Makefile.pre.in Python-3.8.0/Makefile.pre.in | |||||
$(srcdir)/Lib/importlib/_bootstrap.py \ | $(srcdir)/Lib/importlib/_bootstrap.py \ | ||||
$(srcdir)/Python/importlib.h.new | $(srcdir)/Python/importlib.h.new | ||||
$(UPDATE_FILE) $(srcdir)/Python/importlib.h $(srcdir)/Python/importlib.h.new | $(UPDATE_FILE) $(srcdir)/Python/importlib.h $(srcdir)/Python/importlib.h.new | ||||
@@ -1781,7 +1781,7 @@ | |||||
# Regenerate Python/importlib_zipimport.h from Lib/zipimport.py | |||||
# using _freeze_importlib | |||||
- ./Programs/_freeze_importlib zipimport \ | |||||
+ ./Programs/_freeze_importlib$(EXE) zipimport \ | |||||
$(srcdir)/Lib/zipimport.py \ | |||||
$(srcdir)/Python/importlib_zipimport.h.new | |||||
$(UPDATE_FILE) $(srcdir)/Python/importlib_zipimport.h $(srcdir)/Python/importlib_zipimport.h.new | |||||
@@ -1807,7 +1807,7 @@ clean: pycremoval | |||||
find build -name '*.py[co]' -exec rm -f {} ';' || true | find build -name '*.py[co]' -exec rm -f {} ';' || true | ||||
-rm -f pybuilddir.txt | -rm -f pybuilddir.txt | ||||
-rm -f Lib/lib2to3/*Grammar*.pickle | -rm -f Lib/lib2to3/*Grammar*.pickle | ||||
@@ -9,6 +9,15 @@ diff -Naur Python-3.8.0-orig/Makefile.pre.in Python-3.8.0/Makefile.pre.in | |||||
PYTHON_FOR_REGEN=@PYTHON_FOR_REGEN@ | PYTHON_FOR_REGEN=@PYTHON_FOR_REGEN@ | ||||
UPDATE_FILE=@PYTHON_FOR_REGEN@ $(srcdir)/Tools/scripts/update_file.py | UPDATE_FILE=@PYTHON_FOR_REGEN@ $(srcdir)/Tools/scripts/update_file.py | ||||
@@ -272,6 +272,8 @@ COVERAGE_INFO= $(abs_builddir)/coverage.info | |||||
COVERAGE_REPORT=$(abs_builddir)/lcov-report | |||||
COVERAGE_REPORT_OPTIONS=--no-branch-coverage --title "CPython lcov report" | |||||
+# tool to generate windows resource files | |||||
+WINDRES?= windres | |||||
# === Definitions added by makesetup === | |||||
@@ -455,7 +456,7 @@ | @@ -455,7 +456,7 @@ | ||||
# Default target | # Default target | ||||
@@ -29,13 +38,13 @@ diff -Naur Python-3.8.0-orig/Makefile.pre.in Python-3.8.0/Makefile.pre.in | |||||
+ @echo '#define PYTHON_DLL_NAME "$(DLLLIBRARY)"' >> $@ | + @echo '#define PYTHON_DLL_NAME "$(DLLLIBRARY)"' >> $@ | ||||
+ | + | ||||
+python_exe.o: pythonnt_rc.h $(srcdir)/PC/python_exe.rc | +python_exe.o: pythonnt_rc.h $(srcdir)/PC/python_exe.rc | ||||
+ windres -I$(srcdir)/Include -I$(srcdir)/PC -I. $(srcdir)/PC/python_exe.rc $@ | |||||
+ $(WINDRES) -I$(srcdir)/Include -I$(srcdir)/PC -I. $(srcdir)/PC/python_exe.rc $@ | |||||
+ | + | ||||
+pythonw_exe.o: pythonnt_rc.h $(srcdir)/PC/pythonw_exe.rc | +pythonw_exe.o: pythonnt_rc.h $(srcdir)/PC/pythonw_exe.rc | ||||
+ windres -I$(srcdir)/Include -I$(srcdir)/PC -I. $(srcdir)/PC/pythonw_exe.rc $@ | |||||
+ $(WINDRES) -I$(srcdir)/Include -I$(srcdir)/PC -I. $(srcdir)/PC/pythonw_exe.rc $@ | |||||
+ | + | ||||
+python_nt.o: pythonnt_rc.h $(srcdir)/PC/python_nt.rc | +python_nt.o: pythonnt_rc.h $(srcdir)/PC/python_nt.rc | ||||
+ windres -I$(srcdir)/Include -I$(srcdir)/PC -I. $(srcdir)/PC/python_nt.rc $@ | |||||
+ $(WINDRES) -I$(srcdir)/Include -I$(srcdir)/PC -I. $(srcdir)/PC/python_nt.rc $@ | |||||
+ | + | ||||
+$(BUILDPYTHONW): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) pythonw_exe.o | +$(BUILDPYTHONW): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) pythonw_exe.o | ||||
+ $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -municode -mwindows -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) pythonw_exe.o | + $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -municode -mwindows -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) pythonw_exe.o | ||||
@@ -1,16 +1,40 @@ | |||||
diff --git a/configure.ac b/configure.ac | |||||
index 6210e41..51432a8 100644 | |||||
--- a/configure.ac | |||||
+++ b/configure.ac | |||||
@@ -1297,7 +1297,7 @@ if test $enable_shared = "yes"; then | |||||
*-*-mingw*) | |||||
LDLIBRARY='libpython$(LDVERSION).dll.a' | |||||
DLLLIBRARY='libpython$(LDVERSION).dll' | |||||
- BLDLIBRARY='-L. -lpython$(LDVERSION)' | |||||
+ BLDLIBRARY='-L. -Wl,-Bdynamic -lpython$(LDVERSION) -Wl,-Bstatic' | |||||
;; | |||||
esac | |||||
else # shared is disabled | |||||
diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py | |||||
index 0ea9cfe..1a24d5b 100644 | |||||
--- a/Lib/distutils/ccompiler.py | |||||
+++ b/Lib/distutils/ccompiler.py | |||||
@@ -1098,6 +1098,8 @@ def gen_lib_options (compiler, library_dirs, runtime_library_dirs, libraries): | |||||
else: | |||||
lib_opts.append(opt) | |||||
+ lib_opts.append("-Wl,-Bdynamic") | |||||
+ | |||||
# XXX it's important that we *not* remove redundant library mentions! | |||||
# sometimes you really do have to say "-lfoo -lbar -lfoo" in order to | |||||
# resolve all symbols. I just hope we never have to say "-lfoo obj.o | |||||
@@ -1115,4 +1117,6 @@ def gen_lib_options (compiler, library_dirs, runtime_library_dirs, libraries): | |||||
"'%s' found (skipping)" % lib) | |||||
else: | |||||
lib_opts.append(compiler.library_option (lib)) | |||||
+ | |||||
+ lib_opts.append("-Wl,-Bstatic") | |||||
return lib_opts | |||||
diff --git a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py | diff --git a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py | ||||
index dddf412..b0a18a7 100644 | index dddf412..b0a18a7 100644 | ||||
--- a/Lib/distutils/cygwinccompiler.py | --- a/Lib/distutils/cygwinccompiler.py | ||||
+++ b/Lib/distutils/cygwinccompiler.py | +++ b/Lib/distutils/cygwinccompiler.py | ||||
@@ -263,6 +263,8 @@ class CygwinCCompiler(UnixCCompiler): | |||||
if not debug and not hasattr(sys, 'gettotalrefcount'): | |||||
extra_preargs.append("-s") | |||||
+ extra_preargs.append("-Wl,-Bdynamic") | |||||
+ | |||||
UnixCCompiler.link(self, target_desc, objects, output_filename, | |||||
output_dir, libraries, library_dirs, | |||||
runtime_library_dirs, | |||||
@@ -413,6 +415,7 @@ def _find_exe_version(cmd): | @@ -413,6 +415,7 @@ def _find_exe_version(cmd): | ||||
out_string = out.read() | out_string = out.read() | ||||
finally: | finally: | ||||
@@ -19,3 +43,14 @@ index dddf412..b0a18a7 100644 | |||||
result = RE_VERSION.search(out_string) | result = RE_VERSION.search(out_string) | ||||
if result is None: | if result is None: | ||||
return None | return None | ||||
diff --git a/Misc/python.pc.in b/Misc/python.pc.in | |||||
index 3900190..8bdd635 100644 | |||||
--- a/Misc/python.pc.in | |||||
+++ b/Misc/python.pc.in | |||||
@@ -9,5 +9,5 @@ Description: Build a C extension for Python | |||||
Requires: | |||||
Version: @VERSION@ | |||||
Libs.private: @LIBS@ | |||||
-Libs: -L${libdir} -lpython@VERSION@@ABIFLAGS@ | |||||
+Libs: -L${libdir} -L${prefix}/bin -Wl,-Bdynamic -lpython@VERSION@@ABIFLAGS@ -Wl,-Bstatic | |||||
Cflags: -I${includedir}/python@VERSION@@ABIFLAGS@ |