@@ -483,8 +483,12 @@ if get_option('sanitizers')
# Detect static linking issue with ubsan - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84285
if cc.links('int main(int argc, char **argv) { return argc + 1; }',
args: [qemu_ldflags, '-fsanitize=undefined'])
- qemu_cflags = ['-fsanitize=undefined'] + qemu_cflags
- qemu_ldflags = ['-fsanitize=undefined'] + qemu_ldflags
+ qemu_cflags = ['-fsanitize=undefined'] + \
+ cc.get_supported_arguments('-fno-sanitize=function') + \
+ qemu_cflags
+ qemu_ldflags = ['-fsanitize=undefined'] + \
+ cc.get_supported_arguments('-fno-sanitize=function') + \
+ qemu_ldflags
endif
endif
Commit 23ef50ae2d0c (".gitlab-ci.d/buildtest.yml: Use -fno-sanitize=function in the clang-system job") adds -fno-sanitize=function for the CI but doesn't add the flag in the other context. Add it to meson.build for such. It is not removed from .gitlab-ci.d/buildtest.yml because -fno-sanitize=function in meson.build does not affect --extra-cflags due to argument ordering. Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> --- Changes in v4: - Moved -fno-sanitize=function immediately after -fsanitize=undefined - Link to v3: https://lore.kernel.org/r/20240816-function-v3-1-32ff225e550e@daynix.com Changes in v3: - I was not properly dropping the change of .gitlab-ci.d/buildtest.yml but only updated the message. v3 fixes this. (Thomas Huth) - Link to v2: https://lore.kernel.org/r/20240729-function-v2-1-2401ab18b30b@daynix.com Changes in v2: - Dropped the change of: .gitlab-ci.d/buildtest.yml - Link to v1: https://lore.kernel.org/r/20240714-function-v1-1-cc2acb4171ba@daynix.com --- meson.build | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- base-commit: 93b799fafd9170da3a79a533ea6f73a18de82e22 change-id: 20240714-function-7d32c723abbc Best regards,