@@ -85,6 +85,10 @@ CONFIGURE_CFLAGS= @CFLAGS@
8585# Use it when a compiler flag should _not_ be part of the distutils CFLAGS
8686# once Python is installed (Issue #21121).
8787CONFIGURE_CFLAGS_NODIST=@CFLAGS_NODIST@
88+ # LDFLAGS_NODIST is used in the same manner as CFLAGS_NODIST.
89+ # Use it when a linker flag should _not_ be part of the distutils LDFLAGS
90+ # once Python is installed (bpo-35257)
91+ CONFIGURE_LDFLAGS_NODIST=@LDFLAGS_NODIST@
8892CONFIGURE_CPPFLAGS= @CPPFLAGS@
8993CONFIGURE_LDFLAGS= @LDFLAGS@
9094# Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the
@@ -97,6 +101,7 @@ PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST)
97101# environment variables
98102PY_CPPFLAGS= $(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS)
99103PY_LDFLAGS= $(CONFIGURE_LDFLAGS) $(LDFLAGS)
104+ PY_LDFLAGS_NODIST=$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)
100105NO_AS_NEEDED= @NO_AS_NEEDED@
101106LDLAST= @LDLAST@
102107SGI_ABI= @SGI_ABI@
@@ -109,6 +114,8 @@ CFLAGSFORSHARED=@CFLAGSFORSHARED@
109114PY_STDMODULE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED)
110115PY_BUILTIN_MODULE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN
111116PY_CORE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE
117+ # Linker flags used for building the interpreter object files
118+ PY_CORE_LDFLAGS=$(PY_LDFLAGS) $(PY_LDFLAGS_NODIST)
112119# Strict or non-strict aliasing flags used to compile dtoa.c, see above
113120CFLAGS_ALIASING=@CFLAGS_ALIASING@
114121
@@ -148,7 +155,7 @@ CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(LDVERSION)
148155SHLIB_SUFFIX= @SHLIB_SUFFIX@
149156EXT_SUFFIX= @EXT_SUFFIX@
150157LDSHARED= @LDSHARED@ $(PY_LDFLAGS)
151- BLDSHARED= @BLDSHARED@ $(PY_LDFLAGS )
158+ BLDSHARED= @BLDSHARED@ $(PY_LDFLAGS_NODIST )
152159LDCXXSHARED= @LDCXXSHARED@
153160DESTSHARED= $(BINLIBDEST)/lib-dynload
154161
@@ -497,7 +504,7 @@ profile-run-stamp:
497504 touch $@
498505
499506build_all_generate_profile:
500- $(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LDFLAGS ="$(LDFLAGS ) $(PGO_PROF_GEN_FLAG)" LIBS="$(LIBS)"
507+ $(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LDFLAGS_NODIST ="$(LDFLAGS_NODIST ) $(PGO_PROF_GEN_FLAG)" LIBS="$(LIBS)"
501508
502509run_profile_task:
503510 @ # FIXME: can't run for a cross build
@@ -511,7 +518,7 @@ build_all_merge_profile:
511518profile-opt: profile-run-stamp
512519 @echo "Rebuilding with profile guided optimizations:"
513520 -rm -f profile-clean-stamp
514- $(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_USE_FLAG)" LDFLAGS ="$(LDFLAGS )"
521+ $(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_USE_FLAG)" LDFLAGS_NODIST ="$(LDFLAGS_NODIST )"
515522
516523# Compile and run with gcov
517524.PHONY=coverage coverage-lcov coverage-report
@@ -568,7 +575,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c
568575
569576# Build the interpreter
570577$(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
571- $(LINKCC) $(PY_LDFLAGS ) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
578+ $(LINKCC) $(PY_CORE_LDFLAGS ) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
572579
573580platform: $(BUILDPYTHON) pybuilddir.txt
574581 $(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print("%s-%d.%d" % (get_platform(), *sys.version_info[:2]))' >platform
@@ -633,7 +640,7 @@ libpython3.so: libpython$(LDVERSION).so
633640 $(BLDSHARED) $(NO_AS_NEEDED) -o $@ -Wl,-h$@ $^
634641
635642libpython$(LDVERSION).dylib: $(LIBRARY_OBJS)
636- $(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) $(LDLAST); \
643+ $(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) $(LDLAST); \
637644
638645
639646libpython$(VERSION).sl: $(LIBRARY_OBJS)
@@ -658,7 +665,7 @@ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
658665 $(LIBRARY) \
659666 $(RESSRCDIR)/Info.plist
660667 $(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)
661- $(CC) -o $(LDLIBRARY) $(PY_LDFLAGS ) -dynamiclib \
668+ $(CC) -o $(LDLIBRARY) $(PY_CORE_LDFLAGS ) -dynamiclib \
662669 -all_load $(LIBRARY) -Wl,-single_module \
663670 -install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \
664671 -compatibility_version $(VERSION) \
@@ -709,15 +716,15 @@ Modules/Setup: $(srcdir)/Modules/Setup.dist
709716 fi
710717
711718Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
712- $(LINKCC) $(PY_LDFLAGS ) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
719+ $(LINKCC) $(PY_CORE_LDFLAGS ) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
713720
714721############################################################################
715722# Importlib
716723
717724Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile
718725
719726Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
720- $(LINKCC) $(PY_LDFLAGS ) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
727+ $(LINKCC) $(PY_CORE_LDFLAGS ) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
721728
722729.PHONY: regen-importlib
723730regen-importlib: Programs/_freeze_importlib
@@ -799,7 +806,7 @@ Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile
799806$(IO_OBJS): $(IO_H)
800807
801808$(PGEN): $(PGENOBJS)
802- $(CC) $(OPT) $(PY_LDFLAGS ) $(PGENOBJS) $(LIBS) -o $(PGEN)
809+ $(CC) $(OPT) $(PY_CORE_LDFLAGS ) $(PGENOBJS) $(LIBS) -o $(PGEN)
803810
804811.PHONY: regen-grammar
805812regen-grammar: $(PGEN)
0 commit comments