On Sat, Dec 26, 2020 at 06:47:10AM +0100, Sebastien Marie wrote: > On Sat, Dec 26, 2020 at 03:50:37AM +0000, Dimitri Karamazov wrote: > > Ping > > > > On Sat, Dec 19, 2020 at 01:45:25PM +0000, Dimitri Karamazov wrote: > > > While building http://www.openusd.org/ I get the following error. > > > This is specifically triggered when PXR_BUILD_MONOLITH option is set. > > > I couldn't find anything about this in the mailing-list so is this > > > something I can deal with? This is a problem for both base/ports clang. > > > > > > [1/91] : && /usr/ports/pobj/usd-20.11/bin/c++ -fPIC -Wall -pthread > > > -Wno-deprecated -Wno-deprecated-declarations -Wno-unused-local-typedefs > > > -Wno-unused-command-line-argument -O2 -pipe -DNDEBUG -shared > > > -Wl,-soname,libusd_ms.so -o libusd_ms.so > > > CMakeFiles/usd_ms.dir/usd_ms.cpp.o > > > -L/usr/ports/pobj/usd-20.11/build-amd64/pxr -L/usr/lib > > > -L/usr/local/lib -Wl,-z,origin,-rpath,::::::::::: -Wl,-force_load > > > -lusd_m -lm -ltbb -ltbb -ltbb -ltbb -ltbb -ltbb -ltbb -ltbb > > > -ltbb -Wl,-rpath-link,/usr/X11R6/lib:/usr/local/lib && : > > > FAILED: libusd_ms.so > > > : && /usr/ports/pobj/usd-20.11/bin/c++ -fPIC -Wall -pthread > > > -Wno-deprecated -Wno-deprecated-declarations -Wno-unused-local-typedefs > > > -Wno-unused-command-line-argument -O2 -pipe -DNDEBUG -shared > > > -Wl,-soname,libusd_ms.so -o libusd_ms.so > > > CMakeFiles/usd_ms.dir/usd_ms.cpp.o > > > -L/usr/ports/pobj/usd-20.11/build-amd64/pxr -L/usr/lib > > > -L/usr/local/lib -Wl,-z,origin,-rpath,::::::::::: -Wl,-force_load > > > -lusd_m -lm -ltbb -ltbb -ltbb -ltbb -ltbb -ltbb -ltbb -ltbb > > > -ltbb -Wl,-rpath-link,/usr/X11R6/lib:/usr/local/lib && : > > > ld: error: unknown argument '-force_load' > > from llvm/clang code source, -force_load option seems to be available in > Darwin toolchain: > > grepping "force_load" in whole src/, excluding m4 and configure files: > src/gnu/llvm/clang/include/clang/Driver/Options.td > src/gnu/llvm/clang/lib/Driver/ToolChains/Darwin.cpp > src/gnu/llvm/clang/tools/clang-shlib/CMakeLists.txt > src/gnu/llvm/lld/lib/Driver/DarwinLdDriver.cpp > src/gnu/llvm/lld/lib/Driver/DarwinLdOptions.td > > does usd has already been ported to OpenBSD ? it seems that this build > assumes a Darwin option to be present (which is not and so fail). > > you might want to found from where the option "-Wl,-force_load" comes > from. > I'm porting it. The build goes fine when I allow for separate shared libs but that is not in accordance with how blender wants it. It expects a single monolith library which is enabled with PXR_BUILD_MONOLITH.
If required can this option be enabled in the ports llvm? I'll see if I can do without it. I'm attaching the port below, if any one wants to take a look. The part which contains that option is: cmake/macros/Public.cmake function(pxr_toplevel_epilogue) # If we're building a shared monolithic library then link it against # usd_m. if(TARGET usd_ms AND NOT PXR_MONOLITHIC_IMPORT) # We need to use whole-archive to get all the symbols. Also note # that we carefully avoid adding the usd_m target itself by using # TARGET_FILE. Linking the usd_m target would link usd_m and # everything it links to. if(MSVC) target_link_libraries(usd_ms PRIVATE -WHOLEARCHIVE:$<TARGET_FILE:usd_m> ) elseif(CMAKE_COMPILER_IS_GNUCXX) target_link_libraries(usd_ms PRIVATE -Wl,--whole-archive $<TARGET_FILE:usd_m> -Wl,--no-whole-archive ) elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") target_link_libraries(usd_ms PRIVATE -Wl,-force_load $<TARGET_FILE:usd_m> ) endif() # Since we didn't add a dependency to usd_ms on usd_m above, we # manually add it here along with compile definitions, include # directories, etc add_dependencies(usd_ms usd_m) # Add the stuff we didn't get because we didn't link against the # usd_m target. target_compile_definitions(usd_ms PUBLIC $<TARGET_PROPERTY:usd_m,INTERFACE_COMPILE_DEFINITIONS> ) target_include_directories(usd_ms PUBLIC $<TARGET_PROPERTY:usd_m,INTERFACE_INCLUDE_DIRECTORIES> ) target_include_directories(usd_ms SYSTEM PUBLIC $<TARGET_PROPERTY:usd_m,INTERFACE_SYSTEM_INCLUDE_DIRECTORIES> ) foreach(lib ${PXR_OBJECT_LIBS}) get_property(libs TARGET ${lib} PROPERTY INTERFACE_LINK_LIBRARIES) target_link_libraries(usd_ms PUBLIC ${libs} ) endforeach() target_link_libraries(usd_ms PUBLIC ${PXR_MALLOC_LIBRARY} ${PXR_THREAD_LIBS} ) _pxr_init_rpath(rpath "${libInstallPrefix}") _pxr_add_rpath(rpath "${CMAKE_INSTALL_PREFIX}/${PXR_INSTALL_SUBDIR}/lib") _pxr_add_rpath(rpath "${CMAKE_INSTALL_PREFIX}/lib") _pxr_install_rpath(rpath usd_ms) endif() # Setup the plugins in the top epilogue to ensure that everybody has had a # chance to update PXR_EXTRA_PLUGINS with their plugin paths. pxr_setup_plugins() endfunction() # pxr_toplevel_epilogue regards, Dimitri
usd.tar.gz
Description: Binary data