From 33096b2d9fb7a5e15fc5e64b199ee9d2c2be4c8f Mon Sep 17 00:00:00 2001 From: Alex Kremer Date: Fri, 14 Nov 2025 15:03:14 +0000 Subject: [PATCH 1/4] Add defines for asan/tsan to conan profile --- docker/ci/conan/sanitizer_template.profile | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docker/ci/conan/sanitizer_template.profile b/docker/ci/conan/sanitizer_template.profile index 726d8d824..9a106778b 100644 --- a/docker/ci/conan/sanitizer_template.profile +++ b/docker/ci/conan/sanitizer_template.profile @@ -3,7 +3,11 @@ {% set sanitizer_opt_map = {"asan": "address", "tsan": "thread", "ubsan": "undefined"} %} {% set sanitizer = sanitizer_opt_map[sani] %} -{% set sanitizer_b2_flags_map = {"address": "define=BOOST_USE_ASAN=1 context-impl=ucontext address-sanitizer=on", "thread": "thread-sanitizer=on", "undefined": "undefined-sanitizer=on"} %} +{% set sanitizer_b2_flags_map = { + "address": "context-impl=ucontext address-sanitizer=norecover", + "thread": "context-impl=ucontext thread-sanitizer=norecover", + "undefined": "undefined-sanitizer=norecover" +} %} {% set sanitizer_b2_flags_str = sanitizer_b2_flags_map[sanitizer] %} {% set sanitizer_build_flags_str = "-fsanitize=" ~ sanitizer ~ " -g -O1 -fno-omit-frame-pointer" %} @@ -24,4 +28,10 @@ tools.build:cxxflags+={{ sanitizer_build_flags }} tools.build:exelinkflags+={{ sanitizer_link_flags }} tools.build:sharedlinkflags+={{ sanitizer_link_flags }} +{% if sanitizer == "address" %} + boost/*:tools.build:defines+=["BOOST_USE_ASAN", "BOOST_USE_UCONTEXT"] +{% elif sanitizer == "thread" %} + boost/*:tools.build:defines+=["BOOST_USE_TSAN", "BOOST_USE_UCONTEXT"] +{% endif %} + tools.info.package_id:confs+=["tools.build:cflags", "tools.build:cxxflags", "tools.build:exelinkflags", "tools.build:sharedlinkflags"] From cba996169721028b3fb6950cb5617ff24a50cb7b Mon Sep 17 00:00:00 2001 From: Alex Kremer Date: Fri, 14 Nov 2025 16:58:41 +0000 Subject: [PATCH 2/4] Try with global flags in conan profile --- docker/ci/conan/sanitizer_template.profile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/ci/conan/sanitizer_template.profile b/docker/ci/conan/sanitizer_template.profile index 9a106778b..f40a5069a 100644 --- a/docker/ci/conan/sanitizer_template.profile +++ b/docker/ci/conan/sanitizer_template.profile @@ -29,9 +29,9 @@ tools.build:exelinkflags+={{ sanitizer_link_flags }} tools.build:sharedlinkflags+={{ sanitizer_link_flags }} {% if sanitizer == "address" %} - boost/*:tools.build:defines+=["BOOST_USE_ASAN", "BOOST_USE_UCONTEXT"] + tools.build:defines+=["BOOST_USE_ASAN", "BOOST_USE_UCONTEXT"] {% elif sanitizer == "thread" %} - boost/*:tools.build:defines+=["BOOST_USE_TSAN", "BOOST_USE_UCONTEXT"] + tools.build:defines+=["BOOST_USE_TSAN", "BOOST_USE_UCONTEXT"] {% endif %} tools.info.package_id:confs+=["tools.build:cflags", "tools.build:cxxflags", "tools.build:exelinkflags", "tools.build:sharedlinkflags"] From 01cd807c5df9005fbc76f92f185d1d1f8fe7908f Mon Sep 17 00:00:00 2001 From: Alex Kremer Date: Wed, 19 Nov 2025 16:21:32 +0000 Subject: [PATCH 3/4] Force rebuild packages under sanitizers --- docker/ci/conan/sanitizer_template.profile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker/ci/conan/sanitizer_template.profile b/docker/ci/conan/sanitizer_template.profile index f40a5069a..68db31922 100644 --- a/docker/ci/conan/sanitizer_template.profile +++ b/docker/ci/conan/sanitizer_template.profile @@ -29,9 +29,9 @@ tools.build:exelinkflags+={{ sanitizer_link_flags }} tools.build:sharedlinkflags+={{ sanitizer_link_flags }} {% if sanitizer == "address" %} - tools.build:defines+=["BOOST_USE_ASAN", "BOOST_USE_UCONTEXT"] + *:tools.build:defines+=["BOOST_USE_ASAN", "BOOST_USE_UCONTEXT"] {% elif sanitizer == "thread" %} - tools.build:defines+=["BOOST_USE_TSAN", "BOOST_USE_UCONTEXT"] + *:tools.build:defines+=["BOOST_USE_TSAN", "BOOST_USE_UCONTEXT"] {% endif %} -tools.info.package_id:confs+=["tools.build:cflags", "tools.build:cxxflags", "tools.build:exelinkflags", "tools.build:sharedlinkflags"] +tools.info.package_id:confs+=["tools.build:cflags", "tools.build:cxxflags", "tools.build:exelinkflags", "tools.build:sharedlinkflags", "tools.build:defines"] From 01f6280453612c7ea0a330dec10d5e7a4e9a78a4 Mon Sep 17 00:00:00 2001 From: Ayaz Salikhov Date: Wed, 19 Nov 2025 17:27:48 +0000 Subject: [PATCH 4/4] Fix sanitizer profile defines syntax --- docker/ci/conan/sanitizer_template.profile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/ci/conan/sanitizer_template.profile b/docker/ci/conan/sanitizer_template.profile index 68db31922..0df3aa04e 100644 --- a/docker/ci/conan/sanitizer_template.profile +++ b/docker/ci/conan/sanitizer_template.profile @@ -29,9 +29,9 @@ tools.build:exelinkflags+={{ sanitizer_link_flags }} tools.build:sharedlinkflags+={{ sanitizer_link_flags }} {% if sanitizer == "address" %} - *:tools.build:defines+=["BOOST_USE_ASAN", "BOOST_USE_UCONTEXT"] + tools.build:defines+=["BOOST_USE_ASAN", "BOOST_USE_UCONTEXT"] {% elif sanitizer == "thread" %} - *:tools.build:defines+=["BOOST_USE_TSAN", "BOOST_USE_UCONTEXT"] + tools.build:defines+=["BOOST_USE_TSAN", "BOOST_USE_UCONTEXT"] {% endif %} tools.info.package_id:confs+=["tools.build:cflags", "tools.build:cxxflags", "tools.build:exelinkflags", "tools.build:sharedlinkflags", "tools.build:defines"]