aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/mixins
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2020-11-07 16:00:56 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2020-11-08 16:00:05 +0200
commit3e6fbde94c1cb8d4e01b7daf0282c315ff0e6c7d (patch)
treee7afc27cf35beffdf37a4e67ad99741ce0fb8718 /mesonbuild/compilers/mixins
parentb6dc4d5e5c6e838de0b52e62d982ba2547eb366d (diff)
downloadmeson-3e6fbde94c1cb8d4e01b7daf0282c315ff0e6c7d.zip
meson-3e6fbde94c1cb8d4e01b7daf0282c315ff0e6c7d.tar.gz
meson-3e6fbde94c1cb8d4e01b7daf0282c315ff0e6c7d.tar.bz2
Add thinlto support. Closes #7493.
Diffstat (limited to 'mesonbuild/compilers/mixins')
-rw-r--r--mesonbuild/compilers/mixins/clang.py7
-rw-r--r--mesonbuild/compilers/mixins/gnu.py6
-rw-r--r--mesonbuild/compilers/mixins/islinker.py2
3 files changed, 12 insertions, 3 deletions
diff --git a/mesonbuild/compilers/mixins/clang.py b/mesonbuild/compilers/mixins/clang.py
index acdb352..773d9dc 100644
--- a/mesonbuild/compilers/mixins/clang.py
+++ b/mesonbuild/compilers/mixins/clang.py
@@ -77,6 +77,13 @@ class ClangCompiler(GnuLikeCompiler):
# so it might change semantics at any time.
return ['-include-pch', os.path.join(pch_dir, self.get_pch_name(header))]
+ def get_lto_compile_args(self, lto_type: str) -> T.List[str]:
+ if lto_type == 'thin':
+ return ['-flto=thin']
+ if lto_type == 'true':
+ return ['-flto']
+ return []
+
def get_compiler_check_args(self, mode: CompileCheckMode) -> T.List[str]:
myargs = [] # type: T.List[str]
if mode is CompileCheckMode.COMPILE:
diff --git a/mesonbuild/compilers/mixins/gnu.py b/mesonbuild/compilers/mixins/gnu.py
index bb1fc66..5771ad8 100644
--- a/mesonbuild/compilers/mixins/gnu.py
+++ b/mesonbuild/compilers/mixins/gnu.py
@@ -295,8 +295,10 @@ class GnuLikeCompiler(Compiler, metaclass=abc.ABCMeta):
return self._split_fetch_real_dirs(line.split('=', 1)[1])
return []
- def get_lto_compile_args(self) -> T.List[str]:
- return ['-flto']
+ def get_lto_compile_args(self, lto_type: str) -> T.List[str]:
+ if lto_type != 'false':
+ return ['-flto']
+ return []
def sanitizer_compile_args(self, value: str) -> T.List[str]:
if value == 'none':
diff --git a/mesonbuild/compilers/mixins/islinker.py b/mesonbuild/compilers/mixins/islinker.py
index 2445eec..67ac497 100644
--- a/mesonbuild/compilers/mixins/islinker.py
+++ b/mesonbuild/compilers/mixins/islinker.py
@@ -48,7 +48,7 @@ class BasicLinkerIsCompilerMixin(Compiler):
def sanitizer_link_args(self, value: str) -> T.List[str]:
return []
- def get_lto_link_args(self) -> T.List[str]:
+ def get_lto_link_args(self, lto_type: str) -> T.List[str]:
return []
def can_linker_accept_rsp(self) -> bool: