summary refs log tree commit diff stats
path: root/results/scraper/box64/1691
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-07-16 14:55:48 +0200
committerChristian Krinitsin <mail@krinitsin.com>2025-07-16 14:55:48 +0200
commit63d2e9d409831aa8582787234cae4741847504b7 (patch)
tree595fae753d2eb293437226eaab2eed208463f132 /results/scraper/box64/1691
parent2843bb65aeaeb86eb89bf3d9690db61b9dc6306e (diff)
downloadqemu-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/169199
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