configure | 30 ++++++++------------ include/net/net.h | 4 +-- include/qemu-common.h | 1 - include/qemu/cutils.h | 12 ++++++++ include/qemu/osdep.h | 8 ++---- include/sysemu/sysemu.h | 2 +- meson.build | 4 +-- net/tap.c | 28 ++++++++++++++----- os-posix.c | 24 ---------------- os-win32.c | 11 -------- qemu-bridge-helper.c | 9 ++++-- qga/main.c | 8 ++++-- softmmu/vl.c | 43 ++++++++++++++++++++--------- tests/qtest/fuzz/fuzz.c | 12 ++++---- ui/gtk.c | 10 +++++-- ui/sdl2.c | 9 ++++-- util/cutils.c | 61 +++++++++++++++++++++++++++++++++++++++++ util/module.c | 10 ++----- util/oslib-posix.c | 35 +++++++++++------------ util/oslib-win32.c | 14 +++++++--- 20 files changed, 205 insertions(+), 130 deletions(-)
Right now, the installation of QEMU is not relocatable; there is a local hack in os_find_datadir() so that Windows binaries look for ROMs in the executable directory, but that has several limitations: - it does not extend to configuration files, icons, etc. - it does not allow changing the data directory in any way - it does not apply to POSIX platforms This series fixes that by making all paths within the installation prefix relative to the executable. This in practice means all paths will be relocatable, except for /etc and /var if they're moved outside the prefix. Here is an example of relocatability; before: $ make DESTDIR=$PWD/test install $ cd test/usr/local/bin $ ./qemu-system-ppc -L help /usr/local/share/qemu-firmware /usr/local/share/qemu After: $ make DESTDIR=$PWD/test install $ cd test/usr/local/bin $ ./qemu-system-ppc -L help /home/pbonzini/work/upstream/qemu/+build/test/usr/local/bin/../share/qemu-firmware /home/pbonzini/work/upstream/qemu/+build/test/usr/local/bin/../share/qemu The main benefit of this is on Windows, as mentioned above; but it also makes behavior more consistent across platforms and allows the removal of the hack that hides the "c:/Program Files/QEMU" prefix from Meson during cross compilation. Paolo Paolo Bonzini (13): fuzz: use qemu_get_exec_dir oslib: do not call g_strdup from qemu_get_exec_dir oslib-posix: default exec_dir to bindir cutils: introduce get_relocated_path oslib-posix: relocate path to /var module: relocate path to modules net: relocate paths to helpers and scripts vl: relocate paths to data directories vl: relocate path to configuration file qemu-bridge-helper: relocate path to default ACL qga: relocate path to default configuration and hook ui: relocate paths to icons and translations configure: use a platform-neutral prefix configure | 30 ++++++++------------ include/net/net.h | 4 +-- include/qemu-common.h | 1 - include/qemu/cutils.h | 12 ++++++++ include/qemu/osdep.h | 8 ++---- include/sysemu/sysemu.h | 2 +- meson.build | 4 +-- net/tap.c | 28 ++++++++++++++----- os-posix.c | 24 ---------------- os-win32.c | 11 -------- qemu-bridge-helper.c | 9 ++++-- qga/main.c | 8 ++++-- softmmu/vl.c | 43 ++++++++++++++++++++--------- tests/qtest/fuzz/fuzz.c | 12 ++++---- ui/gtk.c | 10 +++++-- ui/sdl2.c | 9 ++++-- util/cutils.c | 61 +++++++++++++++++++++++++++++++++++++++++ util/module.c | 10 ++----- util/oslib-posix.c | 35 +++++++++++------------ util/oslib-win32.c | 14 +++++++--- 20 files changed, 205 insertions(+), 130 deletions(-) -- 2.26.2
On 01/09/2020 07:20, Paolo Bonzini wrote: > Right now, the installation of QEMU is not relocatable; there is > a local hack in os_find_datadir() so that Windows binaries look > for ROMs in the executable directory, but that has several limitations: > > - it does not extend to configuration files, icons, etc. > > - it does not allow changing the data directory in any way > > - it does not apply to POSIX platforms > > This series fixes that by making all paths within the installation > prefix relative to the executable. This in practice means all paths > will be relocatable, except for /etc and /var if they're moved > outside the prefix. > > Here is an example of relocatability; before: > > $ make DESTDIR=$PWD/test install > $ cd test/usr/local/bin > $ ./qemu-system-ppc -L help > /usr/local/share/qemu-firmware > /usr/local/share/qemu > > After: > > $ make DESTDIR=$PWD/test install > $ cd test/usr/local/bin > $ ./qemu-system-ppc -L help > /home/pbonzini/work/upstream/qemu/+build/test/usr/local/bin/../share/qemu-firmware > /home/pbonzini/work/upstream/qemu/+build/test/usr/local/bin/../share/qemu > > The main benefit of this is on Windows, as mentioned above; but it also > makes behavior more consistent across platforms and allows the removal > of the hack that hides the "c:/Program Files/QEMU" prefix from Meson > during cross compilation. > > Paolo Hi Paolo, I've managed to give this a quick go this evening and I see the same link error reported by Yonggang Luo at https://lists.gnu.org/archive/html/qemu-devel/2020-09/msg00586.html, i.e.: "cc" -o storage-daemon/qemu-storage-daemon.exe version.rc_version.o storage-daemon/qemu-storage-daemon.exe.p/meson-generated_.._qapi_qapi-introspect.c.obj storage-daemon/qemu-storage-daemon.exe.p/meson-generated_.._qapi_qapi-commands.c.obj storage-daemon/qemu-storage-daemon.exe.p/meson-generated_.._qapi_qapi-emit-events.c.obj storage-daemon/qemu-storage-daemon.exe.p/meson-generated_.._qapi_qapi-events.c.obj storage-daemon/qemu-storage-daemon.exe.p/meson-generated_.._qapi_qapi-visit.c.obj storage-daemon/qemu-storage-daemon.exe.p/meson-generated_.._qapi_qapi-init-commands.c.obj storage-daemon/qemu-storage-daemon.exe.p/meson-generated_.._qapi_qapi-types.c.obj storage-daemon/qemu-storage-daemon.exe.p/qemu-storage-daemon.c.obj storage-daemon/qemu-storage-daemon.exe.p/.._iothread.c.obj storage-daemon/qemu-storage-daemon.exe.p/.._blockdev-nbd.c.obj storage-daemon/qemu-storage-daemon.exe.p/.._blockdev.c.obj storage-daemon/qemu-storage-daemon.exe.p/.._job-qmp.c.obj "-L/home/Mark/qemu/build/dtc/libfdt" "-Wl,--allow-shlib-undefined" "-Wl,--whole-archive" "libqmp.fa" "libblock.fa" "crypto/libcrypto.fa" "authz/libauthz.fa" "qom/libqom.fa" "io/libio.fa" "chardev/libchardev.fa" "-Wl,--no-whole-archive" "-Wl,--nxcompat" "-Wl,--no-seh" "-Wl,--dynamicbase" "-Wl,--warn-common" "-m64" "-fstack-protector-strong" "-Wl,--start-group" "libqemuutil.a" "libqmp.fa" "libblock.fa" "crypto/libcrypto.fa" "authz/libauthz.fa" "qom/libqom.fa" "io/libio.fa" "chardev/libchardev.fa" "@block.syms" "-lwinmm" "-LC:/msys64/mingw64/lib" "-lgio-2.0" "-lgobject-2.0" "-lglib-2.0" "-lintl" "-pthread" "-lm" "-LC:/msys64/mingw64/lib" "-lgthread-2.0" "-lglib-2.0" "-lintl" "-lws2_32" "-LC:/msys64/mingw64/lib" "-lzstd" "-LC:/msys64/mingw64/lib" "-lxml2" "-LC:/msys64/mingw64/lib" "-lz" "-lbz2" "-LC:/msys64/mingw64/lib" "-lgthread-2.0" "-lglib-2.0" "-lintl" "-mconsole" "-lkernel32" "-luser32" "-lgdi32" "-lwinspool" "-lshell32" "-lole32" "-loleaut32" "-luuid" "-lcomdlg32" "-ladvapi32" "-Wl,--end-group" C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lfdt C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lcapstone C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lfdt C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lcapstone C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lslirp C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lslirp collect2.exe: error: ld returned 1 exit status make[1]: *** [Makefile.ninja:1405: qemu-system-ppc.exe] Error 1 make[1]: *** Waiting for unfinished jobs.... collect2.exe: error: ld returned 1 exit status make[1]: *** [Makefile.ninja:1407: qemu-system-ppcw.exe] Error 1 make[1]: Leaving directory '/home/Mark/qemu/build' make: *** [GNUmakefile:11: install] Error 2 I think this means that it's missing something from Yonggang Luo's patch here: https://lists.gnu.org/archive/html/qemu-devel/2020-08/msg07668.html. I haven't looked at patch 1 in that series for converting undefsym.sh to undefsym.py yet, although last time I was able to get a working build without it. Also patch 13 wouldn't apply for me to git master: I ended up having to make the changes by hand, so looks like something requiring a rebase has recently snuck in. ATB, Mark.
Il mar 1 set 2020, 23:15 Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> ha scritto: > I think this means that it's missing something from Yonggang Luo's patch > here: > https://lists.gnu.org/archive/html/qemu-devel/2020-08/msg07668.html. Yes, I am a bit afraid of that patch. I don't understand exactly why it's needed and I need to look more closely. Paolo I haven't looked > at patch 1 in that series for converting undefsym.sh to undefsym.py yet, > although > last time I was able to get a working build without it. > > Also patch 13 wouldn't apply for me to git master: I ended up having to > make the > changes by hand, so looks like something requiring a rebase has recently > snuck in. > > > ATB, > > Mark. > >
On 01/09/2020 22:22, Paolo Bonzini wrote: > Il mar 1 set 2020, 23:15 Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk > <mailto:mark.cave-ayland@ilande.co.uk>> ha scritto: > > I think this means that it's missing something from Yonggang Luo's patch here: > https://lists.gnu.org/archive/html/qemu-devel/2020-08/msg07668.html. > > > Yes, I am a bit afraid of that patch. I don't understand exactly why it's needed and > I need to look more closely. > > Paolo I did a quick experiment first thing this morning and it really is just the Windows linker ld.exe that requires a Windows-style path, since I was able to successfully build with just this: diff --git a/configure b/configure index f6638abadf..cb56d31a5d 100755 --- a/configure +++ b/configure @@ -1015,6 +1015,9 @@ if test "$mingw32" = "yes" ; then prefix="/qemu" confsuffix="" libs_qga="-lws2_32 -lwinmm -lpowrprof -lwtsapi32 -lwininet -liphlpapi -lnetapi32 $libs_qga" + ld_pwd=$(pwd -W) +else + ld_pwd=$(pwd) fi werror="" @@ -4290,7 +4293,7 @@ EOF symlink "$source_path/dtc/Makefile" "dtc/Makefile" fi fdt_cflags="-I${source_path}/dtc/libfdt" - fdt_ldflags="-L$PWD/dtc/libfdt" + fdt_ldflags="-L${ld_pwd}/dtc/libfdt" fdt_libs="$fdt_libs" elif test "$fdt" = "yes" ; then # Not a git build & no libfdt found, prompt for system install @@ -5275,7 +5278,7 @@ case "$capstone" in else LIBCAPSTONE=libcapstone.a fi - capstone_libs="-L$PWD/capstone -lcapstone" + capstone_libs="-L${ld_pwd}/capstone -lcapstone" capstone_cflags="-I${source_path}/capstone/include" ;; @@ -6276,7 +6279,7 @@ case "$slirp" in fi mkdir -p slirp slirp_cflags="-I${source_path}/slirp/src -I$PWD/slirp/src" - slirp_libs="-L$PWD/slirp -lslirp" + slirp_libs="-L${ld_pwd}/slirp -lslirp" if test "$mingw32" = "yes" ; then slirp_libs="$slirp_libs -lws2_32 -liphlpapi" fi I'll try again with the relocatable install later - do I still need to pass --prefix into configure or should I leave that for now and just use DESTDIR? ATB, Mark.
On 02/09/20 08:09, Mark Cave-Ayland wrote: > diff --git a/configure b/configure > index f6638abadf..cb56d31a5d 100755 > --- a/configure > +++ b/configure > @@ -1015,6 +1015,9 @@ if test "$mingw32" = "yes" ; then > prefix="/qemu" > confsuffix="" > libs_qga="-lws2_32 -lwinmm -lpowrprof -lwtsapi32 -lwininet -liphlpapi -lnetapi32 > $libs_qga" > + ld_pwd=$(pwd -W) > +else > + ld_pwd=$(pwd) > fi That wouldn't work for cross-compilation, but I got the idea. :) > werror="" > @@ -4290,7 +4293,7 @@ EOF > symlink "$source_path/dtc/Makefile" "dtc/Makefile" > fi > fdt_cflags="-I${source_path}/dtc/libfdt" > - fdt_ldflags="-L$PWD/dtc/libfdt" > + fdt_ldflags="-L${ld_pwd}/dtc/libfdt" > fdt_libs="$fdt_libs" > elif test "$fdt" = "yes" ; then > # Not a git build & no libfdt found, prompt for system install > @@ -5275,7 +5278,7 @@ case "$capstone" in > else > LIBCAPSTONE=libcapstone.a > fi > - capstone_libs="-L$PWD/capstone -lcapstone" > + capstone_libs="-L${ld_pwd}/capstone -lcapstone" > capstone_cflags="-I${source_path}/capstone/include" > ;; > > @@ -6276,7 +6279,7 @@ case "$slirp" in > fi > mkdir -p slirp > slirp_cflags="-I${source_path}/slirp/src -I$PWD/slirp/src" > - slirp_libs="-L$PWD/slirp -lslirp" > + slirp_libs="-L${ld_pwd}/slirp -lslirp" > if test "$mingw32" = "yes" ; then > slirp_libs="$slirp_libs -lws2_32 -liphlpapi" > fi Since there is no recursive make anymore, these can be just -Ldtc/libfdt, -Lcapstone and -Lslirp. Nice. :) > I'll try again with the relocatable install later - do I still need to pass --prefix > into configure or should I leave that for now and just use DESTDIR? You can just use DESTDIR. Paolo
On 02/09/2020 07:42, Paolo Bonzini wrote: > On 02/09/20 08:09, Mark Cave-Ayland wrote: >> diff --git a/configure b/configure >> index f6638abadf..cb56d31a5d 100755 >> --- a/configure >> +++ b/configure >> @@ -1015,6 +1015,9 @@ if test "$mingw32" = "yes" ; then >> prefix="/qemu" >> confsuffix="" >> libs_qga="-lws2_32 -lwinmm -lpowrprof -lwtsapi32 -lwininet -liphlpapi -lnetapi32 >> $libs_qga" >> + ld_pwd=$(pwd -W) >> +else >> + ld_pwd=$(pwd) >> fi > > That wouldn't work for cross-compilation, but I got the idea. :) > >> werror="" >> @@ -4290,7 +4293,7 @@ EOF >> symlink "$source_path/dtc/Makefile" "dtc/Makefile" >> fi >> fdt_cflags="-I${source_path}/dtc/libfdt" >> - fdt_ldflags="-L$PWD/dtc/libfdt" >> + fdt_ldflags="-L${ld_pwd}/dtc/libfdt" >> fdt_libs="$fdt_libs" >> elif test "$fdt" = "yes" ; then >> # Not a git build & no libfdt found, prompt for system install >> @@ -5275,7 +5278,7 @@ case "$capstone" in >> else >> LIBCAPSTONE=libcapstone.a >> fi >> - capstone_libs="-L$PWD/capstone -lcapstone" >> + capstone_libs="-L${ld_pwd}/capstone -lcapstone" >> capstone_cflags="-I${source_path}/capstone/include" >> ;; >> >> @@ -6276,7 +6279,7 @@ case "$slirp" in >> fi >> mkdir -p slirp >> slirp_cflags="-I${source_path}/slirp/src -I$PWD/slirp/src" >> - slirp_libs="-L$PWD/slirp -lslirp" >> + slirp_libs="-L${ld_pwd}/slirp -lslirp" >> if test "$mingw32" = "yes" ; then >> slirp_libs="$slirp_libs -lws2_32 -liphlpapi" >> fi > > Since there is no recursive make anymore, these can be just > -Ldtc/libfdt, -Lcapstone and -Lslirp. Nice. :) Yes indeed, a quick test with this diff on top of your patchset gives me a working build and link (minus the manual patch still required to capstone): diff --git a/configure b/configure index f6638abadf..ac3ba88d8a 100755 --- a/configure +++ b/configure @@ -4290,7 +4290,7 @@ EOF symlink "$source_path/dtc/Makefile" "dtc/Makefile" fi fdt_cflags="-I${source_path}/dtc/libfdt" - fdt_ldflags="-L$PWD/dtc/libfdt" + fdt_ldflags="-Ldtc/libfdt" fdt_libs="$fdt_libs" elif test "$fdt" = "yes" ; then # Not a git build & no libfdt found, prompt for system install @@ -5275,7 +5275,7 @@ case "$capstone" in else LIBCAPSTONE=libcapstone.a fi - capstone_libs="-L$PWD/capstone -lcapstone" + capstone_libs="-Lcapstone -lcapstone" capstone_cflags="-I${source_path}/capstone/include" ;; @@ -6276,7 +6276,7 @@ case "$slirp" in fi mkdir -p slirp slirp_cflags="-I${source_path}/slirp/src -I$PWD/slirp/src" - slirp_libs="-L$PWD/slirp -lslirp" + slirp_libs="-Lslirp -lslirp" if test "$mingw32" = "yes" ; then slirp_libs="$slirp_libs -lws2_32 -liphlpapi" fi >> I'll try again with the relocatable install later - do I still need to pass --prefix >> into configure or should I leave that for now and just use DESTDIR? > > You can just use DESTDIR. This doesn't quite look right: I went with "make V=1 DESTDIR=/home/Mark/rel-qemu-git install" and the resulting tree came out like this: /home/Mark/rel-qemu-git: total 20 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 msys64 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 qemu /home/Mark/rel-qemu-git/msys64: total 4 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 qemu /home/Mark/rel-qemu-git/msys64/qemu: total 29072 -rwxr-xr-x 1 Mark None 311296 Sep 2 11:26 qemu-edid.exe -rwxr-xr-x 1 Mark None 496640 Sep 2 11:26 qemu-ga.exe -rwxr-xr-x 1 Mark None 1650688 Sep 2 11:26 qemu-img.exe -rwxr-xr-x 1 Mark None 1597440 Sep 2 11:26 qemu-io.exe -rwxr-xr-x 1 Mark None 2001920 Sep 2 11:26 qemu-storage-daemon.exe -rwxr-xr-x 1 Mark None 11850752 Sep 2 11:26 qemu-system-ppc.exe -rwxr-xr-x 1 Mark None 11850752 Sep 2 11:26 qemu-system-ppcw.exe drwxr-xr-x 1 Mark None 0 Sep 2 11:26 share /home/Mark/rel-qemu-git/msys64/qemu/share: total 4 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 locale /home/Mark/rel-qemu-git/msys64/qemu/share/locale: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 bg drwxr-xr-x 1 Mark None 0 Sep 2 11:26 de_DE drwxr-xr-x 1 Mark None 0 Sep 2 11:26 fr_FR drwxr-xr-x 1 Mark None 0 Sep 2 11:26 hu drwxr-xr-x 1 Mark None 0 Sep 2 11:26 it drwxr-xr-x 1 Mark None 0 Sep 2 11:26 sv drwxr-xr-x 1 Mark None 0 Sep 2 11:26 tr drwxr-xr-x 1 Mark None 0 Sep 2 11:26 zh_CN /home/Mark/rel-qemu-git/msys64/qemu/share/locale/bg: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 LC_MESSAGES /home/Mark/rel-qemu-git/msys64/qemu/share/locale/bg/LC_MESSAGES: total 4 -rw-r--r-- 1 Mark None 1633 Sep 2 11:26 qemu.mo /home/Mark/rel-qemu-git/msys64/qemu/share/locale/de_DE: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 LC_MESSAGES /home/Mark/rel-qemu-git/msys64/qemu/share/locale/de_DE/LC_MESSAGES: total 4 -rw-r--r-- 1 Mark None 1342 Sep 2 11:26 qemu.mo /home/Mark/rel-qemu-git/msys64/qemu/share/locale/fr_FR: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 LC_MESSAGES /home/Mark/rel-qemu-git/msys64/qemu/share/locale/fr_FR/LC_MESSAGES: total 4 -rw-r--r-- 1 Mark None 1363 Sep 2 11:26 qemu.mo /home/Mark/rel-qemu-git/msys64/qemu/share/locale/hu: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 LC_MESSAGES /home/Mark/rel-qemu-git/msys64/qemu/share/locale/hu/LC_MESSAGES: total 4 -rw-r--r-- 1 Mark None 1019 Sep 2 11:26 qemu.mo /home/Mark/rel-qemu-git/msys64/qemu/share/locale/it: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 LC_MESSAGES /home/Mark/rel-qemu-git/msys64/qemu/share/locale/it/LC_MESSAGES: total 4 -rw-r--r-- 1 Mark None 1324 Sep 2 11:26 qemu.mo /home/Mark/rel-qemu-git/msys64/qemu/share/locale/sv: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 LC_MESSAGES /home/Mark/rel-qemu-git/msys64/qemu/share/locale/sv/LC_MESSAGES: total 4 -rw-r--r-- 1 Mark None 1381 Sep 2 11:26 qemu.mo /home/Mark/rel-qemu-git/msys64/qemu/share/locale/tr: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 LC_MESSAGES /home/Mark/rel-qemu-git/msys64/qemu/share/locale/tr/LC_MESSAGES: total 4 -rw-r--r-- 1 Mark None 1047 Sep 2 11:26 qemu.mo /home/Mark/rel-qemu-git/msys64/qemu/share/locale/zh_CN: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 LC_MESSAGES /home/Mark/rel-qemu-git/msys64/qemu/share/locale/zh_CN/LC_MESSAGES: total 4 -rw-r--r-- 1 Mark None 1393 Sep 2 11:26 qemu.mo /home/Mark/rel-qemu-git/qemu: total 12068 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 applications -rw-r--r-- 1 Mark None 3211 Sep 2 11:26 bamboo.dtb -rw-r--r-- 1 Mark None 131072 Sep 2 11:26 bios.bin -rw-r--r-- 1 Mark None 262144 Sep 2 11:26 bios-256k.bin -rw-r--r-- 1 Mark None 65536 Sep 2 11:26 bios-microvm.bin -rw-r--r-- 1 Mark None 9779 Sep 2 11:26 canyonlands.dtb -rw-r--r-- 1 Mark None 42903 Sep 2 11:26 edk2-licenses.txt -rw-r--r-- 1 Mark None 240128 Sep 2 11:26 efi-e1000.rom -rw-r--r-- 1 Mark None 240128 Sep 2 11:26 efi-e1000e.rom -rw-r--r-- 1 Mark None 240128 Sep 2 11:26 efi-eepro100.rom -rw-r--r-- 1 Mark None 238592 Sep 2 11:26 efi-ne2k_pci.rom -rw-r--r-- 1 Mark None 238592 Sep 2 11:26 efi-pcnet.rom -rw-r--r-- 1 Mark None 242688 Sep 2 11:26 efi-rtl8139.rom -rw-r--r-- 1 Mark None 242688 Sep 2 11:26 efi-virtio.rom -rw-r--r-- 1 Mark None 236032 Sep 2 11:26 efi-vmxnet3.rom drwxr-xr-x 1 Mark None 0 Sep 2 11:26 firmware -rw-r--r-- 1 Mark None 783192 Sep 2 11:26 hppa-firmware.img drwxr-xr-x 1 Mark None 0 Sep 2 11:26 icons drwxr-xr-x 1 Mark None 0 Sep 2 11:26 keymaps -rw-r--r-- 1 Mark None 9216 Sep 2 11:26 kvmvapic.bin -rw-r--r-- 1 Mark None 1024 Sep 2 11:26 linuxboot.bin -rw-r--r-- 1 Mark None 1536 Sep 2 11:26 linuxboot_dma.bin -rw-r--r-- 1 Mark None 1024 Sep 2 11:26 multiboot.bin -rw-r--r-- 1 Mark None 696912 Sep 2 11:26 openbios-ppc -rw-r--r-- 1 Mark None 382048 Sep 2 11:26 openbios-sparc32 -rw-r--r-- 1 Mark None 1593408 Sep 2 11:26 openbios-sparc64 -rw-r--r-- 1 Mark None 62144 Sep 2 11:26 opensbi-riscv32-generic-fw_dynamic.bin -rw-r--r-- 1 Mark None 558668 Sep 2 11:26 opensbi-riscv32-generic-fw_dynamic.elf -rw-r--r-- 1 Mark None 70792 Sep 2 11:26 opensbi-riscv64-generic-fw_dynamic.bin -rw-r--r-- 1 Mark None 620424 Sep 2 11:26 opensbi-riscv64-generic-fw_dynamic.elf -rw-r--r-- 1 Mark None 156328 Sep 2 11:26 palcode-clipper -rw-r--r-- 1 Mark None 9882 Sep 2 11:26 petalogix-ml605.dtb -rw-r--r-- 1 Mark None 8161 Sep 2 11:26 petalogix-s3adsp1800.dtb -rw-r--r-- 1 Mark None 1536 Sep 2 11:26 pvh.bin -rw-r--r-- 1 Mark None 67072 Sep 2 11:26 pxe-e1000.rom -rw-r--r-- 1 Mark None 61440 Sep 2 11:26 pxe-eepro100.rom -rw-r--r-- 1 Mark None 61440 Sep 2 11:26 pxe-ne2k_pci.rom -rw-r--r-- 1 Mark None 61440 Sep 2 11:26 pxe-pcnet.rom -rw-r--r-- 1 Mark None 61440 Sep 2 11:26 pxe-rtl8139.rom -rw-r--r-- 1 Mark None 60416 Sep 2 11:26 pxe-virtio.rom -rw-r--r-- 1 Mark None 850 Sep 2 11:26 QEMU,cgthree.bin -rw-r--r-- 1 Mark None 1402 Sep 2 11:26 QEMU,tcx.bin -rw-r--r-- 1 Mark None 18752 Sep 2 11:26 qemu_vga.ndrv -rw-r--r-- 1 Mark None 154542 Sep 2 11:26 qemu-nsis.bmp -rw-r--r-- 1 Mark None 42608 Sep 2 11:26 s390-ccw.img -rw-r--r-- 1 Mark None 67232 Sep 2 11:26 s390-netboot.img -rw-r--r-- 1 Mark None 4096 Sep 2 11:26 sgabios.bin -rw-r--r-- 1 Mark None 1667280 Sep 2 11:26 skiboot.lid -rw-r--r-- 1 Mark None 968368 Sep 2 11:26 slof.bin -rw-r--r-- 1 Mark None 348512 Sep 2 11:20 trace-events-all -rw-r--r-- 1 Mark None 349148 Sep 2 11:26 u-boot.e500 -rw-r--r-- 1 Mark None 524288 Sep 2 11:26 u-boot-sam460-20100605.bin -rw-r--r-- 1 Mark None 38912 Sep 2 11:26 vgabios.bin -rw-r--r-- 1 Mark None 39424 Sep 2 11:26 vgabios-ati.bin -rw-r--r-- 1 Mark None 28672 Sep 2 11:26 vgabios-bochs-display.bin -rw-r--r-- 1 Mark None 38912 Sep 2 11:26 vgabios-cirrus.bin -rw-r--r-- 1 Mark None 39424 Sep 2 11:26 vgabios-qxl.bin -rw-r--r-- 1 Mark None 28672 Sep 2 11:26 vgabios-ramfb.bin -rw-r--r-- 1 Mark None 39424 Sep 2 11:26 vgabios-stdvga.bin -rw-r--r-- 1 Mark None 39424 Sep 2 11:26 vgabios-virtio.bin -rw-r--r-- 1 Mark None 39424 Sep 2 11:26 vgabios-vmware.bin /home/Mark/rel-qemu-git/qemu/applications: total 1 -rw-r--r-- 1 Mark None 134 Sep 2 11:26 qemu.desktop /home/Mark/rel-qemu-git/qemu/firmware: total 21 -rw-r--r-- 1 Mark None 696 Sep 2 11:19 50-edk2-i386-secure.json -rw-r--r-- 1 Mark None 721 Sep 2 11:19 50-edk2-x86_64-secure.json -rw-r--r-- 1 Mark None 602 Sep 2 11:19 60-edk2-aarch64.json -rw-r--r-- 1 Mark None 590 Sep 2 11:19 60-edk2-arm.json -rw-r--r-- 1 Mark None 647 Sep 2 11:19 60-edk2-i386.json -rw-r--r-- 1 Mark None 672 Sep 2 11:19 60-edk2-x86_64.json /home/Mark/rel-qemu-git/qemu/icons: total 4 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 hicolor /home/Mark/rel-qemu-git/qemu/icons/hicolor: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 128x128 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 16x16 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 24x24 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 256x256 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 32x32 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 48x48 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 512x512 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 64x64 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 scalable /home/Mark/rel-qemu-git/qemu/icons/hicolor/128x128: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 apps /home/Mark/rel-qemu-git/qemu/icons/hicolor/128x128/apps: total 12 -rw-r--r-- 1 Mark None 8286 Sep 2 11:26 qemu.png /home/Mark/rel-qemu-git/qemu/icons/hicolor/16x16: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 apps /home/Mark/rel-qemu-git/qemu/icons/hicolor/16x16/apps: total 4 -rw-r--r-- 1 Mark None 765 Sep 2 11:26 qemu.png /home/Mark/rel-qemu-git/qemu/icons/hicolor/24x24: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 apps /home/Mark/rel-qemu-git/qemu/icons/hicolor/24x24/apps: total 4 -rw-r--r-- 1 Mark None 1201 Sep 2 11:26 qemu.png /home/Mark/rel-qemu-git/qemu/icons/hicolor/256x256: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 apps /home/Mark/rel-qemu-git/qemu/icons/hicolor/256x256/apps: total 20 -rw-r--r-- 1 Mark None 17572 Sep 2 11:26 qemu.png /home/Mark/rel-qemu-git/qemu/icons/hicolor/32x32: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 apps /home/Mark/rel-qemu-git/qemu/icons/hicolor/32x32/apps: total 12 -rw-r--r-- 1 Mark None 4234 Sep 2 11:26 qemu.bmp -rw-r--r-- 1 Mark None 1696 Sep 2 11:26 qemu.png /home/Mark/rel-qemu-git/qemu/icons/hicolor/48x48: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 apps /home/Mark/rel-qemu-git/qemu/icons/hicolor/48x48/apps: total 4 -rw-r--r-- 1 Mark None 2694 Sep 2 11:26 qemu.png /home/Mark/rel-qemu-git/qemu/icons/hicolor/512x512: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 apps /home/Mark/rel-qemu-git/qemu/icons/hicolor/512x512/apps: total 40 -rw-r--r-- 1 Mark None 38007 Sep 2 11:26 qemu.png /home/Mark/rel-qemu-git/qemu/icons/hicolor/64x64: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 apps /home/Mark/rel-qemu-git/qemu/icons/hicolor/64x64/apps: total 4 -rw-r--r-- 1 Mark None 3807 Sep 2 11:26 qemu.png /home/Mark/rel-qemu-git/qemu/icons/hicolor/scalable: total 0 drwxr-xr-x 1 Mark None 0 Sep 2 11:26 apps /home/Mark/rel-qemu-git/qemu/icons/hicolor/scalable/apps: total 32 -rw-r--r-- 1 Mark None 30955 Sep 2 11:26 qemu.svg /home/Mark/rel-qemu-git/qemu/keymaps: total 12 -rw-r--r-- 1 Mark None 4632 Aug 23 21:31 sl -rw-r--r-- 1 Mark None 3346 Aug 23 21:31 sv The main issues I can see are that the .exe files end up under /msys64/qemu and the ROMs end up directly under /qemu rather than in $DESTDIR/share. Do we know why there is also a qemu-system-ppcw.exe that appears? ATB, Mark.
On 02/09/20 13:42, Mark Cave-Ayland wrote: > The main issues I can see are that the .exe files end up under /msys64/qemu > and the ROMs end up directly under /qemu rather than in $DESTDIR/share. This series doesn't try to change the layout; it only makes it possible to do so (because QEMU is now able to look for ROMs relative to the executable). Just to be on the same page, how did you run "configure"? > Do we know why there is also a qemu-system-ppcw.exe that appears? That executable doesn't bring up a console window. Paolo
On 02/09/2020 13:16, Paolo Bonzini wrote: > On 02/09/20 13:42, Mark Cave-Ayland wrote: >> The main issues I can see are that the .exe files end up under /msys64/qemu >> and the ROMs end up directly under /qemu rather than in $DESTDIR/share. > > This series doesn't try to change the layout; it only makes it possible > to do so (because QEMU is now able to look for ROMs relative to the > executable). > > Just to be on the same page, how did you run "configure"? Ah okay. It was something simple like: ./configure --target-list="ppc-softmmu" --ninja=ninja make V=1 DESTDIR=/home/Mark/rel-qemu-git install A quick test shows that I can move qemu-system-ppc.exe to a new directory and as long as the pc-bios directory is in the same place then it will work fine. >> Do we know why there is also a qemu-system-ppcw.exe that appears? > > That executable doesn't bring up a console window. From what I can see neither executable brings up a console window here. I have a vague memory that mingw needs an extra flag/change of link options for this to work compared to cygwin but it could use some investigation (for example qemu-system-ppc.exe just hangs if the pc-bios directory is missing). ATB, Mark.
Il mer 2 set 2020, 20:45 Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> ha scritto: > On 02/09/2020 13:16, Paolo Bonzini wrote: > > > On 02/09/20 13:42, Mark Cave-Ayland wrote: > >> The main issues I can see are that the .exe files end up under > /msys64/qemu > >> and the ROMs end up directly under /qemu rather than in $DESTDIR/share. > > > > This series doesn't try to change the layout; it only makes it possible > > to do so (because QEMU is now able to look for ROMs relative to the > > executable). > > > > Just to be on the same page, how did you run "configure"? > > Ah okay. It was something simple like: > > ./configure --target-list="ppc-softmmu" --ninja=ninja > make V=1 DESTDIR=/home/Mark/rel-qemu-git install That msys64 in the installation prefix is strange though. Can you send the content of meson-logs directory? Paolo
On 02/09/2020 12:42, Mark Cave-Ayland wrote: > The main issues I can see are that the .exe files end up under /msys64/qemu and the > ROMs end up directly under /qemu rather than in $DESTDIR/share. > > Do we know why there is also a qemu-system-ppcw.exe that appears? The other thing to bear in mind is I may have made a mistake patching up patch 13 by hand - could you push a rebased version to a branch somewhere for me to test? ATB, Mark.
© 2016 - 2024 Red Hat, Inc.