qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH-for-8.0] block/dmg: Ignore C99 prototype declaration mismatch


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH-for-8.0] block/dmg: Ignore C99 prototype declaration mismatch from <lzfse.h>
Date: Tue, 28 Mar 2023 15:12:27 +0200
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.9.0

On 28/3/23 08:29, Stefan Weil wrote:
Am 27.03.23 um 23:09 schrieb Paolo Bonzini:

Il lun 27 mar 2023, 20:58 Philippe Mathieu-Daudé <philmd@linaro.org> ha scritto:

    > The warning can also be suppressed if the build uses `-isystem
    > /opt/homebrew/include` instead of `-I/opt/homebrew/include` as I
    just
    > have tested.

Is that option added by QEMU's configure or meson.build? Or is it added by homebrew? The fact that /opt/homebrew/include it isn't considered a system seems to be a homebrew decision.

    IIUC by design meson only allows including *relative* directories,
    and manage the system ones:
    https://mesonbuild.com/Include-directories.html

That's for includes that are part of QEMU.

Meson has as_system for dependency objects (https://mesonbuild.com/Reference-manual_returned_dep.html) but lzfse doesn't have a .pc file, its detection has to be done by hand.

Paolo

    > If we can find a solution how to implement that I thing it would
    look
    > nicer. Technically the patch looks good.
    >
    > Reviewed-by: Stefan Weil <sw@weilnetz.de>

    Thanks!


Typically I configure the build on macOS with `./configure --extra-cflags=-I/opt/homebrew/include --extra-ldflags=-L/opt/homebrew/lib --disable-werror`. With that configuration I get the two warnings for lzfse.h.

When I use `./configure '--extra-cflags=-isystem /opt/homebrew/include' --extra-ldflags=-L/opt/homebrew/lib --disable-werror` instead, I get no compiler warnings (and `--disable-werror` could be ommitted).

So at least for macOS with Homebrew in /opt/homebrew (M1 / M2 Macs) the patch is not needed when the right configure options (`--extra-cflags`) were used.

What I learned:

- If lzfse were well packaged (as noted Paolo), we could use
  dependency(..., include_type: 'system')
  https://github.com/mesonbuild/meson/issues/963#issuecomment-1277851401

- I agree with Eli Schwartz, a Meson maintainer:

  > More bugs caused by and only affecting people who misuse and
  > abuse -isystem as "not system, but as a side effect please
  > don't emit warnings for this messy dependency"...

  https://github.com/mesonbuild/meson/issues/8755#issuecomment-836913759

I wasted few hours on this, and am now giving up in favor of this simple
patch.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]