summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKO Myung-Hun <komh@chollian.net>2023-07-03 22:53:23 +0900
committerDylan Baker <dylan@pnwbakers.com>2025-11-14 08:16:23 -0800
commit7e5e1fb8bf0c6275c8e97e538393976901356bc7 (patch)
tree39bab4359926f78d8a3d4f0f0ae03752f0cb9114
parentf84af1c4612f683144bbf63f3109292e309918b3 (diff)
downloadmeson-7e5e1fb8bf0c6275c8e97e538393976901356bc7.tar.gz
Add OS2 dynamic linker support
-rw-r--r--mesonbuild/linkers/detect.py4
-rw-r--r--mesonbuild/linkers/linkers.py22
2 files changed, 26 insertions, 0 deletions
diff --git a/mesonbuild/linkers/detect.py b/mesonbuild/linkers/detect.py
index 6fbe6e498..4fefa2b75 100644
--- a/mesonbuild/linkers/detect.py
+++ b/mesonbuild/linkers/detect.py
@@ -252,6 +252,10 @@ def guess_nix_linker(env: 'Environment', compiler: T.List[str], comp_class: T.Ty
compiler, for_machine, comp_class.LINKER_PREFIX, override,
system=system, version=v
)
+ elif 'ld.exe: unrecognized option' in e or 'emxomfld: invalid option' in e:
+ linker = linkers.OS2DynamicLinker(
+ compiler, for_machine, comp_class.LINKER_PREFIX, override,
+ version='none')
else:
__failed_to_detect_linker(compiler, check_args, o, e)
return linker
diff --git a/mesonbuild/linkers/linkers.py b/mesonbuild/linkers/linkers.py
index 654049812..1539238ab 100644
--- a/mesonbuild/linkers/linkers.py
+++ b/mesonbuild/linkers/linkers.py
@@ -1818,3 +1818,25 @@ class TaskingLinker(DynamicLinker):
for a in args:
l.extend(self._apply_prefix('-Wl--whole-archive=' + a))
return l
+
+
+class OS2DynamicLinker(PosixDynamicLinkerMixin, DynamicLinker):
+ """ld and emxomfld"""
+
+ id = 'ld.os2'
+
+ def get_allow_undefined_args(self) -> T.List[str]:
+ return []
+
+ def thread_flags(self, env: 'Environment') -> T.List[str]:
+ return ['-lpthread']
+
+ def get_std_shared_lib_args(self) -> T.List[str]:
+ return ['-Zdll']
+
+ def get_soname_args(self, env: 'Environment', prefix: str, shlib_name: str,
+ suffix: str, soversion: str, darwin_versions: T.Tuple[str, str]) -> T.List[str]:
+ return []
+
+ def get_always_args(self) -> T.List[str]:
+ return ['-Zomf']