From: Fred Morcos Date: Wed, 16 Aug 2023 13:27:43 +0000 (+0200) Subject: Meson: Cleanup sanitizer modules X-Git-Tag: rec-5.1.0-alpha1~80^2~195 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d61f93e958606325409d7beb7cc6d401e2964542;p=thirdparty%2Fpdns.git Meson: Cleanup sanitizer modules --- diff --git a/meson/sanitizers/address-sanitizer-fiber-switching/meson.build b/meson/sanitizers/address-sanitizer-fiber-switching/meson.build index 35cbb31999..2cd80780db 100644 --- a/meson/sanitizers/address-sanitizer-fiber-switching/meson.build +++ b/meson/sanitizers/address-sanitizer-fiber-switching/meson.build @@ -1,23 +1,5 @@ -# Address Sanitizer Fiber Switching -# Inputs: conf - -prog_single_pointer = ''' -#include - -int main() { - __sanitizer_finish_switch_fiber(nullptr); - return 0; -} -''' - -prog_three_pointers = ''' -#include - -int main() { - __sanitizer_finish_switch_fiber(nullptr, nullptr, nullptr); - return 0; -} -''' +prog_single_pointer = fs.read('sanitizer_finish_switch_fiber_1ptr.cc') +prog_three_pointers = fs.read('sanitizer_finish_switch_fiber_3ptrs.cc') single_pointer = false three_pointers = false @@ -36,13 +18,27 @@ if cxx.check_header('sanitizer/common_interface_defs.h', required: false) endif else - warning('Address Sanitizer requested but `sanitizer/common_interface_defs.h` is invalid or cannot be found. Address Sanitizer fiber switching is not available') + warning('Address Sanitizer requested but `sanitizer/common_interface_defs.h` ' + + 'is invalid or cannot be found. Address Sanitizer fiber switching is ' + + 'not available') endif if not single_pointer and not three_pointers warning('Address Sanitizer fiber switching is not available due to an unknown API version') endif -conf.set10('HAVE_FIBER_SANITIZER', single_pointer or three_pointers, description: 'Address Sanitizer fiber annotation interface is available') -conf.set10('HAVE_SANITIZER_FINISH_SWITCH_FIBER_SINGLE_PTR', single_pointer, description: 'Address Sanitizer: __sanitizer_finish_switch_fiber takes only a pointer') -conf.set10('HAVE_SANITIZER_FINISH_SWITCH_FIBER_THREE_PTRS', three_pointers, description: 'Address Sanitizer: __sanitizer_finish_switch_fiber takes three pointers') +conf.set( + 'HAVE_FIBER_SANITIZER', + single_pointer or three_pointers, + description: 'Address Sanitizer fiber annotation interface is available', +) +conf.set( + 'HAVE_SANITIZER_FINISH_SWITCH_FIBER_SINGLE_PTR', + single_pointer, + description: 'Address Sanitizer: __sanitizer_finish_switch_fiber takes only a pointer', +) +conf.set( + 'HAVE_SANITIZER_FINISH_SWITCH_FIBER_THREE_PTRS', + three_pointers, + description: 'Address Sanitizer: __sanitizer_finish_switch_fiber takes three pointers', +) diff --git a/meson/sanitizers/address-sanitizer-fiber-switching/sanitizer_finish_switch_fiber_1ptr.cc b/meson/sanitizers/address-sanitizer-fiber-switching/sanitizer_finish_switch_fiber_1ptr.cc new file mode 100644 index 0000000000..029b46d3e3 --- /dev/null +++ b/meson/sanitizers/address-sanitizer-fiber-switching/sanitizer_finish_switch_fiber_1ptr.cc @@ -0,0 +1,6 @@ +#include + +int main() { + __sanitizer_finish_switch_fiber(nullptr); + return 0; +} diff --git a/meson/sanitizers/address-sanitizer-fiber-switching/sanitizer_finish_switch_fiber_3ptrs.cc b/meson/sanitizers/address-sanitizer-fiber-switching/sanitizer_finish_switch_fiber_3ptrs.cc new file mode 100644 index 0000000000..fae9756c12 --- /dev/null +++ b/meson/sanitizers/address-sanitizer-fiber-switching/sanitizer_finish_switch_fiber_3ptrs.cc @@ -0,0 +1,6 @@ +#include + +int main() { + __sanitizer_finish_switch_fiber(nullptr, nullptr, nullptr); + return 0; +} diff --git a/meson/sanitizers/meson.build b/meson/sanitizers/meson.build index b207ccf032..052a7b5157 100644 --- a/meson/sanitizers/meson.build +++ b/meson/sanitizers/meson.build @@ -1,12 +1,10 @@ -# Sanitizers - opt_sanitize = get_option('b_sanitize') if opt_sanitize == 'address' or opt_sanitize == 'address,undefined' subdir('address-sanitizer-fiber-switching') endif -if opt_sanitize != 'none' +if opt_sanitize != '' and opt_sanitize != 'none' add_global_arguments('-fno-omit-frame-pointer', language: ['c', 'cpp']) endif