Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Paul Smedley

Pages: [1] 2 3 ... 158
1
Programming / Re: Qt6 Application Testing
« on: Today at 08:13:52 am »
Teaser screenshot.... Still need to get plugins working....

2
Programming / Re: Qt6 Application Testing
« on: January 16, 2025, 08:39:13 pm »
No POPUPLOG for any of the examples with the 'Maximum call stack size exceeded' error. Tried the 'emxstack' size increase trick, but it made no difference on any example I tried...

I need to review the code that triggers the 'stack size exceeded' error - I think it may be a furphy...

3
Programming / Re: Qt6 Application Testing
« on: January 16, 2025, 02:40:23 am »
Hi Paul,

F.e Tea comiled fine, but doodle or some other progs i get this error..

Looks the same as the TRP I was getting with qmlcachegen.ex, which stemmed in qhash.h - will have to see what changed compared to earlier Qt builds...

4
Programming / Re: Qt6 Application Testing
« on: January 16, 2025, 02:39:31 am »
Is there anything in popuplog.os2? I wonder if a larger stack would help for the quick controls and maybe other stuff. IIRC, the default is 1MB, which you'd think would be fine but any recursion like what was likely happening to git will blow through a MB.

Easy enough to check with something like:
Code: [Select]
emxstack -s8096 executablename.exe

5
Programming / Re: Qt6 Application Testing
« on: January 15, 2025, 09:09:14 pm »
Hi Paul,

I tried to compile some progs but i only get this when running qmake

Assertion failed: _UM_LUMP_STATUS (olump) == _UMS_FREE, file ./libc-0.1.13/src/emx/src/lib/malloc/ialloc.c, line 116

Killed by SIGABRT
pid=0x2190 ppid=0x218f tid=0x0001 slot=0x009b pri=0x0200 mc=0x0001 ps=0x0010
H:\USR\QT6-626\BIN\QMAKE6.EXE
Creating 2190_01.TRP
Moved 2190_01.TRP to C:\var\log\app\67881edb-2190_01-QMAKE6-exceptq.txt

I copied in the v6.2.10 dir
Will try later in a clean dir...

Looks like the same trap I was getting with qmlcachegen.exe when building qtdeclarative.... Can you upload the exceptq txt?

6
Programming / Re: Qt6 Application Testing
« on: January 15, 2025, 08:52:27 pm »
Thanks Paul. This one is a mixed bag, I did a quick test of some apps (with 6.2.10 Webengine) and Dooble doesn't work (silent exit) nor does focuswriter or LibreCAD or Tea or Tetzle. Media-Downloader, Soduku, ppineapplepicture, and QTPasswordgenerator do work. I'll try some examples later today...

Thanks Dave, I won't be hugely surprised if apps built against Qt 6.2 don't work with Qt 6.8 libraries - I always expected apps might need to be rebuilt, just wanted to see how far I could push things!

