diff options
author | Tatsuyuki Ishi <ishitatsuyuki@gmail.com> | 2022-06-11 01:00:31 +0900 |
---|---|---|
committer | Eli Schwartz <eschwartz93@gmail.com> | 2022-10-13 04:18:13 -0400 |
commit | 673dca5c0716d4e9527c055a8a20fa11e1893c5b (patch) | |
tree | 4782cbc7ae47202568da95e3b68ec6cdd7a1b8c6 /mesonbuild/linkers/linkers.py | |
parent | a0032480d6707cdfda75987178a7c8ec0c33cbe9 (diff) | |
download | meson-673dca5c0716d4e9527c055a8a20fa11e1893c5b.zip meson-673dca5c0716d4e9527c055a8a20fa11e1893c5b.tar.gz meson-673dca5c0716d4e9527c055a8a20fa11e1893c5b.tar.bz2 |
Add b_thinlto_cache for automatically configuring incremental ThinLTO
Diffstat (limited to 'mesonbuild/linkers/linkers.py')
-rw-r--r-- | mesonbuild/linkers/linkers.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/mesonbuild/linkers/linkers.py b/mesonbuild/linkers/linkers.py index 2f0fcda..27ccef3 100644 --- a/mesonbuild/linkers/linkers.py +++ b/mesonbuild/linkers/linkers.py @@ -456,6 +456,9 @@ class DynamicLinker(metaclass=abc.ABCMeta): def get_lto_args(self) -> T.List[str]: return [] + def get_thinlto_cache_args(self, path: str) -> T.List[str]: + return [] + def sanitizer_args(self, value: str) -> T.List[str]: return [] @@ -813,6 +816,9 @@ class AppleDynamicLinker(PosixDynamicLinkerMixin, DynamicLinker): return (args, set()) + def get_thinlto_cache_args(self, path: str) -> T.List[str]: + return ["-Wl,-cache_path_lto," + path] + class GnuDynamicLinker(GnuLikeDynamicLinkerMixin, PosixDynamicLinkerMixin, DynamicLinker): @@ -826,6 +832,9 @@ class GnuGoldDynamicLinker(GnuDynamicLinker): id = 'ld.gold' + def get_thinlto_cache_args(self, path: str) -> T.List[str]: + return ['-Wl,-plugin-opt,cache-dir=' + path] + class GnuBFDDynamicLinker(GnuDynamicLinker): @@ -836,6 +845,9 @@ class MoldDynamicLinker(GnuDynamicLinker): id = 'ld.mold' + def get_thinlto_cache_args(self, path: str) -> T.List[str]: + return ['-Wl,--thinlto-cache-dir=' + path] + class LLVMDynamicLinker(GnuLikeDynamicLinkerMixin, PosixDynamicLinkerMixin, DynamicLinker): @@ -862,6 +874,9 @@ class LLVMDynamicLinker(GnuLikeDynamicLinkerMixin, PosixDynamicLinkerMixin, Dyna return self._apply_prefix('--allow-shlib-undefined') return [] + def get_thinlto_cache_args(self, path: str) -> T.List[str]: + return ['-Wl,--thinlto-cache-dir=' + path] + class WASMDynamicLinker(GnuLikeDynamicLinkerMixin, PosixDynamicLinkerMixin, DynamicLinker): @@ -1304,6 +1319,9 @@ class ClangClDynamicLinker(VisualStudioLikeLinkerMixin, DynamicLinker): def get_win_subsystem_args(self, value: str) -> T.List[str]: return self._apply_prefix([f'/SUBSYSTEM:{value.upper()}']) + def get_thinlto_cache_args(self, path: str) -> T.List[str]: + return ["/lldltocache:" + path] + class XilinkDynamicLinker(VisualStudioLikeLinkerMixin, DynamicLinker): |