Use libcxx abi v1

This commit is contained in:
Justine Tunney 2024-07-24 09:48:33 -07:00
parent fbc4b03d4c
commit f25fbbaaeb
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
3 changed files with 13 additions and 4 deletions

View file

@ -16,6 +16,7 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/calls/blockcancel.internal.h"
#include "libc/calls/calls.h"
#include "libc/calls/state.internal.h"
#include "libc/dce.h"
@ -58,7 +59,9 @@ static void pthread_mutex_lock_drepper(atomic_int *futex, char pshare) {
if (word == 1)
word = atomic_exchange_explicit(futex, 2, memory_order_acquire);
while (word > 0) {
BLOCK_CANCELATION;
_weaken(nsync_futex_wait_)(futex, 2, pshare, 0);
ALLOW_CANCELATION;
word = atomic_exchange_explicit(futex, 2, memory_order_acquire);
}
}

View file

@ -26,8 +26,8 @@ __static_yoink("__demangle");
#define _LIBCPP_DISABLE_DEPRECATION_WARNINGS
#define _LIBCPP_NO_ABI_TAG
#define _LIBCPP_ABI_VERSION 2
#define _LIBCPP_ABI_NAMESPACE __2
#define _LIBCPP_ABI_VERSION 1
#define _LIBCPP_ABI_NAMESPACE __1
#define _LIBCPP_USING_GETENTROPY
#define _LIBCPP_DISABLE_AVAILABILITY
#define _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS
@ -40,13 +40,16 @@ __static_yoink("__demangle");
#define _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE
#define _LIBCPP_HAS_CLOCK_GETTIME
#define _LIBCPP_HARDENING_MODE_DEFAULT 2
#ifdef MODE_DBG
#define _LIBCPP_ENABLE_DEBUG_MODE
#define _LIBCPP_ENABLE_ASSERTIONS_DEFAULT 1
#define _LIBCPP_HARDENING_MODE_DEFAULT (1 << 3) // debug
#elif defined(TINY)
#define _LIBCPP_ENABLE_ASSERTIONS_DEFAULT 0
#define _LIBCPP_HARDENING_MODE_DEFAULT (1 << 1) // none
#else
#define _LIBCPP_ENABLE_ASSERTIONS_DEFAULT 0
#define _LIBCPP_HARDENING_MODE_DEFAULT (1 << 2) // fast
#endif
// PSTL backends

View file

@ -10,6 +10,8 @@
#ifndef _LIBCPP_NEW
#define _LIBCPP_NEW
#pragma GCC diagnostic ignored "-Walloc-size-larger-than="
/*
new synopsis
@ -264,6 +266,7 @@ _LIBCPP_HIDE_FROM_ABI void* __libcpp_operator_new(_Args... __args) {
#if __has_builtin(__builtin_operator_new) && __has_builtin(__builtin_operator_delete)
return __builtin_operator_new(__args...);
#else
return ::operator new(__args...);
#endif
}