History log of /freebsd-current/contrib/libcxxrt/memory.cc
Revision Date Author Comments
# bfffb66e 20-Mar-2022 Dimitry Andric <dim@FreeBSD.org>

Reapply libcxxrt atomics cleanup commit, preparing for upstream fix

This reapplies upstream commit fd484be, as there is a follow-up fix for
the possible hangs in __cxa_guard_acquire() on i386:

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.

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


# 25482379 19-Mar-2022 Dimitry Andric <dim@FreeBSD.org>

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


# 56aaed38 09-Mar-2022 Dimitry Andric <dim@FreeBSD.org>

Merge libcxxrt master fd484be8d1e94a1fcf6bc5c67e5c07b65ada19b6

Interesting fixes:
47661d0 Match libc++abi/libsupc++ when demangling array types
e44a05c Fix unitialized variable in __cxa_demangle_gnu3 after #6 (#8)
5088b05 Remove some code duplication.
fd484be Atomics cleanup (#11)

MFC after: 2 weeks


# e91d723a 26-Jul-2019 Dimitry Andric <dim@FreeBSD.org>

Merge libcxxrt master f96846efbfd508f66d91fcbbef5dd808947c7f6d.

Interesting fixes:
f96846e Fix std::size_t -> size_t to unbreak build against libc++ 6.0.0
6f4cfa2 Fix the uncaught exception count with rethrowing (PR 239265)
db54f53 Added C++14-specific operator delete (#47)

PR: 239265
MFC after: 3 days


# 076e75eb 05-May-2016 Dimitry Andric <dim@FreeBSD.org>

Import libcxxrt master 516a65c109eb0a01e5e95fbef455eb3215135cef.

Interesting fixes:
3adaa2e Fix _Unwind_Exception cleanup functions
286776c Check exception cleanup function ptr before calling
edda626 Correct exception specifications on new and delete operators


# 4bab9fd9 10-Jul-2013 David Chisnall <theraven@FreeBSD.org>

Import new libcxxrt / libc++. This brings some bug fixes, including a potential race condition for static initialisers.


# f7cb1657 11-Jan-2013 David Chisnall <theraven@FreeBSD.org>

Merge new version of libcxxrt. This brings in three fixes:

- Don't treat pointers to members as pointers in catch blocks (they're usually
fat pointers).

- Correctly catch foreign exceptions in catchalls.

- Ensure that a happens-before relationship is established when setting
terminate handlers in one thread and calling them in another.


# 94e3ee44 13-Mar-2012 David Chisnall <theraven@FreeBSD.org>

Import new versions of libcxxrt and libc++.
Please tests any C++ code you care about with -stdlib=libc++!

Approved by: dim (mentor)


# db47c4bf 26-Nov-2011 David Chisnall <theraven@FreeBSD.org>

Update libcxxrt to remove the pthread dependency.

Also add the license from upstream to contrib.

Approved by: dim (mentor)


# 7a984708 25-Nov-2011 David Chisnall <theraven@FreeBSD.org>

Import libc++ / libcxxrt into base. Not build by default yet (use
MK_LIBCPLUSPLUS=yes to enable). This is a work-in-progress. It works for
me, but is not guaranteed to work for anyone else and may eat your dog.

To build C++ using libc++, add -stdlib=libc++ to your CXX and LD flags.

Bug reports welcome, bug fixes even more welcome...

Approved by: dim (mentor)