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] 4 5 ... 255
31
Programming / Re: Qt6
« on: November 18, 2022, 08:33:51 am »
I got the TLS plugin to compile with this patch,
Code: [Select]
diff --git a/src/network/socket/qnativesocketengine_p.h b/src/network/socket/qnativesocketengine_p.h
index 146132b9..03944a84 100644
--- a/src/network/socket/qnativesocketengine_p.h
+++ b/src/network/socket/qnativesocketengine_p.h
@@ -100,6 +100,10 @@ typedef INT (WSAAPI *LPFN_WSASENDMSG)(SOCKET s, LPWSAMSG lpMsg, DWORD dwFlags,
 #  endif // !WSAID_WSASENDMSG
 #endif // Q_OS_WIN
 
+#ifdef __OS2__
+#define QT_NO_IPV6 1
+#endif
+
 union qt_sockaddr {
     sockaddr a;
     sockaddr_in a4;
diff --git a/src/plugins/tls/openssl/qdtls_openssl.cpp b/src/plugins/tls/openssl/qdtls_openssl.cpp
index 55a82f7f..2ab2231f 100644
--- a/src/plugins/tls/openssl/qdtls_openssl.cpp
+++ b/src/plugins/tls/openssl/qdtls_openssl.cpp
@@ -542,7 +542,11 @@ extern "C" long q_dgram_ctrl(BIO *bio, int cmd, long num, void *ptr)
         // using this address), but let's pretend a success.
         switch (dtls->remoteAddress.protocol()) {
         case QAbstractSocket::IPv6Protocol:
+#ifdef __OS2__
+            return sizeof(sockaddr_in);     
+#else
             return sizeof(sockaddr_in6);
+#endif
         case QAbstractSocket::IPv4Protocol:
             return sizeof(sockaddr_in);
         default:

Still seems wrong that IPv6 support seems to be detected.
Now the build is dying here,
Code: [Select]
file H:/tmp\ldconv_qminimalintegration_cpp_o_f40e6377332b19cbd0.obj(ldconv_qminimalintegration_cpp_o_f40e6377332b19cbd0.obj): undefined symbol __ZTV19QFontconfigDatabase
make[2]: *** [plugins/platforms/qminimal.dll] Error 1
make[1]: *** [src/plugins/platforms/minimal/CMakeFiles/QMinimalIntegrationPlugin.dir/all] Error 2

Hopefully don't need a newer fontconfig.
Bedtime here.

32
Programming / Re: Qt6
« on: November 18, 2022, 05:35:07 am »
I don't think I've got as far as building the TLS plugin yet....

It could also be due to a patch I haven't applied yet....

The problem is actually in the same network headers as the previous problems. Can't see where to add the define so for now added it to C(XX)FLAGS. We'll see.
I'm also using -j5 now so there are actually more build breaks such as the clipboard one, just the TLS one was at the bottom of the build log.

33
Programming / Re: Qt6
« on: November 18, 2022, 12:52:42 am »
So tried putting ninja.exe on the PATH and it was picked up, build eventually failed due to needing lib/Qt6Core.DLL, an illegal DLL name. So that's Tellie's problem, using Ninja.
Back to trying with GCC 9.2.0, networking broke again due to trying to use IPv6. UIC.exe seems to work,
Code: [Select]
K:\work\qt6-os2\build\bin>uic.exe --help
Usage: K:\work\qt6-os2\build\bin\uic.exe [options] [uifile]
Qt User Interface Compiler version 6.2.4

Options:
  -h, --help                      Displays help on commandline options.
  --help-all                      Displays help including Qt specific options.
  -v, --version                   Displays version information.
  -d, --dependencies              Display the dependencies.
  -o, --output <file>             Place the output into <file>
  -a, --no-autoconnection         Do not generate a call to
                                  QObject::connectSlotsByName().
  -p, --no-protection             Disable header protection.
  -n, --no-implicit-includes      Disable generation of #include-directives.
  --postfix <postfix>             Postfix to add to all generated classnames.
  --tr, --translate <function>    Use <function> for i18n.
  --include <include-file>        Add #include <include-file> to <file>.
  -g, --generator <python|cpp>    Select generator.
  -c, --connections <pmf|string>  Connection syntax.
  --idbased                       Use id based function for i18n
  --from-imports                  Python: generate imports relative to '.'
  --star-imports                  Python: Use * imports

Arguments:
  [uifile]                        Input file (*.ui), otherwise stdin.

Nothing in popuplog.os2 related to the build.
It now dies trying to compile ipv6 code in src/plugins/tls/openssl. I'll add the define if I can figure out where.

34
Programming / Re: Qt6
« on: November 17, 2022, 05:49:20 am »
Hey Dave,

I'm still dying in src/plugins/paltforms/os2/qos2clipboard.cpp. Looks like the define QT_NO_FOREACH in CMakeLists.txt isn't getting picked up. It definitely needed adding if it is compiling for you.
Last error,
Code: [Select]
K:/work/qt6-os2/src/plugins/platforms/os2/qos2clipboard.cpp:384:17: error: 'foreach' was not declared in this scope; did you mean 'fread'?
  384 |                 foreach(QOS2Mime::Match match, matches)
      |                 ^~~~~~~
      |                 fread
make[2]: *** [src/plugins/platforms/os2/CMakeFiles/QOS2IntegrationPlugin.dir/qos2clipboard.cpp.o] Error 1
make[1]: *** [src/plugins/platforms/os2/CMakeFiles/QOS2IntegrationPlugin.dir/all] Error 2

These two aren't building for me...
qos2clipboard.o
qos2mime.o

Cheers,

Paul.

Well, at least I'm not alone.
I note that at the end of configure, it says something about since we're using makefiles, which aren't really tested well, we're on our own as really we should be using Ninja. Perhaps that is the problem with defines not getting picked up.
Chromium itself is built with the intree Ninja with Qt5. Need to look into that.

35
Programming / Re: Qt6
« on: November 17, 2022, 12:04:35 am »
I'm still dying in src/plugins/paltforms/os2/qos2clipboard.cpp. Looks like the define QT_NO_FOREACH in CMakeLists.txt isn't getting picked up. It definitely needed adding if it is compiling for you.
Last error,
Code: [Select]
K:/work/qt6-os2/src/plugins/platforms/os2/qos2clipboard.cpp:384:17: error: 'foreach' was not declared in this scope; did you mean 'fread'?
  384 |                 foreach(QOS2Mime::Match match, matches)
      |                 ^~~~~~~
      |                 fread
make[2]: *** [src/plugins/platforms/os2/CMakeFiles/QOS2IntegrationPlugin.dir/qos2clipboard.cpp.o] Error 1
make[1]: *** [src/plugins/platforms/os2/CMakeFiles/QOS2IntegrationPlugin.dir/all] Error 2

36
Programming / Re: Qt6
« on: November 16, 2022, 03:04:23 am »
Lots of errors here in src/plugins/platforms/os2/qos2clipboard, enough I'm not going to bother pasting them but guessing it might need a bit of a rewrite or hopefully just a bit of adapting.
BTW, git pull didn't find anything so I tried this,
Code: [Select]
index be461530..7c822111 100644
--- a/src/plugins/platforms/os2/CMakeLists.txt
+++ b/src/plugins/platforms/os2/CMakeLists.txt
@@ -21,7 +21,17 @@ qt_internal_add_plugin(QOS2IntegrationPlugin
         qos2theme.cpp
         qos2window.cpp

+    DEFINES
+        QT_NO_CAST_FROM_ASCII
+        QT_NO_FOREACH
+
     INCLUDE_DIRECTORIES
         ${CMAKE_CURRENT_SOURCE_DIR}
+    LIBRARIES
+        Qt::Core
+        Qt::CorePrivate
+        Qt::Gui
+        Qt::GuiPrivate
+
 )

37
Programming / Re: Qt6
« on: November 16, 2022, 02:27:08 am »
I've been adding the define to src/network/qtnetwork-config.h

38
Programming / Re: Qt6
« 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.

39
Programming / Re: Qt6
« 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

40
Programming / Re: Qt6
« 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.

41
Programming / Re: Qt6
« 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

42
Programming / Re: Qt6
« 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?

43
Programming / Re: Qt6
« 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

44
Programming / Re: Qt6
« 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.

45
Comments, Suggestions & Questions / Re: Hobbes (Files) Reoganization
« on: November 13, 2022, 10:36:35 pm »
I think it enabled connecting a radio to the computer via serial line and then doing TCPIP over the link. So with no wired (or regular wireless) internet, you could have a slow connection over shortwave or which ever amateur frequencies where the licensing allowed.
So, I' assume a full TCP/IP implementation operating wirelessly over an amateur band.
Maybe put it in the same place as PPP, SLURP etc programs go

Pages: 1 2 [3] 4 5 ... 255