The function checksum_ref_die has four different modes. I added mode detection at the start of the function, to see which would be triggered by the testsuite. Modes 1, 2 and 3 are all triggered. But not mode 4, also not in the external test suite. This: ... @@ -4306,7 +4321,7 @@ checksum_ref_die (dw_cu_ref cu, dw_die_ref top_die, dw_die_ref die, } } } - if (minidx != -1U) + if (false && minidx != -1U) { idx = 0; checksum_ref_die (die_cu (arr[minidx]), arr[minidx], ... forces to use mode 4 instead of mode 3. No issues found in test-suite. This slows down the external testsuite. These tests pass: ... PASS: /home/vries/dwz/dwz.git/testsuite/dwz-external.tests/kernel-32.sh PASS: /home/vries/dwz/dwz.git/testsuite/dwz-external.tests/pr24204.sh PASS: /home/vries/dwz/dwz.git/testsuite/dwz-external.tests/pr24195.sh ... but kernel.sh is either hanging or very slow. I presume the same will happen with kernel-multifile.sh.
https://sourceware.org/pipermail/dwz/2021q1/000957.html
Fixed in https://sourceware.org/git/?p=dwz.git;a=commit;h=64c5452cc94e389a81c5669e0b346c9d79b8ca41