[runtimes] Remove support for GCC-style 32 bit multilib builds

This patch removes the ability to build the runtimes in the 32 bit
multilib configuration, i.e. using -m32. Instead of doing this, one
should cross-compile the runtimes for the appropriate target triple,
like we do for all other triples.

As it stands, -m32 has several issues, which all seem to be related to
the fact that it's not well supported by the operating systems that
libc++ support. The simplest path towards fixing this is to remove
support for the configuration, which is also the best course of action
if there is little interest for keeping that configuration. If there
is a desire to keep this configuration around, we'll need to do some
work to figure out the underlying issues and fix them.

Differential Revision: https://reviews.llvm.org/D114473
This commit is contained in:
Louis Dionne 2021-11-23 16:34:09 -05:00
parent c6fa4c481a
commit fa1c077b41
95 changed files with 23 additions and 341 deletions

View File

@ -261,7 +261,10 @@ option(LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS
option(LIBCXXABI_USE_LLVM_UNWINDER "Build and use the LLVM unwinder." OFF)
# Target options --------------------------------------------------------------
option(LIBCXX_BUILD_32_BITS "Build 32 bit libc++." ${LLVM_BUILD_32_BITS})
option(LIBCXX_BUILD_32_BITS "Build 32 bit multilib libc++. This option is not supported anymore when building the runtimes. Please specify a full triple instead." ${LLVM_BUILD_32_BITS})
if (LIBCXX_BUILD_32_BITS)
message(WARNING "LIBCXX_BUILD_32_BITS is not supported anymore when building the runtimes, please specify a full triple instead.")
endif()
if(CMAKE_CXX_COMPILER_TARGET)
set(LIBCXX_DEFAULT_TARGET_TRIPLE "${CMAKE_CXX_COMPILER_TARGET}")
@ -373,16 +376,6 @@ if (LLVM_USE_SANITIZER AND LIBCXX_GENERATE_COVERAGE)
message(FATAL_ERROR "LLVM_USE_SANITIZER cannot be used with LIBCXX_GENERATE_COVERAGE")
endif()
# Set LIBCXX_BUILD_32_BITS to (LIBCXX_BUILD_32_BITS OR LLVM_BUILD_32_BITS)
# and check that we can build with 32 bits if requested.
if (CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32)
if (LIBCXX_BUILD_32_BITS AND NOT LLVM_BUILD_32_BITS) # Don't duplicate the output from LLVM
message(STATUS "Building 32 bits executables and libraries.")
endif()
elseif(LIBCXX_BUILD_32_BITS)
message(FATAL_ERROR "LIBCXX_BUILD_32_BITS=ON is not supported on this platform.")
endif()
# Warn users that LIBCXX_ENABLE_STATIC_ABI_LIBRARY is an experimental option.
if (LIBCXX_ENABLE_STATIC_ABI_LIBRARY)
message(WARNING "LIBCXX_ENABLE_STATIC_ABI_LIBRARY is an experimental option")
@ -481,7 +474,6 @@ include(HandleLibcxxFlags)
# These flags get added to CMAKE_CXX_FLAGS and CMAKE_C_FLAGS so that
# 'config-ix' use them during feature checks. It also adds them to both
# 'LIBCXX_COMPILE_FLAGS' and 'LIBCXX_LINK_FLAGS'
add_target_flags_if(LIBCXX_BUILD_32_BITS "-m32")
if(LIBCXX_TARGET_TRIPLE)
add_target_flags_if_supported("--target=${LIBCXX_TARGET_TRIPLE}")
endif()

View File

@ -1 +0,0 @@
set(LLVM_BUILD_32_BITS ON CACHE BOOL "")

View File

@ -218,12 +218,6 @@ libc++ specific options
Build libc++ with assertions enabled.
.. option:: LIBCXX_BUILD_32_BITS:BOOL
**Default**: ``OFF``
Build libc++ as a 32 bit library. Also see `LLVM_BUILD_32_BITS`.
.. option:: LIBCXX_ENABLE_SHARED:BOOL
**Default**: ``ON``

View File

@ -148,3 +148,12 @@ Build System Changes
.. code-block:: bash
$ cmake -S <monorepo>/runtimes -B build -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" <LIBCXX-OPTIONS> <LIBCXXABI-OPTIONS>
- Support for building the runtimes using the GCC 32 bit multilib flag (``-m32``) has been removed. Support
for this had been flaky for a while, and we didn't know of anyone depending on this. Instead, please perform
a normal cross-compilation of the runtimes using the appropriate target, such as passing the following to
your bootstrapping build:
.. code-block:: bash
-DLLVM_RUNTIME_TARGETS=i386-unknown-linux

View File

@ -59,7 +59,6 @@ pythonize_bool(LIBCXX_ENABLE_SHARED)
pythonize_bool(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX)
pythonize_bool(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI)
pythonize_bool(LIBCXX_ENABLE_FILESYSTEM)
pythonize_bool(LIBCXX_BUILD_32_BITS)
pythonize_bool(LIBCXX_GENERATE_COVERAGE)
pythonize_bool(LIBCXXABI_ENABLE_SHARED)
pythonize_bool(LIBCXXABI_USE_LLVM_UNWINDER)
@ -113,10 +112,6 @@ if (LLVM_USE_SANITIZER)
serialize_lit_param(use_sanitizer "\"${LLVM_USE_SANITIZER}\"")
endif()
if (LIBCXX_BUILD_32_BITS)
serialize_lit_param(enable_32bit True)
endif()
foreach(param IN LISTS LIBCXX_TEST_PARAMS)
string(REGEX REPLACE "(.+)=(.+)" "\\1" name "${param}")
string(REGEX REPLACE "(.+)=(.+)" "\\2" value "${param}")

View File

@ -18,9 +18,6 @@
// This test assumes that time is stored as a 64 bit value when on MVS it is stored as 32 bit
// UNSUPPORTED: target={{.+}}-zos{{.*}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <filesystem>
// class directory_entry

View File

@ -16,9 +16,6 @@
// PR30202 was fixed starting in macosx10.13.
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <condition_variable>
// void notify_all_at_thread_exit(condition_variable& cond, unique_lock<mutex> lk);

View File

@ -13,9 +13,6 @@
// corresponding system libraries.
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <thread>
// template <class Rep, class Period>

View File

@ -16,9 +16,6 @@
// libraries.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <thread>
// template <class Rep, class Period>

View File

@ -12,9 +12,6 @@
// against already-released libc++'s.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.15
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <filesystem>
// bool copy_file(const path& from, const path& to);

View File

@ -14,9 +14,6 @@
// against already-released libc++'s.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.15
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <filesystem>
// file_time_type last_write_time(const path& p);

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// UNSUPPORTED: c++03
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <future>
// template <class F, class... Args>

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// UNSUPPORTED: c++03
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <future>
// class shared_future<R>

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// UNSUPPORTED: c++03
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <future>
// class shared_future<R>

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// UNSUPPORTED: c++03
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <future>
// class shared_future<R>

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// UNSUPPORTED: c++03
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <future>
// class future<R>

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// UNSUPPORTED: c++03
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <future>
// class future<R>

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// UNSUPPORTED: c++03
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <future>
// class future<R>

View File

@ -12,9 +12,6 @@
// This test requires the dylib support introduced in D68480, which shipped in macOS 11.0.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <barrier>
#include <barrier>

View File

@ -12,9 +12,6 @@
// This test requires the dylib support introduced in D68480, which shipped in macOS 11.0.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <barrier>
#include <barrier>

View File

@ -12,9 +12,6 @@
// This test requires the dylib support introduced in D68480, which shipped in macOS 11.0.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <barrier>
#include <barrier>

View File

@ -12,9 +12,6 @@
// This test requires the dylib support introduced in D68480, which shipped in macOS 11.0.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <barrier>
#include <barrier>

View File

@ -12,9 +12,6 @@
// unique_lock.
// UNSUPPORTED: c++03
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <condition_variable>
// void

View File

@ -8,9 +8,6 @@
//
// UNSUPPORTED: libcpp-has-no-threads
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <condition_variable>
// class condition_variable;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <condition_variable>
// class condition_variable;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <condition_variable>
// class condition_variable;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <condition_variable>
// class condition_variable;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <condition_variable>
// class condition_variable;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <condition_variable>
// class condition_variable_any;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <condition_variable>
// class condition_variable_any;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <condition_variable>
// class condition_variable_any;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <condition_variable>
// class condition_variable_any;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <condition_variable>
// class condition_variable_any;

View File

@ -12,9 +12,6 @@
// This test requires the dylib support introduced in D68480, which shipped in macOS 11.0.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <latch>
#include <latch>

View File

@ -12,9 +12,6 @@
// This test requires the dylib support introduced in D68480, which shipped in macOS 11.0.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <latch>
#include <latch>

View File

@ -13,9 +13,6 @@
// dylib support for shared_mutex was added in macosx10.12
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// template <class Mutex> class shared_lock;

View File

@ -12,9 +12,6 @@
// dylib support for shared_mutex was added in macosx10.12
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class timed_mutex;

View File

@ -12,9 +12,6 @@
// dylib support for shared_mutex was added in macosx10.12
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_timed_mutex;

View File

@ -13,9 +13,6 @@
// dylib support for shared_mutex was added in macosx10.12
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// template <class Mutex> class shared_lock;

View File

@ -13,9 +13,6 @@
// dylib support for shared_mutex was added in macosx10.12
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// template <class Mutex> class shared_lock;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// UNSUPPORTED: c++03, c++11
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// template <class Mutex> class shared_lock;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// template <class Mutex> class unique_lock;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class timed_mutex;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class timed_mutex;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// template <class Mutex> class unique_lock;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// template <class Mutex> class unique_lock;

View File

@ -8,9 +8,6 @@
//
// UNSUPPORTED: libcpp-has-no-threads
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// template <class Mutex> class unique_lock;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class mutex;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class mutex;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class recursive_mutex;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class recursive_mutex;

View File

@ -14,9 +14,6 @@
// shared_mutex was introduced in macosx10.12
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_mutex;

View File

@ -14,9 +14,6 @@
// shared_mutex was introduced in macosx10.12
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_mutex;

View File

@ -14,9 +14,6 @@
// shared_mutex was introduced in macosx10.12
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_mutex;

View File

@ -14,9 +14,6 @@
// shared_mutex was introduced in macosx10.12
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_mutex;

View File

@ -12,9 +12,6 @@
// shared_timed_mutex was introduced in macosx10.12
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_timed_mutex;

View File

@ -12,9 +12,6 @@
// shared_timed_mutex was introduced in macosx10.12
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_timed_mutex;

View File

@ -14,9 +14,6 @@
// shared_timed_mutex was introduced in macosx10.12
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_timed_mutex;

View File

@ -13,9 +13,6 @@
// shared_timed_mutex was introduced in macosx10.12
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_timed_mutex;

View File

@ -14,9 +14,6 @@
// shared_timed_mutex was introduced in macosx10.12
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_timed_mutex;

View File

@ -14,9 +14,6 @@
// shared_timed_mutex was introduced in macosx10.12
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_timed_mutex;

View File

@ -14,9 +14,6 @@
// shared_timed_mutex was introduced in macosx10.12
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_timed_mutex;

View File

@ -14,9 +14,6 @@
// shared_timed_mutex was introduced in macosx10.12
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_timed_mutex;

View File

@ -12,9 +12,6 @@
// shared_timed_mutex was introduced in macosx10.12
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <shared_mutex>
// class shared_timed_mutex;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class timed_mutex;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class timed_mutex;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class timed_mutex;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class timed_mutex;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class recursive_timed_mutex;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class recursive_timed_mutex;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class recursive_timed_mutex;

View File

@ -9,9 +9,6 @@
// UNSUPPORTED: libcpp-has-no-threads
// ALLOW_RETRIES: 2
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <mutex>
// class recursive_timed_mutex;

View File

@ -12,9 +12,6 @@
// This test requires the dylib support introduced in D68480, which shipped in macOS 11.0.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <semaphore>
#include <semaphore>

View File

@ -12,9 +12,6 @@
// This test requires the dylib support introduced in D68480, which shipped in macOS 11.0.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <semaphore>
#include <semaphore>

View File

@ -12,9 +12,6 @@
// This test requires the dylib support introduced in D68480, which shipped in macOS 11.0.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <semaphore>
#include <semaphore>

View File

@ -12,9 +12,6 @@
// This test requires the dylib support introduced in D68480, which shipped in macOS 11.0.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <semaphore>
#include <semaphore>

View File

@ -12,9 +12,6 @@
// This test requires the dylib support introduced in D68480, which shipped in macOS 11.0.
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14|15}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <semaphore>
#include <cassert>

View File

@ -8,9 +8,6 @@
//
// UNSUPPORTED: libcpp-has-no-threads
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <thread>
// template <class Clock, class Duration>

View File

@ -12,9 +12,6 @@
// Filesystem is supported on Apple platforms starting with macosx10.15.
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <chrono>
// file_clock

View File

@ -12,9 +12,6 @@
// Filesystem is supported on Apple platforms starting with macosx10.15.
// UNSUPPORTED: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12|13|14}}
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <chrono>
//
// file_clock

View File

@ -6,9 +6,6 @@
//
//===----------------------------------------------------------------------===//
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <chrono>
// high_resolution_clock

View File

@ -8,9 +8,6 @@
//
// UNSUPPORTED: libcpp-has-no-monotonic-clock
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <chrono>
// steady_clock

View File

@ -6,9 +6,6 @@
//
//===----------------------------------------------------------------------===//
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <chrono>
// system_clock

View File

@ -6,9 +6,6 @@
//
//===----------------------------------------------------------------------===//
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <chrono>
// system_clock

View File

@ -6,9 +6,6 @@
//
//===----------------------------------------------------------------------===//
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
// <chrono>
// system_clock

View File

@ -374,21 +374,6 @@ steps:
limit: 2
timeout_in_minutes: 120
- label: "32 bit"
command: "libcxx/utils/ci/run-buildbot generic-32bit"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
soft_fail:
- exit_status: 1
timeout_in_minutes: 120
- label: "Single-threaded"
command: "libcxx/utils/ci/run-buildbot generic-singlethreaded"
artifact_paths:

