Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-105926 Qt should support reproducible builds
  3. QTBUG-105868

qdoc and lupdate have custom-library-search-path RUNPATH towards llvm libdir

    XMLWordPrintable

Details

    Description

      When building for linux, the qdoc and lupdate binaries have a RUNPATH with full path to non Qt libraries. Typically for clang/llvm

      $ chrpath /usr/lib/qt-android-6.3-host/bin/qdoc
      
      /usr/lib/qt-android-6.3-host/bin/qdoc: RUNPATH=$ORIGIN/../lib:/usr/lib/llvm-11/lib
      

      Not sure whether this is normal or not, but the debian lintian checker reports such an error custom-library-search-path See: https://lintian.debian.org/tags/custom-library-search-path

      Build command for these binaries is

      [4120/5399] : && /usr/lib/ccache/c++ -g -O2 -ffile-prefix-map=/builds/bastif/qt-android/debian/output/source_dir=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DNDEBUG -O2 -Wl,-z,relro -Wl,-z,now     -Wl,--enable-new-dtags qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/lupdate_autogen/mocs_compilation.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/numerus.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/po.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/projectdescriptionreader.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/qm.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/qph.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/qrcreader.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/runqttool.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/simtexth.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/translator.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/translatormessage.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/ts.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/xliff.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/xmlparser.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/cpp.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/java.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/python.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/main.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/merge.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/ui.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/qdeclarative.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/clangtoolastreader.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/cpp_clang.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/lupdatepreprocessoraction.cpp.o -o qtbase/bin/lupdate  -Wl,-rpath,/builds/bastif/qt-android/debian/output/source_dir/debian/build-host/qtbase/lib:/usr/lib/llvm-11/lib:  qtbase/lib/libQt6Qml.so.6.3.1  qtbase/lib/libQt6Network.so.6.3.1  qtbase/lib/libQt6Core.so.6.3.1  /usr/lib/llvm-11/lib/libclang-11.so.1  /usr/lib/llvm-11/lib/libclang-cpp.so.11  /usr/lib/llvm-11/lib/libLLVM-11.so.1  -lpthread && :
      
      [4663/5399] : && /usr/lib/ccache/c++ -g -O2 -ffile-prefix-map=/builds/bastif/qt-android/debian/output/source_dir=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DNDEBUG -O2 -Wl,-z,relro -Wl,-z,now     -Wl,--enable-new-dtags qttools/src/qdoc/CMakeFiles/qdoc.dir/qdoc_autogen/mocs_compilation.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/aggregate.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/atom.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/clangcodeparser.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/classnode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/codechunk.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/codemarker.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/codeparser.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/collectionnode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/config.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/cppcodemarker.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/cppcodeparser.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/doc.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/docbookgenerator.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/docparser.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/docprivate.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/editdistance.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/enumnode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/externalpagenode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/functionnode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/generator.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/headernode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/helpprojectwriter.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/htmlgenerator.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/jscodemarker.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/location.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/main.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/manifestwriter.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/namespacenode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/node.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/openedlist.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/pagenode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/parameters.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/propertynode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/proxynode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/puredocparser.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/qdoccommandlineparser.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/qdocdatabase.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/qdocindexfiles.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/qmlcodemarker.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/qmlcodeparser.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/qmlmarkupvisitor.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/qmlpropertynode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/qmltypenode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/qmlvisitor.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/quoter.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/relatedclass.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/sections.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/sharedcommentnode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/tagfilewriter.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/text.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/tokenizer.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/tree.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/typedefnode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/usingclause.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/utilities.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/variablenode.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/webxmlgenerator.cpp.o qttools/src/qdoc/CMakeFiles/qdoc.dir/xmlgenerator.cpp.o -o qtbase/bin/qdoc  -Wl,-rpath,/usr/lib/llvm-11/lib:/builds/bastif/qt-android/debian/output/source_dir/debian/build-host/qtbase/lib:  /usr/lib/llvm-11/lib/libclang-11.so.1  /usr/lib/llvm-11/lib/libclang-cpp.so.11  /usr/lib/llvm-11/lib/libLLVM-11.so.1  qtbase/lib/libQt6Qml.so.6.3.1  qtbase/lib/libQt6Network.so.6.3.1  qtbase/lib/libQt6Core.so.6.3.1  -lpthread && :
      

      BTW, qt configuration was invoked with the parameter:

      configure \
         \
        -prefix /usr/lib/qt-android-6.3-host \
        --pch=no \
        -skip qt3d \
        -skip qt5compat \
        -skip qtcharts \
        -skip qtcoap \
        -skip qtconnectivity \
        -skip qtdatavis3d \
        -skip qtdoc \
        -skip qtimageformats \
        -skip qtlottie \
        -skip qtmqtt \
        -skip qtmultimedia \
        -skip qtnetworkauth \
        -skip qtopcua \
        -skip qtpositioning \
        -skip qtquicktimeline \
        -skip qtsensors \
        -skip qtserialbus \
        -skip qtserialport \
        -skip qttranslations \
        -skip qtvirtualkeyboard \
        -skip qtwayland \
        -skip qtwebchannel \
        -skip qtwebengine \
        -skip qtwebsockets \
        -skip qtwebview \
        --widgets=yes \
        --accessibility=no \
        --ssl=no \
        --cups=no \
        --fontconfig=no \
        --freetype=system \
        --zlib=system \
        --libpng=system \
        --libjpeg=system \
        --harfbuzz=no \
        --opengl=no \
        --gtk=no \
        --egl=no \
        --dbus=no \
        -no-sql-db2 \
        -no-sql-ibase \
        -no-sql-mysql \
        -no-sql-oci \
        -no-sql-odbc \
        -no-sql-psql \
        -no-sql-sqlite \
        -- \
        -DFEATURE_clang=ON \
        -DFEATURE_clangcpp=ON \
        -DTEST_libclang=ON \
        -DCMAKE_SKIP_INSTALL_RPATH=ON # For reproducible build. See https://reproducible-builds.org/docs/deterministic-build-systems/
      

      Attachments

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

        Activity

          People

            qtbuildsystem Qt Build System Team
            ban F S
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes