Il mar 12 gen 2021, 17:48 Dave ha scritto: > Hi Paolo, > > While this (option 2) partially works, it will still search for > /nonexistent/libexec/qemu-bridge-helper for example so seems that some > paths are still absolute and some relative. > Ok, that's a bug that can be fixed in 5.2.1. Are there other instances? > To explain, what we are expecting that we compile one binary with the > relevant options, test that and then it goes into production. If we > compile with --prefix=/usr (it's final resting place will be /usr/bin) > then everything works as expected once it is in production (since > /usr/share/qemu, /usr/libexec, /etc/qemu exists as expected). However > when we are testing the binary in a directory /root/qemu/5.2.0 with > --prefix=/usr it breaks since it converts the firmware and bios paths to > /root/qemu/5.2.0/../share/qemu. This means we need to recompile twice > with relevant prefixes since if i use --prefix=/nonexistent then we > can't find the qemu-bridge-helper when the binary goes into production. > > It would be nicer with the relocatable binary took some fixed paths from > /etc/qemu.conf for the bridge-helper, firmware, bios, qemu-ifup/down. > > thanks > Dave > > > On 12/01/2021 18:48, Paolo Bonzini wrote: > > On 12/01/21 15:05, Dave wrote: > >> Is seem that absolute firmwarepath compilation option is converted to > >> relocatable in 5.2.0 qemu. > >> > >> # QEMU configure log Tue 12 Jan 14:46:41 GST 2021 > >> # Configured with: '../configure' '--prefix=/usr' > >> '--sysconfdir=/etc/qemu' '--disable-bochs' > >> '*--firmwarepath=/usr/share/qemu:/usr/share/qemu-firmware*' > >> # > > > > Yes, all paths within the prefix are relocated. The workaround is > > simply to configure the intended prefix with configure: > > > > ./configure --prefix=/root/qemu ... > > > > or if you don't know the prefix: > > > > ./configure --prefix=/nonexistent ... > > > > Because /usr/share/qemu and /usr/share/qemu-firmware are outside /usr, > > they will be treated as absolute just like /etc/qemu. > > > > Thanks, > > > > Paolo > > > >> And trying to run the executable > >> > >> bash-5.1# ./qemu-system-x86_64 > >> qemu: could not load PC BIOS 'bios-256k.bin' > >> > >> If i print out the resultant binary paths > >> > >> bash-5.1# ./qemu-system-x86_64 -L help > >> /root/qemu/../share/qemu > >> /root/qemu/../share/qemu-firmware > >> > >> So there is no way to have a absolute path for firmware /bios and all > >> qemu's that we test need to be at the right directory nesting to find > >> firmware, bios etc or else they all need their own duplicate firmware > >> files. Firmware path needs to honor the absolute paths i believe. > >> > > > >