diff --git a/00269-fix-multiple-compilations-issue-with-pgo-builds.patch b/00269-fix-multiple-compilations-issue-with-pgo-builds.patch new file mode 100644 index 0000000..2e5b33d --- /dev/null +++ b/00269-fix-multiple-compilations-issue-with-pgo-builds.patch @@ -0,0 +1,63 @@ +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 9e4be0a..a58b59c 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -863,12 +863,12 @@ $(LIBRARY_OBJS) $(MODOBJS) Modules/python.o: $(PYTHON_HEADERS) + TESTOPTS= -l $(EXTRATESTOPTS) + TESTPROG= $(srcdir)/Lib/test/regrtest.py + TESTPYTHON= $(RUNSHARED) ./$(BUILDPYTHON) -Wd -3 -E -tt $(TESTPYTHONOPTS) +-test: all platform ++test: @DEF_MAKE_RULE@ platform + -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f + -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS) + $(TESTPYTHON) $(TESTPROG) $(TESTOPTS) + +-testall: all platform ++testall: @DEF_MAKE_RULE@ platform + -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f + $(TESTPYTHON) $(srcdir)/Lib/compileall.py + -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f +@@ -877,7 +877,7 @@ testall: all platform + + # Run the unitests for both architectures in a Universal build on OSX + # Must be run on an Intel box. +-testuniversal: all platform ++testuniversal: @DEF_MAKE_RULE@ platform + if [ `arch` != 'i386' ];then \ + echo "This can only be used on OSX/i386" ;\ + exit 1 ;\ +@@ -900,14 +900,14 @@ QUICKTESTOPTS= $(TESTOPTS) -x test_subprocess test_io test_lib2to3 \ + test_multibytecodec test_urllib2_localnet test_itertools \ + test_multiprocessing test_mailbox test_socket test_poll \ + test_select test_zipfile +-quicktest: all platform ++quicktest: @DEF_MAKE_RULE@ platform + -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f + -$(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS) + $(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS) + + MEMTESTOPTS= $(QUICKTESTOPTS) -x test_dl test___all__ test_fork1 \ + test_longexp +-memtest: all platform ++memtest: @DEF_MAKE_RULE@ platform + -rm -f $(srcdir)/Lib/test/*.py[co] + -$(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS) + $(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS) +@@ -1198,7 +1198,7 @@ LIBPL= $(LIBP)/config$(DEBUG_SUFFIX) + # pkgconfig directory + LIBPC= $(LIBDIR)/pkgconfig + +-libainstall: all python$(DEBUG_SUFFIX)-config ++libainstall: @DEF_MAKE_RULE@ python$(DEBUG_SUFFIX)-config + @for i in $(LIBDIR) $(LIBP) $(LIBPL) $(LIBPC); \ + do \ + if test ! -d $(DESTDIR)$$i; then \ +@@ -1425,7 +1425,7 @@ distclean: clobber + -exec rm -f {} ';' + + # Check for smelly exported symbols (not starting with Py/_Py) +-smelly: all ++smelly: @DEF_MAKE_RULE@ + nm -p $(LIBRARY) | \ + sed -n "/ [TDB] /s/.* //p" | grep -v "^_*Py" | sort -u; \ + diff --git a/python2.spec b/python2.spec index 54d4c28..5f044b0 100644 --- a/python2.spec +++ b/python2.spec @@ -110,7 +110,7 @@ Summary: An interpreted, interactive, object-oriented programming language Name: %{python} # Remember to also rebase python-docs when changing this: Version: 2.7.13 -Release: 7%{?dist} +Release: 8%{?dist} License: Python Group: Development/Languages Requires: %{python}-libs%{?_isa} = %{version}-%{release} @@ -762,8 +762,11 @@ Patch250: 00250-getentropy.patch # scripts specified as an entry_points Patch252: 00252-add-executable-option.patch -# Disable tk for modularity builds to break up build dependencies -Patch04000: 04000-modularity-disable-tk.patch +# 00269 # +# Fix python's recompilation with common build commands when using +# profile guided optimizations. +# Fixed upstream: http://bugs.python.org/issue29243 +Patch269: 00269-fix-multiple-compilations-issue-with-pgo-builds.patch # (New patches go here ^^^) # @@ -777,6 +780,10 @@ Patch04000: 04000-modularity-disable-tk.patch # This is the generated patch to "configure"; see the description of # %{regenerate_autotooling_patch} # above: + +# Disable tk for modularity builds to break up build dependencies +Patch04000: 04000-modularity-disable-tk.patch + Patch5000: 05000-autotool-intermediates.patch # ====================================================== @@ -1070,6 +1077,7 @@ mv Modules/cryptmodule.c Modules/_cryptmodule.c %patch250 -p1 %patch252 -p1 +%patch269 -p1 %if ! 0%{?_module_build} %patch4000 -p1 @@ -1207,7 +1215,11 @@ BuildPython debug \ BuildPython optimized \ python \ python%{pybasever} \ +%ifarch %{ix86} x86_64 + "--enable-optimizations" \ +%else "" \ +%endif true @@ -1940,6 +1952,10 @@ rm -fr %{buildroot} # ====================================================== %changelog +* Wed May 10 2017 Charalampos Stratakis - 2.7.13-8 +- Enable profile guided optimizations for x86_64 and i686 architectures +- Update description to reflect that Python 2 is not the default Python + * Tue Apr 25 2017 Karsten Hopp - 2.7.13-7 - apply modularity patch only during module builds