05.10.2024 19:22, Michael Tokarev wrote:
05.10.2024 19:20, Richard Henderson wrote:
No, it doesn't fail to link. That's why it took so long to notice.
It does here quite often during bisection between 9.0 and 9.1.
Lemme see..
So, it is just 2 steps:
$ git bisect start v9.0.0 v9.1.0 # at 2529ea2d561ea9fe359fb19ebdcfeb8b6cddd219
$ configure --target-list=x86_64-softmmu
$ ninja qemu-system-x86_64 # this one will work
$ git bisect bad # at 544595e73007c824b7435b52519cc578586783a6
$ ninja qemu-system-x86_64 # this breaks:
[2/2] Linking target qemu-system-x86_64
FAILED: qemu-system-x86_64
cc -m64 @qemu-system-x86_64.rsp
/usr/bin/ld: libqemu-x86_64-softmmu.fa.p/accel_tcg_cputlb.c.o: in function
`atomic16_read_rw':
/build/qemu/master/host/include/x86_64/host/atomic128-ldst.h:51: undefined
reference to `__sync_val_compare_and_swap_16'
/usr/bin/ld: /build/qemu/master/host/include/x86_64/host/atomic128-ldst.h:51:
undefined reference to `__sync_val_compare_and_swap_16'
/usr/bin/ld: /build/qemu/master/host/include/x86_64/host/atomic128-ldst.h:51:
undefined reference to `__sync_val_compare_and_swap_16'
/usr/bin/ld: /build/qemu/master/host/include/x86_64/host/atomic128-ldst.h:51:
undefined reference to `__sync_val_compare_and_swap_16'
/usr/bin/ld: /build/qemu/master/host/include/x86_64/host/atomic128-ldst.h:51:
undefined reference to `__sync_val_compare_and_swap_16'
/usr/bin/ld: libqemu-x86_64-softmmu.fa.p/accel_tcg_cputlb.c.o: in function
`atomic16_set':
/build/qemu/master/host/include/x86_64/host/atomic128-ldst.h:67: undefined
reference to `__sync_bool_compare_and_swap_16'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
So it requires second step.
configure is re-run at the second build. So we're holding
some data between rebuilds which we shouldn't.
/mjt