From: Peter Krempa Date: Mon, 4 Sep 2023 10:10:25 +0000 (+0200) Subject: build: Work around clang's stack size calculation without optimization X-Git-Tag: v9.8.0-rc1~208 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b68faa99d9f16c2f504b23737040d25d072ee85d;p=thirdparty%2Flibvirt.git build: Work around clang's stack size calculation without optimization When building without optimization on clang, certain big functions trip the stack size limit despite not actually reaching it. Relax the stack limit size for clang without optimization. Signed-off-by: Peter Krempa Reviewed-by: Daniel P. Berrangé --- diff --git a/meson.build b/meson.build index 6b6f7ccb7c..d29761bc71 100644 --- a/meson.build +++ b/meson.build @@ -247,8 +247,17 @@ alloc_max = run_command( check: true, ) +stack_frame_size = 2048 + +# clang without optimization enlarges stack frames in certain corner cases +if cc.get_id() == 'clang' and get_option('optimization') == '0' + stack_frame_size = 4096 +endif + # sanitizer instrumentation may enlarge stack frames -stack_frame_size = get_option('b_sanitize') == 'none' ? 2048 : 32768 +if get_option('b_sanitize') == 'none' + stack_frame_size == 32768 +endif # array_bounds=2 check triggers false positive on some GCC # versions when using sanitizers. Seen on Fedora 34 with