@@ -84,6 +84,10 @@ CONFIGURE_CFLAGS= @CFLAGS@
8484# Use it when a compiler flag should _not_ be part of the distutils CFLAGS
8585# once Python is installed (Issue #21121).
8686CONFIGURE_CFLAGS_NODIST=@CFLAGS_NODIST@
87+ # LDFLAGS_NODIST is used in the same manner as CFLAGS_NODIST.
88+ # Use it when a linker flag should _not_ be part of the distutils LDFLAGS
89+ # once Python is installed (bpo-35257)
90+ CONFIGURE_LDFLAGS_NODIST=@LDFLAGS_NODIST@
8791CONFIGURE_CPPFLAGS= @CPPFLAGS@
8892CONFIGURE_LDFLAGS= @LDFLAGS@
8993# Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the
@@ -96,6 +100,7 @@ PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include
96100# environment variables
97101PY_CPPFLAGS= $(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS)
98102PY_LDFLAGS= $(CONFIGURE_LDFLAGS) $(LDFLAGS)
103+ PY_LDFLAGS_NODIST=$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)
99104NO_AS_NEEDED= @NO_AS_NEEDED@
100105SGI_ABI= @SGI_ABI@
101106CCSHARED= @CCSHARED@
@@ -107,6 +112,8 @@ CFLAGSFORSHARED=@CFLAGSFORSHARED@
107112PY_STDMODULE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED)
108113PY_BUILTIN_MODULE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN
109114PY_CORE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE
115+ # Linker flags used for building the interpreter object files
116+ PY_CORE_LDFLAGS=$(PY_LDFLAGS) $(PY_LDFLAGS_NODIST)
110117# Strict or non-strict aliasing flags used to compile dtoa.c, see above
111118CFLAGS_ALIASING=@CFLAGS_ALIASING@
112119
@@ -146,7 +153,7 @@ CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(LDVERSION)
146153SHLIB_SUFFIX= @SHLIB_SUFFIX@
147154EXT_SUFFIX= @EXT_SUFFIX@
148155LDSHARED= @LDSHARED@ $(PY_LDFLAGS)
149- BLDSHARED= @BLDSHARED@ $(PY_LDFLAGS )
156+ BLDSHARED= @BLDSHARED@ $(PY_LDFLAGS_NODIST )
150157LDCXXSHARED= @LDCXXSHARED@
151158DESTSHARED= $(BINLIBDEST)/lib-dynload
152159
@@ -496,7 +503,7 @@ profile-run-stamp:
496503 touch $@
497504
498505build_all_generate_profile:
499- $(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LDFLAGS ="$(LDFLAGS ) $(PGO_PROF_GEN_FLAG)" LIBS="$(LIBS)"
506+ $(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LDFLAGS_NODIST ="$(LDFLAGS_NODIST ) $(PGO_PROF_GEN_FLAG)" LIBS="$(LIBS)"
500507
501508run_profile_task:
502509 @ # FIXME: can't run for a cross build
@@ -510,7 +517,7 @@ build_all_merge_profile:
510517profile-opt: profile-run-stamp
511518 @echo "Rebuilding with profile guided optimizations:"
512519 -rm -f profile-clean-stamp
513- $(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_USE_FLAG)" LDFLAGS ="$(LDFLAGS )"
520+ $(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_USE_FLAG)" LDFLAGS_NODIST ="$(LDFLAGS_NODIST )"
514521
515522# Compile and run with gcov
516523.PHONY=coverage coverage-lcov coverage-report
@@ -567,7 +574,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c
567574
568575# Build the interpreter
569576$(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
570- $(LINKCC) $(PY_LDFLAGS ) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS)
577+ $(LINKCC) $(PY_CORE_LDFLAGS ) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS)
571578
572579platform: $(BUILDPYTHON) pybuilddir.txt
573580 $(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print("%s-%d.%d" % (get_platform(), *sys.version_info[:2]))' >platform
@@ -632,7 +639,7 @@ libpython3.so: libpython$(LDVERSION).so
632639 $(BLDSHARED) $(NO_AS_NEEDED) -o $@ -Wl,-h$@ $^
633640
634641libpython$(LDVERSION).dylib: $(LIBRARY_OBJS)
635- $(CC) -dynamiclib -Wl,-single_module $(PY_LDFLAGS ) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(LDVERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \
642+ $(CC) -dynamiclib -Wl,-single_module $(PY_CORE_LDFLAGS ) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(LDVERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \
636643
637644
638645libpython$(VERSION).sl: $(LIBRARY_OBJS)
@@ -657,7 +664,7 @@ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
657664 $(LIBRARY) \
658665 $(RESSRCDIR)/Info.plist
659666 $(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)
660- $(CC) -o $(LDLIBRARY) $(PY_LDFLAGS ) -dynamiclib \
667+ $(CC) -o $(LDLIBRARY) $(PY_CORE_LDFLAGS ) -dynamiclib \
661668 -all_load $(LIBRARY) -Wl,-single_module \
662669 -install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \
663670 -compatibility_version $(VERSION) \
@@ -698,15 +705,15 @@ Makefile Modules/config.c: Makefile.pre \
698705
699706
700707Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
701- $(LINKCC) $(PY_LDFLAGS ) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS)
708+ $(LINKCC) $(PY_CORE_LDFLAGS ) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS)
702709
703710############################################################################
704711# Importlib
705712
706713Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile
707714
708715Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
709- $(LINKCC) $(PY_LDFLAGS ) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS)
716+ $(LINKCC) $(PY_CORE_LDFLAGS ) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS)
710717
711718.PHONY: regen-importlib
712719regen-importlib: Programs/_freeze_importlib
@@ -794,7 +801,7 @@ Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile
794801$(IO_OBJS): $(IO_H)
795802
796803$(PGEN): $(PGENOBJS)
797- $(CC) $(OPT) $(PY_LDFLAGS ) $(PGENOBJS) $(LIBS) -o $(PGEN)
804+ $(CC) $(OPT) $(PY_CORE_LDFLAGS ) $(PGENOBJS) $(LIBS) -o $(PGEN)
798805
799806.PHONY: regen-grammar
800807regen-grammar: $(PGEN)
0 commit comments