Get TEST_LIBC_STR passing on AARCH64

It's now possible to run commands like:

    make -j8 m=aarch64 o/aarch64/test/libc/str

Which will cross-compile and run the test suites in a qemu-aarch64
binary that's vendored in the third_party/qemu/ folder within your
x86_64 build environment.
This commit is contained in:
Justine Tunney 2023-05-12 18:09:23 -07:00
parent 45186c74ac
commit 414667b1c9
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
24 changed files with 657 additions and 61 deletions

View file

@ -103,11 +103,13 @@ static int PrintBacktraceUsingAddr2line(int fd, const struct StackFrame *bp) {
return -1;
}
addr = frame->addr;
#ifdef __x86_64__
if (addr == (uintptr_t)_weaken(__gc)) {
do {
--gi;
} while ((addr = garbage->p[gi].ret) == (uintptr_t)_weaken(__gc));
}
#endif
argv[i++] = buf + j;
buf[j++] = '0';
buf[j++] = 'x';

View file

@ -67,11 +67,13 @@ noinstrument noasan int PrintBacktraceUsingSymbols(int fd,
break;
}
addr = frame->addr;
#ifdef __x86_64__
if (addr == (intptr_t)_weaken(__gc)) {
do {
--gi;
} while ((addr = garbage->p[gi].ret) == (intptr_t)_weaken(__gc));
}
#endif
if (addr) {
if (
#ifdef __x86_64__

View file

@ -184,7 +184,7 @@ relegated void __oncrash_arm64(int sig, struct siginfo *si, void *arg) {
" %s %s %s %s\n",
strong, reset, sig, kind, host, getpid(), gettid(),
program_invocation_name, names.sysname, names.version,
names.nodename, names.release, "yo");
names.nodename, names.release);
if (ctx) {
long pc;
char line[256];