diff options
| author | Dylan Baker <dylan@pnwbakers.com> | 2025-11-12 09:59:12 -0800 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-11-19 10:48:48 -0800 |
| commit | 2b03e91c15d580abe7d27dc8619558073a885db7 (patch) | |
| tree | 110d965e648a4b16fe71a02f769d65a415edad77 /mesonbuild | |
| parent | 5b2bdb4fcf7a685744876173c0ccabc014344b04 (diff) | |
| download | meson-2b03e91c15d580abe7d27dc8619558073a885db7.tar.gz | |
compilers: Remove Environment parameter from Compiler.get_soname_args
Diffstat (limited to 'mesonbuild')
| -rw-r--r-- | mesonbuild/backend/ninjabackend.py | 2 | ||||
| -rw-r--r-- | mesonbuild/compilers/compilers.py | 5 | ||||
| -rw-r--r-- | mesonbuild/compilers/cuda.py | 5 | ||||
| -rw-r--r-- | mesonbuild/compilers/d.py | 6 | ||||
| -rw-r--r-- | mesonbuild/compilers/mixins/islinker.py | 2 | ||||
| -rw-r--r-- | mesonbuild/linkers/linkers.py | 63 |
6 files changed, 43 insertions, 40 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 8ff13a742..97d42fdc4 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -3473,7 +3473,7 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47485''')) if not isinstance(target, build.SharedModule) or target.force_soname: # Add -Wl,-soname arguments on Linux, -install_name on OS X commands += linker.get_soname_args( - self.environment, target.prefix, target.name, target.suffix, + target.prefix, target.name, target.suffix, target.soversion, target.darwin_versions) # This is only visited when building for Windows using either GCC or Visual Studio if target.vs_module_defs and hasattr(linker, 'gen_vs_module_defs_args'): diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 8def474c9..f9de3e54a 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -1075,11 +1075,10 @@ class Compiler(HoldableObject, metaclass=abc.ABCMeta): def get_optimization_link_args(self, optimization_level: str) -> T.List[str]: return self.linker.get_optimization_link_args(optimization_level) - def get_soname_args(self, env: 'Environment', prefix: str, shlib_name: str, - suffix: str, soversion: str, + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, soversion: str, darwin_versions: T.Tuple[str, str]) -> T.List[str]: return self.linker.get_soname_args( - env, prefix, shlib_name, suffix, soversion, + prefix, shlib_name, suffix, soversion, darwin_versions) def get_target_link_args(self, target: 'BuildTarget') -> T.List[str]: diff --git a/mesonbuild/compilers/cuda.py b/mesonbuild/compilers/cuda.py index 606315e77..17ab054c9 100644 --- a/mesonbuild/compilers/cuda.py +++ b/mesonbuild/compilers/cuda.py @@ -678,11 +678,10 @@ class CudaCompiler(Compiler): args = self.get_ccbin_args(target, env, subproject) return args + self._to_host_flags(self.host_compiler.get_option_link_args(target, env, subproject), Phase.LINKER) - def get_soname_args(self, env: 'Environment', prefix: str, shlib_name: str, - suffix: str, soversion: str, + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, soversion: str, darwin_versions: T.Tuple[str, str]) -> T.List[str]: return self._to_host_flags(self.host_compiler.get_soname_args( - env, prefix, shlib_name, suffix, soversion, darwin_versions), Phase.LINKER) + prefix, shlib_name, suffix, soversion, darwin_versions), Phase.LINKER) def get_compile_only_args(self) -> T.List[str]: return ['-c'] diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py index 1fa2cbd01..57426e086 100644 --- a/mesonbuild/compilers/d.py +++ b/mesonbuild/compilers/d.py @@ -376,11 +376,9 @@ class DmdLikeCompilerMixin(CompilerMixinBase): return [] return self.mscrt_args[self.get_crt_val(crt_val, buildtype)] - def get_soname_args(self, env: 'Environment', prefix: str, shlib_name: str, - suffix: str, soversion: str, + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, soversion: str, darwin_versions: T.Tuple[str, str]) -> T.List[str]: - sargs = super().get_soname_args(env, prefix, shlib_name, suffix, - soversion, darwin_versions) + sargs = super().get_soname_args(prefix, shlib_name, suffix, soversion, darwin_versions) # LDC and DMD actually do use a linker, but they proxy all of that with # their own arguments diff --git a/mesonbuild/compilers/mixins/islinker.py b/mesonbuild/compilers/mixins/islinker.py index 762b5682e..9832cc74c 100644 --- a/mesonbuild/compilers/mixins/islinker.py +++ b/mesonbuild/compilers/mixins/islinker.py @@ -96,7 +96,7 @@ class BasicLinkerIsCompilerMixin(Compiler): def bitcode_args(self) -> T.List[str]: raise MesonException("This linker doesn't support bitcode bundles") - def get_soname_args(self, env: 'Environment', prefix: str, shlib_name: str, + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, soversion: str, darwin_versions: T.Tuple[str, str]) -> T.List[str]: raise MesonException("This linker doesn't support soname args") diff --git a/mesonbuild/linkers/linkers.py b/mesonbuild/linkers/linkers.py index c53e482da..c43c9d59f 100644 --- a/mesonbuild/linkers/linkers.py +++ b/mesonbuild/linkers/linkers.py @@ -305,7 +305,7 @@ class DynamicLinker(metaclass=abc.ABCMeta): target: BuildTarget, extra_paths: T.Optional[T.List[str]] = None) -> T.Tuple[T.List[str], T.Set[bytes]]: return ([], set()) - def get_soname_args(self, env: 'Environment', prefix: str, shlib_name: str, + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, soversion: str, darwin_versions: T.Tuple[str, str]) -> T.List[str]: return [] @@ -714,9 +714,10 @@ class GnuLikeDynamicLinkerMixin(DynamicLinkerBase): def fatal_warnings(self) -> T.List[str]: return self._apply_prefix('--fatal-warnings') - 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]: - m = env.machines[self.for_machine] + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, + soversion: str, darwin_versions: T.Tuple[str, str] + ) -> T.List[str]: + m = self.environment.machines[self.for_machine] if m.is_windows() or m.is_cygwin(): # For PE/COFF the soname argument has no effect return [] @@ -885,8 +886,9 @@ class AppleDynamicLinker(PosixDynamicLinkerMixin, DynamicLinker): # just make ld shup up when testing for supported flags return self._apply_prefix('-fatal_warnings') + self._apply_prefix('-no_warn_duplicate_libraries') - 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]: + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, + soversion: str, darwin_versions: T.Tuple[str, str] + ) -> T.List[str]: install_name = ['@rpath/', prefix, shlib_name] if soversion is not None: install_name.append('.' + soversion) @@ -1045,8 +1047,9 @@ class WASMDynamicLinker(GnuLikeDynamicLinkerMixin, PosixDynamicLinkerMixin, Dyna def no_undefined_args(self) -> T.List[str]: return ['-sERROR_ON_UNDEFINED_SYMBOLS=1'] - 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]: + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, + soversion: str, darwin_versions: T.Tuple[str, str] + ) -> T.List[str]: raise MesonException(f'{self.id} does not support shared libraries.') def get_asneeded_args(self) -> T.List[str]: @@ -1086,8 +1089,9 @@ class CcrxDynamicLinker(DynamicLinker): def get_allow_undefined_args(self) -> T.List[str]: return [] - 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]: + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, + soversion: str, darwin_versions: T.Tuple[str, str] + ) -> T.List[str]: return [] @@ -1125,8 +1129,9 @@ class Xc16DynamicLinker(DynamicLinker): def get_allow_undefined_args(self) -> T.List[str]: return [] - 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]: + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, + soversion: str, darwin_versions: T.Tuple[str, str] + ) -> T.List[str]: return [] def build_rpath_args(self, env: Environment, build_dir: str, from_dir: str, @@ -1187,10 +1192,6 @@ class CompCertDynamicLinker(DynamicLinker): def get_allow_undefined_args(self) -> T.List[str]: return [] - 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]: - raise MesonException(f'{self.id} does not support shared libraries.') - def build_rpath_args(self, env: Environment, build_dir: str, from_dir: str, target: BuildTarget, extra_paths: T.Optional[T.List[str]] = None) -> T.Tuple[T.List[str], T.Set[bytes]]: return ([], set()) @@ -1337,8 +1338,9 @@ class PGIDynamicLinker(PosixDynamicLinkerMixin, DynamicLinker): def get_allow_undefined_args(self) -> T.List[str]: return [] - 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]: + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, + soversion: str, darwin_versions: T.Tuple[str, str] + ) -> T.List[str]: return [] def get_std_shared_lib_args(self) -> T.List[str]: @@ -1437,8 +1439,9 @@ class VisualStudioLikeLinkerMixin(DynamicLinkerBase): def get_allow_undefined_args(self) -> T.List[str]: return [] - 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]: + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, + soversion: str, darwin_versions: T.Tuple[str, str] + ) -> T.List[str]: return [] def import_library_args(self, implibname: str) -> T.List[str]: @@ -1593,8 +1596,9 @@ class SolarisDynamicLinker(PosixDynamicLinkerMixin, DynamicLinker): paths = paths + ':' + padding return (self._apply_prefix(f'-rpath,{paths}'), rpath_dirs_to_remove) - 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]: + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, + soversion: str, darwin_versions: T.Tuple[str, str] + ) -> T.List[str]: sostr = '' if soversion is None else '.' + soversion return self._apply_prefix(f'-soname,{prefix}{shlib_name}.{suffix}{sostr}') @@ -1735,8 +1739,9 @@ class CudaLinker(PosixDynamicLinkerMixin, DynamicLinker): def get_allow_undefined_args(self) -> T.List[str]: return [] - 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]: + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, + soversion: str, darwin_versions: T.Tuple[str, str] + ) -> T.List[str]: return [] @@ -1768,8 +1773,9 @@ class MetrowerksLinker(DynamicLinker): def invoked_by_compiler(self) -> bool: return False - 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]: + def get_soname_args(self, prefix: str, shlib_name: str, suffix: str, + soversion: str, darwin_versions: T.Tuple[str, str] + ) -> T.List[str]: raise MesonException(f'{self.id} does not support shared libraries.') @@ -1846,8 +1852,9 @@ class OS2DynamicLinker(PosixDynamicLinkerMixin, DynamicLinker): 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]: + def get_soname_args(self, 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]: |
