Fix aarch64 setjmp abi

We now store values in jmp_buf where the compiler wants them to be. This
fixes code that calls __builtin_setjmp() and __builtin_longjmp() such as
libunwind. All libcxxabi tests are now passing on ARM64.

See #1076
This commit is contained in:
Justine Tunney 2024-01-08 13:26:28 -08:00
parent 21093044c0
commit 6ab01716ce
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
5 changed files with 15 additions and 19 deletions

View file

@ -1,8 +1,6 @@
#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐
#── vi: set noet ft=make ts=8 sw=8 fenc=utf-8 :vi ────────────────────┘
ifeq ($(MODE), )
PKGS += THIRD_PARTY_LIBCXXABI_TEST
THIRD_PARTY_LIBCXXABI_TEST_A = o/$(MODE)/third_party/libcxxabi/test/test.a
@ -109,6 +107,7 @@ THIRD_PARTY_LIBCXXABI_TEST_CHECKS = \
THIRD_PARTY_LIBCXXABI_TEST_DIRECTDEPS = \
LIBC_NEXGEN32E \
LIBC_LOG \
THIRD_PARTY_LIBCXX \
THIRD_PARTY_LIBCXXABI
@ -168,8 +167,6 @@ o/$(MODE)/third_party/libcxxabi/test/incomplete_type.sh.com.dbg: \
$(APE_NO_MODIFY_SELF)
@$(APELINK)
endif
o/$(MODE)/third_party/libcxxabi/test/catch_multi_level_pointer.pass.o: private COPTS += -O0
o/$(MODE)/third_party/libcxxabi/test/catch_multi_level_pointer.pass.o: private QUOTA += -C30 -M4000m