7
Programming / Re: Qt6 Application Testing
« on: January 15, 2025, 09:00:05 am »
OK... took a little longer than expected, and still a bit hacky (I reverted https://github.com/psmedley/qt6-base-os2/blob/6.8.x/src/gui/text/unix/qfontconfigdatabase.cpp to the Qt 6.6.x version to avoid a crash) and building qtdeclarative is a PITA with the previously reported SIGABRT.. but....

https://smedley.id.au/tmp/qt6-6.8.1-os2-20250115.zip is now available. I've only tried a couple of the examples, and I haven't tried dooble with this (by copying over the Qt 6.2.x components).

YMMV

8
Programming / Re: Qt6 Development
« on: January 12, 2025, 02:37:20 am »
OK, that got me further, but then cmake install doesn't complete due to missing targets.

Attached is a trap from a debug qmlcachegen

This helped.... it showed the free() call which is troubling libc came from:
Code: [Select]
0013F468  1CD8CF17   QT6QMLCO  0001:000ACF17  qhash.h#1524 __ZN6QQmlJS15ContextualTypesD1Ev$w$lTwuLaOHst85hU6b4 + 87 0001:000ACE90 (U:\dev\qt6-declarative-os2-6.8.x\src\qmlcompiler\qqmljsimporter.cpp)

Looking at qhash.h#1524: ie https://github.com/psmedley/qt6-base-os2/blob/6.8.x/src/corelib/tools/qhash.h#L1524
it has:
Code: [Select]
1523:        if (d && !d->ref.deref())
1524:            delete d;

For the purposes of getting qtdeclarative built - I've just commented these two lines - will see if it completes!

Of course, I have no idea why this is problematic or how to 'correctly' fix it.

9
Programming / Re: Qt6 Development
« on: January 11, 2025, 06:28:11 am »
For now, I'm just ignoring the error and telling ninja to keep compiling - will see how far it gets....

10
Programming / Re: Qt6 Development
« on: January 11, 2025, 01:00:51 am »
OK, moving the porting of Qt 6.8.x back to the development thread...

New problem building qtdeclarative 6.8.1:
Code: [Select]
FAILED: src/quickcontrols/fusion/.rcc/qmlcache/QuickControls2Fusion_DelayButton_qml.cpp src/quickcontrols/fusion/.rcc/qmlcache/QuickControls2Fusion_DelayButton_qml.cpp.aotstats U:/dev/qt6-declarative-os2-6.8.x/build/src/quickcontrols/fusion/.rcc/qmlcache/QuickControls2Fusion_DelayButton_qml.cpp U:/dev/qt6-declarative-os2-6.8.x/build/src/quickcontrols/fusion/.rcc/qmlcache/QuickControls2Fusion_DelayButton_qml.cpp.aotstats
cd U:/dev/qt6-declarative-os2-6.8.x/build/src/quickcontrols/fusion && C:/usr/bin/cmake.exe -E make_directory U:/dev/qt6-declarative-os2-6.8.x/build/src/quickcontrols/fusion/.rcc/qmlcache && U:/dev/qt6-declarative-os2-6.8.x/build/bin/qmlcachegen.exe --bare --resource-path /qt-project.org/imports/QtQuick/Controls/Fusion/DelayButton.qml -I U:/dev/qt6-declarative-os2-6.8.x/build/qml/ -I U:/dev/qt6-declarative-os2-6.8.x/build/qml -i U:/dev/qt6-declarative-os2-6.8.x/build/qml/QtQuick/Controls/Fusion/qmldir --resource U:/dev/qt6-declarative-os2-6.8.x/build/src/quickcontrols/fusion/.qt/rcc/qmake_QtQuick_Controls_Fusion.qrc --resource U:/dev/qt6-declarative-os2-6.8.x/build/src/quickcontrols/fusion/.qt/rcc/QuickControls2Fusion_raw_qml_0.qrc --resource U:/dev/qt6-declarative-os2-6.8.x/build/src/quickcontrols/fusion/.qt/rcc/qtquickcontrols2fusionstyle.qrc --dump-aot-stats "--module-id=QtQuick.Controls.Fusion(QuickControls2Fusion)" -o U:/dev/qt6-declarative-os2-6.8.x/build/src/quickcontrols/fusion/.rcc/qmlcache/QuickControls2Fusion_DelayButton_qml.cpp U:/dev/qt6-declarative-os2-6.8.x/src/quickcontrols/fusion/DelayButton.qml
Assertion failed: _UM_CRUMB_STATUS (crumb) == _UMS_FREE, file ./libc-0.1.13/src/emx/src/lib/malloc/ifree.c, line 30

The full output (including stderr is):
Code: [Select]
Assertion failed: _UM_CRUMB_STATUS (crumb) == _UMS_FREE, file ./libc-0.1.13/src/emx/src/lib/malloc/ifree.c, line 30

Killed by SIGABRT
pid=0x029b ppid=0x029a tid=0x0001 slot=0x008d pri=0x0200 mc=0x0001 ps=0x0010
U:\DEV\QT6-DECLARATIVE-OS2-6.8.X\BUILD\BIN\QMLCACHEGEN.EXE
Creating 029B_01.TRP
Moved 029b_01.TRP to C:\var\log\app\678247e1-029b_01-QMLCACHEGEN-exceptq.txt

_fmutex operation failed:  LIBC Heap request
 
Killed by SIGABRT
pid=0x029b ppid=0x029a tid=0x0001 slot=0x008d pri=0x0200 mc=0x0002 ps=0x0017
U:\DEV\QT6-DECLARATIVE-OS2-6.8.X\BUILD\BIN\QMLCACHEGEN.EXE
Creating 029B_01.TRP
Failed to move 029b_01.TRP to C:\var\log\app\678247e1-029b_01-QMLCACHEGEN-exceptq.txt
Abort trap

Trap attached (FWIW)

11
Programming / Re: Qt6 Application Testing
« on: January 10, 2025, 07:47:25 am »
OK, https://github.com/psmedley/qt6-base-os2/commit/ee029c7866a242ef8d8cbb1e6c7d393b9ef7d6ab fixes the issue with filepaths. Not really sure why this was required in 6.8.x but not earlier...

Edit: qtdeclarative from 6.8.x has got a LOT further now, and hasn't deleted any files in the root directory of my c: :)

12
Programming / Re: Qt6 Development
« on: January 10, 2025, 07:09:27 am »
For interest only...

Most recent builds have been done using a Lenovo M710q - Intel 6th gen processor. Newer hardware generally has limitations around the amount of free memory that OS/2 sees.

I recently imaged the SSD in this box, and converted it to a Virtualbox VDI. Yesterday, I installed this VDI onto a cheap box I got recently from Amazon - https://www.amazon.com.au/gp/product/B0CPY5M4S3 (I paid $A292 for it) which is running an Intel 12th Gen i5-12450H processor and 16GB RAM. I replaced the crappy SSD included with a 1TB version.

Running some testing with qt6-base-os2 and examples on:

Lenovo M710q - 1h51m
Beelink SEi12 (2 cores) - 1h43m
Beelink SEi12 (4 cores) - 1h13m

So with 4 cores, some pretty decent time saving waiting for builds to finish. I might see if I can get further improvements beyond 4 cores :)

Things have been quiet on the Qt front for me, I'm stuck in terms of ideas on how to proceed in stabilising the beast.

OK CPU in the M710Q (I made a mistake earlier and yout it was an M73p) has been changed from a 6th gen i5-6500T to an i7-7700T.

Compilation time of qtbase is now 1h02m!

13
Programming / Re: Qt6 Application Testing
« on: January 10, 2025, 05:16:30 am »
Thanks KO - I'm clearly overthinking this, howeer, I tried your solution, and it doesn't seem it's the problem for removerecursively....

Somehow, the following is happening.... but I cna't work out where...
Code: [Select]
QDEBUG : tst_QTemporaryDir::construction() filepath "C:/var/temp/tst_qtemporarydir-kVWTdl\\."
QDEBUG : tst_QTemporaryDir::construction() removeRecursively dirPath = "C:/var/temp/tst_qtemporarydir-kVWTdl/."
QDEBUG : tst_QTemporaryDir::construction() filepath "C:/var/temp/tst_qtemporarydir-kVWTdl/.\\."
QDEBUG : tst_QTemporaryDir::construction() removeRecursively dirPath = "C:/var/temp/tst_qtemporarydir-kVWTdl/./."
QDEBUG : tst_QTemporaryDir::construction() filepath "C:/var/temp/tst_qtemporarydir-kVWTdl/./.\\."
QDEBUG : tst_QTemporaryDir::construction() removeRecursively dirPath = "C:/var/temp/tst_qtemporarydir-kVWTdl/././."
QDEBUG : tst_QTemporaryDir::construction() filepath "C:/var/temp/tst_qtemporarydir-kVWTdl/././.\\."
QDEBUG : tst_QTemporaryDir::construction() removeRecursively dirPath = "C:/var/temp/tst_qtemporarydir-kVWTdl/./././."
QDEBUG : tst_QTemporaryDir::construction() filepath "C:/var/temp/tst_qtemporarydir-kVWTdl/./././.\\."
QDEBUG : tst_QTemporaryDir::construction() removeRecursively dirPath = "C:/var/temp/tst_qtemporarydir-kVWTdl/././././."
QDEBUG : tst_QTemporaryDir::construction() filepath "C:/var/temp/tst_qtemporarydir-kVWTdl/././././.\\."
QDEBUG : tst_QTemporaryDir::construction() removeRecursively dirPath = "C:/var/temp/tst_qtemporarydir-kVWTdl/./././././."
QDEBUG : tst_QTemporaryDir::construction() filepath "C:/var/temp/tst_qtemporarydir-kVWTdl/./././././.\\."
QDEBUG : tst_QTemporaryDir::construction() removeRecursively dirPath = "C:/var/temp/tst_qtemporarydir-kVWTdl/././././././."
QDEBUG : tst_QTemporaryDir::construction() filepath "C:/var/temp/tst_qtemporarydir-kVWTdl/././././././.\\."
QDEBUG : tst_QTemporaryDir::construction() removeRecursively dirPath = "C:/var/temp/tst_qtemporarydir-kVWTdl/./././././././."
QDEBUG : tst_QTemporaryDir::construction() filepath "C:/var/temp/tst_qtemporarydir-kVWTdl/./././././././.\\."

this is just a snip - eventually end up with some entries like:
Code: [Select]
"C:/var/temp/tst_qtemporarydir-kVWTdl/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././..\\.."
QDEBUG : tst_QTemporaryDir::construction() removeRecursively dirPath = "C:/var/temp/tst_qtemporarydir-kVWTdl/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././../.."
QDEBUG : tst_QTemporaryDir::construction() filepath "C:/var/temp/tst_qtemporarydir-kVWTdl/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././..\\.org.chromium.Chromium.4QbsiA"
Where we've gone up a directory from c:\var\temp and start removing files from c:. Driving me nuts as I can't seem to locate the code that's doing this.

Will have to try build a debug qt6core.dll and see if I can get the debugger to play nicely.

Edit: I *think* that what's supposed to be happening is that the '.' and '..' entries are supposed to be ignored, but they're not....

Yep... they're not:
Code: [Select]
QDEBUG : tst_QTemporaryDir::construction() removeRecursively dirPath = "C:/var/temp/tst_qtemporarydir-WuYeEF"
QDEBUG : tst_QTemporaryDir::construction() isDotorDotDot: "tst_qtemporarydir-WuYeEF\\."

I'm presuming that in theory, just the '.' should have bene passed to isDotorDotDot then it would have been skipped...

14
Programming / Re: Qt6 Application Testing
« on: January 10, 2025, 01:04:02 am »
OK I understand what's happening. Basically some code is appending \\ to the temp directory, then somehow this then becomes \.

I hacked the code and made the remove recursive code not remove anything, and am also testing in a VM. Out for breakfast now but will dig more when I get home.

15
Programming / Re: Qt6 Application Testing
« on: January 09, 2025, 10:25:47 pm »
Yeah that was a typo, I meant:
Code: [Select]
return fp.isEmpty() || (fp.at(1) != u':' && fp.at(2) != u'/')  || fp.at(0) != u'/';
Thanks for the catch tho, I just tested and it didn't change the behaviour of removeRecursively() now I see why (of course, this might not be the root cause....)

Edit: seems it's not the root cause...

Pages: [1] 2 3 ... 158