Skip to content

Commit

Permalink
Disable LTO if -fno-lto is in *FLAGS environment.
Browse files Browse the repository at this point in the history
  • Loading branch information
QuLogic committed Jan 4, 2021
1 parent d45dcef commit 7523485
Showing 1 changed file with 22 additions and 3 deletions.
25 changes: 22 additions & 3 deletions setup.py
Expand Up @@ -105,21 +105,40 @@ def add_optimization_flags(self):
"""

env = os.environ.copy()
if not setupext.config.getboolean('libs', 'enable_lto', fallback=True):
return env
if sys.platform == 'win32':
return env

enable_lto = setupext.config.getboolean('libs', 'enable_lto',
fallback=None)

if 'CFLAGS' in os.environ:
if '-fno-lto' in os.environ['CFLAGS']:
if enable_lto is True:
raise ValueError('Configuration enable_lto=True, but '
'CFLAGS contains -fno-lto')
enable_lto = False
cppflags = []
if 'CPPFLAGS' in os.environ:
cppflags.append(os.environ['CPPFLAGS'])
if '-fno-lto' in os.environ['CPPFLAGS']:
if enable_lto is True:
raise ValueError('Configuration enable_lto=True, but '
'CPPFLAGS contains -fno-lto')
enable_lto = False
cxxflags = []
if 'CXXFLAGS' in os.environ:
cxxflags.append(os.environ['CXXFLAGS'])
if '-fno-lto' in os.environ['CXXFLAGS']:
if enable_lto is True:
raise ValueError('Configuration enable_lto=True, but '
'CXXFLAGS contains -fno-lto')
enable_lto = False
ldflags = []
if 'LDFLAGS' in os.environ:
ldflags.append(os.environ['LDFLAGS'])

if enable_lto is False:
return env

if has_flag(self.compiler, '-fvisibility=hidden'):
for ext in self.extensions:
ext.extra_compile_args.append('-fvisibility=hidden')
Expand Down

0 comments on commit 7523485

Please sign in to comment.