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

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

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: P2: Important 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

      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.

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

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

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes