Uploaded image for project: 'Qt License server'
  1. Qt License server
  2. QLS-1789

CIP 3.4 is missing symbols on macOS

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • 3.4.0
    • 3.4
    • None
    • macOS 15.3.1
      Xcode 16.2.0
      CIP artifacts from the 3.4 branch built on 2025-03-12
    • Linux/X11, macOS
    • d2148b858 (3.4), c6772be44 (dev)
    • License server development 46

    Description

      Trying to build a minimal test program with CIP artifacts from the 3.4 branch on macOS I get a list of missing symbols. Source code:

      #include <licenseclient.h>
      #include <string>
      
      int main()
      {
          QLicenseClient::LicenseClient c;
          std::string e;
          c.init(e);
          return 0;
      }
      

      Compiler invocation:

      clang++ -std=gnu++11 -stdlib=libc++ -mmacosx-version-min=10.14 -arch x86_64 -arch arm64 -I/Users/frosch/binpackage/universal/qls_cip/3.4 -L/Users/frosch/binpackage/universal/qls_cip/3.4 -lqlicenseclient -framework CoreFoundation -framework Foundation -o main main.cpp
      

      (Not all flags are strictly necessary; this tries to stay close to how Squish is compiled.)

      This is the beginning of the missing symbol list, the whole list is attached:

      Undefined symbols for architecture x86_64:
        "QLicenseCore::LocalQtAccount::readFromDisk()", referenced from:
            QLicenseClient::LicenseClientPrivate::getJwt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in libqlicenseclient.a[x86_64][5](licenseclient_p.cpp.o)
        "QLicenseCore::LocalQtAccount::LocalQtAccount()", referenced from:
            QLicenseClient::LicenseClientPrivate::getJwt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in libqlicenseclient.a[x86_64][5](licenseclient_p.cpp.o)
        "QLicenseCore::LocalQtAccount::~LocalQtAccount()", referenced from:
            QLicenseClient::LicenseClientPrivate::getJwt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in libqlicenseclient.a[x86_64][5](licenseclient_p.cpp.o)
            QLicenseClient::LicenseClientPrivate::getJwt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in libqlicenseclient.a[x86_64][5](licenseclient_p.cpp.o)
        "QLicenseCore::LockFileLocker::LockFileLocker(QLicenseCore::LockFile*)", referenced from:
            QLicenseClient::LicenseClientPrivate::serviceAvailable() in libqlicenseclient.a[x86_64][5](licenseclient_p.cpp.o)
      

      If I change the compiler invocation to only build for arm64, I get the same list, so they seem to be missing for both architectures.

      Attachments

        For Gerrit Dashboard: QLS-1789
        # Subject Branch Project Status CR V

        Activity

          People

            arttu.tarkiainen Arttu Tarkiainen
            makummer Marcel Kummer
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes