diff options
| -rw-r--r-- | mesonbuild/linkers/detect.py | 4 | ||||
| -rw-r--r-- | mesonbuild/linkers/linkers.py | 22 |
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'] |
