On Fri, 2021-09-17 at 15:03 +0100, Daniel P. Berrangé wrote:
On Fri, Sep 17, 2021 at 03:37:28PM +0200, Tim Wiederhake wrote:
> On Fri, 2021-09-17 at 14:10 +0100, Daniel P. Berrangé wrote:
> > On Fri, Sep 17, 2021 at 02:58:08PM +0200, Tim Wiederhake wrote:
> > > When libvirt is build with sanitizers enabled, in debug mode, on
> > > clang,
> > > virNWFilterRuleDefFixup exceeds the maximum stack frame size of
> > > 8192 bytes,
> > > as specified in meson.build:
> > >
> > > ../src/conf/nwfilter_conf.c:2190:1: error: stack frame size of
> > > 10616
> > > bytes in function 'virNWFilterRuleDefFixup' [-Werror,-Wframe-
> > > larger-than=]
> > > virNWFilterRuleDefFixup(virNWFilterRuleDef *rule)
> > > ^
> > > 1 error generated.
> > >
> > > This series reworks the function a bit to bring the frame size
> > > below 8192.
> >
> > Why don't we just enlarge stack size limit for building with
> > sanitizers ?
> >
> >
> > Regards,
> > Daniel
>
> We already double the stack size limit for debug builds, and
> increasing
> it further seemed excessive.
s/debug builds/sanitizer builds/ -- my mistake.
>
> Note that there is one more function that exceeds the limit,
> virDomainDefParseXML, for which I have a patch ready. I will send it
> once this series lands.
We're not using sanitizers in production builds though, so IMHO we
could
even just run with no stack size checking entirely for such builds.
My local builds have "-Dbuildtype=debug". In gitlab's CI, the buildtype
is not explictly set. This difference is what triggers the stack frame
size warnings:
$ export CC=clang
$ meson -Db_sanitize=address,undefined -Db_lundef=false buildtype-
default &> /dev/null
$ ninja -C buildtype-default &>/dev/null && echo "ok" ||
echo
"fail"
ok
$ meson -Db_sanitize=address,undefined -Db_lundef=false -
Dbuildtype=debug buildtype-debug &> /dev/null
$ ninja -C buildtype-debug >/dev/null && echo "ok" || echo
"fail"
fail
Which is weird, as meson's default build type is "debug".
> > > When libvirt is build with sanitizers enabled, in
debug mode,
> > > on clang, virNWFilterRuleDefFixup exceeds the maximum stack
> > > frame size of 8192 bytes, as specified in meson.build:
s/in debug mode/buildtype explicitly set to debug/
Regards,
Tim