mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-25 06:40:18 +00:00
Define new/delete in libc++ when using libcxxrt
Always turn on LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS, if libcxxrt is used as the C++ ABI library, since libcxxrt does not provide the full set ofnew and delete operators. In particular, the aligned versions of these operators are completely missing. This primarily addresses builds on FreeBSD, as this platform uses libcxxrt by default. Also, attempt to provide a FreeBSD.cmake cache file, with hopefully sane settings, partially copied from the Apple.cmake cache file. This needs more work, probably some additions to ci build scripts (although I am not aware of any 'official' FreeBSD build bots). Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D96720
This commit is contained in:
parent
4d700fb060
commit
328261019f
@ -121,6 +121,8 @@ elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxrt")
|
||||
if(NOT LIBCXX_CXX_ABI_INCLUDE_PATHS)
|
||||
set(LIBCXX_CXX_ABI_INCLUDE_PATHS "/usr/include/c++/v1")
|
||||
endif()
|
||||
# libcxxrt does not provide aligned new and delete operators
|
||||
set(LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS ON)
|
||||
setup_abi_lib(
|
||||
"-DLIBCXXRT"
|
||||
"cxxrt" "cxxrt" "cxxabi.h;unwind.h;unwind-arm.h;unwind-itanium.h" ""
|
||||
|
9
libcxx/cmake/caches/FreeBSD.cmake
Normal file
9
libcxx/cmake/caches/FreeBSD.cmake
Normal file
@ -0,0 +1,9 @@
|
||||
set(CMAKE_BUILD_TYPE Release CACHE STRING "")
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON CACHE BOOL "")
|
||||
|
||||
set(LIBCXX_ENABLE_ASSERTIONS OFF CACHE BOOL "")
|
||||
set(LIBCXX_ABI_VERSION "1" CACHE STRING "")
|
||||
set(LIBCXX_ENABLE_STATIC ON CACHE BOOL "")
|
||||
set(LIBCXX_ENABLE_SHARED ON CACHE BOOL "")
|
||||
set(LIBCXX_CXX_ABI libcxxrt CACHE STRING "")
|
||||
set(LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS ON CACHE BOOL "")
|
Loading…
Reference in New Issue
Block a user