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

Can't link to OpenSSL3 when OpenSSL1.1 is installed

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • P2: Important
    • 6.5
    • 6.6
    • None
    • Ubuntu 20.04, AMD64, OpenSSL 1 installed (with {{-dev}} package) from the distribution, OpenSSL 3.2 (master) installed in {{/d/openssl}}
    • Linux/X11

    Description

      I'm trying to test the new OpenSSL 3.0 code paths that have been added fro Qt 6.5, but I fail to point the build system at my non-standard OpenSSL install in /d/openssl.

      (yes, after each attempt CMakeCache.txt was deleted)

      I first tried just setting PATH and LD_LIBRARY_PATH, but that didn't change anything.

      I then added, in addition, -L /d/openssl/lib64 and -I /d/openssl/include to configure. Nothing.

      I then added, instead of -L and -I, -openssl-linked – -DOPENSSL_ROOT_DIR=/d/openssl to configure. This made it detect OpenSSL v3.0, at least as far as config.summary is concerned. It still finds, and insists to use, the libssl.so and libcrypto.so from the system:

      -- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so   
      -- Found WrapOpenSSLHeaders: /d/openssl/32-dev/include  
      -- Performing Test HAVE_opensslv11_headers
      -- Performing Test HAVE_opensslv11_headers - Failed
      -- Found WrapOpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so  
      -- Performing Test HAVE_opensslv11
      -- Performing Test HAVE_opensslv11 - Failed
      -- Performing Test HAVE_opensslv30_headers
      -- Performing Test HAVE_opensslv30_headers - Success
      -- Performing Test HAVE_opensslv30
      -- Performing Test HAVE_opensslv30 - Success
      

      And sure enough, it now compiles (with QT_CONFIG(opensslv30) defined), but fails to link libQt6Core.so with missing symbols, because it continues to pass the system OpenSSL libraries with full path:

      ~~~ -lm  ~~~  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so ~~~
      

      I then added -L back in, no change.

      My config.opt reads now:

      -opensource
      -confirm-license
      -release
      -force-debug-info
      -separate-debug-info
      -c++std
      c++17
      -developer-build
      -openssl-linked
      -L
      /d/openssl/lib64
      --
      -DOPENSSL_ROOT_DIR=/d/openssl
      

      This is probably also in 6.5.

      Attachments

        Issue Links

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

          Activity

            People

              semlanik Alexey Edelev
              mmutz Marc Mutz
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes