Fields

hardware None
os None

Parameters

Fields

NameValue

Parameters

NameValue
git_commit commit 3761ad01e125e3b38ed2d6f40b3cbcbac13611a5
Author: Louis Dionne <ldionne.2@gmail.com>
Date: Tue Feb 27 17:31:02 2024 -0500

[libc++] Remove _LIBCPP_ATOMIC_ONLY_USE_BUILTINS (#82000)

As discussed in #76647, _LIBCPP_ATOMIC_ONLY_USE_BUILTINS is a
questionable configuration option. It makes our implementation of
std::atomic even more complicated than it already is for a limited
benefit.

Indeed, the original goal of that setting was to decouple libc++ from
libraries like compiler-rt and libatomic in Freestanding mode. We didn't
have a clear understanding of goals and non-goals of Freestanding back
then, but nowadays we do have a better understanding that removing all
dependencies of libc++ in Freestanding is a non-goal. We should still be
able to depend on builtins like those defined in compiler-rt for
implementing our atomic operations in Freestanding. Freestanding means
that there is no underlying operating system, not that there is no
toolchain available.

This patch removes the configuration option. This should have a very
limited fallout since that configuration was only enabled with
-ffreestanding, and libc++ basically doesn't work out of the box on
Freestanding platforms today.

The benefits are a slightly simpler implementation of std::atomic,
getting rid of one of the ABI-incompatible representations of
std::atomic, and clearing the way for proper Freestanding support to
eventually land in the library.

Fixes #81286
Filter

ldionne-old-macbook-results test results

Run Order Start Time Duration
Current 490945 2025-12-16T16:40:01 0:00:00
Previous 490170 2025-12-16T16:40:01 0:00:00
Baseline 485288 2025-12-16T16:40:01 0:00:00


Tests Summary

Status Group # # (B)
Total Tests 0

Report Time: 0.12s