#151 Build Python with -fno-semantic-interposition
Merged 3 years ago by cstratak. Opened 3 years ago by cstratak.
rpms/ cstratak/python3 nosemanticinterposition  into  master

file modified
+7 -3
@@ -17,7 +17,7 @@ 

  #global prerel ...

  %global upstream_version %{general_version}%{?prerel}

  Version: %{general_version}%{?prerel:~%{prerel}}

- Release: 2%{?dist}

+ Release: 3%{?dist}

  License: Python


@@ -667,14 +667,14 @@ 

  # Fedora packages utilizing %%py3_build will use them as well

  # https://fedoraproject.org/wiki/Changes/Python_Extension_Flags

  export CFLAGS="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv"

- export CFLAGS_NODIST="%{build_cflags} -D_GNU_SOURCE -fPIC -fwrapv"

+ export CFLAGS_NODIST="%{build_cflags} -D_GNU_SOURCE -fPIC -fwrapv -fno-semantic-interposition"

  export CXXFLAGS="%{extension_cxxflags} -D_GNU_SOURCE -fPIC -fwrapv"

  export CPPFLAGS="$(pkg-config --cflags-only-I libffi)"

  export OPT="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv"

  export LINKCC="gcc"

  export CFLAGS="$CFLAGS $(pkg-config --cflags openssl)"

  export LDFLAGS="%{extension_ldflags} -g $(pkg-config --libs-only-L openssl)"

- export LDFLAGS_NODIST="%{build_ldflags} -g $(pkg-config --libs-only-L openssl)"

+ export LDFLAGS_NODIST="%{build_ldflags} -fno-semantic-interposition -g $(pkg-config --libs-only-L openssl)"


  # We can build several different configurations of Python: regular and debug.

  # Define a common function that does one build:
@@ -1569,6 +1569,10 @@ 

  # ======================================================



+ * Tue Dec 03 2019 Miro Hrončok <mhroncok@redhat.com> - 3.8.0-3

+ - Build Python with -fno-semantic-interposition for better performance

+ - https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup


  * Thu Nov 28 2019 Miro Hrončok <mhroncok@redhat.com> - 3.8.0-2

  - Recommend python3-tkinter when tk is installed


The compiler flag has been added to CFLAGS_NODIST and
LDFLAGS_NODIST. This will compile the core interpreter
and the stdlib modules with -fno-semantic-interposition
but will not affect user build and rpm C extension modules
compiled by distutils.

This has the effect of speeding up the interpreter up to
27%, depending on the workload, with the drawback of disabling
the capability of using LD_PRELOAD to override symbols in


rebased onto eb2bd386d8e8d44fdb174a12d4de302aaa66fc16

3 years ago

rebased onto 141731d

3 years ago

Metadata Update from @churchyard:
- Pull-request tagged with: feature

3 years ago

Pull-Request has been merged by cstratak

3 years ago

@cstratak Cool \o/

Let's put this to python39 for now and after a while, also to 3.7 and 3.6?