New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[mingw-w64-qt5-base] undefined reference to `_imp__CertCreateCertificateContext@12 #41
Comments
Yes, from the error I would also say Note that the relevant file is not What happens if you swap the architectures, so that |
I've got the same error with x86_64-w64-mingw32 |
Theory falsified. But then I'm currently out of guesses. Maybe I can try to rebuild myself later, but actually I had planned to do some video encoding and maybe finally built qt5-webkit NG on that server... Another thing you could try is to create a very simple application using eg. |
seems these symbols cannot be found, like
CertFreeCertificateContext is found though:
|
It is likely a mingw-w64 bug then. Or your package is just corrupted. As a workaround you could use the static version of that library. It would be a little bit work to convince qmake to use the static version, but maybe you can just replace the *.dll.a file with the *.a file. |
there's no dynamic version of libcrypt32, only the libcrypt32.a |
what's yours ? |
The same. And yes, there is no dynamic ".dll.a" version. I confused it with libcrypto.dll.a, but that's from openssl. But note that libcrypt32.a itself is just an import lib for CRYPT32.dll. |
CertCreateCertificateContext symbol seems to be there, no difference with CertFreeCertificateContext:
|
I deleted my pacman cache. Do you still have mingw-w64-gcc 7.1 to test that ? |
Sure. In fact the cache on my server is even publicly available: https://martchus.no-ip.biz/repo/arch/official/os/x86_64/mingw-w64-gcc-7.1.1-1-x86_64.pkg.tar.xz |
I mentioned the issue on #mingw-w64 IRC channel. Maybe someone knows. And the concerning package would be mingw-w64-crt. But maybe it is also GCC which is not handling the library provided by mingw-w64-crt correctly. Then it would be a GCC bug. |
thanks. same with gcc 7.1. I wonder what changed. |
Compiling your test application works here. I have a fully upgraded Arch system. However, I use mingw-w64-binutils-symlinks which is a customized version of the official mingw-w64-binutils package and hence still version 2.28. So I would guess that mingw-w64-binutils makes the difference. The previous version and the version using symlinks (to be able to use |
I just tried mingw-w64-binutils 2.28, and mingw-w64-binutils-symlinks 2.28, still the same error |
I changed mirrors, and cleared the cache, the error is gone, probably a corrupted package. |
It was a conflict with mingw-w64-gnutls which contains /usr/i686-w64-mingw32/lib/crypt32.dll.a that is linked when provided -lcrypt32. So it miust be removed before building qt5. |
Ok, then the actual issue is that mingw-w64-gnutls contains that library. Considering the gnutls sources I would say this library is just meant to be used as mock for the testsuite. So I guess I can simply remove it from the mingw-w64-gnutls package then. |
cool! that or hardwire /usr/arch/lib/libcrypt32.a instead of -lcrypt32 in the qt5 patches |
Updated the mingw-w64-gnutls package. The ncrypt library was affected as well. |
I just tried to rebuild mingw-w64-qt5-base from scratch after the update to mingw-gcc 7.2,
and got undefined symbols like CertCreateCertificateContext when linking qt5Network.dll:
It's weird as this should be in libcrypt32, and -lcrypt32 is passed
Here're the full error:
The text was updated successfully, but these errors were encountered: