diff options
author | Peter Harris <pharris@opentext.com> | 2020-08-12 19:49:35 -0400 |
---|---|---|
committer | Peter Harris <pharris@opentext.com> | 2020-08-12 21:13:07 -0400 |
commit | 0f90299b1c5ba98a685e6545fcc6eda5acbe996d (patch) | |
tree | 58c76111d253d27f25a05dc42d85332da9fac376 /mesonbuild | |
parent | abe72d5c8415c83f268d01b266e2fa5f5892de46 (diff) | |
download | meson-0f90299b1c5ba98a685e6545fcc6eda5acbe996d.zip meson-0f90299b1c5ba98a685e6545fcc6eda5acbe996d.tar.gz meson-0f90299b1c5ba98a685e6545fcc6eda5acbe996d.tar.bz2 |
aix: allow both 32-bit and 64-bit objects in a static library
Without the -Xany flag, the ar command will complain when an .o file is
compiled for the non-default bit width. This change is necessary to allow
64-bit builds via a native (or cross) file.
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/environment.py | 4 | ||||
-rw-r--r-- | mesonbuild/linkers.py | 12 |
2 files changed, 14 insertions, 2 deletions
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py index bf49de9..00573f7 100644 --- a/mesonbuild/environment.py +++ b/mesonbuild/environment.py @@ -19,7 +19,7 @@ import typing as T import collections from . import coredata -from .linkers import ArLinker, ArmarLinker, VisualStudioLinker, DLinker, CcrxLinker, Xc16Linker, C2000Linker, IntelVisualStudioLinker +from .linkers import ArLinker, ArmarLinker, VisualStudioLinker, DLinker, CcrxLinker, Xc16Linker, C2000Linker, IntelVisualStudioLinker, AIXArLinker from . import mesonlib from .mesonlib import ( MesonException, EnvironmentException, MachineChoice, Popen_safe, @@ -1940,7 +1940,7 @@ class Environment: if p.returncode == 1 and err.startswith('usage'): # OSX return ArLinker(linker) if p.returncode == 1 and err.startswith('Usage'): # AIX - return ArLinker(linker) + return AIXArLinker(linker) if p.returncode == 1 and err.startswith('ar: bad option: --'): # Solaris return ArLinker(linker) self._handle_exceptions(popen_exceptions, linkers, 'linker') diff --git a/mesonbuild/linkers.py b/mesonbuild/linkers.py index 84c6538..535174d 100644 --- a/mesonbuild/linkers.py +++ b/mesonbuild/linkers.py @@ -247,6 +247,18 @@ class C2000Linker(StaticLinker): return ['-r'] +class AIXArLinker(ArLinker): + + def __init__(self, exelist: T.List[str]): + StaticLinker.__init__(self, exelist) + self.id = 'aixar' + self.std_args = ['-csr', '-Xany'] + + def can_linker_accept_rsp(self) -> bool: + # AIXAr can't accept arguments using the @rsp syntax + return False + + def prepare_rpaths(raw_rpaths: str, build_dir: str, from_dir: str) -> T.List[str]: # The rpaths we write must be relative if they point to the build dir, # because otherwise they have different length depending on the build |