1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
Aosp clang toolchain clang wrapper failed to run
In aosp toolchain they have a go written clang wrapper. Box64 failed to run it, with the following error output:
```
[BOX64] Box64 with Dynarec v0.3.5 1e89ccb17 built on Apr 4 2025 22:45:18
[BOX64] Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS SHA1 SHA2 USCAT FLAGM FLAGM2 FRINT
[BOX64] Running on Cortex-A510 with 8 cores, pagesize: 4096
[BOX64] Will use hardware counter measured at 19.2 MHz emulating 2.4 GHz
[BOX64] Didn't detect 48bits of address space, considering it's 39bits
[BOX64] Counted 43 Env var
[BOX64] Library search path:
[BOX64] Binary search path: ./:bin/:/home/fish4terrisa/.rbenv/shims/:/home/fish4terrisa/.zinit/polaris/bin/:/opt/depot_tools/:/home/fish4terrisa/.local/bin/:/home/fish4terrisa/.cargo/bin/:/usr/local/sbin/:/usr/local/bin/:/usr/bin/:/usr/lib/jvm/default/bin/:/usr/bin/site_perl/:/usr/bin/vendor_perl/:/usr/bin/core_perl/:/usr/lib/plan9/bin/:/usr/lib/plan9/bin/
[BOX64] Looking for ./clang-aosp/bin/clang
[BOX64] Rename process to "clang"
[BOX64] 7506|Warning, calling Signal 5 function handler SIG_DFL
[BOX64] Unhandled signal caught, aborting
[BOX64] NativeBT: /usr/bin/box64() [0x34862bf4]
[BOX64] NativeBT: /usr/bin/box64() [0x348634cc]
[BOX64] NativeBT: linux-vdso.so.1(__kernel_rt_sigreturn+0) [0x7fa016284c]
[BOX64] NativeBT: /usr/lib/libc.so.6(+0x870f8) [0x7f9ffb70f8]
[BOX64] NativeBT: /usr/lib/libc.so.6(gsignal+0x1c) [0x7f9ff66f9c]
[BOX64] NativeBT: /usr/lib/libc.so.6(abort+0x28) [0x7f9ff51938]
[BOX64] NativeBT: /usr/bin/box64() [0x3485edd4]
[BOX64] NativeBT: /usr/bin/box64() [0x348607dc]
[BOX64] NativeBT: /usr/bin/box64() [0x34860f3c]
[BOX64] NativeBT: /usr/bin/box64() [0x3486123c]
[BOX64] NativeBT: [0x7f9ee106a0]
[BOX64] EmulatedBT: /usr/src/clang-aosp/bin/clang(runtime.abort.abi0+2) [0x45f3a2]
[BOX64] 7506|SIGABRT @0x7f9ffb70f8 (???(/usr/lib/libc.so.6+0x870f8)) (x64pc=0x45f3a2/"/usr/src/clang-aosp/bin/clang/runtime.abort.abi0 + 0x2", rsp=0x7f9fdae618, stack=0x7f9f5b0000:0x7f9fdb0000 own=(nil) fp=(nil)), for accessing 0x3e800001d52 (code=-6/prot=0), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil)
RSP-0x20:0x0000000000000000 RSP-0x18:0x0000000000000000 RSP-0x10:0x0000000000000000 RSP-0x08:0x0000000000000000
RSP+0x00:0x0000000000000000 RSP+0x08:0x0000000000000000 RSP+0x10:0x0000000000000000 RSP+0x18:0x0000000000000002
RAX:0x0000000000000000 RCX:0x000000007ed8322f RDX:0x0000000017abf9ff RBX:0x0000000000010800
RSP:0x0000007f9fdae618 RBP:0x0000000000000000 RSI:0x00000000005c6230 RDI:0x0000000000001002
R8:0x0000000000000000 R9:0x0000000000000000 R10:0x0000000000000000 R11:0x0000000000000000
R12:0x0000000000000000 R13:0x0000000000000000 R14:0x0000000000000000 R15:0x0000000000000000
ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053
zsh: IOT instruction ./clang-aosp/bin/clang
```
That wrapper is a static binary, and it's only purpose is to add some extra option to real clang when needed.
Current workaround: set up box64 binfmt_misc, and use qemu-user to launch that wrapper binary. It'll function normally. When it call real clang compiler, box64 will be used instead(box64 works fine with all other tools and compilers)
The tested aosp clang toolchain:
https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/refs/heads/master-kernel-build-2022/clang-r450784e.tar.gz
|