Enable profile guided optimizations for x86_64 and i686 architectures.
Added patch for fixing recompilation of Python when using common build commands and the --enable-optimizations flag.
This commit is contained in:
parent
890215f627
commit
1554ebbaa5
|
@ -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; \
|
||||
|
22
python2.spec
22
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 <cstratak@redhat.com> - 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 <karsten@redhat.com> - 2.7.13-7
|
||||
- apply modularity patch only during module builds
|
||||
|
||||
|
|
Loading…
Reference in New Issue