View File

@ -274,13 +274,6 @@ generic-static)
-DLIBUNWIND_TEST_CONFIG="llvm-libunwind-static.cfg.in"
check-runtimes
;;
generic-32bit)
clean
generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-32bits.cmake" \
-DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in" \
-DLIBUNWIND_TEST_CONFIG="llvm-libunwind-shared.cfg.in"
check-runtimes
;;
generic-clang-12)
export CC=clang-12
export CXX=clang++-12

View File

@ -177,14 +177,6 @@ DEFAULT_PARAMETERS = [
AddFeature('libcxx-no-debug-mode')
]),
Parameter(name='enable_32bit', choices=[True, False], type=bool, default=False,
help="Whether to build the test suite in 32 bit mode even on a 64 bit target. This basically controls "
"whether -m32 is used when building the test suite.",
actions=lambda enabled: [] if not enabled else [
AddFlag('-m32'),
AddFeature('32bits-on-64bits')
]),
Parameter(name='additional_features', type=list, default=[],
help="A comma-delimited list of additional features that will be enabled when running the tests. "
"This should be used sparingly since specifying ad-hoc features manually is error-prone and "

View File

@ -108,7 +108,11 @@ option(LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS
"Build libc++abi with definitions for operator new/delete. These are normally
defined in libc++abi, but it is also possible to define them in libc++, in
which case the definition in libc++abi should be turned off." ON)
option(LIBCXXABI_BUILD_32_BITS "Build 32 bit libc++abi." ${LLVM_BUILD_32_BITS})
option(LIBCXXABI_BUILD_32_BITS "Build 32 bit multilib libc++abi. This option is not supported anymore when building the runtimes. Please specify a full triple instead." ${LLVM_BUILD_32_BITS})
if (LIBCXXABI_BUILD_32_BITS)
message(WARNING "LIBCXXABI_BUILD_32_BITS is not supported anymore when building the runtimes, please specify a full triple instead.")
endif()
option(LIBCXXABI_INCLUDE_TESTS "Generate build targets for the libc++abi unit tests." ${LLVM_INCLUDE_TESTS})
set(LIBCXXABI_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING
"Define suffix of library directory name (32/64)")
@ -243,15 +247,6 @@ if (NOT LIBCXXABI_LIBCXX_LIBRARY_PATH)
"The path to libc++ library." FORCE)
endif()
# Check that we can build with 32 bits if requested.
if (CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32)
if (LIBCXXABI_BUILD_32_BITS AND NOT LLVM_BUILD_32_BITS) # Don't duplicate the output from LLVM
message(STATUS "Building 32 bits executables and libraries.")
endif()
elseif(LIBCXXABI_BUILD_32_BITS)
message(FATAL_ERROR "LIBCXXABI_BUILD_32_BITS=ON is not supported on this platform.")
endif()
# Declare libc++abi configuration variables.
# They are intended for use as follows:
# LIBCXXABI_C_FLAGS: General flags for both the c++ compiler and linker.
@ -274,8 +269,6 @@ include(HandleLibcxxabiFlags)
#===============================================================================
# Configure target flags
add_target_flags_if(LIBCXXABI_BUILD_32_BITS "-m32")
if(LIBCXXABI_TARGET_TRIPLE)
add_target_flags_if_supported("--target=${LIBCXXABI_TARGET_TRIPLE}")
endif()

View File

@ -37,7 +37,6 @@ if(DEFINED LIBCXX_ENABLE_STATIC
message(FATAL_ERROR "LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX being OFF requires LIBCXX_ENABLE_STATIC to be ON")
endif()
pythonize_bool(LIBCXXABI_BUILD_32_BITS)
pythonize_bool(LIBCXX_ENABLE_SHARED)
pythonize_bool(LIBCXXABI_ENABLE_SHARED)
pythonize_bool(LIBCXXABI_ENABLE_THREADS)
@ -90,10 +89,6 @@ if (LIBCXXABI_TARGET_TRIPLE)
serialize_lit_param(target_triple "\"${LIBCXXABI_TARGET_TRIPLE}\"")
endif()
if (LIBCXXABI_BUILD_32_BITS)
serialize_lit_param(enable_32bit True)
endif()
foreach(param IN LISTS LIBCXXABI_TEST_PARAMS)
string(REGEX REPLACE "(.+)=(.+)" "\\1" name "${param}")
string(REGEX REPLACE "(.+)=(.+)" "\\2" value "${param}")

View File

@ -6,9 +6,6 @@
//
//===----------------------------------------------------------------------===//
// TODO(ldionne): This test fails on Ubuntu Focal on our CI nodes (and only there), in 32 bit mode.
// UNSUPPORTED: linux && 32bits-on-64bits
#include <algorithm>
#include <cstdio>
#include <cstdlib>

View File

@ -57,7 +57,11 @@ include(CMakeDependentOption)
include(HandleCompilerRT)
# Define options.
option(LIBUNWIND_BUILD_32_BITS "Build 32 bit libunwind" ${LLVM_BUILD_32_BITS})
option(LIBUNWIND_BUILD_32_BITS "Build 32 bit multilib libunwind. This option is not supported anymore when building the runtimes. Please specify a full triple instead." ${LLVM_BUILD_32_BITS})
if (LIBUNWIND_BUILD_32_BITS)
message(WARNING "LIBUNWIND_BUILD_32_BITS is not supported anymore when building the runtimes, please specify a full triple instead.")
endif()
option(LIBUNWIND_ENABLE_CET "Build libunwind with CET enabled." OFF)
option(LIBUNWIND_ENABLE_ASSERTIONS "Enable assertions independent of build mode." ON)
option(LIBUNWIND_ENABLE_PEDANTIC "Compile with pedantic enabled." ON)
@ -119,15 +123,6 @@ if (LIBUNWIND_ENABLE_CET AND MSVC)
message(FATAL_ERROR "libunwind CET support is not available for MSVC!")
endif()
# Check that we can build with 32 bits if requested.
if (CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32)
if (LIBUNWIND_BUILD_32_BITS AND NOT LLVM_BUILD_32_BITS) # Don't duplicate the output from LLVM
message(STATUS "Building 32 bits executables and libraries.")
endif()
elseif(LIBUNWIND_BUILD_32_BITS)
message(FATAL_ERROR "LIBUNWIND_BUILD_32_BITS=ON is not supported on this platform.")
endif()
option(LIBUNWIND_HIDE_SYMBOLS
"Do not export any symbols from the static library." OFF)
@ -180,9 +175,6 @@ include(HandleLibunwindFlags)
# Setup Compiler Flags
#===============================================================================
# Get required flags.
add_target_flags_if(LIBUNWIND_BUILD_32_BITS "-m32")
# Compiler tests may be failing if the compiler implicitly links in libunwind,
# which doesn't exist yet. This gets waived by --unwindlib=none
# later in config-ix below, but the tests for --target etc before that may

View File

@ -94,12 +94,6 @@ CMake docs or execute ``cmake --help-variable VARIABLE_NAME``.
libunwind specific options
--------------------------
.. option:: LIBUNWIND_BUILD_32_BITS:BOOL
**Default**: Same as LLVM_BUILD_32_BITS
Toggle whether libunwind should be built with -m32.
.. option:: LIBUNWIND_ENABLE_ASSERTIONS:BOOL
**Default**: ``ON``

View File

@ -11,7 +11,6 @@ if (NOT DEFINED LIBCXX_ENABLE_SHARED)
set(LIBCXX_ENABLE_SHARED ON)
endif()
pythonize_bool(LIBUNWIND_BUILD_32_BITS)
pythonize_bool(LIBUNWIND_ENABLE_CET)
pythonize_bool(LIBCXX_ENABLE_SHARED)
pythonize_bool(LIBUNWIND_ENABLE_SHARED)
@ -41,10 +40,6 @@ if (LIBUNWIND_TARGET_TRIPLE)
serialize_lit_param(target_triple "\"${LIBUNWIND_TARGET_TRIPLE}\"")
endif()
if (LIBUNWIND_BUILD_32_BITS)
serialize_lit_param(enable_32bit True)
endif()
foreach(param IN LISTS LIBUNWIND_TEST_PARAMS)
string(REGEX REPLACE "(.+)=(.+)" "\\1" name "${param}")
string(REGEX REPLACE "(.+)=(.+)" "\\2" value "${param}")

View File

@ -2,9 +2,6 @@
# RUN: %{build}
# RUN: %{run}
// TODO: Investigate this failure
// XFAIL: 32bits-on-64bits
# The following assembly is a translation of this code:
#
# _Unwind_Reason_Code callback(int, _Unwind_Action, long unsigned int,