diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2020-11-07 16:00:56 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2020-11-08 16:00:05 +0200 |
commit | 3e6fbde94c1cb8d4e01b7daf0282c315ff0e6c7d (patch) | |
tree | e7afc27cf35beffdf37a4e67ad99741ce0fb8718 /mesonbuild/compilers/mixins | |
parent | b6dc4d5e5c6e838de0b52e62d982ba2547eb366d (diff) | |
download | meson-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.py | 7 | ||||
-rw-r--r-- | mesonbuild/compilers/mixins/gnu.py | 6 | ||||
-rw-r--r-- | mesonbuild/compilers/mixins/islinker.py | 2 |
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: |