[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 00/13] Make QEMU installation relocatable
From: |
Mark Cave-Ayland |
Subject: |
Re: [PATCH 00/13] Make QEMU installation relocatable |
Date: |
Tue, 1 Sep 2020 22:14:14 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 |
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.
- [PATCH 08/13] vl: relocate paths to data directories, (continued)
- [PATCH 12/13] ui: relocate paths to icons and translations, Paolo Bonzini, 2020/09/01
- [PATCH 13/13] configure: use a platform-neutral prefix, Paolo Bonzini, 2020/09/01
- [PATCH 10/13] qemu-bridge-helper: relocate path to default ACL, Paolo Bonzini, 2020/09/01
- [PATCH 04/13] cutils: introduce get_relocated_path, Paolo Bonzini, 2020/09/01
- [PATCH 11/13] qga: relocate path to default configuration and hook, Paolo Bonzini, 2020/09/01
- Re: [PATCH 00/13] Make QEMU installation relocatable,
Mark Cave-Ayland <=
- Re: [PATCH 00/13] Make QEMU installation relocatable, Paolo Bonzini, 2020/09/01
- Re: [PATCH 00/13] Make QEMU installation relocatable, Mark Cave-Ayland, 2020/09/02
- Re: [PATCH 00/13] Make QEMU installation relocatable, Paolo Bonzini, 2020/09/02
- Re: [PATCH 00/13] Make QEMU installation relocatable, Mark Cave-Ayland, 2020/09/02
- Re: [PATCH 00/13] Make QEMU installation relocatable, Mark Cave-Ayland, 2020/09/02
- Re: [PATCH 00/13] Make QEMU installation relocatable, Paolo Bonzini, 2020/09/02
- Re: [PATCH 00/13] Make QEMU installation relocatable, Mark Cave-Ayland, 2020/09/02
- Re: [PATCH 00/13] Make QEMU installation relocatable, Paolo Bonzini, 2020/09/02