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 - Dave Yeo

Pages: [1] 2 3 ... 255
1
Sounds like a kernel or os2ldr problem. Perhaps you could update or downgrade them. Often os2krnl, os2ldr and doscall1.dll are matched so might have to upgrade/downgrade all 3. Shouldn't matter which NLS they're for, at worse you might end up with English boot messages.

2
Programming / Re: Building Qt5
« on: November 25, 2022, 06:18:58 pm »
The recent W4 kernels support SSE, what doesn't is the stock kernel installed with Warp V4 I believe. No idea which fixpak would need to be installed for SSE support.
Win95 never supported SSE either which was why programs needed to test. At this point most everything supports it. At that various OS's and even FF 53+ require a Pentium M or newer due to SSE2 requirements.

3
Programming / Re: Building Qt5
« on: November 25, 2022, 04:00:47 am »

I hand coded the SIMD code in assembly, using the NASM assembler which also allowed me to force alignment where necessary. But my code only checks if SSE/SSE2/SSE3/SSSE3 is supported by the CPU but it does not check for CR4.OSFXSR flag that indicates that the OS supports SSE context save/restore as I know that OS/2 supports that (for SSE).
Does other SIMD code explicitely check not only for CPU support but also OS support ? And since reading CR4 into a register is only available in Ring 0, so how would application SW (executing in Ring 3) be able to check for that flag ?

Lars

Used to see some software that checked for OS SSE support, looking I can't find much besides things like this from flac's changelog, (1.2.0)
Code: [Select]
* flac:
    * Added runtime detection of SSE OS support for most operating systems.
Googling, I found this, https://github.com/0xdaryl/omr/commit/83d57d1d09bf13cc71f3f085d56e05cb476bc31f.
Remember that most versions of OS/2 did not support SSE so if someone installs your USBWAVE.DLL on Warp v4 or older, I assume it will crash.

4
Programming / Re: Building Qt5
« on: November 24, 2022, 03:38:41 am »
Well, Bitwise has expressed interest in adding Elf support and Paul did some work on it. Turns out that wlink can produce OS/2 executables from ELF objects but has problems with C++ code, or rather symbols, and it is possible that Steven might find time to fix that.

5
Web applications / Re: Our FF and Sync, anyone tried it?
« on: November 23, 2022, 06:10:32 pm »
Hi Dariusz, our sync did work at one time IIRC. I doubt that it will work correctly between our ancient FF and the most recent. They've changed a lot of stuff in the profile over time and now don't even try to keep backwards compatibility. But really testing is the way to know for sure.

6
Programming / Re: Building Qt5
« on: November 23, 2022, 05:51:55 pm »
Dave, if I understand it correct, the problem is our gcc. So it would be necessary to fix gcc not Qt. What you propose is a work around for a bug in our gcc which only exposes on OS/4 kernel. Correct?

Basically correct. Lars's description is pretty good but to expand on his point one.
Our GCC compiles code into the aout object format. Aout is primitive and doesn't understand the .align directive, so the resulting machine language is randomly aligned (it might support .align 4, I forget) when it comes to SSE+ instructions. The fix is to change the object type, likely to ELF, a fairly big job that might never happen though it has been planned.
There is also an issue open for supporting AVX+ in the OS/2 kernel, might happen and might not as it means patching the kernel to store the registers during context switches. If this happens or the OS/4 kernel is used, these programs crash. Even if the kernel is updated along with GCC, we still have all the older code floating around that will crash. Disabling the use of AVX+ until GCC is fixed will prevent this in the future.

7
Programming / Re: Building Qt5
« on: November 22, 2022, 06:12:28 pm »
Dear builders Qt5 please turn off the AVX (and AVX2) code. Due to its presence, the browser does not display the pages. And it is impossible to use libraries. I don’t understand why this code is included if it does not work on OS/2 correctly?

Hi Igor, the code does work correctly on OS/2, namely the kernel claims no AVX support so the instructions aren't used.
I take it you are using the OS/4 kernel and running into the issue that our GCC can't correctly align the AVX instructions. It is easy enough to turn them off by passing configure the arguments,
Code: [Select]
-no-avx -no-avx2 -no-avx512
if I read the output from configure --help correctly.
What you need to do is open an issue at Bitwise's Github QT4 project requesting they do it. I'd guess as it is so easy to do they will respond positively.
You should also mention it in the QT6 thread so Paul can add the above configure arguments.
Problem is building the whole QT5 stack is slow and memory intensive so how quick it will happen? I might try rebuilding the QT5 stack if I get the chance, it takes about 12 hours here and I can't do much while building otherwise I run out of memory.

8
Programming / Re: Qt6
« on: November 22, 2022, 07:28:51 am »
How did you try and configure it?

Followed the instructions,
Code: [Select]
    mkdir qtcreator_build
    cd qtcreator_build

    cmake -DCMAKE_BUILD_TYPE=Debug -G Ninja "-DCMAKE_PREFIX_PATH=/path/to/Qt;/path/to/llvm" /path/to/qtcreator_sources
    cmake --build .

with the -G Ninja removed as recommended if not having Ninja, along with path to llvm also removed. It died almost immediately before the --build stage

9
Programming / Re: Qt6
« on: November 22, 2022, 05:43:42 am »
I tried qt-creator as that is how it is recommended to build the examples. Too much missing I think.
Code: [Select]
-- Could NOT find Qt6Qml (missing: Qt6Qml_DIR)
-- Could NOT find Qt6Core5Compat (missing: Qt6Core5Compat_DIR)
CMake Error at cmake/FindQt5.cmake:57 (find_package):
  Found package configuration file:

    h:/tmp/qt6/lib/cmake/Qt6/Qt6Config.cmake

  but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT
  FOUND.  Reason given by package:

  Failed to find Qt component "Qml".

  Expected Config file at "h:/tmp/qt6/lib/cmake/Qt6Qml/Qt6QmlConfig.cmake"
  does NOT exist

  Failed to find Qt component "Core5Compat".

  Expected Config file at
  "h:/tmp/qt6/lib/cmake/Qt6Core5Compat/Qt6Core5CompatConfig.cmake" does NOT
  exist



Call Stack (most recent call first):
  CMakeLists.txt:68 (find_package)


-- Configuring incomplete, errors occurred!
See also "K:/work/qt-creator/qtcreator_build/CMakeFiles/CMakeOutput.log".
See also "K:/work/qt-creator/qtcreator_build/CMakeFiles/CMakeError.log".

I found the missing QT6Core5Compat error interesting but had other stuff to do so didn't follow up yet.

10
Storage / Re: HPFS and JFS
« on: November 20, 2022, 10:39:43 pm »
JFS is quite a bit faster, supports a much bigger cache, has large file support, doesn't have the 64GB partition size limit and usually chkdsk runs much faster after a crash or power failure and at the worst, the same speed as HPFS.
It also has better NLS support being Unicode underneath whereas HPFS is code page dependent and if you screw up and mix code pages, you will have problems.
I haven't lost a JFS partition yet. Had some break with the worst one where chkdsk or fsck on Linux wouldn't finish, I mounted it read-only under Linux and copied everything but one sub-directory to a different partition. The lost sub-directory wasn't important and I did know the name so could have reinstalled.
There's other times that I've needed to run fsck on Linux to recover OS/2 JFS partitions and in the case of my backup media, USB drives, it is quicker to boot to Linux, run fsck, which under Linux runs the simple log redo that runs during boot on OS/2 and takes seconds. A long chkdsk on a USB 1TB partition takes forever it seems.

11
Programming / Re: Qt6
« on: November 20, 2022, 10:26:34 pm »
Hi
Finaly i got it working :)

Good, which GCC did you build with? I used the RPM 9.2.0

12
Programming / Re: Qt6
« on: November 20, 2022, 07:50:02 pm »
Hi Paul,
Have to correct my previous answer about you're build, thats working.

But i did a clean build and then install it to g:/qt6 but its still says it cannot find plugin

Is there some change that you dint push yet or?

I tried to compile qt6-declarative-os2
Had to compile qt6-shadertools-os2 first
That build fine.

But if i search on the link error i see thats the error inside the Qt6Shad6.dll but not in the .a file.


file D:\temp\ldconv_libstdc++_a_2997637a5b1a199520.lib(cxx11-ios_failure.obj): undefined symbol __ZNSt12system_errorC2ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
file D:\temp\ldconv_libstdc++_a_2997637a5b1a199520.lib(cxx11-ios_failure.obj): undefined symbol __ZNSt12system_errorC2ESt10error_codePKc

My build here seems to work fine, displays the latest (from Paul's package) helloworldgui fine. Previous one crashed.

13
Programming / Re: Qt6
« on: November 20, 2022, 06:58:02 am »
For reference, to built the other qt modules, use a configure command like the below:
Code: [Select]
dash /qt6/bin/qt-configure-module .. 2>&1 | tee configure.log

Good to see your hello world worked. /qt6 is where you installed? Have to retry as I tried the latest beta and it wiped my ramdisk so have to reinstall.

14
Programming / Re: Qt6
« on: November 20, 2022, 04:51:57 am »
It changed the crash here,
Code: [Select]
[H:\tmp]helloworldgui

Killed by SIGSEGV
pid=0xc05e ppid=0x8ec0 tid=0x0001 slot=0x00df pri=0x0200 mc=0x0001 ps=0x0010
H:\TMP\HELLOWORLDGUI.EXE
cs:eip=0054:00000000      ss:esp=0000:00000010      ebp=00000053
 ds=0080      es=0000      fs=00a0      gs=0000     efl=0012f618
eax=0012f748 ebx=1ffc9d7c ecx=0012f75c edx=0012f780 edi=002a0000 esi=0012ff9c
Creating C05E_01.TRP
Moved c05e_01.TRP to W:\var\log\app\637932fd-c05e_01-HELLOWORLDGUI-exceptq.txt
QMutex: destroying locked mutex

Note now a SIGSEGV instead of a SIGABRT and the trp looks more informative, attached.

15
Programming / Re: Qt6
« on: November 19, 2022, 07:31:38 am »
Console ran fine, not GUI, possibly because of environment, I just ran it from lib,
Code: [Select]
H:\tmp\qt6\lib>helloworldconsole.exe
Hello, world!

H:\tmp\qt6\lib>helloworldgui.exe
qt.qpa.plugin: Could not find the Qt platform plugin "os2" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.


Killed by SIGABRT
pid=0x8ebd ppid=0x005a tid=0x0001 slot=0x00b5 pri=0x0200 mc=0x0001 ps=0x0010
H:\TMP\QT6\LIB\HELLOWORLDGUI.EXE
Creating 8EBD_01.TRP
Moved 8ebd_01.TRP to W:\var\log\app\63780735-8ebd_01-HELLOWORLDGUI-exceptq.txt
Edit: setting PATH and BEGINLIBPATH resulted in the same, something is broken when it comes to finding the plugins, or perhaps loading them, which I assume use DosLoadModule()

Pages: [1] 2 3 ... 255