Merge bitcoin/bitcoin#23678: build: Fix build for Android x86_64

ac9e4bc1e2 build: Fix build for Android x86_64 (Hennadii Stepanov)

Pull request description:

  bitcoin/bitcoin#23489 [introduced](https://github.com/bitcoin/bitcoin/pull/23489#issuecomment-985457915) a regression making build for `HOST=x86_64-linux-android` broken due to the [QTBUG-86785](https://bugreports.qt.io/browse/QTBUG-86785).

  This PR fixes this regression.

ACKs for top commit:
  fanquake:
    ACK ac9e4bc1e2

Tree-SHA512: c841a56d745c4b4a75e1bc4d89752de153aa6328752a8fd7df614363ed046a291a9eb58605d82fcba21f3c8b0f0bf47786ed0a63c29f81f5d4ad9c0b12304100
This commit is contained in:
fanquake 2021-12-08 09:18:57 +08:00
commit 0d101050ef
No known key found for this signature in database
GPG key ID: 2EEB9F5CC09526C1
2 changed files with 34 additions and 1 deletions

View file

@ -9,7 +9,7 @@ $(package)_qt_libs=corelib network widgets gui plugins testlib
$(package)_linguist_tools = lrelease lupdate lconvert
$(package)_patches = qt.pro qttools_src.pro
$(package)_patches += fix_qt_pkgconfig.patch mac-qmake.conf fix_no_printer.patch no-xlib.patch
$(package)_patches += dont_hardcode_x86_64.patch fix_montery_include.patch
$(package)_patches += dont_use_avx_android_x86_64.patch dont_hardcode_x86_64.patch fix_montery_include.patch
$(package)_patches += fix_android_jni_static.patch dont_hardcode_pwd.patch
$(package)_patches += qtbase-moc-ignore-gcc-macro.patch fix_limits_header.patch
$(package)_patches += fix_bigsur_style.patch use_android_ndk23.patch
@ -232,6 +232,7 @@ define $(package)_preprocess_cmds
patch -p1 -i $($(package)_patch_dir)/fix_no_printer.patch && \
patch -p1 -i $($(package)_patch_dir)/fix_android_jni_static.patch && \
patch -p1 -i $($(package)_patch_dir)/no-xlib.patch && \
patch -p1 -i $($(package)_patch_dir)/dont_use_avx_android_x86_64.patch && \
patch -p1 -i $($(package)_patch_dir)/dont_hardcode_x86_64.patch && \
patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \
patch -p1 -i $($(package)_patch_dir)/fix_limits_header.patch && \

View file

@ -0,0 +1,32 @@
Android: don't use avx and avx2 when building for Android x86_64
AVX and AVX2 are not supported on x86_64 ABI.
See:
- https://developer.android.com/ndk/guides/abis#86-64
- https://bugreports.qt.io/browse/QTBUG-86785
Upstream commits:
- Qt 6.0: ff1a44be33f4bc05d502a2ca49171e0408992f61
- Qt 5.15: 8b2cc0f6deb038a4c9d4f0d9b690c7726bd809a9
--- old/qtbase/configure.json
+++ new/qtbase/configure.json
@@ -1098,7 +1098,7 @@
},
"avx": {
"label": "AVX",
- "condition": "features.sse4_2 && tests.avx",
+ "condition": "features.sse4_2 && tests.avx && (!config.android || !arch.x86_64)",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX", "value": 1 }
@@ -1114,7 +1114,7 @@
},
"avx2": {
"label": "AVX2",
- "condition": "features.avx && tests.avx2",
+ "condition": "features.avx && tests.avx2 && (!config.android || !arch.x86_64)",
"output": [
"privateConfig",
"privateFeature",