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