HomeFreeBSD

Revert upstream libcxxrt commit which can cause hangs on i386

Description

Revert upstream libcxxrt commit which can cause hangs on i386

This reverts upstream commit fd484be:

Atomics cleanup (#11)

We need to test exception specifiers but they're gone in C++17 so
compile the tests with an older version of the standard.

Rewrite the guard logic to be more idiomatic C++ and more
comprehensible and make sure that atomics are used where necessary.

It looks like there are some corner cases in the i386 and/or 32-bit
atomics handling, which can make __cxa_guard_acquire() hang in certain
situations.

Reported by: antoine
Obtained from: https://github.com/libcxxrt/libcxxrt/commit/fd484be
Fixes: 56aaed388b0a
MFC after: 2 weeks

(cherry picked from commit 2548237983c47c61601b883bb9d6c9a803ef8ce4)

Details

Provenance
dimAuthored on Mar 19 2022, 7:46 PM
Parents
rG74886657a8d4: Merge libcxxrt master fd484be8d1e94a1fcf6bc5c67e5c07b65ada19b6
Branches
Unknown
Tags
Unknown