summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/ninjabackend.py2
-rw-r--r--mesonbuild/compilers/compilers.py5
-rw-r--r--mesonbuild/compilers/cuda.py5
-rw-r--r--mesonbuild/compilers/d.py6
-rw-r--r--mesonbuild/compilers/mixins/islinker.py2
-rw-r--r--mesonbuild/linkers/linkers.py63
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]: