aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/linkers/linkers.py
diff options
context:
space:
mode:
authorTatsuyuki Ishi <ishitatsuyuki@gmail.com>2022-06-11 01:00:31 +0900
committerEli Schwartz <eschwartz93@gmail.com>2022-10-13 04:18:13 -0400
commit673dca5c0716d4e9527c055a8a20fa11e1893c5b (patch)
tree4782cbc7ae47202568da95e3b68ec6cdd7a1b8c6 /mesonbuild/linkers/linkers.py
parenta0032480d6707cdfda75987178a7c8ec0c33cbe9 (diff)
downloadmeson-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.py18
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):