forked from OSchip/llvm-project
Allow passing additional compiler/linker flags for the tests
Summary: These flags can be specified using the CMake variables LIBCXX_TEST_LINKER_FLAGS and LIBCXX_TEST_COMPILER_FLAGS. When building the tests for CHERI I need to pass additional flags (such as -mabi=n64 or -mabi=purecap) to the compiler for our test configurations Reviewers: EricWF Reviewed By: EricWF Subscribers: christof, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D42139 llvm-svn: 325914
This commit is contained in:
parent
d43f40df1c
commit
504d23551e
|
@ -9,6 +9,11 @@ endmacro()
|
||||||
set(LIBCXX_LIT_VARIANT "libcxx" CACHE STRING
|
set(LIBCXX_LIT_VARIANT "libcxx" CACHE STRING
|
||||||
"Configuration variant to use for LIT.")
|
"Configuration variant to use for LIT.")
|
||||||
|
|
||||||
|
set(LIBCXX_TEST_LINKER_FLAGS "" CACHE STRING
|
||||||
|
"Additonal linker flags to pass when compiling the tests")
|
||||||
|
set(LIBCXX_TEST_COMPILER_FLAGS "" CACHE STRING
|
||||||
|
"Additonal linker flags to pass when compiling the tests")
|
||||||
|
|
||||||
# The tests shouldn't link to any ABI library when it has been linked into
|
# The tests shouldn't link to any ABI library when it has been linked into
|
||||||
# libc++ statically or via a linker script.
|
# libc++ statically or via a linker script.
|
||||||
if (LIBCXX_ENABLE_STATIC_ABI_LIBRARY OR LIBCXX_ENABLE_ABI_LINKER_SCRIPT)
|
if (LIBCXX_ENABLE_STATIC_ABI_LIBRARY OR LIBCXX_ENABLE_ABI_LINKER_SCRIPT)
|
||||||
|
|
|
@ -22,6 +22,9 @@ config.sysroot = "@LIBCXX_SYSROOT@"
|
||||||
config.gcc_toolchain = "@LIBCXX_GCC_TOOLCHAIN@"
|
config.gcc_toolchain = "@LIBCXX_GCC_TOOLCHAIN@"
|
||||||
config.generate_coverage = "@LIBCXX_GENERATE_COVERAGE@"
|
config.generate_coverage = "@LIBCXX_GENERATE_COVERAGE@"
|
||||||
config.target_info = "@LIBCXX_TARGET_INFO@"
|
config.target_info = "@LIBCXX_TARGET_INFO@"
|
||||||
|
config.test_linker_flags = "@LIBCXX_TEST_LINKER_FLAGS@"
|
||||||
|
config.test_compiler_flags = "@LIBCXX_TEST_COMPILER_FLAGS@"
|
||||||
|
|
||||||
config.executor = "@LIBCXX_EXECUTOR@"
|
config.executor = "@LIBCXX_EXECUTOR@"
|
||||||
config.llvm_unwinder = "@LIBCXXABI_USE_LLVM_UNWINDER@"
|
config.llvm_unwinder = "@LIBCXXABI_USE_LLVM_UNWINDER@"
|
||||||
config.compiler_rt = "@LIBCXX_USE_COMPILER_RT@"
|
config.compiler_rt = "@LIBCXX_USE_COMPILER_RT@"
|
||||||
|
|
|
@ -510,6 +510,9 @@ class Configuration(object):
|
||||||
# and so that those tests don't have to be changed to tolerate
|
# and so that those tests don't have to be changed to tolerate
|
||||||
# this insanity.
|
# this insanity.
|
||||||
self.cxx.compile_flags += ['-DNOMINMAX']
|
self.cxx.compile_flags += ['-DNOMINMAX']
|
||||||
|
additional_flags = self.get_lit_conf('test_compiler_flags')
|
||||||
|
if additional_flags:
|
||||||
|
self.cxx.compile_flags += shlex.split(additional_flags)
|
||||||
|
|
||||||
def configure_default_compile_flags(self):
|
def configure_default_compile_flags(self):
|
||||||
# Try and get the std version from the command line. Fall back to
|
# Try and get the std version from the command line. Fall back to
|
||||||
|
@ -794,6 +797,9 @@ class Configuration(object):
|
||||||
self.use_system_cxx_lib]
|
self.use_system_cxx_lib]
|
||||||
if self.is_windows and self.link_shared:
|
if self.is_windows and self.link_shared:
|
||||||
self.add_path(self.cxx.compile_env, self.use_system_cxx_lib)
|
self.add_path(self.cxx.compile_env, self.use_system_cxx_lib)
|
||||||
|
additional_flags = self.get_lit_conf('test_linker_flags')
|
||||||
|
if additional_flags:
|
||||||
|
self.cxx.link_flags += shlex.split(additional_flags)
|
||||||
|
|
||||||
def configure_link_flags_abi_library_path(self):
|
def configure_link_flags_abi_library_path(self):
|
||||||
# Configure ABI library paths.
|
# Configure ABI library paths.
|
||||||
|
|
Loading…
Reference in New Issue