[libcxx-commits] [PATCH] D114473: [runtimes] Remove support for building in 32 bits mode on a 64 bit target

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Nov 23 13:39:34 PST 2021


ldionne created this revision.
Herald added subscribers: libcxx-commits, arichardson, mgorny.
Herald added a project: libunwind.
Herald added a reviewer: libunwind.
ldionne requested review of this revision.
Herald added projects: libc++, libc++abi.
Herald added a reviewer: libc++.
Herald added a reviewer: libc++abi.

This patch is a RFC for removing a configuration that I've never fully
understood why it was supported -- building with -m32. Instead of doing
this, a better alternative would be to create a new target triple with
the desired characteristics, which would be more straightforward to
support.

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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D114473

Files:
  libcxx/CMakeLists.txt
  libcxx/cmake/caches/Generic-32bits.cmake
  libcxx/docs/BuildingLibcxx.rst
  libcxx/docs/ReleaseNotes.rst
  libcxx/test/CMakeLists.txt
  libcxx/test/libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/last_write_time.pass.cpp
  libcxx/test/libcxx/thread/thread.condition/PR30202_notify_from_pthread_created_thread.pass.cpp
  libcxx/test/libcxx/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp
  libcxx/test/libcxx/thread/thread.threads/thread.thread.this/sleep_for.signals.pass.cpp
  libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp
  libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp
  libcxx/test/std/thread/futures/futures.async/async.pass.cpp
  libcxx/test/std/thread/futures/futures.shared_future/wait.pass.cpp
  libcxx/test/std/thread/futures/futures.shared_future/wait_for.pass.cpp
  libcxx/test/std/thread/futures/futures.shared_future/wait_until.pass.cpp
  libcxx/test/std/thread/futures/futures.unique_future/wait.pass.cpp
  libcxx/test/std/thread/futures/futures.unique_future/wait_for.pass.cpp
  libcxx/test/std/thread/futures/futures.unique_future/wait_until.pass.cpp
  libcxx/test/std/thread/thread.barrier/arrive.pass.cpp
  libcxx/test/std/thread/thread.barrier/arrive_and_drop.pass.cpp
  libcxx/test/std/thread/thread.barrier/arrive_and_wait.pass.cpp
  libcxx/test/std/thread/thread.barrier/completion.pass.cpp
  libcxx/test/std/thread/thread.condition/notify_all_at_thread_exit.pass.cpp
  libcxx/test/std/thread/thread.condition/thread.condition.condvar/notify_all.pass.cpp
  libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
  libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for_pred.pass.cpp
  libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_until.pass.cpp
  libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_until_pred.pass.cpp
  libcxx/test/std/thread/thread.condition/thread.condition.condvarany/notify_one.pass.cpp
  libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp
  libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for_pred.pass.cpp
  libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_until.pass.cpp
  libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_until_pred.pass.cpp
  libcxx/test/std/thread/thread.latch/arrive_and_wait.pass.cpp
  libcxx/test/std/thread/thread.latch/count_down.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_duration.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_time_point.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_try_to_lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock_until.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_duration.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_time_point.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_try_to_lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock_until.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/try_lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/try_lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock_shared.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/try_lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/try_lock_shared.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock_shared.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_for.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_for.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_until.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_until.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_until_deadlock_bug.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.class/lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.class/try_lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.class/try_lock_for.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.class/try_lock_until.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.recursive/lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.recursive/try_lock.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.recursive/try_lock_for.pass.cpp
  libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.recursive/try_lock_until.pass.cpp
  libcxx/test/std/thread/thread.semaphore/acquire.pass.cpp
  libcxx/test/std/thread/thread.semaphore/binary.pass.cpp
  libcxx/test/std/thread/thread.semaphore/release.pass.cpp
  libcxx/test/std/thread/thread.semaphore/timed.pass.cpp
  libcxx/test/std/thread/thread.semaphore/try_acquire.pass.cpp
  libcxx/test/std/thread/thread.threads/thread.thread.this/sleep_until.pass.cpp
  libcxx/test/std/utilities/time/time.clock/time.clock.file/now.pass.cpp
  libcxx/test/std/utilities/time/time.clock/time.clock.file/to_from_sys.pass.cpp
  libcxx/test/std/utilities/time/time.clock/time.clock.hires/now.pass.cpp
  libcxx/test/std/utilities/time/time.clock/time.clock.steady/now.pass.cpp
  libcxx/test/std/utilities/time/time.clock/time.clock.system/from_time_t.pass.cpp
  libcxx/test/std/utilities/time/time.clock/time.clock.system/now.pass.cpp
  libcxx/test/std/utilities/time/time.clock/time.clock.system/to_time_t.pass.cpp
  libcxx/utils/ci/buildkite-pipeline.yml
  libcxx/utils/ci/run-buildbot
  libcxx/utils/libcxx/test/params.py
  libcxxabi/CMakeLists.txt
  libcxxabi/test/CMakeLists.txt
  libcxxabi/test/test_exception_storage.pass.cpp
  libunwind/CMakeLists.txt
  libunwind/docs/BuildingLibunwind.rst
  libunwind/test/CMakeLists.txt
  libunwind/test/remember_state_leak.pass.sh.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D114473.389309.patch
Type: text/x-patch
Size: 69797 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20211123/29af908a/attachment-0001.bin>


More information about the libcxx-commits mailing list