diff --git a/data_substrate b/data_substrate index 8dce439e5e0..4943d80ab46 160000 --- a/data_substrate +++ b/data_substrate @@ -1 +1 @@ -Subproject commit 8dce439e5e0c668da292e11486f42fd470cd19d4 +Subproject commit 4943d80ab4623bf8a324d22def1d12e51fc4aadf diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt index 70ff45c27e2..9c9c58b4495 100644 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt @@ -285,6 +285,11 @@ SET(SQL_DEP_LIBS IF(COROUTINE_ENABLED) SET(SQL_DEP_LIBS ${SQL_DEP_LIBS} Boost::context) set(SQL_INCLUDE_DIR ${Boost_INCLUDE_DIRS}) + if (WITH_ASAN) + # Boost stackful contexts need to switch to the ucontext backend when + # ASAN is enabled, otherwise fcontext symbols are missing at link time. + set(SQL_USE_ASAN_UCONTEXT ON) + endif() ENDIF() IF(ELOQ_MODULE_ENABLED) @@ -311,6 +316,10 @@ MAYBE_DISABLE_IPO(sql) DTRACE_INSTRUMENT(sql) TARGET_LINK_LIBRARIES(sql ${SQL_DEP_LIBS}) +if (SQL_USE_ASAN_UCONTEXT) + target_compile_definitions(sql PRIVATE BOOST_USE_ASAN BOOST_USE_UCONTEXT) +endif() + # IF(PLUGIN_ELOQ) ADD_DEFINITIONS(-DWITH_ELOQ_STORAGE_ENGINE) SET(ELOQ_SOURCE_DIR ${ELOQSQL_SOURCE_DIR}/storage/eloq)