diff --git a/libcxx/test/lit.site.cfg.in b/libcxx/test/lit.site.cfg.in --- a/libcxx/test/lit.site.cfg.in +++ b/libcxx/test/lit.site.cfg.in @@ -32,6 +32,7 @@ config.executor = "@LIBCXX_EXECUTOR@" config.llvm_unwinder = @LIBCXXABI_USE_LLVM_UNWINDER@ config.builtins_library = "@LIBCXX_BUILTINS_LIBRARY@" +config.use_compiler_rt = "@LIBCXX_USE_COMPILER_RT@" config.has_libatomic = @LIBCXX_HAS_ATOMIC_LIB@ config.debug_build = @LIBCXX_DEBUG_BUILD@ config.libcxxabi_shared = @LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI@ diff --git a/libcxx/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.float.pass.cpp b/libcxx/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.float.pass.cpp --- a/libcxx/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.float.pass.cpp +++ b/libcxx/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.float.pass.cpp @@ -7,6 +7,10 @@ //===----------------------------------------------------------------------===// // // UNSUPPORTED: c++03, c++11, c++14, c++17 +// +// subnormal floats are not implemented in compiler-rt builtins for AArch64. +// XFAIL: aarch64-linux-gnu && use_compiler_rt +// // // template diff --git a/libcxx/utils/libcxx/test/config.py b/libcxx/utils/libcxx/test/config.py --- a/libcxx/utils/libcxx/test/config.py +++ b/libcxx/utils/libcxx/test/config.py @@ -276,6 +276,12 @@ if libcxx_gdb and 'NOTFOUND' not in libcxx_gdb: self.config.available_features.add('libcxx_gdb') self.cxx.libcxx_gdb = libcxx_gdb + + if self.config.target_triple: + self.config.available_features.add(self.config.target_triple) + + if self.get_lit_conf('use_compiler_rt'): + self.config.available_features.add('use_compiler_rt') def configure_compile_flags(self): self.configure_default_compile_flags()