diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2019-04-25 22:23:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-25 22:23:31 +0200 |
commit | 7e65a11bcfa26cab7e7a6f8dbf60b59d8eae621d (patch) | |
tree | 470e4625ddbe2417a1eb7810ab810986c3528bc9 /platform | |
parent | ad744cefb01d623df41d4821a7bae10276d997e3 (diff) | |
parent | 51f9042a5b9d5a11e0a4b54a1a277d63e43a316e (diff) |
Merge pull request #28402 from Valentactive/add-thinlto-support-x11
Add option to use ThinLTO
Diffstat (limited to 'platform')
-rw-r--r-- | platform/x11/detect.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/platform/x11/detect.py b/platform/x11/detect.py index 1905b035e6..91639a0db2 100644 --- a/platform/x11/detect.py +++ b/platform/x11/detect.py @@ -59,6 +59,7 @@ def get_opts(): return [ BoolVariable('use_llvm', 'Use the LLVM compiler', False), BoolVariable('use_lld', 'Use the LLD linker', False), + BoolVariable('use_thinlto', 'Use ThinLTO', False), BoolVariable('use_static_cpp', 'Link libgcc and libstdc++ statically for better portability', False), BoolVariable('use_ubsan', 'Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)', False), BoolVariable('use_asan', 'Use LLVM/GCC compiler address sanitizer (ASAN))', False), @@ -136,6 +137,9 @@ def configure(env): if env['use_lld']: if env['use_llvm']: env.Append(LINKFLAGS=['-fuse-ld=lld']) + if env['use_thinlto']: + # A convenience so you don't need to write use_lto too when using SCons + env['use_lto'] = True else: print("Using LLD with GCC is not supported yet, try compiling with 'use_llvm=yes'.") sys.exit(255) @@ -156,12 +160,17 @@ def configure(env): env.Append(LINKFLAGS=['-fsanitize=leak']) if env['use_lto']: - env.Append(CCFLAGS=['-flto']) - if not env['use_llvm'] and env.GetOption("num_jobs") > 1: + env.Append(CCFLAGS=['-flto']) env.Append(LINKFLAGS=['-flto=' + str(env.GetOption("num_jobs"))]) else: - env.Append(LINKFLAGS=['-flto']) + if env['use_lld'] and env['use_thinlto']: + env.Append(CCFLAGS=['-flto=thin']) + env.Append(LINKFLAGS=['-flto=thin']) + else: + env.Append(CCFLAGS=['-flto']) + env.Append(LINKFLAGS=['-flto']) + if not env['use_llvm']: env['RANLIB'] = 'gcc-ranlib' env['AR'] = 'gcc-ar' |