Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

android qt6 build not reproducible #8746

Closed
SomberNight opened this issue Dec 13, 2023 · 14 comments
Closed

android qt6 build not reproducible #8746

SomberNight opened this issue Dec 13, 2023 · 14 comments

Comments

@SomberNight
Copy link
Member

Building Android from the 4.5.0b0 tag (f4cddd7), using

$ ELECBUILD_COMMIT=HEAD ./contrib/android/build.sh qml armeabi-v7a release-unsigned

the apk is not reproducible.

The following files differ:

88c88
< d562c02c975c364407d2498ff1721ab24f83d638952e20aebdbd9cea0ab67b40  ./lib/armeabi-v7a/libqml_QtQuick_Controls_Material_qtquickcontrols2materialstyleplugin_armeabi-v7a.so
---
> 1b8d8099c541bf740835a10cd21bdfac18bdf25829a292b7b1e7d605529e6797  ./lib/armeabi-v7a/libqml_QtQuick_Controls_Material_qtquickcontrols2materialstyleplugin_armeabi-v7a.so
104c104
< e4b7ba4af0894c66acedeb0486f84130fde71341121f0297f8df122117f14873  ./lib/armeabi-v7a/libQt6Quick_armeabi-v7a.so
---
> d6602f9d4598e2477e776f51b2f3c682d4b0239f612e9f4d4f1de843a3228536  ./lib/armeabi-v7a/libQt6Quick_armeabi-v7a.so
108c108
< 3eb2827af49a27682a4efe4b3666e589f0ad25026a8f70e47bc87e57d4c4feed  ./lib/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so
---
> f7ab326f246a85b97b07cac32194fc88412af0ef88968107a28752b8a4497876  ./lib/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so
110c110
< 8c5ae8e2e90c0484906b5a5091de25b3ca98e072827b03c92038530aed5a15c2  ./lib/armeabi-v7a/libqml_QtQuick_Controls_Basic_qtquickcontrols2basicstyleplugin_armeabi-v7a.so
---
> c3a93057ea96d89afd0c493616395b9e705c889a297ce4d43e0459638fddd106  ./lib/armeabi-v7a/libqml_QtQuick_Controls_Basic_qtquickcontrols2basicstyleplugin_armeabi-v7a.so
114c114
< 6ca7acb7cdad1353c038aee6ae5582299305b3db6a6b1fbd55ee3a1948dc7e7c  ./lib/armeabi-v7a/libqml_QtQuick_Controls_Material_impl_qtquickcontrols2materialstyleimplplugin_armeabi-v7a.so
---
> e7fbc46fb7d4a1fb0534465f55a10321cc05adc3093a95602bbbb3ccb1af8012  ./lib/armeabi-v7a/libqml_QtQuick_Controls_Material_impl_qtquickcontrols2materialstyleimplplugin_armeabi-v7a.so
125c125
< fc066cec6463b09c1ec8ad9b71b8f749e2783b31d0cb4ca922a47985a3909d3c  ./lib/armeabi-v7a/libQt6MultimediaQuick_armeabi-v7a.so
---
> e210cc4299ccb714ef64ef3c99c147c28c2f3d175369fbf6619dee1b7d5bff34  ./lib/armeabi-v7a/libQt6MultimediaQuick_armeabi-v7a.so
130c130
< b208fbc9cd9b922d4ccb1ea1338bc7f480afb8284c157c9e5af63a5a0e4458f2  ./lib/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so
---
> 593263b0b49728456da5dc5f51c2e66cb7321ed224fd88c00ccd35f04c73b96e  ./lib/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so

The differences look non-trivial and not localised to small sections.

related #8545

@accumulator
Copy link
Member

The differences look non-trivial and not localised to small sections.

Looking at libQt6Quick_arm64-v8a.so, it seems that there's mainly offset shifts of 8 or 16 bytes, leading to a large diff but with a single (or at least limited amount of) cause(s).

@SomberNight
Copy link
Member Author

I tried a build with qt 6.5.3 and ndk 25c (803ec2b), there only 3 files differ.
These 3 are a subset of the original 7 files.

110c110
< e7da340b63a559771948f850a7ff1e76555c4f16ac3e5eb106cb11f4c3826902  ./lib/armeabi-v7a/libqml_QtQuick_Controls_Basic_qtquickcontrols2basicstyleplugin_armeabi-v7a.so
---
> a59b974888ebfd8e61159d38c090f42eb2d9186a9f5eee652ac2daccce4cda11  ./lib/armeabi-v7a/libqml_QtQuick_Controls_Basic_qtquickcontrols2basicstyleplugin_armeabi-v7a.so
114c114
< 6e9d94d66b9b138ea782f5f6552561640530a4b0734a9ac01bf27fbf607287b6  ./lib/armeabi-v7a/libqml_QtQuick_Controls_Material_impl_qtquickcontrols2materialstyleimplplugin_armeabi-v7a.so
---
> c86dc78d2efe7c7a959d57eaa20a11775aa6fad1a866de6c6b74dba1f97edf30  ./lib/armeabi-v7a/libqml_QtQuick_Controls_Material_impl_qtquickcontrols2materialstyleimplplugin_armeabi-v7a.so
130c130
< 7e445af4d0aa034413079c32e0bec97c3ccaf722f28dafc8519c67ca9d8bc3d6  ./lib/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so
---
> 9387f867f4b7b4784f73bafc8f9dfaf425e08cba0e2341ecd983fd2e7ba249bd  ./lib/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so

@ecdsa
Copy link
Member

ecdsa commented Dec 14, 2023

I tried a build with qt 6.5.3 and ndk 25c (803ec2b), there only 3 files differ.

interesting. is there a way to build these files individually, without waiting for the entire build?

@SomberNight
Copy link
Member Author

A bit of a tangent, but also a heads-up, I've wasted lots of hours due to missing this:
SomberNight/python-for-android@a35fa3a
Hopefully I can prevent the same for you.

diff --git a/pythonforandroid/recipes/genericndkbuild/__init__.py b/pythonforandroid/recipes/genericndkbuild/__init__.py
index f114f080ef..f6eff79214 100644
--- a/pythonforandroid/recipes/genericndkbuild/__init__.py
+++ b/pythonforandroid/recipes/genericndkbuild/__init__.py
@@ -10,7 +10,7 @@ class GenericNDKBuildRecipe(BootstrapNDKRecipe):
     url = None
 
     depends = ['python3']
-    conflicts = ['sdl2', 'qt5']
+    conflicts = ['sdl2', 'qt6']
 
     def should_build(self, arch):
         return True

This was causing ~non-deterministic build failures for me. Sometimes p4a's dependency graph-resolver (graph.py), to satisfy the "android" recipe, would pick "genericndkbuild" instead of "qt6".

To be specific, the "android" recipe specifies the following:
depends = [('sdl2', 'genericndkbuild', 'qt6'), 'pyjnius']
graph.py explores all possible ways to satisfy the dependencies of the requested recipes.
e.g. the "pyqt6" recipe specifies:
depends = ['qt6', 'pyjnius', 'setuptools', 'pyqt6sip', 'hostpython3', 'pyqt_builder']
So "qt6" would always get pulled in because of pyqt6. But for "android", graph.py would try both qt6 and genericndkbuild, in some order.

So graph.py would try both of these options:

  1. pick "qt6" for "pyqt6", and "qt6" for "android"
  2. pick "qt6" for "pyqt6", and "genericndkbuild" for "android"

Case 2 should not be valid as qt6 and genericndkbuild should not be picked together -- that results in build issues e.g. for the "pyjnius" recipe (due to e.g. conditional git patches, but AFAICT there are multiple potential ways it can fail based on the order of the other dependencies).
This should be prevented by declaring the conflict in the recipes -- and p4a assumes that conflicts are consistently declared symmetrically.

graph.py picks case1 or case2 depending on the order the graph is explored, which depends on PYTHONHASHSEED, which we set in contrib/android/Makefile.

For debug builds, PYTHONHASHSEED is set to the current time,
for release builds, PYTHONHASHSEED is set to the time of the last git commit.

So that means debug builds would just be failing randomly, independently for each build.
But release builds would be failing consistently for a given commit, but completely independently of the code contents of that commit.

Because we are debugging reproducibility issues, I was building release builds, and making temp commits left-and-right. And I was getting the weirdest build failures that looked completely unrelated to what I just changed, and when I reverted to known good code and created a new commit for it, that code too would sometimes fail.

I actually considered hardware failure and ran memtest and looked at smartctl...


Note that the CI is building debug builds. i.e. there should be lots of random failures for the CI android build task.
So I don't quite understand why that is not the case. Have you been manually restarting the randomly failed tasks until the current-time-based-PYTHONHASHSEED rolled lucky? :P
I found at least e.g. https://cirrus-ci.com/task/6037980943482880 failed due to this.

@SomberNight
Copy link
Member Author

SomberNight commented Dec 15, 2023

(testing with SomberNight@6694ab9, qt6.5.3)

The reason for libqml_QtQuick_Controls_Material_impl_qtquickcontrols2materialstyleimplplugin_armeabi-v7a.so differing seems to be .cpp (generated) "source" files differing. Specifically between two builds here, only qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp differ:

$ a="/tmp/electrum_build/android2/fresh_clone/electrum/.buildozer/android" && b="/tmp/electrum_build/android3/fresh_clone/electrum/.buildozer/android" && for f in $(sudo find "$a" -name "*qtquickcontrols2materialstyleimplplugin*" | grep -v "\.so$" | cut -c70-); do sudo diff -qr "$a/$f" "$b/$f"; done
Files /tmp/electrum_build/android2/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp and /tmp/electrum_build/android3/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp differ
Files /tmp/electrum_build/android2/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/CMakeFiles/qtquickcontrols2materialstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp.o and /tmp/electrum_build/android3/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/CMakeFiles/qtquickcontrols2materialstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp.o differ
Files /tmp/electrum_build/android2/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/CMakeFiles/qtquickcontrols2materialstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp.o and /tmp/electrum_build/android3/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/CMakeFiles/qtquickcontrols2materialstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp.o differ
Files /tmp/electrum_build/android2/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/meta_types/qtquickcontrols2materialstyleimplplugin_json_file_list.txt.timestamp and /tmp/electrum_build/android3/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/meta_types/qtquickcontrols2materialstyleimplplugin_json_file_list.txt.timestamp differ
Files /tmp/electrum_build/android2/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/hostqt6/native-build/qtdeclarative/src/quickcontrols/material/impl/meta_types/qtquickcontrols2materialstyleimplplugin_json_file_list.txt.timestamp and /tmp/electrum_build/android3/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/hostqt6/native-build/qtdeclarative/src/quickcontrols/material/impl/meta_types/qtquickcontrols2materialstyleimplplugin_json_file_list.txt.timestamp differ
Files /tmp/electrum_build/android2/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/build/bootstrap_builds/qt6/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp and /tmp/electrum_build/android3/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/build/bootstrap_builds/qt6/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp differ
Files /tmp/electrum_build/android2/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/build/bootstrap_builds/qt6/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/CMakeFiles/qtquickcontrols2materialstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp.o and /tmp/electrum_build/android3/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/build/bootstrap_builds/qt6/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/CMakeFiles/qtquickcontrols2materialstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp.o differ
Files /tmp/electrum_build/android2/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/build/bootstrap_builds/qt6/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/CMakeFiles/qtquickcontrols2materialstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp.o and /tmp/electrum_build/android3/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/build/bootstrap_builds/qt6/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/CMakeFiles/qtquickcontrols2materialstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp.o differ
Files /tmp/electrum_build/android2/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/build/bootstrap_builds/qt6/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/meta_types/qtquickcontrols2materialstyleimplplugin_json_file_list.txt.timestamp and /tmp/electrum_build/android3/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/build/bootstrap_builds/qt6/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/meta_types/qtquickcontrols2materialstyleimplplugin_json_file_list.txt.timestamp differ

The parent folder contains a dozen cpp files, all start with a large inlined blob followed by some generated functions.

$ ls /tmp/electrum_build/android{2,3}/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/.rcc/qmlcache/ -la
/tmp/electrum_build/android2/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/.rcc/qmlcache/:
total 380
drwxr-xr-x 2 user user  4096 Dec 15 04:51 .
drwxr-xr-x 3 user user  4096 Dec 15 04:51 ..
-rw-r--r-- 1 user user 30940 Dec 15 04:51 qtquickcontrols2materialstyleimplplugin_BoxShadow_qml.cpp
-rw-r--r-- 1 user user 53747 Dec 15 04:51 qtquickcontrols2materialstyleimplplugin_CheckIndicator_qml.cpp
-rw-r--r-- 1 user user 21037 Dec 15 04:51 qtquickcontrols2materialstyleimplplugin_CursorDelegate_qml.cpp
-rw-r--r-- 1 user user 68956 Dec 15 04:51 qtquickcontrols2materialstyleimplplugin_ElevationEffect_qml.cpp
-rw-r--r-- 1 user user  7076 Dec 15 04:51 qtquickcontrols2materialstyleimplplugin_qmlcache_loader.cpp
-rw-r--r-- 1 user user   670 Dec 15 04:51 qtquickcontrols2materialstyleimplplugin_qml_loader_file_list.rsp
-rw-r--r-- 1 user user 21360 Dec 15 04:51 qtquickcontrols2materialstyleimplplugin_RadioIndicator_qml.cpp
-rw-r--r-- 1 user user 42871 Dec 15 04:51 qtquickcontrols2materialstyleimplplugin_RectangularGlow_qml.cpp
-rw-r--r-- 1 user user  9553 Dec 15 04:51 qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp
-rw-r--r-- 1 user user 30912 Dec 15 04:51 qtquickcontrols2materialstyleimplplugin_SliderHandle_qml.cpp
-rw-r--r-- 1 user user 68002 Dec 15 04:51 qtquickcontrols2materialstyleimplplugin_SwitchIndicator_qml.cpp

/tmp/electrum_build/android3/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/.rcc/qmlcache/:
total 380
drwxr-xr-x 2 user user  4096 Dec 15 05:41 .
drwxr-xr-x 3 user user  4096 Dec 15 05:41 ..
-rw-r--r-- 1 user user 30940 Dec 15 05:41 qtquickcontrols2materialstyleimplplugin_BoxShadow_qml.cpp
-rw-r--r-- 1 user user 53747 Dec 15 05:41 qtquickcontrols2materialstyleimplplugin_CheckIndicator_qml.cpp
-rw-r--r-- 1 user user 21037 Dec 15 05:41 qtquickcontrols2materialstyleimplplugin_CursorDelegate_qml.cpp
-rw-r--r-- 1 user user 68956 Dec 15 05:41 qtquickcontrols2materialstyleimplplugin_ElevationEffect_qml.cpp
-rw-r--r-- 1 user user  7076 Dec 15 05:41 qtquickcontrols2materialstyleimplplugin_qmlcache_loader.cpp
-rw-r--r-- 1 user user   670 Dec 15 05:41 qtquickcontrols2materialstyleimplplugin_qml_loader_file_list.rsp
-rw-r--r-- 1 user user 21360 Dec 15 05:41 qtquickcontrols2materialstyleimplplugin_RadioIndicator_qml.cpp
-rw-r--r-- 1 user user 42871 Dec 15 05:41 qtquickcontrols2materialstyleimplplugin_RectangularGlow_qml.cpp
-rw-r--r-- 1 user user 12115 Dec 15 05:41 qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp
-rw-r--r-- 1 user user 30912 Dec 15 05:41 qtquickcontrols2materialstyleimplplugin_SliderHandle_qml.cpp
-rw-r--r-- 1 user user 68002 Dec 15 05:41 qtquickcontrols2materialstyleimplplugin_SwitchIndicator_qml.cpp

However for this one cpp file, in one of two builds, only the inlined binary blob is present, the generated functions are missing:

qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp
$ sudo diff /tmp/electrum_build/android{2,3}/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/jni/qt6/qtdeclarative/src/quickcontrols/material/impl/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp
264a265,280
>
> template <typename Binding>
> void wrapCall(const QQmlPrivate::AOTCompiledContext *aotContext, void *dataPtr, void **argumentsPtr, Binding &&binding)
> {
>     using return_type = std::invoke_result_t<Binding, const QQmlPrivate::AOTCompiledContext *, void **>;
>     if constexpr (std::is_same_v<return_type, void>) {
>        Q_UNUSED(dataPtr)
>        binding(aotContext, argumentsPtr);
>     } else {
>         if (dataPtr) {
>            new (dataPtr) return_type(binding(aotContext, argumentsPtr));
>         } else {
>            binding(aotContext, argumentsPtr);
>         }
>     }
> }
266c282,349
< extern const QQmlPrivate::TypedFunction aotBuiltFunctions[] = { { 0, QMetaType::fromType<void>(), {}, nullptr } };QT_WARNING_POP
---
> extern const QQmlPrivate::TypedFunction aotBuiltFunctions[] = {
> { 0, QMetaType::fromType<QVariant>(), {  },
>     [](const QQmlPrivate::AOTCompiledContext *context, void *data, void **argv) {
>         wrapCall(context, data, argv, [](const QQmlPrivate::AOTCompiledContext *aotContext, void **argumentsPtr) {
> Q_UNUSED(aotContext)
> Q_UNUSED(argumentsPtr)
> // expression for _shadows at line 10, column 5
> bool r2_1;
> QVariant r2_2;
> int r2_0;
> int r7_0;
> // generate_LoadQmlContextPropertyLookup
> while (!aotContext->loadScopeObjectPropertyLookup(0, &r2_0)) {
> aotContext->setInstructionPointer(2);
> aotContext->initLoadScopeObjectPropertyLookup(0, QMetaType::fromType<int>());
> if (aotContext->engine->hasError())
>     return QVariant();
> }
> // generate_StoreReg
> r7_0 = r2_0;
> // generate_GetLookup
> while (!aotContext->getEnumLookup(2, &r2_0)) {
> aotContext->setInstructionPointer(8);
> aotContext->initGetEnumLookup(2, []() { static const auto t = QMetaType::fromName("QQuickMaterialStyle*"); return t; }().metaObject(), "RoundedScale", "NotRounded");
> if (aotContext->engine->hasError())
>     return QVariant();
> }
> // generate_CmpStrictEqual
> r2_1 = r7_0 == r2_0;
> // generate_JumpFalse
> if (!r2_1) {
>     goto label_0;
> }
> ;
> // generate_LoadQmlContextPropertyLookup
> while (!aotContext->loadScopeObjectPropertyLookup(3, &r2_2)) {
> aotContext->setInstructionPointer(14);
> aotContext->initLoadScopeObjectPropertyLookup(3, QMetaType::fromType<QVariant>());
> if (aotContext->engine->hasError())
>     return QVariant();
> }
> // generate_Jump
> {
>     goto label_1;
> }
> ;
> label_0:;
> // generate_CallQmlContextPropertyLookup
> {
> QVariant callResult;
> void *args[] = { &callResult };
> const QMetaType types[] = { QMetaType::fromType<QVariant>() };
> while (!aotContext->callQmlContextPropertyLookup(4, args, types, 0)) {
> aotContext->setInstructionPointer(20);
> aotContext->initCallQmlContextPropertyLookup(4);
> if (aotContext->engine->hasError())
>     return QVariant();
> }
> r2_2 = std::move(callResult);
> }
> label_1:;
> // generate_Ret
> if (!r2_2.isValid())
>     aotContext->setReturnValueUndefined();
> return r2_2;
> });}
>  },{ 0, QMetaType::fromType<void>(), {}, nullptr }};
> QT_WARNING_POP

detailed diff (a31 vs a32)

(paths within .buildozer/android/platform/build-armeabi-v7a/dists/Electrum/)

$ ./pdiff.py
File differs: src/main/libs/Qt6Android.jar
File differs: src/main/libs/Qt6AndroidNetwork.jar
File differs: src/main/libs/Qt6AndroidMultimedia.jar
File differs: src/main/libs/Qt6AndroidNetworkInformationBackend.jar
File differs: libs/armeabi-v7a/libqml_QtQuick_Controls_Basic_qtquickcontrols2basicstyleplugin_armeabi-v7a.so
File differs: libs/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so
File differs: libs/armeabi-v7a/libqml_QtQuick_Controls_Material_impl_qtquickcontrols2materialstyleimplplugin_armeabi-v7a.so
File differs: __pycache__/build.cpython-311.pyc
File differs: jni/qt6/qtmultimedia/src/spatialaudioquick3d/CMakeFiles/Quick3DSpatialAudioPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtmultimedia/src/multimedia/CMakeFiles/Multimedia.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtmultimedia/src/multimediaquick/CMakeFiles/MultimediaQuickPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtmultimedia/src/spatialaudio/CMakeFiles/SpatialAudio.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmltyperegistrar/CMakeFiles/QmlTypeRegistrarPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickcontrolstestutils/CMakeFiles/QuickControlsTestUtilsPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quicktestutils/CMakeFiles/QuickTestUtilsPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmllocalstorage/CMakeFiles/QmlLocalStorage.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmlworkerscript/CMakeFiles/QmlWorkerScript.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickcontrols/material/impl/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/material/impl/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_CursorDelegate_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/material/impl/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_SwitchIndicator_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/material/impl/CMakeFiles/qtquickcontrols2materialstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_SwitchIndicator_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/material/impl/CMakeFiles/qtquickcontrols2materialstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_CursorDelegate_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/material/impl/CMakeFiles/qtquickcontrols2materialstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2materialstyleimplplugin_RoundedElevationEffect_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/.rcc/qmlcache/qtquickcontrols2fusionstyleplugin_Dial_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/.rcc/qmlcache/qtquickcontrols2fusionstyleplugin_BusyIndicator_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/CMakeFiles/qtquickcontrols2fusionstyleplugin.dir/.rcc/qmlcache/qtquickcontrols2fusionstyleplugin_Dial_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/CMakeFiles/qtquickcontrols2fusionstyleplugin.dir/.rcc/qmlcache/qtquickcontrols2fusionstyleplugin_BusyIndicator_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/impl/.rcc/qmlcache/qtquickcontrols2fusionstyleimplplugin_CheckIndicator_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/impl/.rcc/qmlcache/qtquickcontrols2fusionstyleimplplugin_SwitchIndicator_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/impl/.rcc/qmlcache/qtquickcontrols2fusionstyleimplplugin_SliderHandle_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/impl/.rcc/qmlcache/qtquickcontrols2fusionstyleimplplugin_RadioIndicator_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/impl/.rcc/qmlcache/qtquickcontrols2fusionstyleimplplugin_ButtonPanel_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/impl/CMakeFiles/qtquickcontrols2fusionstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2fusionstyleimplplugin_ButtonPanel_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/impl/CMakeFiles/qtquickcontrols2fusionstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2fusionstyleimplplugin_RadioIndicator_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/impl/CMakeFiles/qtquickcontrols2fusionstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2fusionstyleimplplugin_SliderHandle_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/impl/CMakeFiles/qtquickcontrols2fusionstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2fusionstyleimplplugin_SwitchIndicator_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/fusion/impl/CMakeFiles/qtquickcontrols2fusionstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2fusionstyleimplplugin_CheckIndicator_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/universal/impl/.rcc/qmlcache/qtquickcontrols2universalstyleimplplugin_SwitchIndicator_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/universal/impl/.rcc/qmlcache/qtquickcontrols2universalstyleimplplugin_CheckIndicator_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/universal/impl/CMakeFiles/qtquickcontrols2universalstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2universalstyleimplplugin_SwitchIndicator_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/universal/impl/CMakeFiles/qtquickcontrols2universalstyleimplplugin.dir/.rcc/qmlcache/qtquickcontrols2universalstyleimplplugin_CheckIndicator_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/basic/.rcc/qmlcache/qtquickcontrols2basicstyleplugin_Dial_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/basic/.rcc/qmlcache/qtquickcontrols2basicstyleplugin_BusyIndicator_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickcontrols/basic/CMakeFiles/qtquickcontrols2basicstyleplugin.dir/.rcc/qmlcache/qtquickcontrols2basicstyleplugin_Dial_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/basic/CMakeFiles/qtquickcontrols2basicstyleplugin.dir/.rcc/qmlcache/qtquickcontrols2basicstyleplugin_BusyIndicator_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickcontrols/CMakeFiles/QuickControls2.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmldom/CMakeFiles/QmlDomPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quick/CMakeFiles/Quick.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/labs/settings/CMakeFiles/LabsSettings.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmldebug/CMakeFiles/QmlDebugPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickshapes/CMakeFiles/QuickShapesPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmlxmllistmodel/CMakeFiles/QmlXmlListModel.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmltest/CMakeFiles/QuickTest.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickcontrolsimpl/CMakeFiles/QuickControls2Impl.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/core/CMakeFiles/QmlCore.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quicktemplates/CMakeFiles/QuickTemplates2.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quicklayouts/CMakeFiles/QuickLayouts.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsutils/CMakeFiles/QuickDialogs2Utils.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Imagine/ColorDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Imagine/FolderDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Imagine/FileDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Imagine/MessageDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Imagine/FontDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/FileDialogDelegate_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/FolderDialogDelegate_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/ColorDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/FolderDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/FileDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/MessageDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/FontDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/FileDialogDelegate_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/FolderDialogDelegate_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/FolderBreadcrumbBar_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/ColorDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/FolderDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/FileDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/FontDialog_qml.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Imagine/MessageDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Imagine/FolderDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Imagine/FileDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Imagine/ColorDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Imagine/FontDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/MessageDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/FileDialogDelegate_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/FolderDialogDelegate_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/FolderDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/FileDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/ColorDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Fusion/FontDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/FileDialogDelegate_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/FolderDialogDelegate_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/FolderDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/FolderBreadcrumbBar_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/FileDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/ColorDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qmlcache/QuickDialogs2QuickImpl_qml/+Material/FontDialog_qml.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs/quickdialogs/CMakeFiles/QuickDialogs2.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qml/CMakeFiles/Qml.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmlmodels/CMakeFiles/QmlModels.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquicktimeline/src/timeline/CMakeFiles/QuickTimeline.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/jar/Qt6Android.jar
File differs: jni/qt6/qtbase/jar/Qt6AndroidNetwork.jar
File differs: jni/qt6/qtbase/jar/Qt6AndroidMultimedia.jar
File differs: jni/qt6/qtbase/jar/Qt6AndroidNetworkInformationBackend.jar
File differs: jni/qt6/qtbase/src/platformsupport/input/CMakeFiles/InputSupportPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/platformsupport/fbconvenience/CMakeFiles/FbSupportPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/xml/CMakeFiles/Xml.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/opengl/CMakeFiles/OpenGL.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/sql/CMakeFiles/Sql.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/concurrent/CMakeFiles/Concurrent.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/testlib/CMakeFiles/Test.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/network/CMakeFiles/Network.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/gui/CMakeFiles/Gui.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/lib/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so
File differs: jni/qt6/qtbase/qml/QtQuick/Controls/Fusion/libqml_QtQuick_Controls_Fusion_qtquickcontrols2fusionstyleplugin_armeabi-v7a.so
File differs: jni/qt6/qtbase/qml/QtQuick/Controls/Fusion/impl/libqml_QtQuick_Controls_Fusion_impl_qtquickcontrols2fusionstyleimplplugin_armeabi-v7a.so
File differs: jni/qt6/qtbase/qml/QtQuick/Controls/Material/impl/libqml_QtQuick_Controls_Material_impl_qtquickcontrols2materialstyleimplplugin_armeabi-v7a.so
File differs: jni/qt6/qtbase/qml/QtQuick/Controls/Basic/libqml_QtQuick_Controls_Basic_qtquickcontrols2basicstyleplugin_armeabi-v7a.so
File differs: jni/qt6/qtbase/qml/QtQuick/Controls/Universal/impl/libqml_QtQuick_Controls_Universal_impl_qtquickcontrols2universalstyleimplplugin_armeabi-v7a.so
File differs: jni/qt6/qtshadertools/src/shadertools/CMakeFiles/ShaderTools.dir/cmake_pch.hxx.pch
File differs: jni/qt6/CMakeFiles/CMakeOutput.log
File differs: jni/qt6/CMakeFiles/CMakeError.log
File differs: jni/qt6/CMakeFiles/3.25.1/CMakeDetermineCompilerABI_C.bin
File differs: jni/qt6/CMakeFiles/3.25.1/CMakeDetermineCompilerABI_CXX.bin
File differs: jni/qt6/qtquick3d/src/iblbaker/CMakeFiles/Quick3DIblBaker.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/assetutils/CMakeFiles/Quick3DAssetUtils.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/helpers/CMakeFiles/Quick3DHelpers.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/helpers/impl/CMakeFiles/Quick3DHelpersImpl.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/effects/CMakeFiles/Quick3DEffects.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/utils/CMakeFiles/Quick3DUtils.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/assetimport/CMakeFiles/Quick3DAssetImport.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/quick3d/CMakeFiles/Quick3D.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/quick3dparticles/CMakeFiles/Quick3DParticles.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/glslparser/CMakeFiles/Quick3DGlslParserPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtlanguageserver/src/jsonrpc/CMakeFiles/JsonRpcPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtlanguageserver/src/languageserver/CMakeFiles/LanguageServerPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtsvg/src/svg/CMakeFiles/Svg.dir/cmake_pch.hxx.pch
File differs: build/outputs/logs/manifest-merger-release-report.txt
File differs: build/outputs/sdk-dependencies/release/sdkDependencies.txt
File differs: build/outputs/apk/release/Electrum-release-unsigned.apk
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/values.json
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/values-hdpi-v4.json
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/values-xhdpi-v4.json
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/release.json
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/values-xxhdpi-v4.json
File differs: build/intermediates/sdk_dependency_data/release/sdkDependencyData.pb
File differs: build/intermediates/merged_native_libs/release/out/lib/armeabi-v7a/libqml_QtQuick_Controls_Basic_qtquickcontrols2basicstyleplugin_armeabi-v7a.so
File differs: build/intermediates/merged_native_libs/release/out/lib/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so
File differs: build/intermediates/merged_native_libs/release/out/lib/armeabi-v7a/libqml_QtQuick_Controls_Material_impl_qtquickcontrols2materialstyleimplplugin_armeabi-v7a.so
File differs: build/intermediates/stripped_native_libs/release/out/lib/armeabi-v7a/libqml_QtQuick_Controls_Basic_qtquickcontrols2basicstyleplugin_armeabi-v7a.so
File differs: build/intermediates/stripped_native_libs/release/out/lib/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so
File differs: build/intermediates/stripped_native_libs/release/out/lib/armeabi-v7a/libqml_QtQuick_Controls_Material_impl_qtquickcontrols2materialstyleimplplugin_armeabi-v7a.so
File differs: build/intermediates/metadata_library_dependencies_report/release/dependencies.pb
File differs: build/intermediates/merged_jni_libs/release/out/armeabi-v7a/libqml_QtQuick_Controls_Basic_qtquickcontrols2basicstyleplugin_armeabi-v7a.so
File differs: build/intermediates/merged_jni_libs/release/out/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so
File differs: build/intermediates/merged_jni_libs/release/out/armeabi-v7a/libqml_QtQuick_Controls_Material_impl_qtquickcontrols2materialstyleimplplugin_armeabi-v7a.so
File differs: build/intermediates/incremental/lintVitalAnalyzeRelease/release-mainArtifact-libraries.xml
File differs: build/intermediates/incremental/lintVitalReportRelease/release-mainArtifact-libraries.xml
File differs: build/intermediates/incremental/mergeReleaseResources/merger.xml
File differs: build/intermediates/incremental/release-mergeJavaRes/merge-state
diff: /tmp/electrum_build/android32/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/A2e4G5LxfgZpX91lkgTrBHVgQ1g=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/A2e4G5LxfgZpX91lkgTrBHVgQ1g=
diff: /tmp/electrum_build/android32/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/VXlN0SsnWDPyg7EeGzi5bRJXNLI=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/VXlN0SsnWDPyg7EeGzi5bRJXNLI=
diff: /tmp/electrum_build/android32/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/HL5oynowhgm8UK9AQLoxErEB8EY=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/HL5oynowhgm8UK9AQLoxErEB8EY=
diff: /tmp/electrum_build/android32/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/w58Wfc7lVz_SNkTGgSj2BtIhe+o=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/w58Wfc7lVz_SNkTGgSj2BtIhe+o=
diff: /tmp/electrum_build/android32/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/fyAr57EnsWejkQdaOS2B0bddK6A=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/fyAr57EnsWejkQdaOS2B0bddK6A=
File differs: .gradle/7.4.1/fileHashes/fileHashes.bin
File differs: .gradle/7.4.1/fileHashes/resourceHashesCache.bin
File differs: .gradle/7.4.1/fileHashes/fileHashes.lock
File differs: .gradle/7.4.1/dependencies-accessors/dependencies-accessors.lock
File differs: .gradle/7.4.1/executionHistory/executionHistory.lock
File differs: .gradle/7.4.1/executionHistory/executionHistory.bin
File differs: .gradle/7.4.1/checksums/sha1-checksums.bin
File differs: .gradle/7.4.1/checksums/md5-checksums.bin
File differs: .gradle/7.4.1/checksums/checksums.lock
File differs: .gradle/buildOutputCleanup/buildOutputCleanup.lock
File differs: .gradle/buildOutputCleanup/outputFiles.bin

@accumulator
Copy link
Member

Hopefully I can prevent the same for you.

Well, I've lost quite some hours on this as well in the past, until I added 'qt5' (and later 'qt6') to the other bootstrap recipes' conflict list. Since then, I've not seen these conflicts arise at all.

Since this worked for me, I haven't dug any further into graph.py. Thanks for your analysis, I think the proper fix would be for graph.py to exclude any recipes derived from BootstrapNDKRecipe other than the one defined in the .spec file.

Note that the CI is building debug builds. i.e. there should be lots of random failures for the CI android build task. So I don't quite understand why that is not the case. Have you been manually restarting the randomly failed tasks until the current-time-based-PYTHONHASHSEED rolled lucky? :P I found at least e.g. https://cirrus-ci.com/task/6037980943482880 failed due to this.

I do keep a shell inside the build container open for long stretches of time, and run make_apk.sh directly for a build. Probably, once build-<arch>/dists/Electrum/dist_info.json is present, the dependency graph is solidified.

@accumulator
Copy link
Member

I tried a build with qt 6.5.3 and ndk 25c (803ec2b), there only 3 files differ. These 3 are a subset of the original 7 files.

110c110
< e7da340b63a559771948f850a7ff1e76555c4f16ac3e5eb106cb11f4c3826902  ./lib/armeabi-v7a/libqml_QtQuick_Controls_Basic_qtquickcontrols2basicstyleplugin_armeabi-v7a.so
---
> a59b974888ebfd8e61159d38c090f42eb2d9186a9f5eee652ac2daccce4cda11  ./lib/armeabi-v7a/libqml_QtQuick_Controls_Basic_qtquickcontrols2basicstyleplugin_armeabi-v7a.so

The basic style plugin can probably be excluded from the APK. There's no linker dependency from the Material style we use, unless it is loaded dynamically at runtime, but AFAIR this is not done.

@accumulator
Copy link
Member

accumulator commented Dec 15, 2023

When generating compiled resources using qmlcachegen, the produced output is always different.

Details

``` /home/user/wspace/electrum/.buildozer/android/platform/build-arm64-v8a/build/other_builds/hostqt6/native-build/install/libexec/qmlcachegen --bare --resource-path /qt-project.org/imports/QtQuick/Controls/Material/Button.qml -I /mnt/buildozer/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/qt6/jni/qt6/qtbase/./qml -I /mnt/buildozer/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/qt6/jni/qt6/qtbase/./qml -i /mnt/buildozer/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/qt6/jni/qt6/qtbase/qml/QtQuick/Controls/Material/qmldir --resource /mnt/buildozer/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/qt6/jni/qt6/qtdeclarative/src/quickcontrols2/material/.rcc/qmake_QtQuick_Controls_Material.qrc --resource /mnt/buildozer/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/qt6/jni/qt6/qtdeclarative/src/quickcontrols2/material/.rcc/qtquickcontrols2materialstyleplugin_raw_qml_0.qrc --resource /mnt/buildozer/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/qt6/jni/qt6/qtdeclarative/src/quickcontrols2/material/.rcc/qtquickcontrols2materialstyleplugin.qrc -o /mnt/buildozer/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/qt6/jni/qt6/qtdeclarative/src/quickcontrols2/material/.rcc/qmlcache/qtquickcontrols2materialstyleplugin_Button_qml.cpp /mnt/buildozer/.buildozer/android/platform/build-arm64-v8a/build/bootstrap_builds/qt6/jni/qt6/qtdeclarative/src/quickcontrols2/material/Button.qml ```

qmlcachegen source code contains this

    // Produce reliably the same output for the same input by disabling QHash's random seeding.
    qSetGlobalQHashSeed(0);

.. and Qt claims to support the QT_HASH_SEED environment var to do the same.

However, on each successive run, the output is different.

(this is with Qt6.4.3)

Edit: the hash seed hack used in the code for qmlcachegen is an attempt to have deterministic ordering for items in a QHash. This doesn't work in all cases, as the hash map for local variables is keyed to a pointer, which is probably why the ordering is not deterministic.

@accumulator
Copy link
Member

The cache generator is not generating code deterministicly, but I think I have a patch for qmlcachegen to produce deterministic output. I'll do a full compile first to see if nothing fell over.

@accumulator
Copy link
Member

patch here: accumulator/python-for-android@a6e4f1b

@SomberNight
Copy link
Member Author

SomberNight commented Dec 15, 2023

Nice! Great find!
So on qt6.4.3, that reduces the diff to:

< 3328acf272806ea1e347da98352fde4f8baf777899647fd5c1299aad6333d329  ./lib/armeabi-v7a/libQt6Quick_armeabi-v7a.so
---
> 7d5220988d5345ced028717a4823a7cd798761804d9c9947e36475f1ef97a634  ./lib/armeabi-v7a/libQt6Quick_armeabi-v7a.so
108c108
< 518841d88346449896ba32d1d24a76f946df8fffb9a6f390c7f0d94012727129  ./lib/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so
---
> 182c15253cbb864a50824f2e2027efe975835bf1d23950b9362f7e0e0c78dcfc  ./lib/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so
130c130
< d111bbac5d346dc107ae71535e7ca8e188adc587a2dc268eff4510bdf7c6b6e0  ./lib/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so
---
> c208d6b55972d8617e234b12182f90b7010c2b238b01aa71824387bccfcd8188  ./lib/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so

detailed diff (a11 vs a12)

(paths within .buildozer/android/platform/build-armeabi-v7a/dists/Electrum/)

$ ./pdiff.py
File differs: src/main/libs/Qt6Android.jar
File differs: src/main/libs/Qt6AndroidNetwork.jar
File differs: src/main/libs/Qt6AndroidMultimedia.jar
File differs: src/main/libs/Qt6AndroidNetworkInformationBackend.jar
File differs: libs/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so
File differs: libs/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so
File differs: libs/armeabi-v7a/libQt6Quick_armeabi-v7a.so
File differs: __pycache__/build.cpython-311.pyc
File differs: jni/qt6/qtmultimedia/src/spatialaudioquick3d/CMakeFiles/Quick3DSpatialAudioPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtmultimedia/src/multimedia/.rcc/qrc_shaders_linear.cpp
File differs: jni/qt6/qtmultimedia/src/multimedia/.rcc/qrc_shaders_gl_macos_linear.cpp
File differs: jni/qt6/qtmultimedia/src/multimedia/.rcc/qrc_shaders_gl_macos.cpp
File differs: jni/qt6/qtmultimedia/src/multimedia/.rcc/qrc_shaders.cpp
File differs: jni/qt6/qtmultimedia/src/multimedia/CMakeFiles/Multimedia.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtmultimedia/src/multimedia/CMakeFiles/Multimedia.dir/.rcc/qrc_shaders_linear.cpp.o
File differs: jni/qt6/qtmultimedia/src/multimedia/CMakeFiles/Multimedia.dir/.rcc/qrc_shaders_gl_macos.cpp.o
File differs: jni/qt6/qtmultimedia/src/multimedia/CMakeFiles/Multimedia.dir/.rcc/qrc_shaders.cpp.o
File differs: jni/qt6/qtmultimedia/src/multimedia/CMakeFiles/Multimedia.dir/.rcc/qrc_shaders_gl_macos_linear.cpp.o
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv12_bt2020_hlg.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yuyv.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/imc2_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/rectsampler_bgra_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/bgra.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/ayuv.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/argb.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yuv_triplanar.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/imc4.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv21_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yuv_triplanar_p10.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yvu_triplanar.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv12.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/rectsampler.vert.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/abgr_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/externalsampler.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv12_bt2020_pq.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/abgr.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yuv_triplanar_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/externalsampler.vert.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/uyvy.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yvu_triplanar_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/imc4_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/vertex.vert.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/y_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/uyvy_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/ayuv_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv12_bt2020_hlg_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/rgba_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/rectsampler_bgra.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv12_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/y.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/argb_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv21.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/rgba.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/bgra_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yuv_triplanar_p10_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/imc2.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yuyv_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv12_bt2020_pq_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/externalsampler_linear.frag.qsb@glsl,100es,shaders/externalsampler_gles_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimediaquick/CMakeFiles/MultimediaQuickPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtmultimedia/src/spatialaudio/CMakeFiles/SpatialAudio.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickcontrolstestutils/CMakeFiles/QuickControlsTestUtilsPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quicktestutils/CMakeFiles/QuickTestUtilsPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickdialogs2/quickdialogs2/CMakeFiles/QuickDialogs2.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickdialogs2/quickdialogs2quickimpl/.rcc/qrc_QuickDialogs2QuickImplShaders.cpp
File differs: jni/qt6/qtdeclarative/src/quickdialogs2/quickdialogs2quickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickdialogs2/quickdialogs2quickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/.rcc/qrc_QuickDialogs2QuickImplShaders.cpp.o
File differs: jni/qt6/qtdeclarative/src/quickdialogs2/quickdialogs2quickimpl/.qsb/shaders/SaturationLightness.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quickdialogs2/quickdialogs2utils/CMakeFiles/QuickDialogs2Utils.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmllocalstorage/CMakeFiles/QmlLocalStorage.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmlworkerscript/CMakeFiles/QmlWorkerScript.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickcontrols2/CMakeFiles/QuickControls2.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmldom/CMakeFiles/QmlDomPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quicktemplates2/CMakeFiles/QuickTemplates2.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quick/.rcc/qrc_scenegraph_shaders.cpp
File differs: jni/qt6/qtdeclarative/src/quick/CMakeFiles/Quick.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quick/CMakeFiles/Quick.dir/.rcc/qrc_scenegraph_shaders.cpp.o
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/loqsubpixeldistancefieldtext.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/smoothtexture.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/styledtext.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldshiftedtext.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/outlinedtext_a.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldtext_a_fwidth.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldtext_a.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/hiqsubpixeldistancefieldtext.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldtext_fwidth.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldoutlinetext_a_fwidth.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/smoothcolor.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/textmask.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/outlinedtext.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldtext.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/hiqsubpixeldistancefieldtext.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/24bittextmask.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/stencilclip.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/hiqsubpixeldistancefieldtext_a.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldoutlinetext_fwidth.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/shadereffect.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/loqsubpixeldistancefieldtext.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/8bittextmask_a.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/32bitcolortext.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/smoothtexture.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/vertexcolor.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldshiftedtext.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/loqsubpixeldistancefieldtext_a.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/smoothcolor.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/stencilclip.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldtext.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/sprite.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/sprite.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/visualization.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/textmask.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/styledtext.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldshiftedtext_fwidth.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldshiftedtext_a_fwidth.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/shadereffect.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/styledtext_a.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/flatcolor.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/vertexcolor.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/outlinedtext.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/flatcolor.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/texture.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/8bittextmask.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldoutlinetext_a.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/visualization.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/opaquetexture.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/opaquetexture.vert.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldshiftedtext_a.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldoutlinetext.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/texture.frag.qsb
File differs: jni/qt6/qtdeclarative/src/labs/settings/CMakeFiles/LabsSettings.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmldebug/CMakeFiles/QmlDebugPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickshapes/CMakeFiles/QuickShapesPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmlxmllistmodel/CMakeFiles/QmlXmlListModel.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmltest/CMakeFiles/QuickTest.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/core/CMakeFiles/QmlCore.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickcontrols2impl/CMakeFiles/QuickControls2Impl.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quicklayouts/CMakeFiles/QuickLayouts.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qml/CMakeFiles/Qml.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmlmodels/CMakeFiles/QmlModels.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquicktimeline/src/timeline/CMakeFiles/QuickTimeline.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/jar/Qt6Android.jar
File differs: jni/qt6/qtbase/jar/Qt6AndroidNetwork.jar
File differs: jni/qt6/qtbase/jar/Qt6AndroidMultimedia.jar
File differs: jni/qt6/qtbase/jar/Qt6AndroidNetworkInformationBackend.jar
File differs: jni/qt6/qtbase/src/platformsupport/input/CMakeFiles/InputSupportPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/platformsupport/fbconvenience/CMakeFiles/FbSupportPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/xml/CMakeFiles/Xml.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/opengl/CMakeFiles/OpenGL.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/sql/CMakeFiles/Sql.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/concurrent/CMakeFiles/Concurrent.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/testlib/CMakeFiles/Test.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/network/CMakeFiles/Network.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/gui/CMakeFiles/Gui.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/lib/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so
File differs: jni/qt6/qtbase/lib/libQt6Quick3DRuntimeRender_armeabi-v7a.so
File differs: jni/qt6/qtbase/lib/libQt6Multimedia_armeabi-v7a.so
File differs: jni/qt6/qtbase/lib/libQt6Quick_armeabi-v7a.so
File differs: jni/qt6/qtshadertools/src/shadertools/CMakeFiles/ShaderTools.dir/cmake_pch.hxx.pch
File differs: jni/qt6/CMakeFiles/CMakeOutput.log
File differs: jni/qt6/CMakeFiles/CMakeError.log
File differs: jni/qt6/CMakeFiles/3.25.1/CMakeDetermineCompilerABI_C.bin
File differs: jni/qt6/CMakeFiles/3.25.1/CMakeDetermineCompilerABI_CXX.bin
File differs: jni/qt6/qtquick3d/src/iblbaker/CMakeFiles/Quick3DIblBaker.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/assetutils/CMakeFiles/Quick3DAssetUtils.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/helpers/CMakeFiles/Quick3DHelpers.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/effects/CMakeFiles/Quick3DEffects.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/utils/CMakeFiles/Quick3DUtils.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/assetimport/CMakeFiles/Quick3DAssetImport.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/quick3d/CMakeFiles/Quick3D.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/quick3dparticles/CMakeFiles/Quick3DParticles.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/glslparser/CMakeFiles/Quick3DGlslParserPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_particles_nolight_mapped.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_lightmapuvraster_default.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_es3_gl3.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_skybox_rgbe_linear.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_skybox_hdr_aces.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_particles_vlight_mapped.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_lightprobe_rgbe.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_skybox_rgbe_none.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_es3.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_skybox_hdr_linear.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_line_particles_vlight_animated.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_skybox_rgbe_aces.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_skybox_hdr_none.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_line_particles_vlight.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_particles_nolight.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_pertarget.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_es3_pertarget.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_lightmapuvraster_both.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_lightmapuvraster_emissivemap.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_line_particles_vlight_mapped.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_lightmapuvraster_basecolormap.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_particles_nolight_animated.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_line_particles_animated.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_skybox_hdr_filmic.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_particles_vlight_animated.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_particles_vlight.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_skybox_hdr_hejldawson.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_line_particles_mapped.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_skybox_rgbe_filmic.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_skybox_rgbe_hejldawson.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_line_particles.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_particles_nolight_mapped.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_line_particles_animated.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_es3_pertarget.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_particles_nolight_animated.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_es3.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_skybox_rgbe_aces.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_particles_nolight.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_particles_vlight_animated.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_skybox_rgbe_hejldawson.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_line_particles_mapped.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_skybox_hdr_hejldawson.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_skybox_rgbe_filmic.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_lightmapuvraster_emissivemap.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_skybox_hdr_aces.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_line_particles_vlight_animated.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_pertarget.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_es3_gl3.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_skybox_hdr_filmic.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_line_particles_vlight.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_particles_vlight.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_line_particles.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_particles_vlight_mapped.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_skybox_rgbe_none.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_lightmapuvraster_basecolormap.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_skybox_hdr_none.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_lightmapuvraster_both.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_line_particles_vlight_mapped.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_skybox_hdr_linear.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_skybox_rgbe_linear.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_lightmapuvraster_default.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_lightprobe_rgbe.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lightmapuvraster_basecolormap.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesvlightmapped.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesvlightsimple.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/progressiveaa.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesanimated.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesvlightanimated.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_hdr_aces.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lightmapuvraster_basecolormap.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lightmapuvraster_emissivemap.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lightmapuvraster_both.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/texturedquad.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_rgbe_aces.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/reflectionprobeprefilter.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skyboxcube.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_hdr_hejldawson.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lightmapuvraster_emissivemap.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/cubeshadowblury.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesnolightsimple.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lightmapdilate.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesvlightsimple.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesvlightanimated.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesmapped.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/orthoshadowblury.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/reflectionprobeprefilter.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_hdr_none.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_hdr_linear.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_hdr_none.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/ssao.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_hdr_aces.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/orthoshadowblurx.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesvlightsimple.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/simplequad.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_hdr_filmic.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/environmentmap.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/simplequad.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_rgbe_linear.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_hdr_hejldawson.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_rgbe_hejldawson.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesnolightanimated.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/orthoshadowblurx.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticles.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_hdr_linear.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/ssao.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesanimated.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/ssaaresolve.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/environmentmapprefilter.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/cubeshadowblury.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesvlightmapped.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_hdr_filmic.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/environmentmap.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesvlightmapped.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesvlightanimated.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesvlightanimated.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lightmapuvraster.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesnolightanimated.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/environmentmapprefilter_rgbe.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_rgbe_aces.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_rgbe_linear.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lightmapuvraster_both.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticles.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesnolightsimple.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_rgbe_hejldawson.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/environmentmapprefilter.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/environmentmapprefilter_rgbe.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_rgbe_none.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/orthoshadowblury.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/progressiveaa.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesvlightmapped.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesvlightsimple.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skyboxcube.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/ssaaresolve.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lightmapuvraster.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/texturedquad.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/cubeshadowblurx.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesmapped.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesnolightmapped.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_rgbe_none.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_rgbe_filmic.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lightmapdilate.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesnolightmapped.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/cubeshadowblurx.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_rgbe_filmic.vert.qsb
File differs: jni/qt6/qtlanguageserver/src/jsonrpc/CMakeFiles/JsonRpcPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtlanguageserver/src/languageserver/CMakeFiles/LanguageServerPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtsvg/src/svg/CMakeFiles/Svg.dir/cmake_pch.hxx.pch
File differs: build/outputs/logs/manifest-merger-release-report.txt
File differs: build/outputs/sdk-dependencies/release/sdkDependencies.txt
File differs: build/outputs/apk/release/Electrum-release-unsigned.apk
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/values.json
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/values-hdpi-v4.json
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/values-xhdpi-v4.json
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/release.json
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/values-xxhdpi-v4.json
File differs: build/intermediates/sdk_dependency_data/release/sdkDependencyData.pb
File differs: build/intermediates/merged_native_libs/release/out/lib/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so
File differs: build/intermediates/merged_native_libs/release/out/lib/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so
File differs: build/intermediates/merged_native_libs/release/out/lib/armeabi-v7a/libQt6Quick_armeabi-v7a.so
File differs: build/intermediates/stripped_native_libs/release/out/lib/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so
File differs: build/intermediates/stripped_native_libs/release/out/lib/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so
File differs: build/intermediates/stripped_native_libs/release/out/lib/armeabi-v7a/libQt6Quick_armeabi-v7a.so
File differs: build/intermediates/metadata_library_dependencies_report/release/dependencies.pb
File differs: build/intermediates/merged_jni_libs/release/out/armeabi-v7a/libQt6QuickDialogs2QuickImpl_armeabi-v7a.so
File differs: build/intermediates/merged_jni_libs/release/out/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so
File differs: build/intermediates/merged_jni_libs/release/out/armeabi-v7a/libQt6Quick_armeabi-v7a.so
File differs: build/intermediates/incremental/lintVitalAnalyzeRelease/release-mainArtifact-libraries.xml
File differs: build/intermediates/incremental/lintVitalReportRelease/release-mainArtifact-libraries.xml
File differs: build/intermediates/incremental/mergeReleaseResources/merger.xml
File differs: build/intermediates/incremental/release-mergeJavaRes/merge-state
diff: /tmp/electrum_build/android12/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/eKffMODTBpXUXtP_s4DppSW6M9Y=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/eKffMODTBpXUXtP_s4DppSW6M9Y=
diff: /tmp/electrum_build/android12/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/eMDP+_oqb1c4ddbcjLyLni2KhPg=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/eMDP+_oqb1c4ddbcjLyLni2KhPg=
diff: /tmp/electrum_build/android12/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/J27xkvY6HOBZfxhVu3hYMiVTrQU=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/J27xkvY6HOBZfxhVu3hYMiVTrQU=
diff: /tmp/electrum_build/android12/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/uFWoCS98gj+XWQqfZrExgFF3c4o=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/uFWoCS98gj+XWQqfZrExgFF3c4o=
diff: /tmp/electrum_build/android12/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/UAR6U2lIezp+fVQV8QNW8ibx5Sc=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/UAR6U2lIezp+fVQV8QNW8ibx5Sc=
File differs: .gradle/7.4.1/fileHashes/fileHashes.bin
File differs: .gradle/7.4.1/fileHashes/resourceHashesCache.bin
File differs: .gradle/7.4.1/fileHashes/fileHashes.lock
File differs: .gradle/7.4.1/dependencies-accessors/dependencies-accessors.lock
File differs: .gradle/7.4.1/executionHistory/executionHistory.lock
File differs: .gradle/7.4.1/executionHistory/executionHistory.bin
File differs: .gradle/7.4.1/checksums/sha1-checksums.bin
File differs: .gradle/7.4.1/checksums/md5-checksums.bin
File differs: .gradle/7.4.1/checksums/checksums.lock
File differs: .gradle/buildOutputCleanup/buildOutputCleanup.lock
File differs: .gradle/buildOutputCleanup/outputFiles.bin

@SomberNight
Copy link
Member Author

SomberNight commented Dec 15, 2023

(testing with 50d3c52)

With qt6.4.3, applying the patch for this bug from qt6.5:
SomberNight/python-for-android@80f6fcf

The diff is now:

104c104
< 9bb68b4ca783c78488c5c876e5faeed8be9b9ffd7f514119203d3f4c5927058b  ./lib/armeabi-v7a/libQt6Quick_armeabi-v7a.so
---
> 86b77e6f835eb0168e22e200b679d8fcaf1cd323324992d95a61d1ef9309f8a7  ./lib/armeabi-v7a/libQt6Quick_armeabi-v7a.so
108c108
< 2cc21633b844c5841d18d0c165d496b43afe243b3adaf50df3fab5a69f8ffef6  ./lib/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so
---
> 56fb95ea876357c5e947f57770dcd6724a1f5eabd4cb58bd014d66c511c891bb  ./lib/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so

EDIT:
Hmm, looks like (part of) the remaining diff is still caused by qsb non-determinicity:

detailed diff (a21 vs a22)

(paths within .buildozer/android/platform/build-armeabi-v7a/dists/Electrum/)

$ ./pdiff.py
File differs: src/main/libs/Qt6Android.jar
File differs: src/main/libs/Qt6AndroidNetwork.jar
File differs: src/main/libs/Qt6AndroidMultimedia.jar
File differs: src/main/libs/Qt6AndroidNetworkInformationBackend.jar
File differs: libs/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so
File differs: libs/armeabi-v7a/libQt6Quick_armeabi-v7a.so
File differs: __pycache__/build.cpython-311.pyc
File differs: jni/qt6/qtmultimedia/src/spatialaudioquick3d/CMakeFiles/Quick3DSpatialAudioPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtmultimedia/src/multimedia/.rcc/qrc_shaders_linear.cpp
File differs: jni/qt6/qtmultimedia/src/multimedia/.rcc/qrc_shaders.cpp
File differs: jni/qt6/qtmultimedia/src/multimedia/CMakeFiles/Multimedia.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtmultimedia/src/multimedia/CMakeFiles/Multimedia.dir/.rcc/qrc_shaders_linear.cpp.o
File differs: jni/qt6/qtmultimedia/src/multimedia/CMakeFiles/Multimedia.dir/.rcc/qrc_shaders.cpp.o
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yuyv.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/imc2_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/ayuv.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/argb.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yuv_triplanar.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/imc4.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv21_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yuv_triplanar_p10.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yvu_triplanar.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv12.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/externalsampler.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv12_bt2020_pq.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yuv_triplanar_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yvu_triplanar_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/imc4_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/uyvy_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv12_bt2020_hlg_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/rgba_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv12_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/y.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/argb_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/rgba.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/bgra_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/yuv_triplanar_p10_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/imc2.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/nv12_bt2020_pq_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimedia/.qsb/shaders/externalsampler_linear.frag.qsb@glsl,100es,shaders/externalsampler_gles_linear.frag.qsb
File differs: jni/qt6/qtmultimedia/src/multimediaquick/CMakeFiles/MultimediaQuickPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtmultimedia/src/spatialaudio/CMakeFiles/SpatialAudio.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickcontrolstestutils/CMakeFiles/QuickControlsTestUtilsPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quicktestutils/CMakeFiles/QuickTestUtilsPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickdialogs2/quickdialogs2/CMakeFiles/QuickDialogs2.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickdialogs2/quickdialogs2quickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickdialogs2/quickdialogs2utils/CMakeFiles/QuickDialogs2Utils.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmllocalstorage/CMakeFiles/QmlLocalStorage.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmlworkerscript/CMakeFiles/QmlWorkerScript.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickcontrols2/CMakeFiles/QuickControls2.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmldom/CMakeFiles/QmlDomPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quicktemplates2/CMakeFiles/QuickTemplates2.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quick/.rcc/qrc_scenegraph_shaders.cpp
File differs: jni/qt6/qtdeclarative/src/quick/CMakeFiles/Quick.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quick/CMakeFiles/Quick.dir/.rcc/qrc_scenegraph_shaders.cpp.o
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/outlinedtext_a.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldtext_a_fwidth.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldtext_a.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldtext_fwidth.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldoutlinetext_a_fwidth.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/24bittextmask.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/hiqsubpixeldistancefieldtext_a.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/shadereffect.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/32bitcolortext.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldtext.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/styledtext.frag.qsb
File differs: jni/qt6/qtdeclarative/src/quick/.qsb/scenegraph/shaders_ng/distancefieldshiftedtext_fwidth.frag.qsb
File differs: jni/qt6/qtdeclarative/src/labs/settings/CMakeFiles/LabsSettings.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmldebug/CMakeFiles/QmlDebugPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickshapes/CMakeFiles/QuickShapesPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmlxmllistmodel/CMakeFiles/QmlXmlListModel.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmltest/CMakeFiles/QuickTest.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/core/CMakeFiles/QmlCore.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quickcontrols2impl/CMakeFiles/QuickControls2Impl.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/quicklayouts/CMakeFiles/QuickLayouts.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qml/CMakeFiles/Qml.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtdeclarative/src/qmlmodels/CMakeFiles/QmlModels.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquicktimeline/src/timeline/CMakeFiles/QuickTimeline.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/jar/Qt6Android.jar
File differs: jni/qt6/qtbase/jar/Qt6AndroidNetwork.jar
File differs: jni/qt6/qtbase/jar/Qt6AndroidMultimedia.jar
File differs: jni/qt6/qtbase/jar/Qt6AndroidNetworkInformationBackend.jar
File differs: jni/qt6/qtbase/src/platformsupport/input/CMakeFiles/InputSupportPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/platformsupport/fbconvenience/CMakeFiles/FbSupportPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/xml/CMakeFiles/Xml.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/opengl/CMakeFiles/OpenGL.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/sql/CMakeFiles/Sql.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/concurrent/CMakeFiles/Concurrent.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/testlib/CMakeFiles/Test.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/network/CMakeFiles/Network.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/gui/CMakeFiles/Gui.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtbase/lib/libQt6Quick3DRuntimeRender_armeabi-v7a.so
File differs: jni/qt6/qtbase/lib/libQt6Multimedia_armeabi-v7a.so
File differs: jni/qt6/qtbase/lib/libQt6Quick_armeabi-v7a.so
File differs: jni/qt6/qtshadertools/src/shadertools/CMakeFiles/ShaderTools.dir/cmake_pch.hxx.pch
File differs: jni/qt6/CMakeFiles/CMakeOutput.log
File differs: jni/qt6/CMakeFiles/CMakeError.log
File differs: jni/qt6/CMakeFiles/3.25.1/CMakeDetermineCompilerABI_C.bin
File differs: jni/qt6/CMakeFiles/3.25.1/CMakeDetermineCompilerABI_CXX.bin
File differs: jni/qt6/qtquick3d/src/iblbaker/CMakeFiles/Quick3DIblBaker.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/assetutils/CMakeFiles/Quick3DAssetUtils.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/helpers/CMakeFiles/Quick3DHelpers.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/effects/CMakeFiles/Quick3DEffects.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/utils/CMakeFiles/Quick3DUtils.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/assetimport/CMakeFiles/Quick3DAssetImport.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/quick3d/CMakeFiles/Quick3D.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/quick3dparticles/CMakeFiles/Quick3DParticles.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/glslparser/CMakeFiles/Quick3DGlslParserPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_particles_nolight_mapped.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_es3_gl3.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_particles_vlight_mapped.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_lightprobe_rgbe.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_skybox_rgbe_none.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_es3.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_skybox_hdr_linear.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_line_particles_vlight_animated.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_line_particles_vlight.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_particles_nolight.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_pertarget.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_lightmapuvraster_both.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_lightmapuvraster_emissivemap.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_line_particles_vlight_mapped.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_particles_nolight_animated.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_line_particles_animated.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_particles_vlight_animated.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_line_particles_mapped.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/.rcc/qrc_res_shaders_skybox_rgbe_filmic.cpp
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_particles_nolight_mapped.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_line_particles_animated.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_particles_nolight_animated.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_es3.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_particles_nolight.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_particles_vlight_animated.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_line_particles_mapped.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_skybox_rgbe_filmic.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_lightmapuvraster_emissivemap.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_line_particles_vlight_animated.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_pertarget.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_es3_gl3.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_line_particles_vlight.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_particles_vlight_mapped.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_skybox_rgbe_none.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_lightmapuvraster_both.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_line_particles_vlight_mapped.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_skybox_hdr_linear.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/CMakeFiles/Quick3DRuntimeRender.dir/.rcc/qrc_res_shaders_lightprobe_rgbe.cpp.o
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesvlightmapped.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesvlightanimated.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lightmapuvraster_emissivemap.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/texturedquad.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/cubeshadowblury.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesnolightsimple.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesvlightanimated.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/orthoshadowblury.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_hdr_linear.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/orthoshadowblurx.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesvlightsimple.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/ssao.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesanimated.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/environmentmapprefilter.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesvlightmapped.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesvlightmapped.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesvlightanimated.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesvlightanimated.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesnolightanimated.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lightmapuvraster_both.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesnolightsimple.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/environmentmapprefilter_rgbe.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_rgbe_none.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/progressiveaa.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesvlightmapped.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesvlightsimple.vert.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skyboxcube.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/lineparticlesmapped.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/skybox_rgbe_filmic.frag.qsb
File differs: jni/qt6/qtquick3d/src/runtimerender/.qsb/res/rhishaders/particlesnolightmapped.frag.qsb
File differs: jni/qt6/qtlanguageserver/src/jsonrpc/CMakeFiles/JsonRpcPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtlanguageserver/src/languageserver/CMakeFiles/LanguageServerPrivate.dir/cmake_pch.hxx.pch
File differs: jni/qt6/qtsvg/src/svg/CMakeFiles/Svg.dir/cmake_pch.hxx.pch
File differs: build/outputs/logs/manifest-merger-release-report.txt
File differs: build/outputs/sdk-dependencies/release/sdkDependencies.txt
File differs: build/outputs/apk/release/Electrum-release-unsigned.apk
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/values.json
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/values-hdpi-v4.json
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/values-xhdpi-v4.json
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/release.json
File differs: build/intermediates/merged_res_blame_folder/release/out/multi-v2/values-xxhdpi-v4.json
File differs: build/intermediates/sdk_dependency_data/release/sdkDependencyData.pb
File differs: build/intermediates/merged_native_libs/release/out/lib/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so
File differs: build/intermediates/merged_native_libs/release/out/lib/armeabi-v7a/libQt6Quick_armeabi-v7a.so
File differs: build/intermediates/stripped_native_libs/release/out/lib/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so
File differs: build/intermediates/stripped_native_libs/release/out/lib/armeabi-v7a/libQt6Quick_armeabi-v7a.so
File differs: build/intermediates/metadata_library_dependencies_report/release/dependencies.pb
File differs: build/intermediates/merged_jni_libs/release/out/armeabi-v7a/libQt6Multimedia_armeabi-v7a.so
File differs: build/intermediates/merged_jni_libs/release/out/armeabi-v7a/libQt6Quick_armeabi-v7a.so
File differs: build/intermediates/incremental/lintVitalAnalyzeRelease/release-mainArtifact-libraries.xml
File differs: build/intermediates/incremental/lintVitalReportRelease/release-mainArtifact-libraries.xml
File differs: build/intermediates/incremental/mergeReleaseResources/merger.xml
File differs: build/intermediates/incremental/release-mergeJavaRes/merge-state
diff: /tmp/electrum_build/android22/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/bXp2q7Qoiroq7UEMgk2gfbPPmUk=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/bXp2q7Qoiroq7UEMgk2gfbPPmUk=
diff: /tmp/electrum_build/android22/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/ru2eRBD98XYzcdNMUwqo5BVDMoo=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/ru2eRBD98XYzcdNMUwqo5BVDMoo=
diff: /tmp/electrum_build/android22/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/O_NUSzCKP0+4i_lO1FCcaPKLyts=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/O_NUSzCKP0+4i_lO1FCcaPKLyts=
diff: /tmp/electrum_build/android22/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/QhO7M6v99gLoRuhxtTGTv5ZX9uw=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/QhO7M6v99gLoRuhxtTGTv5ZX9uw=
diff: /tmp/electrum_build/android22/fresh_clone/electrum/.buildozer/android/platform/build-armeabi-v7a/dists/Electrum/build/intermediates/incremental/release-mergeJavaRes/zip-cache/gj49Zp1s_ZgHvE9hRTqmmVwLy7E=: No such file or directory
File differs: build/intermediates/incremental/release-mergeJavaRes/zip-cache/gj49Zp1s_ZgHvE9hRTqmmVwLy7E=
File differs: .gradle/7.4.1/fileHashes/fileHashes.bin
File differs: .gradle/7.4.1/fileHashes/resourceHashesCache.bin
File differs: .gradle/7.4.1/fileHashes/fileHashes.lock
File differs: .gradle/7.4.1/dependencies-accessors/dependencies-accessors.lock
File differs: .gradle/7.4.1/executionHistory/executionHistory.lock
File differs: .gradle/7.4.1/executionHistory/executionHistory.bin
File differs: .gradle/7.4.1/checksums/sha1-checksums.bin
File differs: .gradle/7.4.1/checksums/md5-checksums.bin
File differs: .gradle/7.4.1/checksums/checksums.lock
File differs: .gradle/buildOutputCleanup/buildOutputCleanup.lock
File differs: .gradle/buildOutputCleanup/outputFiles.bin

