Author Topic: Qt6 Development  (Read 210898 times)

roberto

  • Hero Member
  • *****
  • Posts: 810
  • Karma: +3/-6
    • View Profile
Re: Qt6
« Reply #15 on: November 13, 2022, 03:09:08 pm »
Hello Paul,
I attach a file. Try to execute it in a QBASIC session when starting the system, and you leave it in execution in the background, with QBASIC, in a Window DOSsession. Then you run everything you want.
This is a shot in the air.
 But why not try?.
What is based on error that you show us.
Saludos

TeLLie

  • Full Member
  • ***
  • Posts: 226
  • Karma: +11/-0
    • View Profile
Re: Qt6
« Reply #16 on: November 13, 2022, 03:39:00 pm »
Hi Paul,
i run after the configure cmake --build . --parallel 2>stdout 1>stderr

i give it a shot but it failed linking the exe files...

[1/1018] Linking CXX executable bin/rcc.exe
FAILED: bin/rcc.exe
: && echo NAME rcc  > bin/rcc.exe.def && echo DESCRIPTION \"@#cmake build system:0.0#@##1## 13 Nov 2022 13:50:16\ \ \ \ \ TeLLieLaPPie::::0::@@rcc\" >> bin/rcc.exe.def && echo  >> bin/rcc.exe.def && h:/usr/local1220/bin/g++.exe -DNDEBUG -O2 -Zomf -Zomf -Zlinker DISABLE -Zlinker 1121 -lcx src/tools/rcc/CMakeFiles/rcc.dir/main.cpp.o src/tools/rcc/CMakeFiles/rcc.dir/rcc.cpp.o -o bin/rcc.exe   src/tools/bootstrap/Bootstrap.a  H:/USR/LOCAL1220/lib/pcre2-16_dll.a  H:/USR/LOCAL1220/lib/z.dll  -lpthread bin/rcc.exe.def && :
weakld: error: Unresolved symbol (UNDEF) '__ZNSt3pmr25monotonic_buffer_resourceD1Ev'.
weakld: info: The symbol is referenced by:
    D:\temp\ldconv_Bootstrap_a_1c626370eec814ab50.lib(qdiriterator.cpp.obj)
    D:\temp\ldconv_Bootstrap_a_1c626370eec814ab50.lib(qfilesystemengine.cpp.obj)
    D:\temp\ldconv_Bootstrap_a_1c626370eec814ab50.lib(qstringlist.cpp.obj)
weakld: error: Unresolved symbol (UNDEF) '__ZSt28__throw_bad_array_new_lengthv'.
weakld: info: The symbol is referenced by:
    D:\temp\ldconv_Bootstrap_a_1c626370eec814ab50.lib(qdiriterator.cpp.obj)
    D:\temp\ldconv_Bootstrap_a_1c626370eec814ab50.lib(qfilesystemengine.cpp.obj)
    D:\temp\ldconv_Bootstrap_a_1c626370eec814ab50.lib(qstringlist.cpp.obj)
weakld: error: Unresolved symbol (UNDEF) '__ZTVNSt3pmr25monotonic_buffer_resourceE'.
weakld: info: The symbol is referenced by:
    D:\temp\ldconv_Bootstrap_a_1c626370eec814ab50.lib(qdiriterator.cpp.obj)
    D:\temp\ldconv_Bootstrap_a_1c626370eec814ab50.lib(qfilesystemengine.cpp.obj)
    D:\temp\ldconv_Bootstrap_a_1c626370eec814ab50.lib(qstringlist.cpp.obj)
Ignoring unresolved externals reported from weak prelinker.
[2/1018] Linking CXX executable bin/moc.exe
FAILED: bin/moc.exe



Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #17 on: November 14, 2022, 12:47:44 am »
Hey Tellie,

I'd suggest running 'c++filt __ZNSt3pmr25monotonic_buffer_resourceD1Ev' (and the other two symbols) and trying to understand where this symbol comes from.

My initial 'guess' is that it comes from pcre2 - I note that you're using the system pcre2 (ie H:/USR/LOCAL1220/lib/pcre2-16_dll.a) not the once from Qt. There's possibly a configure parameter to disable the use of the system pcre2.

Edit: they look like stdc++ symbols - are you sure you don't have a stray stdc++.lib around somewhere?

Also note that I'm running 'make' not 'cmake --build . --parallel 2>stdout 1>stderr' - I guess I should try it with the suggested command - it might even prevent it re-building every object file every time I run make!

Cheers,

