On Tue, 3 Aug 2021 at 10:08, Peter Maydell <peter.maydell@linaro.org> wrote:
> Are you testing by starting with a before-the-libslirp-merge
> change QEMU, doing a build, then updating to the libslirp
> changes, and then doing a 'make' without reconfigure or
> 'make clean' ? I suspect this is perhaps to do with it being
> an incremental build.
More specifically:
$ git checkout master
$ mkdir build/slirptest
$ (cd build/slirptest && ../../configure --target-list=arm-softmmu
--enable-debug --disable-docs --disable-tools)
$ make -C build/slirptest -j8
$ git checkout remotes/elmarco/libslirp
$ make -C build/slirptest
$ mkdir build/slirp2
$ (cd build/slirptest && ../../configure --target-list=arm-softmmu
--enable-debug --disable-docs --disable-tools)
$ make -C build/slirp2
The build/slirptest directory has built a .so, and the
build/slirp2 directory has built a static .a.
(Both builds succeed because they're not hitting the clang
static analyzer thing, but they shouldn't be building different
types of library.)
Running '../../meson/meson.py configure' in slirp2 gives
(ignoring the non libslirp parts of the output):
Subproject libslirp:
Core options Current Value
Possible Values
Description
------------ -------------
---------------
-----------
libslirp:default_library static
[shared, static, both] Default
library type
libslirp:werror true [true,
false] Treat warnings
as errors
Project options Current Value
Possible Values
Description
--------------- -------------
---------------
-----------
libslirp:version_suffix
Suffix to append
to SLIRP_VERSION_STRING
In slirptest I get only:
Subproject libslirp:
Project options Current Value
Possible Values
Description
--------------- -------------
---------------
-----------
libslirp:version_suffix
Suffix to append
to SLIRP_VERSION_STRING
So somehow meson has failed to apply the default_library and werror options in
the incremental build case.
Either we acknowledge that, or we fix the qemu meson.build for now with the missing -lresolv for osx/bsd.
I am going to work on a patch for the second option, but leave the decision open.