[libc++][CMake] Always provide new/delete in libc++ unless specified otherwise

Summary:
Let's not try to be clever and detect it based on the libc++abi setting.
The only build that puts new/delete in libc++abi is Apple's and we set
this CMake option explicitly in both libc++ and libc++abi. Complicated
dependent options hurt, let's avoid them when possible.

Reviewers: phosek, EricWF

Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D60797

llvm-svn: 358671
This commit is contained in:
Louis Dionne 2019-04-18 14:47:46 +00:00
parent 52c0f55d61
commit 17a75f7e55
1 changed files with 2 additions and 12 deletions

View File

@ -197,20 +197,10 @@ option(LIBCXX_ENABLE_ABI_LINKER_SCRIPT
"Use and install a linker script for the given ABI library"
${ENABLE_LINKER_SCRIPT_DEFAULT_VALUE})
set(ENABLE_NEW_DELETE_DEFAULT ON)
if (LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS)
# FIXME: This option should default to off. Unfortunatly GCC 4.9 fails to link
# programs due to undefined references to new/delete in libc++abi so to work
# around this libc++abi currently defaults LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS
# to ON. Once the GCC bug has been worked around this option should be changed
# back to OFF.
set(ENABLE_NEW_DELETE_DEFAULT ON)
endif()
option(LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS
"Build libc++ with definitions for operator new/delete. This option can
be used to disable the definitions when libc++abi is expected to provide
them" ${ENABLE_NEW_DELETE_DEFAULT})
be used to disable the definitions when libc++abi is expected to provide
them" ON)
# Build libc++abi with libunwind. We need this option to determine whether to
# link with libunwind or libgcc_s while running the test cases.