On Mon, 6 Sept 2021 at 16:08, Paolo Bonzini <pbonz...@redhat.com> wrote: > > On 06/09/21 11:51, Thomas Huth wrote: > > On 03/09/2021 18.49, Peter Maydell wrote: > >> But I think there is an underlying meson bug here which that kind of > >> use of an if is merely working around: if we ask for a static library > >> it should not give us a dynamic library. > > > > Agreed. Actually, when I run configure with "--static --disable-system" > > on my laptop, I'm also getting some warnings: > > > > WARNING: Static library 'z' not found for dependency 'zlib', may not be > > statically linked > > Run-time dependency zlib found: YES 1.2.11 > > Run-time dependency appleframeworks found: NO (tried framework) > > Library rt found: YES > > WARNING: Static library 'png16' not found for dependency 'libpng', may > > not be statically linked > > WARNING: Static library 'z' not found for dependency 'libpng', may not > > be statically linked > > > > ... and linking then later fails while running "make". > > > > Paolo, could the behavior of meson be changed to fail already the > > configuration step in this case instead of only printing a warning? > > The reason why this is just a warning is explained only in the code, and > it's this: > > # Library wasn't found, maybe we're looking in the wrong > # places or the library will be provided with LDFLAGS or > # LIBRARY_PATH from the environment (on macOS), and many > # other edge cases that we can't account for. > # > # Add all -L paths and use it as -lfoo > > In other words, Meson doesn't really know the library will be used for a > statically-linked binary (as opposed to just not wanting a shared > library for whatever reason). So it looks for a .a file, and forces use > of the a static library by passing a path to that file. If it cannot > find one, it warns.
Then Meson needs a feature so we can tell it "yes, we really did mean that we want a static library, and only a static library will do". thanks -- PMM