bpo-35257: Avoid leaking LTO linker flags into distutils (GH-10900) · python/cpython@cf10a75 (original) (raw)

`@@ -84,6 +84,10 @@ CONFIGURE_CFLAGS= @CFLAGS@

`

84

84

`# Use it when a compiler flag should not be part of the distutils CFLAGS

`

85

85

`# once Python is installed (Issue #21121).

`

86

86

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

`

87

91

`CONFIGURE_CPPFLAGS= @CPPFLAGS@

`

88

92

`CONFIGURE_LDFLAGS= @LDFLAGS@

`

89

93

`# Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the

`

`@@ -96,6 +100,7 @@ PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) (CFLAGSNODIST)−I(CFLAGS_NODIST) -I(CFLAGSNODIST)I(srcdir)/Include

`

96

100

`# environment variables

`

97

101

`PY_CPPFLAGS= (BASECPPFLAGS)−I.−I(BASECPPFLAGS) -I. -I(BASECPPFLAGS)I.I(srcdir)/Include (CONFIGURECPPFLAGS)(CONFIGURE_CPPFLAGS) (CONFIGURECPPFLAGS)(CPPFLAGS)

`

98

102

`PY_LDFLAGS= (CONFIGURELDFLAGS)(CONFIGURE_LDFLAGS) (CONFIGURELDFLAGS)(LDFLAGS)

`

``

103

`+

PY_LDFLAGS_NODIST=$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)

`

99

104

`NO_AS_NEEDED= @NO_AS_NEEDED@

`

100

105

`SGI_ABI= @SGI_ABI@

`

101

106

`CCSHARED= @CCSHARED@

`

`@@ -107,6 +112,8 @@ CFLAGSFORSHARED=@CFLAGSFORSHARED@

`

107

112

`PY_STDMODULE_CFLAGS= (PYCFLAGS)(PY_CFLAGS) (PYCFLAGS)(PY_CFLAGS_NODIST) (PYCPPFLAGS)(PY_CPPFLAGS) (PYCPPFLAGS)(CFLAGSFORSHARED)

`

108

113

`PY_BUILTIN_MODULE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN

`

109

114

`PY_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)

`

110

117

`# Strict or non-strict aliasing flags used to compile dtoa.c, see above

`

111

118

`CFLAGS_ALIASING=@CFLAGS_ALIASING@

`

112

119

``

`@@ -146,7 +153,7 @@ CONFINCLUDEPY= (CONFINCLUDEDIR)/python(CONFINCLUDEDIR)/python(CONFINCLUDEDIR)/python(LDVERSION)

`

146

153

`SHLIB_SUFFIX= @SHLIB_SUFFIX@

`

147

154

`EXT_SUFFIX= @EXT_SUFFIX@

`

148

155

`LDSHARED= @LDSHARED@ $(PY_LDFLAGS)

`

149

``

`-

BLDSHARED= @BLDSHARED@ $(PY_LDFLAGS)

`

``

156

`+

BLDSHARED= @BLDSHARED@ $(PY_LDFLAGS_NODIST)

`

150

157

`LDCXXSHARED= @LDCXXSHARED@

`

151

158

`DESTSHARED= $(BINLIBDEST)/lib-dynload

`

152

159

``

`@@ -496,7 +503,7 @@ profile-run-stamp:

`

496

503

` touch $@

`

497

504

``

498

505

`build_all_generate_profile:

`

499

``

`-

(MAKE)@DEFMAKERULE@CFLAGSNODIST="(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="(MAKE)@DEFMAKERULE@CFLAGSNODIST="(CFLAGS_NODIST) (PGOPROFGENFLAG)"LDFLAGS="(PGO_PROF_GEN_FLAG)" LDFLAGS="(PGOPROFGENFLAG)"LDFLAGS="(LDFLAGS) (PGOPROFGENFLAG)"LIBS="(PGO_PROF_GEN_FLAG)" LIBS="(PGOPROFGENFLAG)"LIBS="(LIBS)"

`

``

506

`+

