Details
-
Bug
-
Resolution: Done
-
Not Evaluated
-
None
-
1.13.1
-
None
-
-
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