Paul.
« Last Edit: November 14, 2022, 12:59:18 am by Paul Smedley »

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4787
  • Karma: +99/-1
    • View Profile
Re: Qt6
« Reply #18 on: November 14, 2022, 01:36:00 am »
I tried it, dies pretty quick linking moc.exe with,
Code: [Select]
[ 12%] Linking CXX executable ../../../bin/moc.exe
weakld: error: Unresolved symbol (UNDEF) '_mmap'.
weakld: info: The symbol is referenced by:
    H:\tmp\ldconv_Bootstrap_a_191963718c871d88d8.lib(qfsfileengine_unix.cpp.obj)

weakld: error: Unresolved symbol (UNDEF) '_munmap'.
weakld: info: The symbol is referenced by:
    H:\tmp\ldconv_Bootstrap_a_191963718c871d88d8.lib(qfsfileengine_unix.cpp.obj)

Like libcx isn't getting linked. Hate this silent linking.

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4787
  • Karma: +99/-1
    • View Profile
Re: Qt6
« Reply #19 on: November 14, 2022, 01:41:37 am »
How are you calling configure? I'm using,
Code: [Select]
sh ../configure -prefix h:/tmp/qt6 -release -opensource -confirm-license -nomake tests -no-opengl -system-sqlite -openssl-linked -no-dbus 2>&1 | tee configure.log

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #20 on: November 14, 2022, 02:14:41 am »
Hey Dave,

I tried it, dies pretty quick linking moc.exe with,
Code: [Select]
[ 12%] Linking CXX executable ../../../bin/moc.exe
weakld: error: Unresolved symbol (UNDEF) '_mmap'.
weakld: info: The symbol is referenced by:
    H:\tmp\ldconv_Bootstrap_a_191963718c871d88d8.lib(qfsfileengine_unix.cpp.obj)

weakld: error: Unresolved symbol (UNDEF) '_munmap'.
weakld: info: The symbol is referenced by:
    H:\tmp\ldconv_Bootstrap_a_191963718c871d88d8.lib(qfsfileengine_unix.cpp.obj)

Like libcx isn't getting linked. Hate this silent linking.

I've modified my local copy of os2.cmake to include -lcx in the *EXE_LINKER_FLAGS* (or whatever it's called) to get around this...

At some point I'll look into doing this more elegantly in the CMakeLists.txt but for me this is very much in the Continuous Improvement category.

Also on the CI list is why CXXFLAGS keeps dragging in the various -fvisibility* flags which don't do any harm, but cause extraneous console output which slows things down.

I think my problem with Qt6Core6.dll is due to missing exports - looking at os2.cmake they is a flag to use emxexp to generate exports - which may be better than relying on dllimport/dllexport.

Cheers,

Paul.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #21 on: November 14, 2022, 02:19:58 am »
How are you calling configure? I'm using,
Code: [Select]
sh ../configure -prefix h:/tmp/qt6 -release -opensource -confirm-license -nomake tests -no-opengl -system-sqlite -openssl-linked -no-dbus 2>&1 | tee configure.log

I'm using:
Code: [Select]
dash ../configure -prefix /qt6 -no-opengl -release -system-sqlite -openssl-linked -no-pch 2>&1 | tee configure.log

It would be interesting to see what Tellie using.

I also need to update os2.cmake to add -Zmap by default... it would help understand what libs Tellie is using to link with.

Cheers,

Paul

TeLLie

  • Full Member
  • ***
  • Posts: 226
  • Karma: +11/-0
    • View Profile
Re: Qt6
« Reply #22 on: November 14, 2022, 08:02:52 am »
Hi Paul

In using same configure line as you use.
Only i use sh instead of dash
I will check later the things you ask for..

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #23 on: November 14, 2022, 08:28:04 am »
@Tellie - those missing symbols are all in libstdc++.a from gcc 12.2.0 - I suspect an older version is being picked up...

TeLLie

  • Full Member
  • ***
  • Posts: 226
  • Karma: +11/-0
    • View Profile
Re: Qt6
« Reply #24 on: November 14, 2022, 08:41:14 am »
Hi Paul,

Hmmm i notice that i have to add the libstdc++ allways in the cmd i use, its not picked up automatically for some reasons.

How to get that auto so i have not to set that allways manually??

I will try again with the libstdc++.a adding

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #25 on: November 14, 2022, 09:25:08 am »
Hey Tellie - I have NFI - I'll attach my gcc1220.cmd - maybe there's a clue in there....

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4787
  • Karma: +99/-1
    • View Profile
Re: Qt6
« Reply #26 on: November 14, 2022, 04:58:41 pm »
Well, got a little further, now CC1PLUS is crashing,
Code: [Select]
[ 15%] Building CXX object src/corelib/CMakeFiles/Core.dir/Core_autogen/mocs_com
pilation.cpp.o

Killed by SIGSEGV
pid=0x14e4 ppid=0x14e3 tid=0x0001 slot=0x00db pri=0x0200 mc=0x0001 ps=0x0010
W:\USR\LIBEXEC\GCC\I686-PC-OS2-EMX\9\CC1PLUS.EXE
LIBCN0 ffffffff:ffffffff
cs:eip=0203f30c:024e7ea0      ss:esp=0203f10c:0203f0e8      ebp=02030053
 ds=62696c65      es=0000      fs=6372732f      gs=0000     efl=0203ffff
eax=0203f110 ebx=1ffc9d7c ecx=0203f124 edx=0203f148 edi=614d432f esi=0203f7bc
Creating 14E4_01.TRP
Moved 14e4_01.TRP to W:\var\log\app\6371f24a-14e4_01-CC1PLUS-exceptq.txt
c++.exe: internal compiler error: Segmentation fault signal terminated program c
c1plus

GCC 9.2.0. Guess have to try 12.2.0, Paul can you remind me of the URL to download it?

TeLLie

  • Full Member
  • ***
  • Posts: 226
  • Karma: +11/-0
    • View Profile
Re: Qt6
« Reply #27 on: November 14, 2022, 05:48:29 pm »
Hi Paul....

Now it failed here:

[194/1197] Automatic MOC for target QOS2IntegrationPlugin
FAILED: src/plugins/platforms/os2/CMakeFiles/QOS2IntegrationPlugin_autogen src/plugins/platforms/os2/QOS2IntegrationPlugin_autogen/mocs_compilation.cpp
cd G:/Qt6-dev/src/plugins/platforms/os2 && H:/usr/local1220/bin/cmake.exe -E cmake_autogen G:/Qt6-dev/src/plugins/platforms/os2/CMakeFiles/QOS2IntegrationPlugin_autogen.dir/AutogenInfo.json Release

AutoMoc subprocess error
------------------------
The moc process failed to compile
  "SRC:/src/plugins/platforms/os2/main.cpp"
into
  "BIN:/src/plugins/platforms/os2/QOS2IntegrationPlugin_autogen/include/main.moc"
included by
  "SRC:/src/plugins/platforms/os2/main.cpp"

Command
-------
G:/Qt6-dev/bin/moc.exe -DQOS2IntegrationPlugin_EXPORTS -DQT_DEPRECATED_WARNINGS -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_PLUGIN -IG:/qt6-os2/src/plugins/platforms/os2 -IG:/Qt6-dev/src/plugins/platforms/os2 -IG:/Qt6-dev/include -IG:/qt6-os2/mkspecs/os2-g++ -IH:/USR/LOCAL1220/include/c++/12.2.0 -IH:/USR/LOCAL1220/include/c++/12.2.0/i686-pc-os2-emx -IH:/USR/LOCAL1220/lib/gcc/i686-pc-os2-emx/12.2.0/include -Ic:/usr/include -IH:/USR/LOCAL1220/include/c++/12.2.0/backward -IH:/USR/LOCAL1220/include -IH:/usr/local1220/lib/gcc/i686-pc-os2-emx/12.2.0/include-fixed --include G:/Qt6-dev/src/plugins/platforms/os2/QOS2IntegrationPlugin_autogen/moc_predefs.h -o G:/Qt6-dev/src/plugins/platforms/os2/QOS2IntegrationPlugin_autogen/include/main.moc G:/qt6-os2/src/plugins/platforms/os2/main.cpp

Output
------
G:/qt6-os2/src/plugins/platforms/os2/main.cpp:49:1: error: Parse error at "IID"

[195/1197] Automatic MOC for target FbSupportPrivate
[196/1197] Automatic MOC for target Core
AutoMoc: G:/qt6-os2/src/corelib/plugin/qpluginloader.h:0:1: note: No relevant classes found. No output generated.
ninja: build stopped: subcommand failed.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #28 on: November 14, 2022, 08:15:06 pm »
Hey Tellie,

I've seen that error too - I haven't fixed that one yet. I have no idea (yet) wtf is causing that parse error at IID

TeLLie

  • Full Member
  • ***
  • Posts: 226
  • Karma: +11/-0
    • View Profile
Re: Qt6
« Reply #29 on: November 14, 2022, 08:58:42 pm »
Hi Paul,

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