On Thu, Mar 08, 2018 at 02:02:45AM +1100, Jonathan Gray wrote: > In trying to build rust on a system with a llvm package built with > LLVM_ENABLE_FFI that includes a shared libLLVM linked against libffi > > https://marc.info/?l=3Dopenbsd-ports&m=3D151870701912987&w=3D2
LLVM_ENABLE_FFI was previously False not True. As I see no need to enable it I'll likely commit this after verifying llvm and rust build. Index: Makefile =================================================================== RCS file: /cvs/ports/devel/llvm/Makefile,v retrieving revision 1.172 diff -u -p -r1.172 Makefile --- Makefile 2 Feb 2018 13:33:11 -0000 1.172 +++ Makefile 8 Mar 2018 14:07:09 -0000 @@ -18,7 +18,7 @@ DISTNAME = llvm-${LLVM_V}.src PKGNAME = llvm-${LLVM_V} PKGNAME-main = llvm-${LLVM_V} PKGNAME-python = py-llvm-${LLVM_V} -REVISION-main = 1 +REVISION-main = 2 CATEGORIES = devel DISTFILES = llvm-${LLVM_V}.src${EXTRACT_SUFX} \ cfe-${LLVM_V}.src${EXTRACT_SUFX} \ @@ -57,8 +57,10 @@ LIB_DEPENDS-python = ${BUILD_PKGPATH},-m SEPARATE_BUILD = Yes CONFIGURE_ARGS = -DLLVM_ENABLE_FFI:Bool=False \ -DLLVM_ENABLE_TERMINFO:Bool=False \ - -DLLVM_REQUIRES_RTTI:Bool=True \ + -DLLVM_ENABLE_RTTI:Bool=True \ -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2:Bool=True \ + -DLLVM_LINK_LLVM_DYLIB:Bool=True \ + -DLLVM_BUILD_LLVM_DYLIB:Bool=True \ -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND \ -DBacktrace_LIBRARY='' Index: patches/patch-tools_llvm-shlib_CMakeLists_txt =================================================================== RCS file: patches/patch-tools_llvm-shlib_CMakeLists_txt diff -N patches/patch-tools_llvm-shlib_CMakeLists_txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-tools_llvm-shlib_CMakeLists_txt 8 Mar 2018 14:07:09 -0000 @@ -0,0 +1,26 @@ +$OpenBSD$ + +fix symbols not getting added to shared library + +Index: tools/llvm-shlib/CMakeLists.txt +--- tools/llvm-shlib/CMakeLists.txt.orig ++++ tools/llvm-shlib/CMakeLists.txt +@@ -37,15 +37,15 @@ endif() + add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${SOURCES}) + + list(REMOVE_DUPLICATES LIB_NAMES) +-if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU) OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "DragonFly")) # FIXME: It should be "GNU ld for elf" ++if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") ++ set(LIB_NAMES -Wl,-all_load ${LIB_NAMES}) ++else() + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/simple_version_script.map.in + ${LLVM_LIBRARY_DIR}/tools/llvm-shlib/simple_version_script.map) + + # GNU ld doesn't resolve symbols in the version script. + set(LIB_NAMES -Wl,--version-script,${LLVM_LIBRARY_DIR}/tools/llvm-shlib/simple_version_script.map -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive) +-elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") +- set(LIB_NAMES -Wl,-all_load ${LIB_NAMES}) + endif() + + target_link_libraries(LLVM PRIVATE ${LIB_NAMES}) Index: pkg/PLIST-main =================================================================== RCS file: /cvs/ports/devel/llvm/pkg/PLIST-main,v retrieving revision 1.5 diff -u -p -r1.5 PLIST-main --- pkg/PLIST-main 8 Sep 2017 05:58:19 -0000 1.5 +++ pkg/PLIST-main 8 Mar 2018 14:07:10 -0000 @@ -1939,6 +1939,9 @@ lib/cmake/llvm/LLVMInstallSymlink.cmake lib/cmake/llvm/LLVMProcessSources.cmake lib/cmake/llvm/TableGen.cmake lib/cmake/llvm/VersionFromVCS.cmake +lib/libLLVM-${LLVM_V}.so +lib/libLLVM-5.0.so +lib/libLLVM.so lib/libLLVMAArch64AsmParser.a lib/libLLVMAArch64AsmPrinter.a lib/libLLVMAArch64CodeGen.a