updated conan profiles

Signed-off-by: Pratik Mankawde <pmankawde@ripple.com>
This commit is contained in:
Pratik Mankawde
2025-11-20 12:26:43 +00:00
parent 39ace64833
commit 526da70ed4
3 changed files with 30 additions and 9 deletions

View File

@@ -170,8 +170,8 @@ def generate_strategy_matrix(all: bool, config: Config) -> list:
# This is needed because sanitizers create very large binaries
# -fPIC enables position independent code to avoid relocation range issues
# large model removes the 2GB limitation that medium model has
cxx_flags += ' -mcmodel=large -fPIC -fno-pie'
linker_relocation_flags+=' -mcmodel=large -fPIC -fno-pie'
cxx_flags += ' -mcmodel=large -fno-PIC -fno-pie'
linker_relocation_flags+=' -mcmodel=large -fno-PIC -fno-pie'
# Create default sanitizer flags
sanitizers_flags = 'undefined,float-divide-by-zero'

View File

@@ -1 +1 @@
include(./sanitizers)
include(sanitizers)

View File

@@ -1,4 +1,4 @@
include(./default)
include(default)
{% set compiler, version, compiler_exe = detect_api.detect_default_compiler() %}
{% set default_sanitizer_flags = "undefined,float-divide-by-zero,signed-integer-overflow" %}
@@ -14,37 +14,58 @@ tools.info.package_ids:confs+=["user.package:sanitizers"]
{% if compiler == "gcc" %}
{% set asan_sanitizer_flags = "-fsanitize=address,"~default_sanitizer_flags~" -mcmodel=large -fPIC" %}
{% set tsan_sanitizer_flags = "-fsanitize=thread,"~default_sanitizer_flags~" -mcmodel=medium -fPIC" %}
{% set asan_sanitizer_flags = "-fsanitize=address,"~default_sanitizer_flags~" -mcmodel=large -fno-PIC -fno-pie" %}
{% set tsan_sanitizer_flags = "-fsanitize=thread,"~default_sanitizer_flags~" -mcmodel=medium -fno-PIC -fno-pie" %}
{% if sanitizers == "Address" %}
tools.build:cxxflags+=['{{asan_sanitizer_flags}} -fno-omit-frame-pointer -O1 -Wno-stringop-overflow']
tools.build:sharedlinkflags+=['{{asan_sanitizer_flags}}']
tools.build:exelinkflags+=['{{asan_sanitizer_flags}}']
tools.cmake.cmaketoolchain:extra_variables={"use_mold": "OFF", "use_gold": "OFF", "use_lld": "OFF"}
boost/*:tools.cmake.cmaketoolchain:extra_variables={"BOOST_USE_ASAN" : "1", "BOOST_USE_UBSAN" : "1"}
{% elif sanitizers == "Thread" %}
tools.build:cxxflags+=['{{tsan_sanitizer_flags}} -fno-omit-frame-pointer -O1 -Wno-stringop-overflow -Wno-tsan']
tools.build:sharedlinkflags+=['{{tsan_sanitizer_flags}}']
tools.build:exelinkflags+=['{{tsan_sanitizer_flags}}']
boost/*:tools.cmake.cmaketoolchain:extra_variables={"BOOST_USE_TSAN" : "1", "BOOST_USE_UBSAN" : "1"}
{% endif %}
{% elif compiler == "apple-clang" or compiler == "clang" %}
{% set asan_sanitizer_flags = "-fsanitize=address,"~default_sanitizer_flags~",unsigned-integer-overflow -fPIC" %}
{% set tsan_sanitizer_flags = "-fsanitize=thread,"~default_sanitizer_flags~",unsigned-integer-overflow -fPIC" %}
{% set asan_sanitizer_flags = "-fsanitize=address,"~default_sanitizer_flags~",unsigned-integer-overflow -fno-PIC -fno-pie" %}
{% set tsan_sanitizer_flags = "-fsanitize=thread,"~default_sanitizer_flags~",unsigned-integer-overflow -fno-PIC -fno-pie" %}
{% if sanitizers == "Address" %}
tools.build:cxxflags+=['{{asan_sanitizer_flags}} -fno-omit-frame-pointer -O1']
tools.build:sharedlinkflags+=['{{asan_sanitizer_flags}}']
tools.build:exelinkflags+=['{{asan_sanitizer_flags}}']
boost/*:tools.cmake.cmaketoolchain:extra_variables={"BOOST_USE_ASAN" : "1", "BOOST_USE_UBSAN" : "1"}
{% elif sanitizers == "Thread" %}
tools.build:cxxflags+=['{{tsan_sanitizer_flags}} -fno-omit-frame-pointer -O1']
tools.build:sharedlinkflags+=['{{tsan_sanitizer_flags}}']
tools.build:exelinkflags+=['{{tsan_sanitizer_flags}}']
boost/*:tools.cmake.cmaketoolchain:extra_variables={"BOOST_USE_TSAN" : "1", "BOOST_USE_UBSAN" : "1"}
{% endif %}
{% endif %}
[options]
{% if compiler == "gcc" or compiler == "apple-clang" or compiler == "clang" %}
{% if sanitizers == "Address" or sanitizers == "Thread" %}
boost/*:without_context=False
boost/*:without_stacktrace=True
boost/*:context-impl=ucontext
{% if sanitizers == "Address" %}
boost/*:address-sanitizer=on
boost/*:undefined-sanitizer=on
{% elif sanitizers == "Thread" %}
boost/*:thread-sanitizer=on
boost/*:undefined-sanitizer=on
{% endif %}
{% endif %}
{% endif %}