Fix building and running tests when LIBCXX_ENABLE_EXCEPTIONS or LIBCXX_ENABLE_RTTI are turned off.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@224095 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Fiselier 2014-12-12 02:36:23 +00:00
parent 08e3a7887f
commit 01f6a1410c
4 changed files with 16 additions and 1 deletions

View File

@ -111,7 +111,7 @@ __shared_weak_count::lock() _NOEXCEPT
return 0; return 0;
} }
#ifndef _LIBCPP_NO_RTTI #if !defined(_LIBCPP_NO_RTTI) || !defined(_LIBCPP_BUILD_STATIC)
const void* const void*
__shared_weak_count::__get_deleter(const type_info&) const _NOEXCEPT __shared_weak_count::__get_deleter(const type_info&) const _NOEXCEPT

View File

@ -27,6 +27,8 @@ if(PYTHONINTERP_FOUND)
set(LIBCXX_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..) set(LIBCXX_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..)
set(LIBCXX_BINARY_DIR ${CMAKE_BINARY_DIR}) set(LIBCXX_BINARY_DIR ${CMAKE_BINARY_DIR})
set(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE}) set(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE})
pythonize_bool(LIBCXX_ENABLE_EXCEPTIONS)
pythonize_bool(LIBCXX_ENABLE_RTTI)
pythonize_bool(LIBCXX_ENABLE_SHARED) pythonize_bool(LIBCXX_ENABLE_SHARED)
pythonize_bool(LIBCXX_ENABLE_THREADS) pythonize_bool(LIBCXX_ENABLE_THREADS)
pythonize_bool(LIBCXX_ENABLE_MONOTONIC_CLOCK) pythonize_bool(LIBCXX_ENABLE_MONOTONIC_CLOCK)

View File

@ -426,6 +426,16 @@ class Configuration(object):
self.compile_flags += ['-D__STDC_FORMAT_MACROS', self.compile_flags += ['-D__STDC_FORMAT_MACROS',
'-D__STDC_LIMIT_MACROS', '-D__STDC_LIMIT_MACROS',
'-D__STDC_CONSTANT_MACROS'] '-D__STDC_CONSTANT_MACROS']
enable_exceptions = self.get_lit_bool('enable_exceptions', True)
if enable_exceptions:
self.config.available_features.add('exceptions')
else:
self.compile_flags += ['-fno-exceptions']
enable_rtti = self.get_lit_bool('enable_rtti', True)
if enable_rtti:
self.config.available_features.add('rtti')
else:
self.compile_flags += ['-fno-rtti', '-D_LIBCPP_NO_RTTI']
# Configure threading features. # Configure threading features.
enable_threads = self.get_lit_bool('enable_threads', True) enable_threads = self.get_lit_bool('enable_threads', True)
enable_monotonic_clock = self.get_lit_bool('enable_monotonic_clock', True) enable_monotonic_clock = self.get_lit_bool('enable_monotonic_clock', True)
@ -439,6 +449,7 @@ class Configuration(object):
self.lit_config.fatal('enable_monotonic_clock cannot be false when' self.lit_config.fatal('enable_monotonic_clock cannot be false when'
' enable_threads is true.') ' enable_threads is true.')
def configure_link_flags(self): def configure_link_flags(self):
# Configure library search paths # Configure library search paths
abi_library_path = self.get_lit_conf('abi_library_path', '') abi_library_path = self.get_lit_conf('abi_library_path', '')

View File

@ -4,6 +4,8 @@ config.std = "@LIBCXX_STD_VERSION@"
config.libcxx_src_root = "@LIBCXX_SOURCE_DIR@" config.libcxx_src_root = "@LIBCXX_SOURCE_DIR@"
config.libcxx_obj_root = "@LIBCXX_BINARY_DIR@" config.libcxx_obj_root = "@LIBCXX_BINARY_DIR@"
config.python_executable = "@PYTHON_EXECUTABLE@" config.python_executable = "@PYTHON_EXECUTABLE@"
config.enable_exceptions = "@LIBCXX_ENABLE_EXCEPTIONS@"
config.enable_rtti = "@LIBCXX_ENABLE_RTTI@"
config.enable_shared = "@LIBCXX_ENABLE_SHARED@" config.enable_shared = "@LIBCXX_ENABLE_SHARED@"
config.enable_threads = "@LIBCXX_ENABLE_THREADS@" config.enable_threads = "@LIBCXX_ENABLE_THREADS@"
config.enable_monotonic_clock = "@LIBCXX_ENABLE_MONOTONIC_CLOCK@" config.enable_monotonic_clock = "@LIBCXX_ENABLE_MONOTONIC_CLOCK@"