Martchus / PKGBUILDs

PKGBUILDs for creating various Arch Linux packages (including lots of mingw-w64 cross compiler packages)

Home Page:https://martchus.dyn.f3l.de/repo/arch/ownstuff

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

General discussion about mingw-w64 packages

xantares opened this issue · comments

would it be possible to add mingw-w64-ceres(depends on mingw-w64-google-glog) and mingw-w64-nlopt to ownstuff ?

If it doesn't take forever to build like paraview I can add them later. By the way, there is now a mirror under https://ftp.f3l.de/~martchus/.

no, no, they're both small, but I use them often

nice, should I prefer this mirror over your website ? is it faster ?

My website is hosted via VDSL 50000. The mirror is hosted at Hetzer so it should be faster and more reliable. However, the mirror might be updated a little bit slower.

The packages should be there.

Thanks! I already tested the new mirror.
I made a mistake in the ceres package and had to publish a new revision :[

rebuilt, +0.01 % ccache hit rate :-)

hi @Martchus, would it be possible to add mingw-w64-mesa ?

Sure, Mesa under Windows sounds like fun. Reminds me that I wanted to add a package for opengl32sw.dll (https://www.mesa3d.org/llvmpipe.html).

But may I ask for what you use this?

The mingw-w64-mesa package misses the make dependency python2-mako.

Considering the log this would actually build llvmpipe provided LLVM was found:

Checking for GCC ...  yes
Checking for Clang ...  no
Checking for X11 (x11 xext xdamage >= 1.1 xfixes glproto >= 1.4.13 dri2proto >= 2.8)... no
Checking for XCB (x11-xcb xcb-glx >= 1.8.1 xcb-dri2 >= 1.8)... no
Checking for XF86VIDMODE (xxf86vm)... no
Checking for DRM (libdrm >= 2.4.75)... no
Checking for GCC ...  yes
Checking for Clang ...  no
Checking for C header file xlocale.h... (cached) no
Checking for C header file endian.h... (cached) yes
Checking for C function strtod_l()... (cached) yes
Checking for C function strtof_l()... (cached) yes
Checking for C function timespec_get()... (cached) yes
Checking for X11 (x11 xext xdamage >= 1.1 xfixes glproto >= 1.4.13 dri2proto >= 2.8)... no
Checking for XCB (x11-xcb xcb-glx >= 1.8.1 xcb-dri2 >= 1.8)... no
Checking for XF86VIDMODE (xxf86vm)... no
Checking for DRM (libdrm >= 2.4.75)... no
^[^[warning: LLVM disabled: not building llvmpipe

So maybe I'll extend the package to get opengl32sw.dll for use with Qt Quick. It seems like there's already mingw-w64-llvm and you're even maintaining it :-)

I've tried following the instructions:

https://www.mesa3d.org/llvmpipe.html
https://wiki.qt.io/Cross_compiling_Mesa_for_Windows

But I could never get it to use llvm:

$ scons platform=windows toolchain=crossmingw machine=x86_64 build=release libgl-gdi

Because of https://gitlab.freedesktop.org/mesa/mesa/blob/mesa-19.0.3/scons/llvm.py#L68-72

Setting the LLVM env var wouldn't work as we have /usr/x86_64-w64-mingw32/include/llvm which obviously does not have a bin directory.

Or is there something else we could do?

Looks like we could do:

$ LLVM=/usr/x86_64-w64-mingw32 scons platform=windows toolchain=crossmingw machine=x86_64 build=release libgl-gdi

But I get:

sh: x86_64-w64-mingw32-g++-posix: command not found

This does not happen if I don't set the LLVM env var.

We only have x86_64-w64-mingw32-g++

Edit: Could be because I'm using https://aur.archlinux.org/packages/mingw-w64-winpthreads-bin instead of https://aur.archlinux.org/packages/mingw-w64-winpthreads

I should switch and try this again.

But in a pinch I tried:

$ sudo ln -s /usr/bin/x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix

And it works lol. Spoken too soon:

  Linking build/windows-x86_64/gallium/targets/libgl-gdi/opengl32.dll ...
/usr/lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld: /usr/x86_64-w64-mingw32/lib/libLLVMSupport.a(Compression.cpp.obj):(.text+0x15d): undefined reference to `compressBound'
/usr/lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld: /usr/x86_64-w64-mingw32/lib/libLLVMSupport.a(Compression.cpp.obj):(.text+0x181): undefined reference to `compress2'
/usr/lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld: /usr/x86_64-w64-mingw32/lib/libLLVMSupport.a(Compression.cpp.obj):(.text+0x22a): undefined reference to `uncompress'
/usr/lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld: /usr/x86_64-w64-mingw32/lib/libLLVMSupport.a(Compression.cpp.obj):(.text+0x42a): undefined reference to `crc32'
collect2: error: ld returned 1 exit status
scons: *** [build/windows-x86_64/gallium/targets/libgl-gdi/opengl32.dll] Error 1

Some zlib problem with mingw-w64-llvm, I guess?

And I really shouldn't be using any of the mingw-w64-xxx-bin AUR packages, right?

So, anyway, we still need /usr/bin/x86_64-w64-mingw32-g++-posix

hi @teohhanhui, I worked around the g++-posix and zlib issues.

Could you retry to build the updated mingw-w64-mesa now ?

@xantares Thanks for looking into it. I think I would have come up with similar changes. I'm trying to rebuild now although there's likely an install missing in the package() function (which I'm going to add if it worked and I know where to copy the file from).

There's no install, as it's not supported. Besides mesa headers will clash with mingw headers. Import libs are not provided either. I think it's fine to provide just the dll, as it's meant to be a drop-in override of the system dll.

I thought this would produce a 2nd DLL called opengl32sw.dll (which would need an additional install line). But apparently now everything is combined into opengl32.dll which is now quite huge (41.9 MiB, before only 9.9 MiB). Unfortunately that is just what you get when linking statically against LLVM. I personally don't care because disk space is nowadays just not so limited anymore.

So it seems your changes were working. The only thing missing was increasing pkgrel and the dependency mingw-w64-zlib.

ok, zlib is pulled by mingw-llvm now, and I've updated to 19.0.3, so no need to bump.

Makes sense.

I could not test yet on a windows box, did you ?

Of course not :-)

It is ages ago since I've tested a Qt Quick application but if I do I'll give the software renderer a try.

Thank you @xantares and @Martchus! I'll give this a try and test it on a Windows machine (on Google Compute Engine).

great!

If I understand correctly, zlib is used for compressing the library, right? So the workaround makes the output much larger? It'd be better if we could fix the zlib problem...

Oh, you pass z to the linker too, gotcha!

For the g++-posix problem, I wonder if that could be fixed in mingw-w64-gcc? (As it seems like the binary is expected to exist for mingw anyway...) (Or it's just a Debian thing lol)

zlib is needed by llvm, or at least they link to it.

yes, it seems debian uses g++-posix suffix as they provide both posix and win32 threads flavors, we only use posix

what makes the lib larger is that we statically link llvm libs

@Martchus I don't know if you could help me with this, but when I try to build my project https://github.com/teohhanhui/paper-chess with CONFIG+=static (in QtCreator) this is what I get:

x86_64-w64-mingw32-g++ -static -static-libstdc++ -static-libgcc -Wl,-subsystem,windows -mthreads -o release/PaperChess.exe @object_script.PaperChess.Release  -L/usr/x86_64-w64-mingw32/lib/qt/plugins/styles /usr/x86_64-w64-mingw32/lib/qt/plugins/styles/libqwindowsvistastyle.a -L/usr/x86_64-w64-mingw32/lib -L/usr/x86_64-w64-mingw32/lib/qt/plugins/platforms /usr/x86_64-w64-mingw32/lib/qt/plugins/platforms/libqwindows.a -lQt5EventDispatcherSupport -lQt5FontDatabaseSupport -lQt5ThemeSupport -lQt5AccessibilitySupport -lwinspool -lwtsapi32 -lQt5WindowsUIAutomationSupport -L/usr/x86_64-w64-mingw32/lib/qt/plugins/iconengines /usr/x86_64-w64-mingw32/lib/qt/plugins/iconengines/libqsvgicon.a -L/usr/x86_64-w64-mingw32/lib/qt/plugins/imageformats /usr/x86_64-w64-mingw32/lib/qt/plugins/imageformats/libqgif.a /usr/x86_64-w64-mingw32/lib/qt/plugins/imageformats/libqico.a /usr/x86_64-w64-mingw32/lib/qt/plugins/imageformats/libqjpeg.a /usr/x86_64-w64-mingw32/lib/libjpeg.a /usr/x86_64-w64-mingw32/lib/qt/plugins/imageformats/libqsvg.a -lQt5Svg -L/usr/x86_64-w64-mingw32/lib/qt/plugins/qmltooling /usr/x86_64-w64-mingw32/lib/qt/plugins/qmltooling/libqmldbg_debugger.a /usr/x86_64-w64-mingw32/lib/qt/plugins/qmltooling/libqmldbg_inspector.a /usr/x86_64-w64-mingw32/lib/qt/plugins/qmltooling/libqmldbg_local.a /usr/x86_64-w64-mingw32/lib/qt/plugins/qmltooling/libqmldbg_messages.a /usr/x86_64-w64-mingw32/lib/qt/plugins/qmltooling/libqmldbg_native.a /usr/x86_64-w64-mingw32/lib/qt/plugins/qmltooling/libqmldbg_nativedebugger.a /usr/x86_64-w64-mingw32/lib/qt/plugins/qmltooling/libqmldbg_preview.a /usr/x86_64-w64-mingw32/lib/qt/plugins/qmltooling/libqmldbg_profiler.a /usr/x86_64-w64-mingw32/lib/qt/plugins/qmltooling/libqmldbg_quickprofiler.a -lQt5Quick /usr/x86_64-w64-mingw32/lib/qt/plugins/qmltooling/libqmldbg_server.a -lQt5PacketProtocol /usr/x86_64-w64-mingw32/lib/qt/plugins/qmltooling/libqmldbg_tcp.a -L/usr/x86_64-w64-mingw32/lib/qt/plugins/bearer /usr/x86_64-w64-mingw32/lib/qt/plugins/bearer/libqgenericbearer.a /usr/x86_64-w64-mingw32/lib/libQt5Quick.a -lQt5Qml /usr/x86_64-w64-mingw32/lib/libQt5Svg.a -lQt5Widgets /usr/x86_64-w64-mingw32/lib/libz.dll.a /usr/x86_64-w64-mingw32/lib/libQt5Widgets.a -lQt5Gui -ldwmapi -luxtheme /usr/x86_64-w64-mingw32/lib/libQt5Gui.a /usr/x86_64-w64-mingw32/lib/libpng16.a /usr/x86_64-w64-mingw32/lib/libfreetype.a /usr/x86_64-w64-mingw32/lib/libharfbuzz.a /usr/x86_64-w64-mingw32/lib/libglib-2.0.a /usr/x86_64-w64-mingw32/lib/libole32.a /usr/x86_64-w64-mingw32/lib/libwinmm.a /usr/x86_64-w64-mingw32/lib/libshlwapi.a /usr/x86_64-w64-mingw32/lib/libpcre.a /usr/x86_64-w64-mingw32/lib/libintl.a /usr/x86_64-w64-mingw32/lib/libgraphite2.a /usr/x86_64-w64-mingw32/lib/libbz2.a /usr/x86_64-w64-mingw32/lib/libglu32.a /usr/x86_64-w64-mingw32/lib/libopengl32.a /usr/x86_64-w64-mingw32/lib/libuser32.a -lopengl32 -lcomdlg32 -loleaut32 -limm32 -ljpeg -lpng -lfreetype -lbz2 -lharfbuzz -lm -lintl -lglib-2.0 -lshlwapi -lpcre -lgraphite2 /usr/x86_64-w64-mingw32/lib/libQt5Qml.a -lQt5Network /usr/x86_64-w64-mingw32/lib/libQt5Network.a -lQt5Core /usr/x86_64-w64-mingw32/lib/libssl.a /usr/x86_64-w64-mingw32/lib/libcrypto.a /usr/x86_64-w64-mingw32/lib/libws2_32.a /usr/x86_64-w64-mingw32/lib/libgdi32.a /usr/x86_64-w64-mingw32/lib/libcrypt32.a /usr/x86_64-w64-mingw32/lib/libdnsapi.a /usr/x86_64-w64-mingw32/lib/libiphlpapi.a -lssl -lcrypto -lgdi32 -lcrypt32 -ldnsapi -liphlpapi /usr/x86_64-w64-mingw32/lib/libQt5Core.a -lmpr /usr/x86_64-w64-mingw32/lib/libz.a /usr/x86_64-w64-mingw32/lib/libpcre2-16.a /usr/x86_64-w64-mingw32/lib/libiconv.a -lz -lpcre2-16 -liconv -lversion -lnetapi32 -luserenv -lole32 -luuid -lwinmm -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32  /usr/x86_64-w64-mingw32/lib/libglu32.a /usr/x86_64-w64-mingw32/lib/libopengl32.a /usr/x86_64-w64-mingw32/lib/libgdi32.a /usr/x86_64-w64-mingw32/lib/libuser32.a -lmingw32 /usr/x86_64-w64-mingw32/lib/libqt5main.a -lshell32 
/usr/lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld: /usr/x86_64-w64-mingw32/lib/libz.a(inflate.o):(.text+0x260): multiple definition of `inflateReset'; /usr/x86_64-w64-mingw32/lib/libz.dll.a(d000074.o):(.text+0x0): first defined here
/usr/lib/gcc/x86_64-w64-mingw32/8.3.0/../../make[1]: Leaving directory '/home/teohhanhui/projects/teohhanhui/build-PaperChess-Desktop_Windows-Release (static)'
../../x86_64-w64-mingw32/bin/ld: /usr/x86_64-w64-mingw32/lib/libz.a(inflate.o):(.text+0x360): multiple definition of `inflateInit2_'; /usr/x86_64-w64-mingw32/lib/libz.dll.a(d000070.o):(.text+0x0): first defined here
/usr/lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld: /usr/x86_64-w64-mingw32/lib/libz.a(inflate.o):(.text+0x500): multiple definition of `inflate'; /usr/x86_64-w64-mingw32/lib/libz.dll.a(d000061.o):(.text+0x0): first defined here
/usr/lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld: /usr/x86_64-w64-mingw32/lib/libz.a(inflate.o):(.text+0x2000): multiple definition of `inflateEnd'; /usr/x86_64-w64-mingw32/lib/libz.dll.a(d000067.o):(.text+0x0): first defined here
collect2: error: ld returned 1 exit status

The dynamic build works perfectly.

Edit: Removing /usr/x86_64-w64-mingw32/lib/libz.dll.a from the command seems to work. But I'll have to try to actually run it on the Windows box.

Do you have any idea why it was added in the first place? Is this related?

Developers of mingw32 applications, who wish to link to the zlib libraries, will require at least the "dev" tarball; this provides the libz.a static version of the library, libz.dll.a import library, for linking to a DLL version of the library, and the set of C language headers common to both.

https://sourceforge.net/projects/mingw/files/MinGW/Extension/zlib/zlib-1.2.7-1/

Edit: And the result (from Dependency Walker profiling):

QQmlApplicationEngine failed to load component
qrc:/qml/main.qml:-1 File was compiled ahead of time with an incompatible version of Qt and the original file cannot be found. Please recompile

I don't understand why lol... Perhaps I did something wrong when upgrading the mingw-w64-qt5-* packages? Do I need to rebuild them in the correct order?

zlib is needed by llvm, or at least they link to it.

Yeah.

LLVM_ENABLE_ZLIB:BOOL

Enable building with zlib to support compression/uncompression in LLVM tools. Defaults to ON.

https://llvm.org/docs/CMake.html

Is it normal that we have to pass z to the linker explicitly, or is it because of how our LLVM is built?

no, it's because mesa lists llvm libs manually, so we have to fix it

mesa is moving to meson, right? I've not had any luck getting that to work for our use case.

But I think mainly because of missing llvm-config in the cross file.

yes, but it does not allow to build the dll with mingw, I wished they chosed cmake instead, it's much better at cross-compiling

So, I can confirm that it works fine on Windows. Except that opengl32.dll looks for __register_frame and __deregister_frame in every other DLL. (Saw in the Dependency Walker profiling output.)

But on another note, my program crashed with Wine: https://bugs.winehq.org/show_bug.cgi?id=47112

@Martchus I don't know if this similar issue would give any clue: https://bugs.winehq.org/show_bug.cgi?id=46428#c1

The previous version (with Qt 5.12.2) worked fine. Weird...

Do I need to rebuild them in the correct order?

Yes. The Qt packages are not different from most other packages in that regard.

This is the build order I'm using to build the packages in my binary repo: qt5-base qt5-svg qt5-declarative qt5-tools qt5-xmlpatterns qt5-script qt5-imageformats qt5-location qt5-multimedia qt5-sensors qt5-webchannel qt5-3d qt5-quickcontrols qt5-quickcontrols2 qt5-translations qt5-websockets qt5-winextras qt5-serialport qt5-canvas3d qt5-connectivity qt5-charts qt5-graphicaleffects qt5-gamepad qt5-scxml qt5-datavis3d qt5-virtualkeyboard qt5-activeqt qt5-speech qt5-remoteobjects qt5-networkauth qt5-webglplugin

The previous version (with Qt 5.12.2) worked fine.

There were no significant changes between those versions. I suspect that you did not build packages in a clean chroot so packages of the previous version were still installed when building the new ones. That leads to linker errors if you're lucky (e.g. #88) or crashes at runtime if you're unlucky.

I don't know if you could help me with this, but when I try to build my project https://github.com/teohhanhui/paper-chess with CONFIG+=static (in QtCreator) this is what I get:

I'm aware of this issue and fixed it already for CMake. I couldn't really reproduce so far with qmake but with your project I can also reproduce it with qmake. Likely the dynamic zlib is pulled by Qt Quick or Qt Svg.

packages of the previous version were still installed when building the new ones

I wonder if it makes sense if we require the exact version of qt5-base from qt5-base-static, for example? After all, it depends on the exact matching version. Would that help in resolving the correct build order?

@xantares The weird errors in the log when using Dependency Walker to do profiling:

GetProcAddress(0x0000000074A70000 [OPENGL32.DLL], "glDiscardFramebuffer") called from "QWINDOWS.DLL" at address 0x000000006DD1177E and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000074A70000 [OPENGL32.DLL], "glDiscardFramebufferARB") called from "QWINDOWS.DLL" at address 0x000000006DD1177E and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000074A70000 [OPENGL32.DLL], "glDiscardFramebufferOES") called from "QWINDOWS.DLL" at address 0x000000006DD1177E and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000000400000 [PAPERCHESS.EXE], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C54 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAAE7F0000 [WINTYPES.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB18F0000 [NTMARTA.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0560000 [COREMESSAGING.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAAE950000 [COREUICOMPONENTS.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAAEE30000 [TEXTINPUTFRAMEWORK.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB1170000 [RMCLIENT.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0F40000 [TWINAPI.APPCORE.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB1680000 [DXGI.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0370000 [DCOMP.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAAF810000 [D3D11.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFA9D140000 [DATAEXCHANGE.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB6540000 [MSCTF.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFA934F0000 [D3D9.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAAB550000 [DWRITE.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000065FC0000 [QSVG.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000065580000 [LIBJPEG-8.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006CDC0000 [QJPEG.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006F000000 [WINDOWPLUGIN.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000061800000 [QTQUICK2PLUGIN.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAAEC80000 [PROPSYS.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB5DE0000 [CLBCATQ.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0540000 [WTSAPI32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB63D0000 [OLEAUT32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006DCC0000 [QWINDOWS.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB44D0000 [IMM32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000069140000 [LIBPCRE-1.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000061CC0000 [LIBINTL-8.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000069CC0000 [LIBBZ2-1.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000070540000 [LIBGRAPHITE2.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000649C0000 [LIBGLIB-2.0-0.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006C340000 [LIBFREETYPE-6.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0E70000 [UXTHEME.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB11A0000 [DWMAPI.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000068B40000 [LIBPNG16-16.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000074A70000 [OPENGL32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000061600000 [LIBHARFBUZZ-0.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000001720000 [QT5WIDGETS.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000001320000 [QT5QUICK.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000000C20000 [QT5GUI.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAA3220000 [SRVCLI.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB1ED0000 [NETUTILS.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2230000 [CRYPTBASE.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB1DC0000 [IPHLPAPI.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB5C50000 [NSI.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB1E00000 [DNSAPI.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0AE0000 [WINMMBASE.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB28F0000 [MSASN1.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2B00000 [CRYPT32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006D200000 [QT5NETWORK.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000062E80000 [ZLIB1.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000067A80000 [LIBPCRE2-16-0.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000066000000 [LIBICONV-2.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0B10000 [WINMM.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAA8860000 [VERSION.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2740000 [USERENV.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000064940000 [LIBWINPTHREAD-1.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAA6100000 [NETAPI32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAA4230000 [MPR.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006FC40000 [LIBSTDC++-6.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000061440000 [LIBGCC_S_SEH-1.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006D980000 [QT5SVG.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000070000000 [QT5QML.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB5D70000 [WS2_32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB66B0000 [OLE32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000066740000 [QT5CORE.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2AC0000 [CRYPTSP.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2840000 [KERNEL.APPCORE.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2AE0000 [WIN32U.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB3C90000 [USER32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB3530000 [GDI32FULL.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB3E30000 [GDI32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB5D10000 [SHLWAPI.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2860000 [POWRPROF.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB28C0000 [PROFAPI.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB3AD0000 [ADVAPI32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB4500000 [SECHOST.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB39D0000 [MSVCP_WIN.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2CE0000 [WINDOWS.STORAGE.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2960000 [BCRYPTPRIMITIVES.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB41A0000 [COMBASE.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB3E60000 [RPCRT4.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB5C60000 [SHCORE.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB3430000 [UCRTBASE.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2910000 [CFGMGR32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB4620000 [SHELL32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB64A0000 [MSVCRT.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0CF0000 [APPHELP.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000077510000 [DEPENDS.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB36D0000 [KERNELBASE.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB5E90000 [KERNEL32.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB6840000 [NTDLL.DLL], "__register_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000000400000 [PAPERCHESS.EXE], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C54 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAAE7F0000 [WINTYPES.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB18F0000 [NTMARTA.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0560000 [COREMESSAGING.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAAE950000 [COREUICOMPONENTS.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAAEE30000 [TEXTINPUTFRAMEWORK.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB1170000 [RMCLIENT.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0F40000 [TWINAPI.APPCORE.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB1680000 [DXGI.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0370000 [DCOMP.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAAF810000 [D3D11.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFA9D140000 [DATAEXCHANGE.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB6540000 [MSCTF.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFA934F0000 [D3D9.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAAB550000 [DWRITE.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000065FC0000 [QSVG.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000065580000 [LIBJPEG-8.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006CDC0000 [QJPEG.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006F000000 [WINDOWPLUGIN.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000061800000 [QTQUICK2PLUGIN.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAAEC80000 [PROPSYS.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB5DE0000 [CLBCATQ.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0540000 [WTSAPI32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB63D0000 [OLEAUT32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006DCC0000 [QWINDOWS.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB44D0000 [IMM32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000069140000 [LIBPCRE-1.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000061CC0000 [LIBINTL-8.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000069CC0000 [LIBBZ2-1.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000070540000 [LIBGRAPHITE2.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000649C0000 [LIBGLIB-2.0-0.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006C340000 [LIBFREETYPE-6.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0E70000 [UXTHEME.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB11A0000 [DWMAPI.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000068B40000 [LIBPNG16-16.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000074A70000 [OPENGL32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000061600000 [LIBHARFBUZZ-0.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000001720000 [QT5WIDGETS.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000001320000 [QT5QUICK.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000000C20000 [QT5GUI.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAA3220000 [SRVCLI.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB1ED0000 [NETUTILS.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2230000 [CRYPTBASE.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB1DC0000 [IPHLPAPI.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB5C50000 [NSI.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB1E00000 [DNSAPI.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0AE0000 [WINMMBASE.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB28F0000 [MSASN1.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2B00000 [CRYPT32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006D200000 [QT5NETWORK.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000062E80000 [ZLIB1.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000067A80000 [LIBPCRE2-16-0.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000066000000 [LIBICONV-2.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0B10000 [WINMM.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAA8860000 [VERSION.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2740000 [USERENV.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000064940000 [LIBWINPTHREAD-1.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAA6100000 [NETAPI32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAA4230000 [MPR.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006FC40000 [LIBSTDC++-6.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000061440000 [LIBGCC_S_SEH-1.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x000000006D980000 [QT5SVG.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000070000000 [QT5QML.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB5D70000 [WS2_32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB66B0000 [OLE32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000066740000 [QT5CORE.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2AC0000 [CRYPTSP.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2840000 [KERNEL.APPCORE.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2AE0000 [WIN32U.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB3C90000 [USER32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB3530000 [GDI32FULL.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB3E30000 [GDI32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB5D10000 [SHLWAPI.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2860000 [POWRPROF.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB28C0000 [PROFAPI.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB3AD0000 [ADVAPI32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB4500000 [SECHOST.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB39D0000 [MSVCP_WIN.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2CE0000 [WINDOWS.STORAGE.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2960000 [BCRYPTPRIMITIVES.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB41A0000 [COMBASE.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB3E60000 [RPCRT4.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB5C60000 [SHCORE.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB3430000 [UCRTBASE.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB2910000 [CFGMGR32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB4620000 [SHELL32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB64A0000 [MSVCRT.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB0CF0000 [APPHELP.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x0000000077510000 [DEPENDS.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB36D0000 [KERNELBASE.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB5E90000 [KERNEL32.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00007FFAB6840000 [NTDLL.DLL], "__deregister_frame") called from "OPENGL32.DLL" at address 0x0000000076480C92 and returned NULL. Error: The specified procedure could not be found (127).

One thing that I find very annoying is the wine (GUI!) prompts to install Mono and Gecko. Looks like it's possible to do

export WINEDLLOVERRIDES="mscoree,mshtml="

if we know that the current package being built does not need Mono and Gecko?

mingw-wine.sh is the wrapper for wine, I added WINEDLLOVERRIDES

by the way @teohhanhui is mingw-w64-mesa working ? what is the default backend, do we need to set an env variable to ask for lllvmpipe ?

mingw-wine.sh is the wrapper for wine

Yeah, I saw https://aur.archlinux.org/cgit/aur.git/tree/mingw-wine.sh?h=mingw-w64-wine

But there's one in this repo, which seems to be unused: https://github.com/Martchus/PKGBUILDs/blob/master/cmake/mingw-w64/mingw-wine.sh

I added WINEDLLOVERRIDES

But what if Mono and/or Gecko are actually needed? Are there such cases?

by the way @teohhanhui is mingw-w64-mesa working ? what is the default backend, do we need to set an env variable to ask for lllvmpipe ?

It uses llvmpipe if LLVM is detected, which is the case. So everything is working properly. 😄

But what if Mono and/or Gecko are actually needed? Are there such cases?

I highly doubt that.

Good that llvmpipe works out-of-the box. I'm only wondering how one would select "the other" software renderer then (likely via an environment variable).

@xantares It looks to me like this patch could be upstreamed, no? https://aur.archlinux.org/cgit/aur.git/tree/mingw-posix.patch?h=mingw-w64-mesa

Or have you already opened a pull request? 😆

But there's one in this repo, which seems to be unused

I sometimes import packages from the AUR here to do some customizations/experiments. The mingw-w64-wine package is a leftover. My binary repo uses the version as currently present in the AUR (also with the latest changes).

It looks to me like this patch could be upstreamed

At least it is worth a try.

@teohhanhui this change is already upstreamed, but not reviewed yet, see PKGBUILD

@Martchus could you push mingw-w64-wine-1-4 to the repo ? previous revision hangs under docker

done

Hmm... I'm not sure what's going on, but I'm still getting the Wine GUI prompts.

Build log here: https://gist.github.com/teohhanhui/475f329798c0d9c07a4995681545dbd0

I was able to build mingw-w64-dbus in a systemd-nspanwn container without X11. The build of mingw-w64-mesa 19.1.0-1 also worked in that container.

I've got it built successfully now using pamac. I've tried a couple of times with yay but it wouldn't work. Weird... And none of the dependencies have changed in the meantime.

I'm usually using some self-written scripts to simply invoke the official makechrootpkg. From all AUR helper I've seen lately https://aur.archlinux.org/packages/aurutils looks like the most promising. (It looks like a better version of my own scripts.)

hi @teohhanhui, what opengl version do you use ? I cannot seem to go higher than 3.1 with mingw-w64-mesa (I want 3.2)

@xantares I'm not sure, to be honest. How do I check? 😆

I'm only using it with the Qt Quick scene graph renderer: https://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html

Here, in this example I try to create a 3.2 context and it returns 3.1:
https://github.com/xantares/hello-opengl/blob/master/gl2_qt.cxx

humm, interesting, if I set MESA_GL_VERSION_OVERRIDE=3.2 it succeeds

thanks @teohhanhui !

hey @Martchus bad news, qt 5.13 is out : )

I know, I'll find time to update the packages tomorrow or Friday.

By the way:

With Qt 5.13.0 I'm going to use dynamic OpenGL support by default. This is also how the official Qt binaries are configured and should be the most flexible mode. In fact it should make all the other variants unnecessary. I couldn't use that configuration when they introduced it because at the time their configure system didn't allow the dynamic configuration when compiling under Linux. I suppose one can still use the software renderer from Mesa with the dynamic configuration. I would also rely on the bundled ANGLE (if one wants to use that) because the upstream build system of ANGLE is just a horrible mess - especially for cross compilation.

I've also read the comment

It seems, chromium can now be built with clang and lld. Qt now uses clang by default on windows. Would it be possible to have Qt WebEngine on mingw?

in the AUR. I guess I better refrain from such experiments for now. This would only work if clang would use the Itanium ABI also when compiling for Windows. All the documentation I've found so far on the topic reads like they only use the Visual C++ ABI (https://llvm.org/docs/CompilerWriterInfo.html#abi, https://clang.llvm.org/docs/MSVCCompatibility.html).

I'm also wondering whether I should enable Secure Channel support for SSL socket which likely means OpenSSL would no longer be required. Likely it is better to stick to OpenSSL for now (never touch a running system).

Turns out that despite the documentation which I found a bit misleading it is quite simple to compile with Clang for Windows in a GCC/mingw-w64-compatible way. At least a minimum example seems to works without much effort:

clang++ --target=x86_64-w64-mingw32 -DCPP_UTILITIES_STATIC=1 -I/usr/x86_64-w64-mingw32/include main.cpp /usr/x86_64-w64-mingw32/lib/libc++utilities.a

So one can just use the platform triple we use for GCC. (It is canonicalised to x86_64-unknown-windows-gnu under the hood, though.)

Oh, and like always with Clang one does not need to build a different version of the compiler for different targets. clang++ in my example is just the Clang from the regular clang package. It also finds the GCC toolchain (e.g. for the linker) so using --gcc-toolchain= is not necessary.

I thought msvc and gnu c++ abi were incompatible, did you try to link a clang c++ lib with a gcc c++ lib ?

I thought msvc and gnu c++ abi were incompatible

That is correct. However, it turns out that Clang is able to compile for both ABIs. And in the example I specified --target=x86_64-w64-mingw32 so the GCC/mingw-w64 ABI is used.

did you try to link a clang c++ lib with a gcc c++ lib ?

Yes, the library /usr/x86_64-w64-mingw32/lib/libc++utilities.a in my example has been compiled with GCC. And of course it linked (dynamically) against libstdc++-6.dll and libgcc_s_seh-1.dll.

Oh, wait - you want to test whether a library produced by Clang works with GCC. In fact I haven't tested it this way.

and for the msvc abi, do you know which version they target ?

I've just tested linking a program compiled with g++ against a static library containing an object produced by clang++ and it worked.

and for the msvc abi, do you know which version they target ?

I don't know - according to the linked documentation the MSVC support is WIP anyways.

By the way, there are actually 2 Itanium C++ ABI flavors Clang supports under Windows:

<Martchus> compnerd: Out of curiosity: So there are two different Itanium-ABI flavors used on Windows? The one GCC/mingw-w64 produces and another incompatible one?
<compnerd> Martchus: yes, there is a windows itanium which is more compatible with MSVC for C but uses the Itanium C++ ABI

By the way, I'm right now rebasing my patch for fixing static library dependencies when using Qt via CMake. It seems that upstream Qt considered this use-case important enough to fix it from their side. Unfortunately some pieces still seem to be missing so I can not get rid of my patch completely.

I'm using shared libs, so I've no clue. But it'd be cool to reduce the amount of patches, did you try upstreaming some ?

Some patches are specific to our environment or just too hacky. Maybe some could be generalized/improved. But some have already been rejected mainly because they would break compatibility (e.g. renaming qtmain to qt5main to prevent conflicts with mingw-w64-qt4 and to use .dll.a instead of just .a as import lib extension).

Some patches are also just workarounds. E.g. the one to disable "smart library merge" just disables that feature rather than fixing it so it doesn't mess the link order of cyclic static dependencies.

And I only keep the patches for being able to install the static and dynamic version in the same prefix for the "never touch a running system" reason. These patches come from Fedora but this configuration was never officially supported. I guess I'll drop them for Qt 6.

But it would be really nice if more patches would be upstreamed. E.g. now I'm facing the following error message caused by one of my patches being incompatible with new upstream changes:

make[3]: *** No rule to make target '/build/mingw-w64-qt5-base/src/build-i686-w64-mingw32/lib/libQt5Core.a', needed by '../../lib/Qt5Network.dll'.  Stop.

This comes because they added some code which does not differ between .dll.a and .a:

                win32|contains(MODULE_CONFIG, staticlib) {
                    lib = $$MODULE_LIBS/$$QMAKE_PREFIX_STATICLIB$${lib}.$$QMAKE_EXTENSION_STATICLIB
                    PRE_TARGETDEPS += $$lib
                } else {
                    lib = $$MODULE_LIBS/$$QMAKE_PREFIX_SHLIB$${lib}.$$QMAKE_EXTENSION_SHLIB
                }

It is actually nice that they use full paths now but it seems like I have to adapt my patch for using .dll.a.

Seems like -opengl dynamic won't work. It requires ANGLE to be present at build time. However, ANGLE requires fxc.exe from the DirectX SDK to be present now. It might work to create an fxc package which would contain that tool and would run it via WINE. Seems like MXE and MSYS2 also only provide OpenGL desktop config. For this update it is likely best to stick with desktop OpenGL since figuring out how to make fxc work might take some time.

Maybe one could also use the successor of fxc which would might even run natively under Linux: https://www.phoronix.com/scan.php?page=news_item&px=DXSC-Google-Linux

@xantares The latest update to mingw-w64-gcc package has a wrong checksum?

==> Validating source files with sha256sums...
gcc-9.1.0.tar.xz ... Passed
gcc-9.1.0.tar.xz.sig ... Skipped
isl-0.21.tar.bz2 ... FAILED
bz90397.patch ... Passed
bz90949.patch ... Passed
==> ERROR: One or more files did not pass the validity check!

EDIT: Solved by deleting that file in my SRCDEST.

I pushed the new version of Qt 5.13.0. Since building the bundled ANGLE is not possible (anymore) it is still only using OpenGL Desktop. However, I could enable the Vulkan support (and get rid of that annoying warning, see https://bugreports.qt.io/browse/QTBUG-76660). The patches could also be reduced a little bit. Unfortunately the patch for pulling static dependencies is still required. Upstream has fixed some parts but some are still missing (but there's WIP, see https://bugreports.qt.io/browse/QTBUG-38913 and https://codereview.qt-project.org/c/qt/qtbase/+/243731/35).

Seems like fxc.exe is not required with this MXE package: https://github.com/Proemion/mxe/blob/5.12_dynamic/src/qtbase.mk

I'll have to find out what they make different because when I tried the dynamic switch with the bundled ANGLE the configure check for fxc failed and therefore the build failed.

@xantares I've found that during the build of mingw-w64-bzip2, at this command:

libtool: link: i686-w64-mingw32-gcc -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4 -Wall -Winline -fno-strength-reduce -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -o .libs/bzip2.exe bzip2.o ./.libs/libbz2.dll.a -L/usr/i686-w64-mingw32/lib

I still get the wine GUI prompts to install Gecko and Mono.

it's not gecko, and its not calling mingw-w64-wine, something is calling wine directly, and I dont know how

Strange. But a good workaround seems to be using makechrootpkg. At least I never get those promts when doing my builds.

found it: libtool is calling winepath, so it wants to update ~/.wine

Another one where wine is called and triggers the GUI prompts, not sure if it's the same problem:

make[2]: Entering directory '/home/teohhanhui/.cache/yay/mingw-w64-curl/src/curl-7.65.2/build-i686-w64-mingw32/src'
  CC       curl-slist_wc.o
  CC       curl-tool_cb_prg.o
  CC       curl-tool_bname.o
  CC       curl-tool_binmode.o
  CC       curl-tool_cb_dbg.o
  CC       curl-tool_cb_hdr.o
  CC       curl-tool_cb_rea.o
  CC       curl-tool_cb_see.o
  CC       curl-tool_cb_wrt.o
  CC       curl-tool_cfgable.o
  CC       curl-tool_convert.o
  CC       curl-tool_dirhie.o
  CC       curl-tool_doswin.o
  CC       curl-tool_easysrc.o
  CC       curl-tool_filetime.o
  CC       curl-tool_formparse.o
  CC       curl-tool_getparam.o
  CC       curl-tool_getpass.o
  CC       curl-tool_help.o
  CC       curl-tool_helpers.o
  CC       curl-tool_homedir.o
  HUGE     tool_hugehelp.c
  CC       curl-tool_libinfo.o
  CC       curl-tool_main.o
  CC       curl-tool_metalink.o
  CC       curl-tool_msgs.o
  CC       curl-tool_operate.o
  CC       curl-tool_operhlp.o
  CC       curl-tool_panykey.o
  CC       curl-tool_paramhlp.o
  CC       curl-tool_parsecfg.o
  CC       curl-tool_strdup.o
  CC       curl-tool_setopt.o
  CC       curl-tool_sleep.o
  CC       curl-tool_urlglob.o
  CC       curl-tool_util.o
  CC       curl-tool_vms.o
  CC       curl-tool_writeout.o
  CC       curl-tool_xattr.o
  CC       curl-tool_hugehelp.o
  CC       ../lib/curl-strtoofft.o
  CC       ../lib/curl-nonblock.o
  CC       ../lib/curl-warnless.o
  CC       ../lib/curl-curl_ctype.o
  CCLD     curl.exe

@teohhanhui it appears at link; I think this is the same problem

@Martchus can you update mingw-w64-cmake and mingw-w64-netcdf on your repos ?

thanks, can I bother you again to request mingw-w64-proj and mingw-w64-utf8cpp ?

@xantares So as you've mentioned, libtool calls winepath: https://www.gnu.org/software/libtool/manual/html_node/Cross-compiling.html

I don't suppose that exporting WINEDLLOVERRIDES everywhere would be a solution. Haha... So I guess it's up to the user to set the overrides in their wine profiles, e.g. ~/.wine-i686-w64-mingw32 and ~/.wine-x86_64-w64-mingw32 (using winecfg).

@xantares I added the packages.

thanks a bunch!

hi @Martchus, could you add mingw-w64-suitesparse ?

I built the package. Qt 5.13.1 is also already building (but building the Android version first).

thanks

@Martchus, with mingw-w64-qt5-base I dont get any qtest output, even when forcing verbose mode:
see https://github.com/xantares/cmake-qt-test

With the native package I get:

$ ./hello -vs
********* Start testing of TestHello *********
Config: Using QtTest library 5.13.1, Qt 5.13.1 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 9.1.0)
INFO   : TestHello::initTestCase() Signal: QThread(559ba5328580) started ()
PASS   : TestHello::initTestCase()
PASS   : TestHello::Test1()
FAIL!  : TestHello::Test2() '1 == 2' returned FALSE. (test2)
   Loc: [/home/xantares/projects/qt-test/main.cxx(17)]
PASS   : TestHello::cleanupTestCase()
INFO   : TestHello::UnknownTestFunc() Signal: QThread(559ba5328580) finished ()
Totals: 3 passed, 1 failed, 0 skipped, 0 blacklisted, 1ms
********* Finished testing of TestHello *********

I never used their test framework. Maybe there's something wrong with the magic QTEST_MAIN(TestHello) macro. Maybe something like this is missing: https://github.com/Martchus/cpp-utilities/blob/master/application/commandlineutils.cpp#L89

I've just had a look and it seems that QTEST_MAIN instantiates a QApplication like any GUI app would do. So I suppose this is expected to do GUI things. At the same time there's no special code to start the console under Windows.

On the other hand the WIN32_EXECUTABLE target property is likely not set in your CMake target so you should actually get a console by default.

I'm not aware that any of my patches would influence the test framework. The fact that we're cross compiling shouldn't matter much here. Maybe just (another) upstream bug?

I dug through the logging options (https://doc.qt.io/qt-5/qtest-overview.html#logging-options)
and found out that writing stderr works (with hello -o /dev/stderr,txt), but not stdout!

And this is true for the Linux version? Or are you running the Windows build with WINE?

I was telling you about the mingw+wine version.

But I dug through the code, they do have a special case for stdout, and it seems this use-case fails, at least from wine:

I think messages are refused in this QPlainTestLogger method:

void QPlainTestLogger::outputMessage(const char *str)
{
#if defined(Q_OS_WIN)
    // Log to system log only if output is not redirected and stderr not preferred
    if (stream == stdout && !QtPrivate::shouldLogToStderr()) {
        OutputDebugStringA(str);
        return;
    }
#elif defined(Q_OS_ANDROID)
    __android_log_write(ANDROID_LOG_INFO, "QTestLib", str);
#endif
    outputString(str);
}

then qlogging.cpp:

bool shouldLogToStderr()
{
    static bool forceStderrLogging = qEnvironmentVariableIntValue("QT_FORCE_STDERR_LOGGING");
    return forceStderrLogging || stderrHasConsoleAttached();
}

there'no way to force stderrHasConsoleAttached to return false

static bool stderrHasConsoleAttached()
{
    static const bool stderrHasConsoleAttached = []() -> bool {
        if (!systemHasStderr())
            return false;

        if (qEnvironmentVariableIntValue("QT_LOGGING_TO_CONSOLE")) {
            fprintf(stderr, "warning: Environment variable QT_LOGGING_TO_CONSOLE is deprecated, use\n"
                            "QT_ASSUME_STDERR_HAS_CONSOLE and/or QT_FORCE_STDERR_LOGGING instead.\n");
            return true;
        }

        if (qEnvironmentVariableIntValue("QT_ASSUME_STDERR_HAS_CONSOLE"))
            return true;

#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT)
        return GetConsoleWindow();
#elif defined(Q_OS_UNIX)
#       ifndef _PATH_TTY
#       define _PATH_TTY "/dev/tty"
#       endif

        // If we can open /dev/tty, we have a controlling TTY
        int ttyDevice = -1;
        if ((ttyDevice = qt_safe_open(_PATH_TTY, O_RDONLY)) >= 0) {
            qt_safe_close(ttyDevice);
            return true;
        } else if (errno == ENOENT || errno == EPERM || errno == ENXIO) {
            // Fall back to isatty for some non-critical errors
            return isatty(STDERR_FILENO);
        } else {
            return false;
        }
#else
        return false; // No way to detect if stderr has a console attached
#endif
    }();

    return stderrHasConsoleAttached;
}

Probably getconsolewindow does what it should on native win32 hosts, but from Linux, I guess this is not possible.

Unless we somehow patch to use an env var or something, what do you think ?

If stderr is not good sufficient you prepare a patch to check an environment variable. I would add it to the package.

(Don't create a PR here, though. Just send the patch to be applied to qtbase e.g. using git format-patch.)