| From ea85465e608178080c3b4d51af9765a8c7c0dae3 Mon Sep 17 00:00:00 2001 |
| From: Matt Weber <matthew.weber@rockwellcollins.com> |
| Date: Sat, 26 Oct 2019 09:17:29 -0500 |
| Subject: [PATCH] Prefer ext static libs when --default-library=static |
| |
| This patch adds a case in the library pattern logic to prefer static |
| libraries when the Meson Core option for "default_library" is set to |
| solely static. |
| |
| The existing library search order makes sense for cases of shared and |
| shared / static mixed. However if using a prebuilt cross-toolchain, |
| they usually provide both a static and shared version of sysroot |
| libraries. This presents a problem in a complete static build where |
| there won't be shared libraries at runtime and during build time there |
| are failures like "ld: attempted static link of dynamic object". |
| |
| Bug: |
| https://github.com/mesonbuild/meson/issues/6108 |
| |
| Fixes: |
| http://autobuild.buildroot.net/results/db1740b4777f436324218c52bc7b08e5c21b667d/ |
| http://autobuild.buildroot.net/results/c17/c17bbb12d9deadd64a441b36e324cfbbe8aba5be/ |
| |
| Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> |
| --- |
| mesonbuild/compilers/mixins/clike.py | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| diff --git a/mesonbuild/compilers/mixins/clike.py b/mesonbuild/compilers/mixins/clike.py |
| index 47e97d261..729c98acc 100644 |
| --- a/mesonbuild/compilers/mixins/clike.py |
| +++ b/mesonbuild/compilers/mixins/clike.py |
| @@ -940,6 +940,9 @@ class CLikeCompiler: |
| elif env.machines[self.for_machine].is_cygwin(): |
| shlibext = ['dll', 'dll.a'] |
| prefixes = ['cyg'] + prefixes |
| + elif env.coredata.get_builtin_option('default_library') == 'static': |
| + # Linux/BSDs |
| + shlibext = ['a'] |
| else: |
| # Linux/BSDs |
| shlibext = ['so'] |
| -- |
| 2.25.1 |
| |