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

Re: Meson build



On a Sunday in 2020, Toolybird wrote:
Hi,

Just a heads up on my experiences with the new build system.

Arch Linux
meson-0.55.1

Overall, it looks good, so well done!

Just a couple of minor things I noted:

1. Arch uses a meson wrapper script (arch-meson) that sets:

  --buildtype plain


Does this affect the 'meson' available for end users? Or this
is just for the packaging system? (I'm not familiar with Arch)

If it affects end users, I'd say it's a bug in Arch.

This seems to trigger a bug in meson that results in copious bogus compiler warnings:

cc1: warning: ‘-Wformat-y2k’ ignored without ‘-Wformat’ [-Wformat-y2k]
cc1: warning: ‘-Wformat-extra-args’ ignored without ‘-Wformat’ [-Wformat-extra-args]
cc1: warning: ‘-Wformat-zero-length’ ignored without ‘-Wformat’ [-Wformat-zero-length]
cc1: warning: ‘-Wformat-contains-nul’ ignored without ‘-Wformat’ [-Wformat-contains-nul]
cc1: warning: ‘-Wformat-security’ ignored without ‘-Wformat’ [-Wformat-security]

which of course breaks -Werror builds.

I can easily work around it by setting `-D git_werror=disabled' or even better still:

CFLAGS+=" -Wall" arch-meson...

Maybe this github issue is related?:

https://github.com/mesonbuild/meson/issues/7399


According to the quick guide:
https://mesonbuild.com/Quick-guide.html

    The command line switch --buildtype=plain tells Meson not to add its own flags
    to the command line. This gives the packager total control on used flags.

So it does not format the warning level (which we specify via default_options),
but it honors all the cflags we added manually (warnigs above -Wall +
-Werror if building from git).

I'm not sure making it easier to ignore warnings is a worthwhile task,
especially when you already mentioned the easy workaround.

2. Arch currently builds libvirt with support for ZFS. Seeing as ZFS is not in the distro proper, a simple Autoconf tweak is used:

ZFS=/usr/bin/zfs ZPOOL=/usr/bin/zpool \
./configure ...


I still haven't found out why we check for runtime dependencies at
compile-time.

Jano

This is surprisingly hard to emulate with meson, in fact it appears impossible, unless I resort to dodgy hacks with sed etc.

Cheers

Attachment: signature.asc
Description: PGP signature


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