From 91f110f50ee66e0e8de7d4d82e9a4068b10afc91 Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Wed, 15 Apr 2020 14:17:40 -0400 Subject: [PATCH] [libc++] Adjust XFAIL markup for modules tests on single-threaded systems When building these tests without modules in the whole test suite, the __config_site macro definitions are not included anymore in the %{compile_flags}. This causes the _LIBCPP_HAS_NO_THREADS define not to be picked up, and the test to XPASS on single-threaded systems. This is a stop-gap measure to fix the build bots, however the proper solution would be to always pass the __config_site defines as compiler macros, whether we build with modules or not. --- libcxx/test/libcxx/modules/cinttypes_exports.compile.pass.cpp | 5 ++++- libcxx/test/libcxx/modules/clocale_exports.compile.pass.cpp | 5 ++++- libcxx/test/libcxx/modules/cstdint_exports.compile.pass.cpp | 5 ++++- libcxx/test/libcxx/modules/inttypes_h_exports.compile.pass.cpp | 5 ++++- libcxx/test/libcxx/modules/stdint_h_exports.compile.pass.cpp | 5 ++++- libcxx/test/libcxx/modules/stds_include.sh.cpp | 7 +++++++ 6 files changed, 27 insertions(+), 5 deletions(-) diff --git a/libcxx/test/libcxx/modules/cinttypes_exports.compile.pass.cpp b/libcxx/test/libcxx/modules/cinttypes_exports.compile.pass.cpp index 57a5ba5..8037ba3 100644 --- a/libcxx/test/libcxx/modules/cinttypes_exports.compile.pass.cpp +++ b/libcxx/test/libcxx/modules/cinttypes_exports.compile.pass.cpp @@ -12,7 +12,10 @@ // FIXME: The header is not supported for single-threaded systems, // but still gets built as part of the 'std' module, which breaks the build. -// XFAIL: libcpp-has-no-threads +// The failure only shows up when modules are enabled AND we're building +// without threads, which is when the __config_site macro for _LIBCPP_HAS_NO_THREADS +// is honored. +// XFAIL: libcpp-has-no-threads && -fmodules // REQUIRES: modules-support // ADDITIONAL_COMPILE_FLAGS: -fmodules diff --git a/libcxx/test/libcxx/modules/clocale_exports.compile.pass.cpp b/libcxx/test/libcxx/modules/clocale_exports.compile.pass.cpp index 3b87b7b..f349985 100644 --- a/libcxx/test/libcxx/modules/clocale_exports.compile.pass.cpp +++ b/libcxx/test/libcxx/modules/clocale_exports.compile.pass.cpp @@ -12,7 +12,10 @@ // FIXME: The header is not supported for single-threaded systems, // but still gets built as part of the 'std' module, which breaks the build. -// XFAIL: libcpp-has-no-threads +// The failure only shows up when modules are enabled AND we're building +// without threads, which is when the __config_site macro for _LIBCPP_HAS_NO_THREADS +// is honored. +// XFAIL: libcpp-has-no-threads && -fmodules // UNSUPPORTED: c++98, c++03 diff --git a/libcxx/test/libcxx/modules/cstdint_exports.compile.pass.cpp b/libcxx/test/libcxx/modules/cstdint_exports.compile.pass.cpp index 0887b59..783670e 100644 --- a/libcxx/test/libcxx/modules/cstdint_exports.compile.pass.cpp +++ b/libcxx/test/libcxx/modules/cstdint_exports.compile.pass.cpp @@ -12,7 +12,10 @@ // FIXME: The header is not supported for single-threaded systems, // but still gets built as part of the 'std' module, which breaks the build. -// XFAIL: libcpp-has-no-threads +// The failure only shows up when modules are enabled AND we're building +// without threads, which is when the __config_site macro for _LIBCPP_HAS_NO_THREADS +// is honored. +// XFAIL: libcpp-has-no-threads && -fmodules // Test that re-exports diff --git a/libcxx/test/libcxx/modules/inttypes_h_exports.compile.pass.cpp b/libcxx/test/libcxx/modules/inttypes_h_exports.compile.pass.cpp index 0add4e1..f4000a2 100644 --- a/libcxx/test/libcxx/modules/inttypes_h_exports.compile.pass.cpp +++ b/libcxx/test/libcxx/modules/inttypes_h_exports.compile.pass.cpp @@ -12,7 +12,10 @@ // FIXME: The header is not supported for single-threaded systems, // but still gets built as part of the 'std' module, which breaks the build. -// XFAIL: libcpp-has-no-threads +// The failure only shows up when modules are enabled AND we're building +// without threads, which is when the __config_site macro for _LIBCPP_HAS_NO_THREADS +// is honored. +// XFAIL: libcpp-has-no-threads && -fmodules // Test that intypes.h re-exports stdint.h diff --git a/libcxx/test/libcxx/modules/stdint_h_exports.compile.pass.cpp b/libcxx/test/libcxx/modules/stdint_h_exports.compile.pass.cpp index b83e99b..2f0f4c4 100644 --- a/libcxx/test/libcxx/modules/stdint_h_exports.compile.pass.cpp +++ b/libcxx/test/libcxx/modules/stdint_h_exports.compile.pass.cpp @@ -8,7 +8,10 @@ // FIXME: The header is not supported for single-threaded systems, // but still gets built as part of the 'std' module, which breaks the build. -// XFAIL: libcpp-has-no-threads +// The failure only shows up when modules are enabled AND we're building +// without threads, which is when the __config_site macro for _LIBCPP_HAS_NO_THREADS +// is honored. +// XFAIL: libcpp-has-no-threads && -fmodules // Test that int8_t and the like are exported from stdint.h, not inttypes.h diff --git a/libcxx/test/libcxx/modules/stds_include.sh.cpp b/libcxx/test/libcxx/modules/stds_include.sh.cpp index 7ef29fc..d7c4eab 100644 --- a/libcxx/test/libcxx/modules/stds_include.sh.cpp +++ b/libcxx/test/libcxx/modules/stds_include.sh.cpp @@ -15,6 +15,13 @@ // are not modular // XFAIL: LIBCXX-WINDOWS-FIXME +// FIXME: The header is not supported for single-threaded systems, +// but still gets built as part of the 'std' module, which breaks the build. +// The failure only shows up when modules are enabled AND we're building +// without threads, which is when the __config_site macro for _LIBCPP_HAS_NO_THREADS +// is honored. +// XFAIL: libcpp-has-no-threads && -fmodules + // REQUIRES: modules-support // NOTE: The -std=XXX flag is present in %{flags}, so we overwrite it by passing it after %{flags}. -- 2.7.4