(MAKE)@DEFMAKERULE@CFLAGSNODIST="(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="(MAKE)@DEFMAKERULE@CFLAGSNODIST="(CFLAGS_NODIST) (PGOPROFGENFLAG)"LDFLAGSNODIST="(PGO_PROF_GEN_FLAG)" LDFLAGS_NODIST="(PGOPROFGENFLAG)"LDFLAGSNODIST="(LDFLAGS_NODIST) (PGOPROFGENFLAG)"LIBS="(PGO_PROF_GEN_FLAG)" LIBS="(PGOPROFGENFLAG)"LIBS="(LIBS)"

`

500

507

``

501

508

`run_profile_task:

`

502

509

` @ # FIXME: can't run for a cross build

`

`@@ -510,7 +517,7 @@ build_all_merge_profile:

`

510

517

`profile-opt: profile-run-stamp

`

511

518

` @echo "Rebuilding with profile guided optimizations:"

`

512

519

` -rm -f profile-clean-stamp

`

513

``

`-

(MAKE)@DEFMAKERULE@CFLAGSNODIST="(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="(MAKE)@DEFMAKERULE@CFLAGSNODIST="(CFLAGS_NODIST) (PGOPROFUSEFLAG)"LDFLAGS="(PGO_PROF_USE_FLAG)" LDFLAGS="(PGOPROFUSEFLAG)"LDFLAGS="(LDFLAGS)"

`

``

520

`+

(MAKE)@DEFMAKERULE@CFLAGSNODIST="(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="(MAKE)@DEFMAKERULE@CFLAGSNODIST="(CFLAGS_NODIST) (PGOPROFUSEFLAG)"LDFLAGSNODIST="(PGO_PROF_USE_FLAG)" LDFLAGS_NODIST="(PGOPROFUSEFLAG)"LDFLAGSNODIST="(LDFLAGS_NODIST)"

`

514

521

``

515

522

`# Compile and run with gcov

`

516

523

`.PHONY=coverage coverage-lcov coverage-report

`

`@@ -567,7 +574,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c

`

567

574

``

568

575

`# Build the interpreter

`

569

576

`$(BUILDPYTHON): Programs/python.o (LIBRARY)(LIBRARY) (LIBRARY)(LDLIBRARY) $(PY3LIBRARY)

`

570

``

`-

(LINKCC)(LINKCC) (LINKCC)(PY_LDFLAGS) (LINKFORSHARED)−o(LINKFORSHARED) -o (LINKFORSHARED)o@ Programs/python.o (BLDLIBRARY)(BLDLIBRARY) (BLDLIBRARY)(LIBS) (MODLIBS)(MODLIBS) (MODLIBS)(SYSLIBS)

`

``

577

`+

(LINKCC)(LINKCC) (LINKCC)(PY_CORE_LDFLAGS) (LINKFORSHARED)−o(LINKFORSHARED) -o (LINKFORSHARED)o@ Programs/python.o (BLDLIBRARY)(BLDLIBRARY) (BLDLIBRARY)(LIBS) (MODLIBS)(MODLIBS) (MODLIBS)(SYSLIBS)

`

571

578

``

572

579

`platform: $(BUILDPYTHON) pybuilddir.txt

`

573

580

` (RUNSHARED)(RUNSHARED) (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

`

632

639

` (BLDSHARED)(BLDSHARED) (BLDSHARED)(NO_AS_NEEDED) -o @−Wl,−h@ -Wl,-h@Wl,h@ $^

`

633

640

``

634

641

`libpython$(LDVERSION).dylib: $(LIBRARY_OBJS)

`

635

``

`-

(CC)−dynamiclib−Wl,−singlemodule(CC) -dynamiclib -Wl,-single_module (CC)dynamiclibWl,singlemodule(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)(SHLIBS) (SHLIBS)(LIBC) $(LIBM); \

`

``

642

`+

(CC)−dynamiclib−Wl,−singlemodule(CC) -dynamiclib -Wl,-single_module (CC)dynamiclibWl,singlemodule(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)(SHLIBS) (SHLIBS)(LIBC) $(LIBM); \

`

636

643

``

637

644

``

638

645

`libpython$(VERSION).sl: $(LIBRARY_OBJS)

`

`@@ -657,7 +664,7 @@ (PYTHONFRAMEWORKDIR)/Versions/(PYTHONFRAMEWORKDIR)/Versions/(PYTHONFRAMEWORKDIR)/Versions/(VERSION)/$(PYTHONFRAMEWORK): \

`

657

664

` $(LIBRARY) \

`

658

665

` $(RESSRCDIR)/Info.plist

`

659

666

` (INSTALL)−d−m(INSTALL) -d -m (INSTALL)dm(DIRMODE) (PYTHONFRAMEWORKDIR)/Versions/(PYTHONFRAMEWORKDIR)/Versions/(PYTHONFRAMEWORKDIR)/Versions/(VERSION)

`

660

``

`-

(CC)−o(CC) -o (CC)o(LDLIBRARY) $(PY_LDFLAGS) -dynamiclib \

`

``

667

`+

(CC)−o(CC) -o (CC)o(LDLIBRARY) $(PY_CORE_LDFLAGS) -dynamiclib \

`

661

668

` -all_load $(LIBRARY) -Wl,-single_module \

`

662

669

` -install_name (DESTDIR)(DESTDIR)(DESTDIR)(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \

`

663

670

` -compatibility_version $(VERSION) \

`

`@@ -698,15 +705,15 @@ Makefile Modules/config.c: Makefile.pre \

`

698

705

``

699

706

``

700

707

`Programs/_testembed: Programs/_testembed.o (LIBRARY)(LIBRARY) (LIBRARY)(LDLIBRARY) $(PY3LIBRARY)

`

701

``

`-

(LINKCC)(LINKCC) (LINKCC)(PY_LDFLAGS) (LINKFORSHARED)−o(LINKFORSHARED) -o (LINKFORSHARED)o@ Programs/_testembed.o (BLDLIBRARY)(BLDLIBRARY) (BLDLIBRARY)(LIBS) (MODLIBS)(MODLIBS) (MODLIBS)(SYSLIBS)

`

``

708

`+

(LINKCC)(LINKCC) (LINKCC)(PY_CORE_LDFLAGS) (LINKFORSHARED)−o(LINKFORSHARED) -o (LINKFORSHARED)o@ Programs/_testembed.o (BLDLIBRARY)(BLDLIBRARY) (BLDLIBRARY)(LIBS) (MODLIBS)(MODLIBS) (MODLIBS)(SYSLIBS)

`

702

709

``

703

710

`############################################################################

`

704

711

`# Importlib

`

705

712

``

706

713

`Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile

`

707

714

``

708

715

`Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)

`

709

``

`-

(LINKCC)(LINKCC) (LINKCC)(PY_LDFLAGS) -o @Programs/freezeimportlib.o@ Programs/_freeze_importlib.o @Programs/freezeimportlib.o(LIBRARY_OBJS_OMIT_FROZEN) (LIBS)(LIBS) (LIBS)(MODLIBS) $(SYSLIBS)

`

``

716

`+

(LINKCC)(LINKCC) (LINKCC)(PY_CORE_LDFLAGS) -o @Programs/freezeimportlib.o@ Programs/_freeze_importlib.o @Programs/freezeimportlib.o(LIBRARY_OBJS_OMIT_FROZEN) (LIBS)(LIBS) (LIBS)(MODLIBS) $(SYSLIBS)

`

710

717

``

711

718

`.PHONY: regen-importlib

`

712

719

`regen-importlib: Programs/_freeze_importlib

`

`@@ -794,7 +801,7 @@ Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile

`

794

801

`$(IO_OBJS): $(IO_H)

`

795

802

``

796

803

`$(PGEN): $(PGENOBJS)

`

797

``

`-

(CC)(CC) (CC)(OPT) (PYLDFLAGS)(PY_LDFLAGS) (PYLDFLAGS)(PGENOBJS) (LIBS)−o(LIBS) -o (LIBS)o(PGEN)

`

``

804

`+

(CC)(CC) (CC)(OPT) (PYCORELDFLAGS)(PY_CORE_LDFLAGS) (PYCORELDFLAGS)(PGENOBJS) (LIBS)−o(LIBS) -o (LIBS)o(PGEN)

`

798

805

``

799

806

`.PHONY: regen-grammar

`

800

807

`regen-grammar: $(PGEN)

`