diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-07-16 14:55:48 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-07-16 14:55:48 +0200 |
| commit | 63d2e9d409831aa8582787234cae4741847504b7 (patch) | |
| tree | 595fae753d2eb293437226eaab2eed208463f132 /results/scraper/box64/1691 | |
| parent | 2843bb65aeaeb86eb89bf3d9690db61b9dc6306e (diff) | |
| download | qemu-analysis-box64.tar.gz qemu-analysis-box64.zip | |
add box64 bug reports box64
Diffstat (limited to 'results/scraper/box64/1691')
| -rw-r--r-- | results/scraper/box64/1691 | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/results/scraper/box64/1691 b/results/scraper/box64/1691 new file mode 100644 index 000000000..92c46f766 --- /dev/null +++ b/results/scraper/box64/1691 @@ -0,0 +1,99 @@ +8c5752de23ac421025032e405ca3168191ae7a33 dynarec breaks rkbin's boot_merger +Attempting box64 bump downstream in https://github.com/NixOS/nixpkgs/pull/326034 showed a build failure for `rkboot`. + +[rockchip-linux/rkbin](https://github.com/rockchip-linux/rkbin) has a static x86_64 executable under `/tools/boot_merger` which our build runs via box64 on aarch64. + +``` +substituteInPlace RKBOOT/*.ini --replace 'PATH=' 'PATH=rkboot/' + +mkdir rkboot +for i in $(ls ./RKBOOT/*.ini) +do + # The proprietary, statically linked binaries to perform boot_merge are + # x86_64 only. Though we use box64 to emulate if building on aarch64-linux + /path/to/box64 ./tools/boot_merger "$i" || true +done + +mkdir -p $out +if [ -z "$(ls -A rkboot)" ]; then + echo "Error: The 'rkboot' directory is empty." + exit 1 +else + mv rkboot $out/bin +fi +``` + +[(Example of upstream code that mirrors this `boot_merger` usage)](https://github.com/rockchip-linux/rkbin/blob/a2a0b89b6c8c612dca5ed9ed8a68db8a07f68bc0/scripts/checkpatch.sh#L306-L326) + +8c5752de23ac421025032e405ca3168191ae7a33 (as present in v0.3.0) made the execution fail to use the argument correctly, even though it shows up in `argv[1]`? + +<details> + <summary>Diff over outputs</summary> + +``` +Running phase: buildPhase Running phase: buildPhase +Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL SHA1 SHA2sh: lscpu: not foun Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL SHA1 SHA2sh: lscpu: not foun +sh: lscpu: not found sh: lscpu: not found + PageSize:4096 Running on Unknown CPU with 6 Cores PageSize:4096 Running on Unknown CPU with 6 Cores +Will use Hardware counter measured at 24.0 MHz emulating 3.0 GHz Will use Hardware counter measured at 24.0 MHz emulating 3.0 GHz +Params database has 14 entries Params database has 14 entries +Box64 with Dynarec v0.2.8 nogit built on Jan 1 1980 00:00:00 | Box64 with Dynarec v0.3.0 nogit built on Jan 1 1980 00:00:00 +BOX64: Detected 48bits at least of address space BOX64: Detected 48bits at least of address space +Counted 80 Env var Counted 80 Env var +BOX64 LIB PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/ BOX64 LIB PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/ +BOX64 BIN PATH: ./:bin/:/nix/store/5rfs2mv7aw8yfg0l013lzz2q7zc4ycsf-patchelf-0.15.0/b BOX64 BIN PATH: ./:bin/:/nix/store/5rfs2mv7aw8yfg0l013lzz2q7zc4ycsf-patchelf-0.15.0/b +Looking for ./tools/boot_merger Looking for ./tools/boot_merger +argv[1]="./RKBOOT/PX30MINIALL.ini" argv[1]="./RKBOOT/PX30MINIALL.ini" +Rename process to "boot_merger" Rename process to "boot_merger" +Redirecting overridden malloc from symtab function for /build/source/tools/boot_merge Redirecting overridden malloc from symtab function for /build/source/tools/boot_merge +sh: lscpu: not found sh: lscpu: not found +warning, call to unsupported arch_prctl(0x3001, 0xfffff79fe860) | warning, call to unsupported arch_prctl(0x3001, 0xfffff79fe850) +********boot_merger ver 1.34******** ********boot_merger ver 1.34******** +Info:Pack loader ok. | NAME + > boot_merger - Generating loader tool + > SYNOPSIS + > boot_merger pack [...] + > boot_merger unpack [...] + > boot_merger idb [...] + > DESCRIPTION + > This tool can support to pack and unpack format of rk loader + > you can input boot_merger pack to get more help of pack + > you can input boot_merger unpack to get more help of unpack + > you can input boot_merger idb to get more help of idb +``` + +</details> + +<details> + <summary>Bisect log</summary> + +``` +git bisect start +# Status: warte auf guten und schlechten Commit +# good: [8545d0505f274554561ca30e1839027dd7be783a] Bumped version to v0.2.8 +git bisect good 8545d0505f274554561ca30e1839027dd7be783a +# Status: warte auf schlechten Commit, 1 guter Commit bekannt +# bad: [62695ceed4982c3fdf379b65cc4481c3656cd6ac] Bumped version to v0.3.0 +git bisect bad 62695ceed4982c3fdf379b65cc4481c3656cd6ac +# good: [537cb65f26afd07cbc2332f0a60c181f5c75c0d7] [ARM64_DYNAREC] Added BMI.0F38 F2, F3/1 opcodes +git bisect good 537cb65f26afd07cbc2332f0a60c181f5c75c0d7 +# good: [cbb3126b28d2987fd1c2aeaf963a86ecb1ffcf4b] [COSIM] Improved handling of AVX.66.0F38 3E/2F opcodes +git bisect good cbb3126b28d2987fd1c2aeaf963a86ecb1ffcf4b +# good: [7771a67abebdd09917a3278f2442ff85c730cb0b] Add missing func declarations: `get_first_jump_addr` (#1627) +git bisect good 7771a67abebdd09917a3278f2442ff85c730cb0b +# good: [267bffb0ec2b8afdea35cdc7f2d5983f7cd1566b] [ARM64_DYNAREC] More improvment on YMM handling +git bisect good 267bffb0ec2b8afdea35cdc7f2d5983f7cd1566b +# bad: [d6b9fd2860dc097de8aebf147b3aa6d1741ea550] [VULKAN] Added 1 more extension +git bisect bad d6b9fd2860dc097de8aebf147b3aa6d1741ea550 +# bad: [d7e8da632183e6ceece1230710f6dda722d2f8ae] [ARM64_DYNAREC] Fixed reflect cache for ymm0 +git bisect bad d7e8da632183e6ceece1230710f6dda722d2f8ae +# bad: [b4828477794a8e69a96f0ca7991ad0e619d1b2a3] [INTERPRETER] Added 64 66 8D opcode (#1648) +git bisect bad b4828477794a8e69a96f0ca7991ad0e619d1b2a3 +# bad: [8c5752de23ac421025032e405ca3168191ae7a33] [ARM64_DYNAREC] Made AVX/AVX2 enabled by default, but only for ARM64 Dynarec configs +git bisect bad 8c5752de23ac421025032e405ca3168191ae7a33 +# first bad commit: [8c5752de23ac421025032e405ca3168191ae7a33] [ARM64_DYNAREC] Made AVX/AVX2 enabled by default, but only for ARM64 Dynarec configs +``` + +</details> + +`BOX64_DYNAREC=0` at runtime gets recognised, but it's not enough to work around this. Only works again by rebuilding box64 with `-DARM_DYNAREC=OFF` or reverting 8c5752de23ac421025032e405ca3168191ae7a33. Issue is unresolved on current master. \ No newline at end of file |