Uploaded image for project: 'Qbs ("Cubes")'
  1. Qbs ("Cubes")
  2. QBS-1456

TestBlackboxApple::aggregateDependencyLinking fails on macOS 10.13

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Not Evaluated
    • Resolution: Done
    • Affects Version/s: 1.13.1
    • Fix Version/s: None
    • Component/s: Platforms: Darwin
    • Labels:
      None
    • Platform/s:
      macOS
    • Commits:
      7d9c004b9692ee681f4778a1062e40ee1211f7e5 (qbs/qbs/master)

      Description

      The test checks that we link the aggregated library only once. It is disabled since macOS 10.14 and cannot be reproduced on it (i.e. if one removes the QSKIP(), the test will pass on 10.14).
      What I've found.
      Qbs invokes two identical commands while trying to link an application (just-app.app):

      QDEBUG : TestBlackboxApple::aggregateDependencyLinking() "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Wl,-arch,x86_64,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -target x86_64-apple-macosx-macho -o /Users/travis/build/ABBAPOH/qbs/default/install-root/usr/local/tests/auto/blackbox-apple/testWorkDir/aggregateDependencyLinking/default/just-app.562bd5ea/just_app /Users/travis/build/ABBAPOH/qbs/default/install-root/usr/local/tests/auto/blackbox-apple/testWorkDir/aggregateDependencyLinking/default/just-app.562bd5ea/3a52ce780950d4d9/app.c.o /Users/travis/build/ABBAPOH/qbs/default/install-root/usr/local/tests/auto/blackbox-apple/testWorkDir/aggregateDependencyLinking/default/multi-arch-lib.ae623fb6/libmulti_arch_lib.a"
      QDEBUG : TestBlackboxApple::aggregateDependencyLinking() "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Wl,-arch,x86_64,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -target x86_64-apple-macosx-macho -o /Users/travis/build/ABBAPOH/qbs/default/install-root/usr/local/tests/auto/blackbox-apple/testWorkDir/aggregateDependencyLinking/default/just-app.562bd5ea/just_app /Users/travis/build/ABBAPOH/qbs/default/install-root/usr/local/tests/auto/blackbox-apple/testWorkDir/aggregateDependencyLinking/default/just-app.562bd5ea/3a52ce780950d4d9/app.c.o /Users/travis/build/ABBAPOH/qbs/default/install-root/usr/local/tests/auto/blackbox-apple/testWorkDir/aggregateDependencyLinking/default/multi-arch-lib.ae623fb6/libmulti_arch_lib.a"
      QDEBUG : TestBlackboxApple::aggregateDependencyLinking() ""
      QDEBUG : TestBlackboxApple::aggregateDependencyLinking() "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil -o /Users/travis/build/ABBAPOH/qbs/default/install-root/usr/local/tests/auto/blackbox-apple/testWorkDir/aggregateDependencyLinking/default/just-app.562bd5ea/just_app.dSYM /Users/travis/build/ABBAPOH/qbs/default/install-root/usr/local/tests/auto/blackbox-apple/testWorkDir/aggregateDependencyLinking/default/just-app.562bd5ea/just_app"
      QDEBUG : TestBlackboxApple::aggregateDependencyLinking() "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip -S /Users/travis/build/ABBAPOH/qbs/default/install-root/usr/local/tests/auto/blackbox-apple/testWorkDir/aggregateDependencyLinking/default/just-app.562bd5ea/just_app"
      QDEBUG : TestBlackboxApple::aggregateDependencyLinking() "Build done for configuration default."
      

      Totally, 4 commands are invoked - link, link duplicate, create dsym, stip.

      Which is weird, because prepareLinker() in gcc.js returns only 3 commands (link, dsym, strip):

      QDEBUG : TestBlackboxApple::aggregateDependencyLinking() "prepareLinker: commands.length = 3"
      QDEBUG : TestBlackboxApple::aggregateDependencyLinking() "prepareLinker: commands[0] = linking just_app"
      QDEBUG : TestBlackboxApple::aggregateDependencyLinking() "prepareLinker: commands[1] = generating dSYM for just_app"
      QDEBUG : TestBlackboxApple::aggregateDependencyLinking() "prepareLinker: commands[2] = "
      

      I am not sure how to proceed and where to look to find why this link command is duplicated.

      Full log can be found here

        Attachments

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

          Activity

            People

            Assignee:
            kandeler Christian Kandeler
            Reporter:
            arch Ivan Komissarov
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes