Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-62692

'libcrypto.a ... libssl.a ... undefined reference' error for builds with OpenSSL-1.1.0 on Windows

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • P3: Somewhat important
    • None
    • 5.10
    • Network: SSL
    • None
    •  * Windows 10 x64,
        * mingw-w64 x86_64 6.3.0,
       * OpenSSL-1.1.0f.

    Description

      Hello everyone,

       

      For Qt builds using mingw-w64 got errors:

      mingw32-make[4]: Entering directory 'c:/libQT-5.10-dev/build/qtbase/src/network'
      g++ -Wl,-s -shared -Wl,-subsystem,windows -Wl,--out-implib,c:\libQT-5.10-dev\build\qtbase\lib\libQt5Network.a -o ..\..\lib\Qt5Network.dll object_script.Qt5Network.Release  -lws2_32 -Lc:\libOPENSSL-1.1.0f\GCC64RH\lib -Lc:\libQT-5.10-dev\build\qtbase\lib c:\libQT-5.10-dev\build\qtbase\lib\libQt5Core.a .obj\release\Qt5Network_resource_res.o -ldnsapi -liphlpapi -ladvapi32 -lcrypt32 -lz c:\libOPENSSL-1.1.0f\GCC64RH\lib\libcrypto.a c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libcrypto.a(b_addr.o):b_addr.c:(.text+0x9d): undefined reference to `__imp_getnameinfo'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libcrypto.a(b_addr.o):b_addr.c:(.text+0xcd): undefined reference to `__imp_ntohs'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libcrypto.a(b_addr.o):b_addr.c:(.text+0x1a9): undefined reference to `gai_strerrorW'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libcrypto.a(b_addr.o):b_addr.c:(.text+0x748): undefined reference to `__imp_freeaddrinfo'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libcrypto.a(b_addr.o):b_addr.c:(.text+0xb48): undefined reference to `__imp_getaddrinfo'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libcrypto.a(b_addr.o):b_addr.c:(.text+0xb85): undefined reference to `gai_strerrorW'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libcrypto.a(b_sock.o):b_sock.c:(.text+0xa5): undefined reference to `__imp_WSAStartup'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libcrypto.a(b_sock.o):b_sock.c:(.text+0x12d): undefined reference to `__imp_WSACleanup'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libcrypto.a(b_sock.o):b_sock.c:(.text+0x14a): undefined reference to `__imp_ioctlsocket'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libcrypto.a(b_sock.o):b_sock.c:(.text+0x1e8): undefined reference to `__imp_ioctlsocket'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl3_record.o):ssl3_record.c:(.text+0xce): undefined reference to `COMP_expand_block'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl3_record.o):ssl3_record.c:(.text+0x145): undefined reference to `COMP_compress_block'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl3_record.o):ssl3_record.c:(.text+0x963): undefined reference to `FIPS_mode'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl3_record.o):ssl3_record.c:(.text+0x1b04): undefined reference to `COMP_expand_block'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl3_record.o):ssl3_record.c:(.text+0x2304): undefined reference to `COMP_expand_block'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(s3_cbc.o):s3_cbc.c:(.text+0x539): undefined reference to `FIPS_mode'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_asn1.o):ssl_asn1.c:(.rdata+0x158): undefined reference to `UINT32_it'
      
      <snip>
      
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_lib.o):ssl_lib.c:(.text+0x7bde): undefined reference to `CT_POLICY_EVAL_CTX_set_time'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_lib.o):ssl_lib.c:(.text+0x7c1b): undefined reference to `CT_POLICY_EVAL_CTX_free'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_lib.o):ssl_lib.c:(.text+0x7c68): undefined reference to `CT_POLICY_EVAL_CTX_free'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_lib.o):ssl_lib.c:(.text+0x69bd): undefined reference to `COMP_CTX_get_method'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_lib.o):ssl_lib.c:(.text+0x69dd): undefined reference to `COMP_CTX_get_method'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_lib.o):ssl_lib.c:(.text+0x6d45): undefined reference to `X509_STORE_set_default_paths'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_lib.o):ssl_lib.c:(.text+0x6df5): undefined reference to `X509_STORE_load_locations'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_rsa.o):ssl_rsa.c:(.text+0x564): undefined reference to `PEM_read_bio_X509'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_rsa.o):ssl_rsa.c:(.text+0x1114): undefined reference to `PEM_read_bio_X509'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_rsa.o):ssl_rsa.c:(.text+0x1be5): undefined reference to `PEM_read_bio_X509_AUX'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_rsa.o):ssl_rsa.c:(.text+0x1ccc): undefined reference to `PEM_read_bio_X509'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_rsa.o):ssl_rsa.c:(.text+0x1e2c): undefined reference to `PEM_read_bio_X509_AUX'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_rsa.o):ssl_rsa.c:(.text+0x1f15): undefined reference to `PEM_read_bio_X509'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(statem_clnt.o):statem_clnt.c:(.text+0x2cfe): undefined reference to `X509_certificate_type'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(statem_clnt.o):statem_clnt.c:(.text+0x44c3): undefined reference to `X509_certificate_type'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(statem_lib.o):statem_lib.c:(.text+0x1110): undefined reference to `FIPS_mode'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(statem_lib.o):statem_lib.c:(.text+0x1302): undefined reference to `FIPS_mode'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(statem_lib.o):statem_lib.c:(.text+0x1684): undefined reference to `FIPS_mode'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(statem_lib.o):statem_lib.c:(.text+0x18b9): undefined reference to `FIPS_mode'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(statem_lib.o):statem_lib.c:(.text+0x1b1e): undefined reference to `FIPS_mode'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(statem_lib.o):statem_lib.c:(.text+0x1d2b): more undefined references to `FIPS_mode' follow
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(statem_srvr.o):statem_srvr.c:(.text+0x4829): undefined reference to `X509_certificate_type'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(t1_lib.o):t1_lib.c:(.text+0x1d52): undefined reference to `FIPS_mode'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(t1_lib.o):t1_lib.c:(.text+0x4f51): undefined reference to `FIPS_mode'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(t1_lib.o):t1_lib.c:(.text+0x6f5c): undefined reference to `FIPS_mode'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(t1_lib.o):t1_lib.c:(.text+0x8307): undefined reference to `BN_get_rfc3526_prime_3072'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(t1_lib.o):t1_lib.c:(.text+0x8341): undefined reference to `BN_get_rfc3526_prime_8192'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(tls_srp.o):tls_srp.c:(.text+0x740): undefined reference to `SRP_Calc_B'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(tls_srp.o):tls_srp.c:(.text+0x785): undefined reference to `SRP_get_default_gN'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(tls_srp.o):tls_srp.c:(.text+0x80a): undefined reference to `SRP_create_verifier_BN'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(tls_srp.o):tls_srp.c:(.text+0xa3c): undefined reference to `SRP_Verify_A_mod_N'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(tls_srp.o):tls_srp.c:(.text+0xa5e): undefined reference to `SRP_Calc_u'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(tls_srp.o):tls_srp.c:(.text+0xa93): undefined reference to `SRP_Calc_server_key'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(tls_srp.o):tls_srp.c:(.text+0xb50): undefined reference to `SRP_Verify_B_mod_N'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(tls_srp.o):tls_srp.c:(.text+0xb72): undefined reference to `SRP_Calc_u'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(tls_srp.o):tls_srp.c:(.text+0xbbc): undefined reference to `SRP_Calc_x'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(tls_srp.o):tls_srp.c:(.text+0xbf6): undefined reference to `SRP_Calc_client_key'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(tls_srp.o):tls_srp.c:(.text+0xdaf): undefined reference to `SRP_check_known_gN_param'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(tls_srp.o):tls_srp.c:(.text+0xe2f): undefined reference to `SRP_Calc_A'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(s3_enc.o):s3_enc.c:(.text+0x8d): undefined reference to `COMP_CTX_free'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(s3_enc.o):s3_enc.c:(.text+0xa5): undefined reference to `COMP_CTX_new'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(s3_enc.o):s3_enc.c:(.text+0x1d0): undefined reference to `COMP_CTX_free'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(s3_enc.o):s3_enc.c:(.text+0x1e8): undefined reference to `COMP_CTX_new'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_conf.o):ssl_conf.c:(.text+0x6b5): undefined reference to `X509_STORE_load_locations'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_conf.o):ssl_conf.c:(.text+0xbe7): undefined reference to `X509_STORE_load_locations'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_conf.o):ssl_conf.c:(.text+0xc77): undefined reference to `X509_STORE_load_locations'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(ssl_conf.o):ssl_conf.c:(.text+0xd05): undefined reference to `X509_STORE_load_locations'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(t1_enc.o):t1_enc.c:(.text+0x2f7): undefined reference to `COMP_CTX_free'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(t1_enc.o):t1_enc.c:(.text+0x310): undefined reference to `COMP_CTX_new'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(t1_enc.o):t1_enc.c:(.text+0x5e3): undefined reference to `COMP_CTX_free'
      c:\libOPENSSL-1.1.0f\GCC64RH\lib\libssl.a(t1_enc.o):t1_enc.c:(.text+0x5fc): undefined reference to `COMP_CTX_new'
      collect2.exe: error: ld returned 1 exit status
      Makefile.Release:512: recipe for target '..\..\lib\Qt5Network.dll' failed
      mingw32-make[4]: *** [..\..\lib\Qt5Network.dll] Error 1
      mingw32-make[4]: Leaving directory 'c:/libQT-5.10-dev/build/qtbase/src/network'
      Makefile:36: recipe for target 'release' failed
      mingw32-make[3]: *** [release] Error 2
      mingw32-make[3]: Leaving directory 'c:/libQT-5.10-dev/build/qtbase/src/network'
      Makefile:272: recipe for target 'sub-network-make_first' failed
      mingw32-make[2]: *** [sub-network-make_first] Error 2
      mingw32-make[2]: *** Waiting for unfinished jobs....
      mingw32-make[4]: Entering directory 'c:/libQT-5.10-dev/build/qtbase/src/gui'
      mingw32-make[4]: Nothing to be done for 'first'.
      mingw32-make[4]: Leaving directory 'c:/libQT-5.10-dev/build/qtbase/src/gui'
      mingw32-make[3]: Leaving directory 'c:/libQT-5.10-dev/build/qtbase/src/gui'
      mingw32-make[2]: Leaving directory 'c:/libQT-5.10-dev/build/qtbase/src'
      Makefile:44: recipe for target 'sub-src-make_first' failed
      mingw32-make[1]: *** [sub-src-make_first] Error 2
      mingw32-make[1]: Leaving directory 'c:/libQT-5.10-dev/build/qtbase'
      Makefile:79: recipe for target 'module-qtbase-make_first' failed
      mingw32-make: *** [module-qtbase-make_first] Error 2

       

      Reproduced for:

      • shared Qt builds with shared OpenSSL-1.1.x using mingw-w64,

      not reproduced for:

      • static Qt builds with shared OpenSSL-1.1.x using mingw-w64,
      • shared Qt builds with shared OpenSSL-1.1.x using ICC on Windows and MSVC.

       

      UPDATE: static Qt build errors with no-shared OpenSSL-1.1.x using mingw-w64 moved to QTBUG-65501.

       

       

      Best,

      Alexander

       

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            tpochep Timur Pocheptsov
            sav sav
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes