Author Topic: Qt6 Development  (Read 359482 times)

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2255
  • Karma: +175/-0
    • View Profile
Re: Qt6
« Reply #30 on: November 14, 2022, 09:00:43 pm »
Hi Paul,

How you get then the dll's you showed?
As i see not a single dll atm :P

Try cmake --build . without the --parallel

With current git I'm breaking in gui due to some things I changed trying to fix breaks later on :P

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2255
  • Karma: +175/-0
    • View Profile
Re: Qt6
« Reply #31 on: November 14, 2022, 09:01:28 pm »
GCC 9.2.0. Guess have to try 12.2.0, Paul can you remind me of the URL to download it?

https://smedley.id.au/tmp/gcc-12.2.0-os2-20220820.zip


Cheers,

Paul

TeLLie

  • Full Member
  • ***
  • Posts: 239
  • Karma: +12/-0
    • View Profile
Re: Qt6
« Reply #32 on: November 14, 2022, 09:20:37 pm »
Hi Paul,
It makes no diff if i remove the --parallel
Still failed with the "IID" error....

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2255
  • Karma: +175/-0
    • View Profile
Re: Qt6
« Reply #33 on: November 14, 2022, 09:57:01 pm »
Weird... for me it bootstraps first - then builds corelib - that moc error is from trying to build the os2 plugin, which (for me) comes much later in the build process.

Can you post your config.summary?

Also, try changing into build/src/corelib and running make from there

TeLLie

  • Full Member
  • ***
  • Posts: 239
  • Karma: +12/-0
    • View Profile
Re: Qt6
« Reply #34 on: November 14, 2022, 10:40:42 pm »
Hi


Dave Yeo

  • Hero Member
  • *****
  • Posts: 5041
  • Karma: +114/-1
    • View Profile
Re: Qt6
« Reply #35 on: November 15, 2022, 04:00:49 am »
Well, with GCC 12.2.0 it gets slightly further,
Code: [Select]
[ 14%] Running moc --collect-json for target Core
[ 14%] Generating prl file for target Core
Scanning dependencies of target Core
[ 14%] Building CXX object src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx.gch
In file included from K:/work/qt6-os2/build/include/QtCore/qtimer.h:1,
                 from K:/work/qt6-os2/src/corelib/global/qt_pch.h:84,
                 from K:/work/qt6-os2/build/src/corelib/CMakeFiles/Core.dir/cmae_pch.hxx:5,
                 from <command-line>:
K:/work/qt6-os2/src/corelib/kernel/qtimer.h:242:2: fatal error: cannot write PC
 file: required memory segment unavailable
  242 | };
      |  ^
compilation terminated.
make[2]: *** [src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx.gch] Error 1

Aren't pre-compiled headers supposed to be disabled? Seems the configure test for pre-compiled headers crashed with 9.2.0 but not 12.2.0.
Guess I close the browser and retry

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2255
  • Karma: +175/-0
    • View Profile
Re: Qt6
« Reply #36 on: November 15, 2022, 05:05:48 am »
You need to add -no-pch to your configure line.

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5041
  • Karma: +114/-1
    • View Profile
Re: Qt6
« Reply #37 on: November 15, 2022, 05:59:22 am »
You need to add -no-pch to your configure line.

Yes, I found that after posting. Still getting missing symbols related to libcx while linking qtcore so hacked os2.cmake more.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2255
  • Karma: +175/-0
    • View Profile
Re: Qt6
« Reply #38 on: November 15, 2022, 09:42:10 am »
Hey Tellie,
Output
------
G:/qt6-os2/src/plugins/platforms/os2/main.cpp:49:1: error: Parse error at "IID"

I asked a question at https://forum.qt.io/topic/140737/porting-qt-6-2-to-os-2-operating-system - let's see what they have to say...

Cheers,

Paul

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2255
  • Karma: +175/-0
    • View Profile
Re: Qt6
« Reply #39 on: November 15, 2022, 09:43:34 am »
You need to add -no-pch to your configure line.

Yes, I found that after posting. Still getting missing symbols related to libcx while linking qtcore so hacked os2.cmake more.

FWIW - my os2.cmake is at https://smedley.id.au/tmp/os2.cmake

We should also be able to add cx as a required lib in cmakelists.txt - but os2/cmake is easier right now :)

Cheers,

Paul

TeLLie

  • Full Member
  • ***
  • Posts: 239
  • Karma: +12/-0
    • View Profile
Re: Qt6
« Reply #40 on: November 15, 2022, 12:29:38 pm »
Hi Paul,
If i look in the qt5 repo i see same file  is using for the qt5 port

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5041
  • Karma: +114/-1
    • View Profile
Re: Qt6
« Reply #41 on: November 15, 2022, 04:36:13 pm »
You need to add -no-pch to your configure line.

Yes, I found that after posting. Still getting missing symbols related to libcx while linking qtcore so hacked os2.cmake more.

FWIW - my os2.cmake is at https://smedley.id.au/tmp/os2.cmake

We should also be able to add cx as a required lib in cmakelists.txt - but os2/cmake is easier right now :)

Cheers,

Paul

I ended up with problems in the networking code, once again thought I had IPv6. Not sure why it is not picking up the "QT_NO_IPV6" defines in mkspecs/os2-g++/qmake.conf. I ended up adding it to build/src/network/qnetwork-config.h and the compile made it to the Parse error at "IID"
I'll look at your cmake

Rich Walsh

  • Sr. Member
  • ****
  • Posts: 359
  • Karma: +24/-0
  • ONU! (OS/2 is NOT Unix!)
    • View Profile
Re: Qt6
« Reply #42 on: November 15, 2022, 05:01:46 pm »
G:/qt6-os2/src/plugins/platforms/os2/main.cpp:49:1: error: Parse error at "IID"

The code in question is:
Code: [Select]
Q_OBJECT Q_PLUGIN_METADATA(IID QPlatformIntegrationFactoryInterface_iid FILE "os2.json")

'IID' identifies the datatype of "QPlatformIntegrationFactoryInterface_iid" but the compiler has no idea of what that may be because 'IID' hasn't been defined (or typedef'd).

From the context, I'd guess that 'IID' is a very fundamental type that should have been defined in a header #included by some ancestor of this class - you shouldn't have to #include it yourself. Since other platforms use this same function, maybe the definition of 'IID' was conditionally-compiled out for the OS/2 platform. Just a WAG...

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5041
  • Karma: +114/-1
    • View Profile
Re: Qt6
« Reply #43 on: November 15, 2022, 06:23:32 pm »
Yes, it is typedef'd in src/3rdparty/iaccessible2/generated/x86/ia2_api_all_i.c, just a matter of a missing include I assume and whether it is the .c or .h that should be included.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2255
  • Karma: +175/-0
    • View Profile
Re: Qt6
« Reply #44 on: November 15, 2022, 08:30:06 pm »
I also posted to the qt devel mailing list. There's some ideas at https://lists.qt-project.org/pipermail/development/2022-November/043283.html

I'll try the suggestion this morning but won't know if it worked or not until I get home from work in 11 hours or so!!

Edit: I updated that cmakelists.txt based on the windows version and committed it. Local build in progress now but Tellie or Dave may beat me to knowing if it helped.
« Last Edit: November 15, 2022, 08:49:29 pm by Paul Smedley »