Bug 152640 - [CMake GTK OSX] webkit-gtk 2.11.2 fails to link libllvmForJSC.dylib on OS X due to bad link-line: ld: unknown option: --version-script=
Summary: [CMake GTK OSX] webkit-gtk 2.11.2 fails to link libllvmForJSC.dylib on OS X d...
Status: CLOSED DUPLICATE of bug 151915
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: Safari 9
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks: 126492
  Show dependency treegraph
 
Reported: 2016-01-01 14:41 PST by Jeremy Huddleston Sequoia
Modified: 2016-01-02 01:34 PST (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jeremy Huddleston Sequoia 2016-01-01 14:41:33 PST
I'm trying to build webkit-gtk 2.11.2 on OS X (the last version we had working was 2.4.9, before the move to cmake).  We are configuring as follows:

cmake -DCMAKE_INSTALL_PREFIX=/opt/local -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COLOR_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_INSTALL_RPATH=/opt/local/lib -DCMAKE_INSTALL_NAME_DIR=/opt/local/lib -DCMAKE_SYSTEM_PREFIX_PATH="/opt/local;/usr" -DCMAKE_MODULE_PATH=/opt/local/share/cmake/Modules -DCMAKE_FIND_FRAMEWORK=LAST -Wno-dev -DPORT=GTK -DENABLE_X11_TARGET=ON -DENABLE_QUARTZ_TARGET=OFF -DLLVM_CONFIG_EXE=/opt/local/bin/llvm-config-mp-3.7 -DENABLE_VIDEO=ON -DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.11" -DCMAKE_OSX_SYSROOT="/"

The build then fails at:

[  1%] Linking CXX shared library ../../lib/libllvmForJSC.dylib
cd /opt/local/var/macports/build/_Volumes_Home_jeremy_src_macports_trunk_dports_www_webkit-gtk-devel/webkit-gtk-devel/work/webkitgtk-2.11.2/Source/JavaScriptCore && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/llvmForJSC.dir/link.txt --verbose=1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++  -pipe -O0 -g3 -ftemplate-depth=256 -Wno-c++11-extensions -stdlib=libc++  -std=c++11 -Qunused-arguments -std=c++11 -Qunused-arguments -DNDEBUG -fno-exceptions -fno-strict-aliasing -fno-rtti -fno-exceptions -fno-strict-aliasing -fno-rtti -arch x86_64 -mmacosx-version-min=10.11 -dynamiclib -Wl,-headerpad_max_install_names  -L/opt/local/lib -Wl,-headerpad_max_install_names -o ../../lib/libllvmForJSC.dylib -install_name /opt/local/lib/libllvmForJSC.dylib CMakeFiles/llvmForJSC.dir/llvm/library/LLVMAnchor.cpp.o CMakeFiles/llvmForJSC.dir/llvm/library/LLVMExports.cpp.o CMakeFiles/llvmForJSC.dir/llvm/library/LLVMOverrides.cpp.o /opt/local/libexec/llvm-3.7/lib/libLLVMLTO.a /opt/local/libexec/llvm-3.7/lib/libLLVMObjCARCOpts.a /opt/local/libexec/llvm-3.7/lib/libLLVMLinker.a /opt/local/libexec/llvm-3.7/lib/libLLVMBitWriter.a /opt/local/libexec/llvm-3.7/lib/libLLVMIRReader.a /opt/local/libexec/llvm-3.7/lib/libLLVMBPFCodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMBPFDesc.a /opt/local/libexec/llvm-3.7/lib/libLLVMBPFInfo.a /opt/local/libexec/llvm-3.7/lib/libLLVMBPFAsmPrinter.a /opt/local/libexec/llvm-3.7/lib/libLLVMAMDGPUCodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMAMDGPUAsmParser.a /opt/local/libexec/llvm-3.7/lib/libLLVMAMDGPUUtils.a /opt/local/libexec/llvm-3.7/lib/libLLVMAMDGPUDesc.a /opt/local/libexec/llvm-3.7/lib/libLLVMAMDGPUInfo.a /opt/local/libexec/llvm-3.7/lib/libLLVMAMDGPUAsmPrinter.a /opt/local/libexec/llvm-3.7/lib/libLLVMSystemZDisassembler.a /opt/local/libexec/llvm-3.7/lib/libLLVMSystemZCodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMSystemZAsmParser.a /opt/local/libexec/llvm-3.7/lib/libLLVMSystemZDesc.a /opt/local/libexec/llvm-3.7/lib/libLLVMSystemZInfo.a /opt/local/libexec/llvm-3.7/lib/libLLVMSystemZAsmPrinter.a /opt/local/libexec/llvm-3.7/lib/libLLVMHexagonDisassembler.a /opt/local/libexec/llvm-3.7/lib/libLLVMHexagonCodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMHexagonDesc.a /opt/local/libexec/llvm-3.7/lib/libLLVMHexagonInfo.a /opt/local/libexec/llvm-3.7/lib/libLLVMNVPTXCodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMNVPTXDesc.a /opt/local/libexec/llvm-3.7/lib/libLLVMNVPTXInfo.a /opt/local/libexec/llvm-3.7/lib/libLLVMNVPTXAsmPrinter.a /opt/local/libexec/llvm-3.7/lib/libLLVMCppBackendCodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMCppBackendInfo.a /opt/local/libexec/llvm-3.7/lib/libLLVMMSP430CodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMMSP430Desc.a /opt/local/libexec/llvm-3.7/lib/libLLVMMSP430Info.a /opt/local/libexec/llvm-3.7/lib/libLLVMMSP430AsmPrinter.a /opt/local/libexec/llvm-3.7/lib/libLLVMXCoreDisassembler.a /opt/local/libexec/llvm-3.7/lib/libLLVMXCoreCodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMXCoreDesc.a /opt/local/libexec/llvm-3.7/lib/libLLVMXCoreInfo.a /opt/local/libexec/llvm-3.7/lib/libLLVMXCoreAsmPrinter.a /opt/local/libexec/llvm-3.7/lib/libLLVMMipsDisassembler.a /opt/local/libexec/llvm-3.7/lib/libLLVMMipsCodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMMipsAsmParser.a /opt/local/libexec/llvm-3.7/lib/libLLVMMipsDesc.a /opt/local/libexec/llvm-3.7/lib/libLLVMMipsInfo.a /opt/local/libexec/llvm-3.7/lib/libLLVMMipsAsmPrinter.a /opt/local/libexec/llvm-3.7/lib/libLLVMAArch64Disassembler.a /opt/local/libexec/llvm-3.7/lib/libLLVMAArch64CodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMAArch64AsmParser.a /opt/local/libexec/llvm-3.7/lib/libLLVMAArch64Desc.a /opt/local/libexec/llvm-3.7/lib/libLLVMAArch64Info.a /opt/local/libexec/llvm-3.7/lib/libLLVMAArch64AsmPrinter.a /opt/local/libexec/llvm-3.7/lib/libLLVMAArch64Utils.a /opt/local/libexec/llvm-3.7/lib/libLLVMARMDisassembler.a /opt/local/libexec/llvm-3.7/lib/libLLVMARMCodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMARMAsmParser.a /opt/local/libexec/llvm-3.7/lib/libLLVMARMDesc.a /opt/local/libexec/llvm-3.7/lib/libLLVMARMInfo.a /opt/local/libexec/llvm-3.7/lib/libLLVMARMAsmPrinter.a /opt/local/libexec/llvm-3.7/lib/libLLVMPowerPCDisassembler.a /opt/local/libexec/llvm-3.7/lib/libLLVMPowerPCCodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMPowerPCAsmParser.a /opt/local/libexec/llvm-3.7/lib/libLLVMPowerPCDesc.a /opt/local/libexec/llvm-3.7/lib/libLLVMPowerPCInfo.a /opt/local/libexec/llvm-3.7/lib/libLLVMPowerPCAsmPrinter.a /opt/local/libexec/llvm-3.7/lib/libLLVMSparcDisassembler.a /opt/local/libexec/llvm-3.7/lib/libLLVMSparcCodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMSparcAsmParser.a /opt/local/libexec/llvm-3.7/lib/libLLVMSparcDesc.a /opt/local/libexec/llvm-3.7/lib/libLLVMSparcInfo.a /opt/local/libexec/llvm-3.7/lib/libLLVMSparcAsmPrinter.a /opt/local/libexec/llvm-3.7/lib/libLLVMMIRParser.a /opt/local/libexec/llvm-3.7/lib/libLLVMAsmParser.a /opt/local/libexec/llvm-3.7/lib/libLLVMLibDriver.a /opt/local/libexec/llvm-3.7/lib/libLLVMOption.a /opt/local/libexec/llvm-3.7/lib/libLLVMDebugInfoPDB.a /opt/local/libexec/llvm-3.7/lib/libLLVMTableGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMOrcJIT.a /opt/local/libexec/llvm-3.7/lib/libLLVMLineEditor.a /opt/local/libexec/llvm-3.7/lib/libLLVMX86Disassembler.a /opt/local/libexec/llvm-3.7/lib/libLLVMX86AsmParser.a /opt/local/libexec/llvm-3.7/lib/libLLVMX86CodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMSelectionDAG.a /opt/local/libexec/llvm-3.7/lib/libLLVMAsmPrinter.a /opt/local/libexec/llvm-3.7/lib/libLLVMX86Desc.a /opt/local/libexec/llvm-3.7/lib/libLLVMMCDisassembler.a /opt/local/libexec/llvm-3.7/lib/libLLVMX86Info.a /opt/local/libexec/llvm-3.7/lib/libLLVMX86AsmPrinter.a /opt/local/libexec/llvm-3.7/lib/libLLVMX86Utils.a /opt/local/libexec/llvm-3.7/lib/libLLVMMCJIT.a /opt/local/libexec/llvm-3.7/lib/libLLVMDebugInfoDWARF.a /opt/local/libexec/llvm-3.7/lib/libLLVMPasses.a /opt/local/libexec/llvm-3.7/lib/libLLVMipo.a /opt/local/libexec/llvm-3.7/lib/libLLVMVectorize.a /opt/local/libexec/llvm-3.7/lib/libLLVMInterpreter.a /opt/local/libexec/llvm-3.7/lib/libLLVMExecutionEngine.a /opt/local/libexec/llvm-3.7/lib/libLLVMRuntimeDyld.a /opt/local/libexec/llvm-3.7/lib/libLLVMCodeGen.a /opt/local/libexec/llvm-3.7/lib/libLLVMTarget.a /opt/local/libexec/llvm-3.7/lib/libLLVMScalarOpts.a /opt/local/libexec/llvm-3.7/lib/libLLVMProfileData.a /opt/local/libexec/llvm-3.7/lib/libLLVMObject.a /opt/local/libexec/llvm-3.7/lib/libLLVMMCParser.a /opt/local/libexec/llvm-3.7/lib/libLLVMBitReader.a /opt/local/libexec/llvm-3.7/lib/libLLVMInstCombine.a /opt/local/libexec/llvm-3.7/lib/libLLVMInstrumentation.a /opt/local/libexec/llvm-3.7/lib/libLLVMTransformUtils.a /opt/local/libexec/llvm-3.7/lib/libLLVMipa.a /opt/local/libexec/llvm-3.7/lib/libLLVMMC.a /opt/local/libexec/llvm-3.7/lib/libLLVMAnalysis.a /opt/local/libexec/llvm-3.7/lib/libLLVMCore.a /opt/local/libexec/llvm-3.7/lib/libLLVMSupport.a -lz -lpthread -lffi -ledit -lcurses -lm -Wl,--version-script=/opt/local/var/macports/build/_Volumes_Home_jeremy_src_macports_trunk_dports_www_webkit-gtk-devel/webkit-gtk-devel/work/webkitgtk-2.11.2/Source/JavaScriptCore/llvm/library/libllvmForJSC.version -Wl,-rpath,/opt/local/lib 
ld: unknown option: --version-script=/opt/local/var/macports/build/_Volumes_Home_jeremy_src_macports_trunk_dports_www_webkit-gtk-devel/webkit-gtk-devel/work/webkitgtk-2.11.2/Source/JavaScriptCore/llvm/library/libllvmForJSC.version
clang: error: linker command failed with exit code 1 (use -v to see invocation)

---

There are two uses of --version-script in the tree.  The first one in Source/cmake/OptionsGTK.cmake looks to correctly guarded:

    if (NOT CMAKE_SYSTEM_NAME MATCHES "Darwin")
        set(WebKit2_VERSION_SCRIPT "-Wl,--version-script,${CMAKE_MODULE_PATH}/gtksymbols.filter")
    endif ()

There is another in Source/JavaScriptCore/CMakeLists.txt which is not correct:
    target_link_libraries(llvmForJSC ${LLVM_STATIC_LIBRARIES} ${LLVM_SYSTEM_LIBRARIES} -Wl,--version-script=${JAVASCRIPTCORE_DIR}/llvm/library/libllvmForJSC.version)
Comment 1 Philippe Normand 2016-01-02 01:30:51 PST

*** This bug has been marked as a duplicate of bug 151915 ***
Comment 2 Jeremy Huddleston Sequoia 2016-01-02 01:31:10 PST
Looks like this was fixed already in #151915.