- Package:
- qtdeclarative5-dev-tools
- Source:
- qtdeclarative-opensource-src
- Description:
- Qt 5 declarative development programs
- Submitter:
- John David Anglin
- Date:
- 2025-03-28 01:09:02 UTC
- Severity:
- normal
Dear Maintainer, The qtgraphicaleffects-opensource-src package fails to build on hppa because qmlcachegen faults with out-of bounds references: do_page_fault() command='qmlcachegen' type=15 address=0xf98c4020 in qmlcachegen[10000+c5000] trap #15: Data TLB miss fault, vm_start = 0xf90c4000, vm_end = 0xf98c4000 do_page_fault() command='qmlcachegen' type=15 address=0xfaed5000 in libQt5Core.so.5.15.1[f7f28000+5e6000] trap #15: Data TLB miss fault, vm_start = 0xfa6d5000, vm_end = 0xfaed5000 do_page_fault() command='qmlcachegen' type=15 address=0xf99b9000 in libQt5Core.so.5.15.1[f7f28000+5e6000] trap #15: Data TLB miss fault, vm_start = 0xf91b9000, vm_end = 0xf99b9000 See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=973646 for details regarding the qtgraphicaleffects-opensource-src build. Regards, Dave Anglin
The segfault is caused by stack overflow. On hppa, the kernel config parameter CONFIG_MAX_STACK_SIZE_MB sets the maximum stack size. This is because the main stack is allocated at the top of memory and the stack grows up. 256 MB is not enough. dave@mx3210:~/debian/qtgraphicaleffects-opensource-src/qtgraphicaleffects-openso urce-src-5.15.1/src/effects/private$ gdb -c core /usr/lib/qt5/bin/qmlcachegen GNU gdb (Debian 9.2-1+b1) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "hppa-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /usr/lib/qt5/bin/qmlcachegen... Reading symbols from /usr/lib/debug/.build-id/c5/9795c94efa883bf7fe6d0716815c3d08437aaf.debug... [New LWP 17773] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/hppa-linux-gnu/libthread_db.so.1". Core was generated by `/usr/lib/qt5/bin/qmlcachegen -o ../../../qml/QtGraphicalEffects/private/DropSha'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x000ad7e8 in QMapData<QString, QV4::Compiler::Context::Member>::findNode ( akey=..., this=<optimized out>, this=<optimized out>) at /usr/include/hppa-linux-gnu/qt5/QtCore/qmap.h:281 281 QMapNode<Key, T> *QMapData<Key, T>::findNode(const Key &akey) const (gdb) disass $pc-16,$pc+16 Dump of assembler code from 0xad7d8 to 0xad7f8: 0x000ad7d8 <QVector<QV4::Moth::BytecodeGenerator::I>::append(QV4::Moth::BytecodeGenerator::I const&)+316>: stw,ma r21,4(r20) 0x000ad7dc <QVector<QV4::Moth::BytecodeGenerator::I>::append(QV4::Moth::BytecodeGenerator::I const&)+320>: b,l 0xad754 <QVector<QV4::Moth::BytecodeGenerator::I>::append(QV4::Moth::BytecodeGenerator::I const&)+184>,r0 0x000ad7e0 <QVector<QV4::Moth::BytecodeGenerator::I>::append(QV4::Moth::BytecodeGenerator::I const&)+324>: ldw 0(r3),r20 0x000ad7e4 <QMapData<QString, QV4::Compiler::Context::Member>::findNode(QString const&) const+0>: stw rp,-14(sp) => 0x000ad7e8 <QMapData<QString, QV4::Compiler::Context::Member>::findNode(QString const&) const+4>: stw,ma r6,40(sp) 0x000ad7ec <QMapData<QString, QV4::Compiler::Context::Member>::findNode(QString const&) const+8>: ldi 0,r6 0x000ad7f0 <QMapData<QString, QV4::Compiler::Context::Member>::findNode(QString const&) const+12>: stw r5,-3c(sp) 0x000ad7f4 <QMapData<QString, QV4::Compiler::Context::Member>::findNode(QString const&) const+16>: copy r25,r5 End of assembler dump. (gdb) bt #0 0x000ad7e8 in QMapData<QString, QV4::Compiler::Context::Member>::findNode ( akey=..., this=<optimized out>, this=<optimized out>) at /usr/include/hppa-linux-gnu/qt5/QtCore/qmap.h:281 #1 0x000ad970 in QMap<QString, QV4::Compiler::Context::Member>::constFind ( akey=..., this=<optimized out>) at /usr/include/hppa-linux-gnu/qt5/QtCore/qmap.h:853 #2 QMap<QString, QV4::Compiler::Context::Member>::find (akey=..., this=<optimized out>) at /usr/include/hppa-linux-gnu/qt5/QtCore/qmap.h:855 #3 QV4::Compiler::Context::findMember (name=..., this=<optimized out>) at ../qml/compiler/qv4compilercontext_p.h:304 #4 QV4::Compiler::Context::resolveName (this=0xebea8, name=..., accessLocation=...) at ../qml/compiler/qv4compilercontext.cpp:137 #5 0x000374e4 in QV4::Compiler::Codegen::referenceForName (this=0xee3674b8, name=..., isLhs=168, accessLocation=...) at ../qml/compiler/qv4codegen.cpp:2374 #6 0x00038320 in QV4::Compiler::Codegen::Reference::storeAccumulator ( this=0xee367494) at ../../include/QtQml/5.15.1/QtQml/private/../../../../../src/qml/common/qqmljssourcelocation_p.h:63 #7 0x000384c8 in QV4::Compiler::Codegen::Reference::storeConsumeAccumulator ( this=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4130 #8 0x00038640 in QV4::Compiler::Codegen::Reference::doStoreOnStack (this=0x0, slotIndex=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4186 --Type <RET> for more, q to quit, c to continue without paging-- #9 0x00038348 in QV4::Compiler::Codegen::Reference::storeOnStack (this=0x0) at ../qml/compiler/qv4codegen.cpp:4231 #10 QV4::Compiler::Codegen::Reference::storeAccumulator (this=0xee367494) at ../qml/compiler/qv4codegen.cpp:4231 #11 0x000384c8 in QV4::Compiler::Codegen::Reference::storeConsumeAccumulator ( this=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4130 #12 0x00038640 in QV4::Compiler::Codegen::Reference::doStoreOnStack (this=0x0, slotIndex=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4186 #13 0x00038348 in QV4::Compiler::Codegen::Reference::storeOnStack (this=0x0) at ../qml/compiler/qv4codegen.cpp:4231 #14 QV4::Compiler::Codegen::Reference::storeAccumulator (this=0xee367494) at ../qml/compiler/qv4codegen.cpp:4231 #15 0x000384c8 in QV4::Compiler::Codegen::Reference::storeConsumeAccumulator ( this=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4130 #16 0x00038640 in QV4::Compiler::Codegen::Reference::doStoreOnStack (this=0x0, slotIndex=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4186 #17 0x00038348 in QV4::Compiler::Codegen::Reference::storeOnStack (this=0x0) at ../qml/compiler/qv4codegen.cpp:4231 #18 QV4::Compiler::Codegen::Reference::storeAccumulator (this=0xee367494) at ../qml/compiler/qv4codegen.cpp:4231 #19 0x000384c8 in QV4::Compiler::Codegen::Reference::storeConsumeAccumulator ( this=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4130 #20 0x00038640 in QV4::Compiler::Codegen::Reference::doStoreOnStack (this=0x0, --Type <RET> for more, q to quit, c to continue without paging--q Quit How much stack does qmlcachegen typically need? Another possibility is doStoreOnStack doesn't work on hppa. Regards, Dave Anglin
Hi! No idea, but I guess it depends on the size of QML file being cached. I think the complete QML engine may be broken on hppa, not just qmlcachegen. A lot of tests are failing — search for FAIL! in the build log: https://buildd.debian.org/status/fetch.php?pkg=qtdeclarative-opensource-src&arch=hppa&ver=5.14.2%2Bdfsg-3&stamp=1595527978
The attached patch fixes qtdeclarative-opensource-src-5.15.1+dfsg.orig/src/3rdparty/masm/wtf/Platform.h for hppa. That's the only platform configuration that I could find in the package. The PA-RISC architecture is big endian. Perhaps this needs to be defined somewhere else as well? Regards, Dave Anglin
Hi John! I think the problem is not that hppa is not detected, but rather that the code has some assumptions about the stack growing down. The QML engine has a lot of low-level code... Can you check if your patch actually makes some tests pass that failed without it? Qt uses this file from qtbase: https://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/global/qprocessordetection.h which falls back to gcc's __BYTE_ORDER__ macro for unknown architectures. So it should work fine if that macro is defined correctly on hppa.
Hi Dmitry, That's what I was afraid of. If these assumptions are localized, it would help if you could point them out. The code seems to have its own stack implementation. I revised the patch somewhat but it doesn't help much. As far as I know, the __BYTE_ORDER__ macro is defined correctly for hppa. Regards, Dave
But I can suggest you to contact upstream (via the mailing list or via bugreports.qt.io) and ask them where such code may be present. I only found one old bug report and it was fixed: https://bugreports.qt.io/browse/QTBUG-44268
I think we have to go back to the original backtrace and the test failures. I thought that for a bit that we might have a problem similar to ia64 and sparc64 but hppa is currently 32-bit. Test tst_qjsvalueiterator fails as follows: dave@mx3210:~/debian/qtdeclarative-opensource-src$ /home/dave/debian/qtdeclarative-opensource-src/qtdeclarative-opensource-src-5.15.2+dfsg/tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator ********* Start testing of tst_QJSValueIterator ********* Config: Using QtTest library 5.15.2, Qt 5.15.2 (unknown-big_endian-ilp32 shared (dynamic) release build; by GCC 10.2.1 20210110), debian unknown PASS : tst_QJSValueIterator::initTestCase() PASS : tst_QJSValueIterator::iterateForward(no properties) PASS : tst_QJSValueIterator::iterateForward(foo=bar) PASS : tst_QJSValueIterator::iterateForward(foo=bar, baz=123) PASS : tst_QJSValueIterator::iterateForward(foo=bar, baz=123, rab=oof) PASS : tst_QJSValueIterator::iterateArray(no elements) PASS : tst_QJSValueIterator::iterateArray(0=foo, 1=barr) PASS : tst_QJSValueIterator::iterateArray(0=foo, 3=barr) === Received signal at function time: 70ms, total time: 310ms, dumping stack === GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git Copyright (C) 2021 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "hppa-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word". Attaching to process 2844 [New LWP 2845] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/hppa-linux-gnu/libthread_db.so.1". clone () at ../sysdeps/unix/sysv/linux/hppa/clone.S:83 (gdb) Thread 2 (Thread 0xef8b3400 (LWP 2845) "QThread"): #0 0xf594183c in _int_malloc (av=0x0, bytes=4010488392) at malloc.c:4116 p = <optimized out> iters = <optimized out> nb = 164456 idx = 1 bin = <optimized out> victim = 0x28240 size = 210 victim_index = <optimized out> remainder = 0xffffffff remainder_size = 4294803050 block = <optimized out> bit = <optimized out> map = 0 fwd = <optimized out> bck = <optimized out> tcache_unsorted_count = 164424 tcache_nb = 4010488392 tc_idx = 0 return_cached = <optimized out> __PRETTY_FUNCTION__ = "_int_malloc" #1 0x00000000 in ?? () No symbol table info available. Backtrace stopped: previous frame identical to this frame (corrupt stack?) ^CDetaching from program: /home/dave/debian/qtdeclarative-opensource-src/qtdeclarative-opensource-src-5.15.2+dfsg/tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator, process 2844 [Inferior 1 (process 2844) detached] === End of stack trace === QFATAL : tst_QJSValueIterator::iterateString() Received signal 11 Function time: 70ms Total time: 310ms FAIL! : tst_QJSValueIterator::iterateString() Received a fatal error. Loc: [Unknown file(0)] Totals: 8 passed, 1 failed, 0 skipped, 0 blacklisted, 258862ms ********* Finished testing of tst_QJSValueIterator ********* Aborted (core dumped) dave@mx3210:~/debian/qtdeclarative-opensource-src$ gdb -c core GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git Copyright (C) 2021 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "hppa-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word". warning: Can't open file /memfd:JSGCHeap:QtQml (deleted) during file-backed mapping note processing warning: Can't open file /memfd:JSVMStack:QtQml (deleted) during file-backed mapping note processing [New LWP 2844] [New LWP 2845] Core was generated by `/home/dave/debian/qtdeclarative-opensource-src/qtdeclarative-opensource-src-5.1'. Program terminated with signal SIGABRT, Aborted. #0 0xf5932b5c in ?? () [Current thread is 1 (LWP 2844)] (gdb) quit The test again fails because of a stack overflow. gdb -c tests/auto/qml/qjsvalueiterator/core tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git Copyright (C) 2021 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "hppa-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator... warning: Can't open file /memfd:JSGCHeap:QtQml (deleted) during file-backed mapping note processing warning: Can't open file /memfd:JSVMStack:QtQml (deleted) during file-backed mapping note processing warning: core file may not match specified executable file. [New LWP 20351] [New LWP 20352] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/hppa-linux-gnu/libthread_db.so.1". Core was generated by `./tst_qjsvalueiterator'. Program terminated with signal SIGABRT, Aborted. #0 0xf5d32b5c in __vsnprintf_internal ( --Type <RET> for more, q to quit, c to continue without paging-- string=0x2 <error: Cannot access memory at address 0x2>, maxlen=4144215688, format=0x0, args=0x8, mode_flags=<optimized out>) at vsnprintf.c:95 95 vsnprintf.c: No such file or directory. [Current thread is 1 (Thread 0xf7afa040 (LWP 20351))] (gdb) bt #0 0xf5d32b5c in __vsnprintf_internal ( string=0x2 <error: Cannot access memory at address 0x2>, maxlen=4144215688, format=0x0, args=0x8, mode_flags=<optimized out>) at vsnprintf.c:95 #1 0xf5cdaa00 in __GI_abort () at abort.c:79 #2 0xf688177c in qt_message_fatal (message=<synthetic pointer>..., context=...) at global/qlogging.cpp:1914 #3 QMessageLogger::fatal (this=<optimized out>, msg=<optimized out>) at global/qlogging.cpp:893 #4 0xf7001eb8 in ?? () from /usr/lib/hppa-linux-gnu/libQt5Test.so.5 #5 <signal handler called> #6 0xf7247d90 in QHash<QString, int>::findNode (this=0xf83b14b8, akey=..., h=733811337) at /usr/include/hppa-linux-gnu/qt5/QtCore/qhash.h:924 #7 0xf7244acc in QHash<QString, int>::findNode (ahp=0x0, akey=..., this=0xf83b14b8) at /usr/include/hppa-linux-gnu/qt5/QtCore/qhash.h:950 #8 QHash<QString, int>::constFind (akey=..., this=0xf83b14b8) at /usr/include/hppa-linux-gnu/qt5/QtCore/qhash.h:907 #9 QV4::Compiler::StringTableGenerator::registerString (this=0xf83b14b8, str=...) at compiler/qv4compiler.cpp:67 #10 0xf7254f34 in QV4::Compiler::JSUnitGenerator::registerString (str=..., this=<optimized out>) at ../../include/QtQml/5.15.2/QtQml/private/../../../../../src/qml/compiler/qv4compiler_p.h:118 --Type <RET> for more, q to quit, c to continue without paging-- #11 QV4::Compiler::Codegen::registerString (name=..., this=<optimized out>) at compiler/qv4codegen_p.h:512 #12 QV4::Compiler::Codegen::Reference::nameAsIndex (this=0xf8badcf8) at compiler/qv4codegen_p.h:339 #13 QV4::Compiler::Codegen::Reference::loadInAccumulator (this=0xf8badcf8) at compiler/qv4codegen.cpp:4425 #14 0xf725819c in QV4::Compiler::Codegen::Reference::doStoreOnStack ( this=0xf8badec8, slotIndex=<optimized out>) at compiler/qv4codegen.cpp:4185 #15 0xf725845c in QV4::Compiler::Codegen::Reference::storeOnStack ( this=<optimized out>) at compiler/qv4codegen.cpp:4157 #16 0xf7257eb8 in QV4::Compiler::Codegen::Reference::storeAccumulator ( this=0xf83b1494) at compiler/qv4codegen.cpp:4231 #17 0xf7258038 in QV4::Compiler::Codegen::Reference::storeConsumeAccumulator ( this=<optimized out>) at compiler/qv4codegen.cpp:4130 #18 0xf72581b0 in QV4::Compiler::Codegen::Reference::doStoreOnStack ( this=0xf8badec8, slotIndex=<optimized out>) at compiler/qv4codegen.cpp:4186 #19 0xf725845c in QV4::Compiler::Codegen::Reference::storeOnStack ( this=<optimized out>) at compiler/qv4codegen.cpp:4157 #20 0xf7257eb8 in QV4::Compiler::Codegen::Reference::storeAccumulator ( this=0xf83b1494) at compiler/qv4codegen.cpp:4231 #21 0xf7258038 in QV4::Compiler::Codegen::Reference::storeConsumeAccumulator ( this=<optimized out>) at compiler/qv4codegen.cpp:4130 #22 0xf72581b0 in QV4::Compiler::Codegen::Reference::doStoreOnStack ( --Type <RET> for more, q to quit, c to continue without paging--q Quit (gdb) frame 6 #6 0xf7247d90 in QHash<QString, int>::findNode (this=0xf83b14b8, akey=..., h=733811337) at /usr/include/hppa-linux-gnu/qt5/QtCore/qhash.h:924 924 Q_OUTOFLINE_TEMPLATE typename QHash<Key, T>::Node **QHash<Key, T>::findNode(const Key &akey, uint h) const (gdb) disass $pc-16,$pc+16 Dump of assembler code from 0xf7247d80 to 0xf7247da0: 0xf7247d80 <_ZN7QVectorIN3QV48Compiler5Class6MethodEED2Ev+96>: ldw -94(sp),rp 0xf7247d84 <_ZN7QVectorIN3QV48Compiler5Class6MethodEED2Ev+100>: bv r0(rp) 0xf7247d88 <_ZN7QVectorIN3QV48Compiler5Class6MethodEED2Ev+104>: ldw,mb -80(sp),r4 0xf7247d8c <_ZNK5QHashI7QStringiE8findNodeERKS0_j+0>: stw rp,-14(sp) => 0xf7247d90 <_ZNK5QHashI7QStringiE8findNodeERKS0_j+4>: stw,ma r7,80(sp) 0xf7247d94 <_ZNK5QHashI7QStringiE8findNodeERKS0_j+8>: copy r25,r7 0xf7247d98 <_ZNK5QHashI7QStringiE8findNodeERKS0_j+12>: stw r6,-7c(sp) 0xf7247d9c <_ZNK5QHashI7QStringiE8findNodeERKS0_j+16>: copy r24,r6 The fault occurs in at the beginning of _ZNK5QHashI7QStringiE8findNodeERKS0_j when r7 is saved to the stack. It looks to me like the problem might be in QHash hash lookup. Something is being called recursively. Regards, Dave
In looking at the JS Value encoding in src/qml/common/qv4staticvalue_p.h, I suspect there might be an issue with NaN/Inf values on hppa. hppa and early mips used a different representation for signalling and quiet NaNs. This would need to be taken into account in converting between JS and hardware values. It seems hppa is the only big endian ilp32 architecture. Dave
Hi John! Thanks a lot for your investigation! I know almost nothing about hppa, and I don’t have much time to debug this, but if you provide a patch that will make more tests pass on hppa (and does not break other architectures), I will be happy to apply it (and help with pushing it upstream). Quick search showed me #810859 which looks like a similar problem in a different package.
That's the dichotomy. I know hppa but not Qt. It painful to find the parts of Qt that depend on endianness, stack layout, and possibly the NaN representation. Yes. That bug was caused by the different representation of quiet and signalling NaNs. Regards, Dave
I also don’t know the QML / V4 engine code well. But the qv4staticvalue_p.h file you mentioned has an excellent comment which describes how it treats different double values: https://sources.debian.org/src/qtdeclarative-opensource-src/5.15.2+dfsg-4/src/qml/common/qv4staticvalue_p.h/#L140 For NaN, you probably need to check if these masks are correct: https://sources.debian.org/src/qtdeclarative-opensource-src/5.15.2+dfsg-4/src/qml/common/qv4staticvalue_p.h/#L285 https://sources.debian.org/src/qtdeclarative-opensource-src/5.15.2+dfsg-4/src/qml/common/qv4staticvalue_p.h/#L305 and this method: https://sources.debian.org/src/qtdeclarative-opensource-src/5.15.2+dfsg-4/src/qml/common/qv4staticvalue_p.h/#L354 From endianness point of view, Qt Declarative should be mostly fine. I looked at s390x test logs and only few tests are failing: - qmltestrunner::item-grabber::test_endresult* — for this I filed https://bugreports.qt.io/browse/QTBUG-56806 - tst_qmldiskcache::regenerateAfterChange() — this one I didn’t notice before, and I will investigate it. It regressed somewhere between 5.11.3 and 5.12.2.
I believe the isNaN method should check for both quiet and signalling NaN encodings (0x00040000 and 0x00080000). As best I can tell, the quiet and signalling encodings will end up reversed on hppa due to the value returned by qt_qnan(). I believe the "| 0x00020000u" bit is redundant in the definition of Immediate_Mask_32. However, I don't believe the above issues are the main problem. The build log history indicates that version 5.11.3-4 was okay and 5.12.2-1 was bad. This is indicated by a segmentation fault by tst_parserstress, the first test in the testsuite. It would be nice to bisect changes between 5.11.3-4 and 5.12.2-1 to find the change that causes the problem. However, I'm not away of a suitable archive. There are also issues building 5.11.3-4 on sid: qml/qqmlmetatype.cpp: In member function 'void QQmlTypePrivate::insertEnums(const QMetaObject*) const': qml/qqmlmetatype.cpp:811:60: error: cannot convert 'const QMetaObject::SuperData* const' to 'const QMetaObject* const*' in initialization 811 | const QMetaObject * const *related = metaObject->d.relatedMetaObjects; | ~~~~~~~~~~~~~~^~~~~~~~~~~~~ ~~~~~ | | | const QMetaObject::SuperData* const There was a crashing bug patch in 5.11.3-4 that was removed in 5.12.2-1. Code was changed. Regards, Dave
Hi again! That's because the relevant code is no longer present in 5.12, see: https://codereview.qt-project.org/c/qt/qtdeclarative/+/254748 Also I checked the test that fails on s390x, and it turned out to be a problem in the test. I submitted a patch for it: https://codereview.qt-project.org/c/qt/qtdeclarative/+/333611 So the code is compatible with big endian, generally speaking. This means issues on hppa are probably related to stack or other hppa specifics, not to endianness.
Is there a public qtdeclarative repository that can be cloned with git?
Cher(e) Locataire , Sauf erreur de notre part, nous constatons qu'à ce jour, le règlement de votre loyer mensuel de avril reste en attente. Nous vous prions de bien vouloir régulariser votre situation dès réception de ce message. Nous vous informons également de la mise à jour de nos nouvelles coordonnées Interac, dont l'adresse email figure ci-dessous. Dans l'attente de votre règlement, nous vous souhaitons une bonne réception de ce message. Merci de votre confiance Cordialement, L'équipe comptabilité