[PATCH] D151013: [CMake] Add option to link LLVM/subproject executables
Aiden Grossman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 7 00:28:50 PDT 2023
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
aidengrossman marked an inline comment as done.
Closed by commit rG8df5841c2574: [CMake] Add option to link LLVM/subproject executables against LLVM libc (authored by aidengrossman).
Changed prior to commit:
https://reviews.llvm.org/D151013?vs=529195&id=529200#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D151013/new/
https://reviews.llvm.org/D151013
Files:
llvm/CMakeLists.txt
llvm/cmake/modules/AddLLVM.cmake
llvm/cmake/modules/HandleLLVMOptions.cmake
llvm/docs/CMake.rst
Index: llvm/docs/CMake.rst
===================================================================
--- llvm/docs/CMake.rst
+++ llvm/docs/CMake.rst
@@ -514,6 +514,11 @@
passed to invocations of both so that the project is built using libc++
instead of stdlibc++. Defaults to OFF.
+**LLVM_ENABLE_LLVM_LIBC**: BOOL
+ If the LLVM libc overlay is installed in a location where the host linker
+ can access it, all built executables will be linked against the LLVM libc
+ overlay before linking against the system libc. Defaults to OFF.
+
**LLVM_ENABLE_LIBPFM**:BOOL
Enable building with libpfm to support hardware counter measurements in LLVM
tools.
Index: llvm/cmake/modules/HandleLLVMOptions.cmake
===================================================================
--- llvm/cmake/modules/HandleLLVMOptions.cmake
+++ llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -1300,3 +1300,10 @@
set(LLVM_THIRD_PARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../third-party CACHE STRING
"Directory containing third party software used by LLVM (e.g. googletest)")
+
+if(LLVM_ENABLE_LLVM_LIBC)
+ check_library_exists(llvmlibc printf "" HAVE_LLVM_LIBC)
+ if(NOT HAVE_LLVM_LIBC)
+ message(WARNING "Unable to link against LLVM libc. LLVM will be built without linking against the LLVM libc overlay.")
+ endif()
+endif()
Index: llvm/cmake/modules/AddLLVM.cmake
===================================================================
--- llvm/cmake/modules/AddLLVM.cmake
+++ llvm/cmake/modules/AddLLVM.cmake
@@ -1029,6 +1029,10 @@
target_link_libraries(${name} PRIVATE ${LLVM_PTHREAD_LIB})
endif()
+ if(HAVE_LLVM_LIBC)
+ target_link_libraries(${name} PRIVATE llvmlibc)
+ endif()
+
llvm_codesign(${name} ENTITLEMENTS ${ARG_ENTITLEMENTS} BUNDLE_PATH ${ARG_BUNDLE_PATH})
endmacro(add_llvm_executable name)
Index: llvm/CMakeLists.txt
===================================================================
--- llvm/CMakeLists.txt
+++ llvm/CMakeLists.txt
@@ -558,6 +558,7 @@
endif()
option(LLVM_ENABLE_LOCAL_SUBMODULE_VISIBILITY "Compile with -fmodules-local-submodule-visibility." ON)
option(LLVM_ENABLE_LIBCXX "Use libc++ if available." OFF)
+option(LLVM_ENABLE_LLVM_LIBC "Set to on to link all LLVM executables against LLVM libc, assuming it is accessible by the host compiler." OFF)
option(LLVM_STATIC_LINK_CXX_STDLIB "Statically link the standard library." OFF)
option(LLVM_ENABLE_LLD "Use lld as C and C++ linker." OFF)
option(LLVM_ENABLE_PEDANTIC "Compile with pedantic enabled." ON)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D151013.529200.patch
Type: text/x-patch
Size: 2501 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230607/25db110f/attachment.bin>
More information about the llvm-commits
mailing list