]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
meson: Allow larger stack frames when instrumenting
authorTim Wiederhake <twiederh@redhat.com>
Thu, 6 May 2021 15:08:32 +0000 (17:08 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 14 Jun 2021 10:05:10 +0000 (12:05 +0200)
When enabling sanitizers, gcc adds some instrumentation to the code
that may enlarge stack frames. Some function's stack frames are already
close to the limit of 4096 and are enlarged past that threshold,
e.g. virLXCProcessStart which reaches a frame size of 4624 bytes.

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
meson.build

index 40e99fec0cd5977701eae80c7eb17430709c0892..5849975a729dd17282f5ea1f5e97cf80f1fcb583 100644 (file)
@@ -224,6 +224,9 @@ alloc_max = run_command(
   'print(min(2**(@0@ * 8 - 1) - 1, 2**(@1@ * 8) - 1))'.format(ptrdiff_max, size_max),
 )
 
+# sanitizer instrumentation may enlarge stack frames
+stack_frame_size = get_option('b_sanitize') == 'none' ? 4096 : 8192
+
 cc_flags += [
   '-fasynchronous-unwind-tables',
   '-fexceptions',
@@ -279,7 +282,7 @@ cc_flags += [
   '-Wformat-y2k',
   '-Wformat-zero-length',
   '-Wframe-address',
-  '-Wframe-larger-than=4096',
+  '-Wframe-larger-than=@0@'.format(stack_frame_size),
   '-Wfree-nonheap-object',
   '-Whsa',
   '-Wif-not-aligned',