From f9a108c51a6a7f013df8dfd8c7735e1fa6d7dacc Mon Sep 17 00:00:00 2001 From: Subhransu Mohanty Date: Tue, 21 Jan 2020 02:06:17 +0000 Subject: [PATCH] meson: Changed meson build to support address sanitizer build As we run some intermediate binary like edje_cc during efl build , and due to those binary has some memory leaks the address sanitizer build of efl fails. This Patch runs those binary with 'ASAN_OPTIONS=detect_leak=false' to disable the memory leak check for those binaries. Reviewed-by: Stefan Schmidt Differential Revision: https://phab.enlightenment.org/D11137 --- src/bin/edje/meson.build | 9 +++++++-- src/bin/elementary/meson.build | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/bin/edje/meson.build b/src/bin/edje/meson.build index 0fff2cd6dc..fa059ca4b7 100644 --- a/src/bin/edje/meson.build +++ b/src/bin/edje/meson.build @@ -30,6 +30,11 @@ edje_cc = executable('edje_cc', link_args : bin_linker_args ) +asan_option =[] +if get_option('b_sanitize') == 'address' + asan_option= 'ASAN_OPTIONS=detect_leaks=0' +endif + if meson.is_cross_build() _edje_cc = find_program('edje_cc', native: true) edje_cc_path = _edje_cc.path() @@ -40,7 +45,7 @@ else edje_cc_exe = [edje_cc.full_path()] else env = find_program('env', native: true) - edje_cc_exe = [env, 'EFL_RUN_IN_TREE=1', edje_cc.full_path()] + edje_cc_exe = [env, asan_option, 'EFL_RUN_IN_TREE=1', edje_cc.full_path()] endif edje_depends = [edje_cc, epp, evas_engine_buffer_mod, embryo_cc] endif @@ -93,7 +98,7 @@ if meson.is_cross_build() edje_codegen_exe = [_edje_codegen] else env = find_program('env', native: true) - edje_codegen_exe = [env, 'EFL_RUN_IN_TREE=1', edje_codegen.full_path()] + edje_codegen_exe = [env, asan_option, 'EFL_RUN_IN_TREE=1', edje_codegen.full_path()] endif edje_pick = executable('edje_pick', diff --git a/src/bin/elementary/meson.build b/src/bin/elementary/meson.build index 0f8d79322d..ef5d3ded60 100644 --- a/src/bin/elementary/meson.build +++ b/src/bin/elementary/meson.build @@ -237,11 +237,16 @@ elementary_codegen = executable('elementary_codegen', link_args: link_args ) +asan_option =[] +if get_option('b_sanitize') == 'address' + asan_option= 'ASAN_OPTIONS=detect_leaks=0' +endif + if meson.is_cross_build() elementary_codegen_exe = [find_program('elementary_codegen', native: true)] else env = find_program('env', native: true) - elementary_codegen_exe = [env, 'EFL_RUN_IN_TREE=1', elementary_codegen.full_path()] + elementary_codegen_exe = [env, asan_option, 'EFL_RUN_IN_TREE=1', elementary_codegen.full_path()] endif elm_prefs_cc_src = [ @@ -267,7 +272,7 @@ if meson.is_cross_build() elm_prefs_cc_exe = [_elm_prefs_cc] else env = find_program('env', native: true) - elm_prefs_cc_exe = [env, 'EFL_RUN_IN_TREE=1', elm_prefs_cc.full_path()] + elm_prefs_cc_exe = [env, asan_option, 'EFL_RUN_IN_TREE=1', elm_prefs_cc.full_path()] endif if sys_windows == false