diff --git a/arkoala-arkts/package.json b/arkoala-arkts/package.json index 40671402e2da0cb2e7291b536c13ff48f79c3267..2ed405633bfc05536273004e019b16d914ee2626 100644 --- a/arkoala-arkts/package.json +++ b/arkoala-arkts/package.json @@ -62,6 +62,7 @@ "trivial:all:node": "npm run compile:native:node-host && npm run build:arkoala && npm run build:user && npm run build:loader:node && npm run run:node:user", "trivial:node": "npm run build:user && npm run build:loader:node && npm run run:node:user", "shopping:all:node": "npm run compile:native:node-host && npm run build:arkoala && npm run build:shopping && npm run build:loader:node && npm run run:node:shopping", + "shopping:all:node:asan": "SANITIZERS=address npm run compile:native:node-host && npm run build:arkoala && npm run build:shopping && npm run build:loader:node && LD_PRELOAD=$(clang -print-file-name=libasan.so) npm run run:node:shopping", "shopping:node": "npm run build:user && npm run build:loader:node && npm run run:node:shopping", "trivial:all:node:ci": "npm run compile:native:node-host && npm run build:arkoala && npm run build:user && npm run build:loader:node && npm run run:node:ci", "arkoala:har-arm32": "npm run compile:native:hzvm-ohos-arm32 && npm run build:arkoala && npm run har-arm32 --prefix har", diff --git a/arkoala/framework/native/meson.build b/arkoala/framework/native/meson.build index f87d7f6e0e653871f96ea540187e5f058c4fb96e..31ff03d3c37f085dab717b00519e2fa0dcec8b44 100644 --- a/arkoala/framework/native/meson.build +++ b/arkoala/framework/native/meson.build @@ -108,6 +108,10 @@ if os == 'linux' cflags += ['-DKOALA_LINUX', '-Wno-unused'] platform_prefix = 'lib' platform_suffix = 'so' + foreach san: get_option('sanitizers') + cflags += [f'-fsanitize=@san@'] + ldflags += [f'-fsanitize=@san@'] + endforeach endif if os == 'macos' cflags += ['-DKOALA_MACOS', '-mmacosx-version-min=13.3'] diff --git a/arkoala/framework/native/meson_options.txt b/arkoala/framework/native/meson_options.txt index c3377eaeeb6950cd8b78dbbbb6fcdc6f3488b2d0..9cd498828f5085e94467bd58a9c8a72efbf382e7 100644 --- a/arkoala/framework/native/meson_options.txt +++ b/arkoala/framework/native/meson_options.txt @@ -8,3 +8,6 @@ option('vmloader', type : 'boolean', value : false, description : 'Whether to build libvmloader.so') option('vmloader_apis', type : 'string', value : 'ets', description : 'APIs to use in libvmloader.so') +option('sanitizers', type : 'array', value : [], + choices : ['address', 'thread', 'memory', 'undefined'], + description : 'Available Sanitizers') \ No newline at end of file diff --git a/arkoala/framework/package.json b/arkoala/framework/package.json index 11410c073f5618ba85d2e1656f3473fb9e1cdc19..840130b55a8037b21e6dd5edcba81e75f970f9a7 100644 --- a/arkoala/framework/package.json +++ b/arkoala/framework/package.json @@ -31,7 +31,7 @@ "compile:native-node-host": "npm run configure:native-node-host && cd native && meson compile -C build-node-host && meson install -C build-node-host", "configure:native-hzvm-host": "cd native && meson setup -D vm_kind=hzvm build-hzvm-host", "compile:native-hzvm-host": "npm run configure:native-hzvm-host && cd native && meson compile -C build-hzvm-host && meson install -C build-hzvm-host", - "configure:native-panda-host": "cd native && meson setup -D vm_kind=panda build-panda-host", + "configure:native-panda-host": "cd native && meson setup -D vm_kind=panda -D sanitizers=$SANITIZERS build-panda-host", "compile:native-panda-host": "npm run configure:native-panda-host && cd native && meson compile -C build-panda-host && meson install -C build-panda-host", "configure:native-jvm-host": "cd native && meson setup -D vm_kind=jvm build-jvm-host -D vmloader=true -D jdk_dir=$JAVA_HOME", "compile:native-jvm-host": "npm run configure:native-jvm-host && cd native && meson compile -C build-jvm-host && meson install -C build-jvm-host",