diff options
author | Hein-Pieter van Braam <hp@tmm.cx> | 2017-09-23 22:55:26 +0200 |
---|---|---|
committer | Hein-Pieter van Braam <hp@tmm.cx> | 2017-09-23 22:55:26 +0200 |
commit | 43757fcc85ac8e1c4657b30968b9bf2381aec329 (patch) | |
tree | 1278196e6e4a11190f5b63872ab77c028a33222c /platform | |
parent | 480b417c5baf4d15379bfca873e19e0e0ba24f45 (diff) |
Fix gcc lto
This repairs LTO on X11 and adds it to MingW targets. The difference in
linktime is substantial, but runtime performance is quite a bit better.
Diffstat (limited to 'platform')
-rw-r--r-- | platform/windows/detect.py | 9 | ||||
-rw-r--r-- | platform/x11/detect.py | 3 |
2 files changed, 10 insertions, 2 deletions
diff --git a/platform/windows/detect.py b/platform/windows/detect.py index 65eb51a2f3..053ea466f3 100644 --- a/platform/windows/detect.py +++ b/platform/windows/detect.py @@ -64,6 +64,7 @@ def get_opts(): return [ ('mingw_prefix_32', 'MinGW prefix (Win32)', mingw32), ('mingw_prefix_64', 'MinGW prefix (Win64)', mingw64), + ('use_lto', 'Use link time optimization (when using MingW)', 'no'), ('debug_symbols', 'Add debug symbols to release version (yes/no/full)', 'yes') ] @@ -256,11 +257,15 @@ def configure(env): env["CC"] = mingw_prefix + "gcc" env['AS'] = mingw_prefix + "as" env['CXX'] = mingw_prefix + "g++" - env['AR'] = mingw_prefix + "ar" - env['RANLIB'] = mingw_prefix + "ranlib" + env['AR'] = mingw_prefix + "gcc-ar" + env['RANLIB'] = mingw_prefix + "gcc-ranlib" env['LD'] = mingw_prefix + "g++" env["x86_libtheora_opt_gcc"] = True + if (env["use_lto"] == "yes"): + env.Append(CCFLAGS=['-flto']) + env.Append(LINKFLAGS=['-flto']) + ## Compile flags env.Append(CCFLAGS=['-DWINDOWS_ENABLED', '-mwindows']) diff --git a/platform/x11/detect.py b/platform/x11/detect.py index efd388e44f..3667df907e 100644 --- a/platform/x11/detect.py +++ b/platform/x11/detect.py @@ -120,6 +120,9 @@ def configure(env): if (env["use_lto"] == "yes"): env.Append(CCFLAGS=['-flto']) env.Append(LINKFLAGS=['-flto']) + if (env["use_llvm"] == "no"): + env['RANLIB'] = 'gcc-ranlib' + env['AR'] = 'gcc-ar' env.Append(CCFLAGS=['-pipe']) env.Append(LINKFLAGS=['-pipe']) |