Module: Mesa Branch: staging/21.3 Commit: 197271a21d011643f9e3f9befdf93ccac7be1aa2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=197271a21d011643f9e3f9befdf93ccac7be1aa2
Author: Bas Nieuwenhuizen <[email protected]> Date: Tue Oct 26 00:27:53 2021 +0200 meson: Check arguments before adding. -static-libstdc++ doesn't exist on the Android NDK, casuing all later has_argument calls to return false even though the compiler supports that argument. Fixes: 3aee462781a "meson: add windows compiler checks and libraries" Reviewed-by: Eric Engestrom <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13164> (cherry picked from commit 22673a980f30cf71ea1d7e3d4feb161c549d48a4) --- .gitlab-ci.yml | 2 +- .gitlab-ci/container/create-android-cross-file.sh | 2 +- .pick_status.json | 2 +- meson.build | 21 ++++++++++++++++----- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 76996a1413e..b59c4b85ba6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -376,7 +376,7 @@ debian/android_build: extends: - .use-debian/x86_build-base variables: - MESA_IMAGE_TAG: &debian-android_build "2021-07-02-bump-libdrm" + MESA_IMAGE_TAG: &debian-android_build "2021-10-26-static-libstdcxx" .use-debian/android_build: extends: diff --git a/.gitlab-ci/container/create-android-cross-file.sh b/.gitlab-ci/container/create-android-cross-file.sh index 99ad5b98b46..ac07ca11f98 100644 --- a/.gitlab-ci/container/create-android-cross-file.sh +++ b/.gitlab-ci/container/create-android-cross-file.sh @@ -17,7 +17,7 @@ cat >$cross_file <<EOF [binaries] ar = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/$arch-ar' c = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}29-clang', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables'] -cpp = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}29-clang++', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables', '-static-libstdc++'] +cpp = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}29-clang++', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables'] c_ld = 'lld' cpp_ld = 'lld' strip = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/$arch-strip' diff --git a/.pick_status.json b/.pick_status.json index 505dddcb861..8c5bb6b0296 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -31,7 +31,7 @@ "description": "meson: Check arguments before adding.", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "3aee462781abc0bfcce207fb64f9199b43a57542" }, diff --git a/meson.build b/meson.build index 90c227532b7..bd54e784c7b 100644 --- a/meson.build +++ b/meson.build @@ -1211,11 +1211,22 @@ if host_machine.system() == 'windows' endif else add_project_link_arguments( - '-Wl,--nxcompat', - '-Wl,--dynamicbase', - '-static-libgcc', - '-static-libstdc++', - language : ['c', 'cpp'], + cc.get_supported_arguments( + '-Wl,--nxcompat', + '-Wl,--dynamicbase', + '-static-libgcc', + '-static-libstdc++', + ), + language : ['c'], + ) + add_project_link_arguments( + cpp.get_supported_arguments( + '-Wl,--nxcompat', + '-Wl,--dynamicbase', + '-static-libgcc', + '-static-libstdc++', + ), + language : ['cpp'], ) endif endif