When building with qt6.5.3, all qsb files are deterministic (none appear in diff in #8746 (comment)), so hopefully there is some other patch (and not a large refactor) that we could just "backport". libQt6Quick_armeabi-v7a.so and libQt6Multimedia_armeabi-v7a.so are built deterministicly in qt6.5.3 (however some other libs are not... - btw your patch from #8746 (comment) cannot be applied at all as the relevant code was refactored).

SomberNight added a commit to SomberNight/electrum that referenced this issue Dec 16, 2023
@SomberNight
Copy link
Member Author

SomberNight commented Dec 16, 2023

Hmm, looks like (part of) the remaining diff is still caused by qsb non-determinicity
When building with qt6.5.3, all qsb files are deterministic (none appear in diff in #8746 (comment)), so hopefully there is some other patch (and not a large refactor) that we could just "backport".

This is that patch, extracted from a large changeset merged into qt6.5.0:
SomberNight/python-for-android@01c6068

With that, I can now reproducibly build the full armeabi-v7a apk, with qt6.4.3.

EDIT: I only tested one arch, but hopefully master can now be built reproducibly, at bf4934b.


qmlcachegen source code contains this

    // Produce reliably the same output for the same input by disabling QHash's random seeding.
    qSetGlobalQHashSeed(0);

.. and Qt claims to support the QT_HASH_SEED environment var to do the same.

I wonder if we could just use QT_HASH_SEED instead of the qshader patches.

@ecdsa
Copy link
Member

ecdsa commented Dec 16, 2023

thank both of you for fixing this so quickly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants