mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-19 18:45:52 +00:00
fixes forgcc compilation errors.
Signed-off-by: Pratik Mankawde <pmankawde@ripple.com>
This commit is contained in:
13
.github/scripts/strategy-matrix/generate.py
vendored
13
.github/scripts/strategy-matrix/generate.py
vendored
@@ -165,13 +165,19 @@ def generate_strategy_matrix(all: bool, config: Config) -> list:
|
||||
# so that they are easier to identify in the GitHub Actions UI, as long
|
||||
# names get truncated. Add Address and Thread (both coupled with UB) sanitizers when the distro is bookworm.
|
||||
if os['distro_version'] == 'bookworm':
|
||||
# Use medium code model to avoid relocation errors with large binaries
|
||||
extra_warning_flags = '-mcmodel=medium'
|
||||
# Suppress false positive warnings in GCC with stringop-overflow
|
||||
if os['compiler_name'] == 'gcc':
|
||||
extra_warning_flags += ' -Wno-stringop-overflow'
|
||||
|
||||
if "-O0" in cxx_flags:
|
||||
cxx_flags.replace("-O0", "-O1")
|
||||
else:
|
||||
cxx_flags += " -O1"
|
||||
|
||||
if cxx_flags:
|
||||
cmake_args_flags = f'{cmake_args} -DCMAKE_CXX_FLAGS="-fsanitize=address,{sanitizers_flags} -fno-omit-frame-pointer {cxx_flags}"'
|
||||
cmake_args_flags = f'{cmake_args} -DCMAKE_CXX_FLAGS="-fsanitize=address,{sanitizers_flags} -fno-omit-frame-pointer {cxx_flags} {extra_warning_flags}"'
|
||||
else:
|
||||
cmake_args_flags = f'{cmake_args}'
|
||||
configurations.append({
|
||||
@@ -184,8 +190,11 @@ def generate_strategy_matrix(all: bool, config: Config) -> list:
|
||||
'architecture': architecture,
|
||||
'sanitizers': "Address"
|
||||
})
|
||||
# gcc doesn't supports atomic_thread_fence with tsan. Suppress warnings.
|
||||
if os['compiler_name'] == 'gcc':
|
||||
extra_warning_flags += ' -Wno-tsan'
|
||||
if cxx_flags:
|
||||
cmake_args_flags = f'{cmake_args} -DCMAKE_CXX_FLAGS="-fsanitize=thread,{sanitizers_flags} -fno-omit-frame-pointer {cxx_flags}"'
|
||||
cmake_args_flags = f'{cmake_args} -DCMAKE_CXX_FLAGS="-fsanitize=thread,{sanitizers_flags} -fno-omit-frame-pointer {cxx_flags} {extra_warning_flags}"'
|
||||
else:
|
||||
cmake_args_flags = f'{cmake_args}'
|
||||
configurations.append({
|
||||
|
||||
@@ -170,8 +170,8 @@ jobs:
|
||||
env:
|
||||
BUILD_TYPE: ${{ inputs.build_type }}
|
||||
PARALLELISM: ${{ runner.os == 'Windows' && '1' || steps.nproc.outputs.nproc }}
|
||||
ASAN_OPTIONS: suppressions=${working-directory}/../external/asan_suppressions.txt
|
||||
TSAN_OPTIONS: suppressions=${working-directory}/../external/tsan_suppressions.txt
|
||||
ASAN_OPTIONS: suppressions= ${{ inputs.build_dir }}/../external/asan_suppressions.txt
|
||||
TSAN_OPTIONS: suppressions= ${{ inputs.build_dir }}/../external/tsan_suppressions.txt
|
||||
shell: bash
|
||||
run: |
|
||||
ctest \
|
||||
|
||||
@@ -12,20 +12,28 @@ tools.info.package_ids:confs+=["user.package:sanitizers"]
|
||||
|
||||
{% if sanitizers == "Address" %}
|
||||
tools.build:cxxflags+=['-fsanitize=address,undefined,float-divide-by-zero,signed-integer-overflow
|
||||
-fno-omit-frame-pointer -O1']
|
||||
-fno-omit-frame-pointer -O1 -Wno-stringop-overflow -mcmodel=medium']
|
||||
tools.build:sharedlinkflags+=['-mcmodel=medium']
|
||||
tools.build:exelinkflags+=['-mcmodel=medium']
|
||||
{% elif sanitizers == "Thread" %}
|
||||
tools.build:cxxflags+=['-fsanitize=thread,undefined,float-divide-by-zero,signed-integer-overflow -fno-omit-frame-pointer
|
||||
-O1']
|
||||
-O1 -Wno-stringop-overflow -Wno-tsan -mcmodel=medium']
|
||||
tools.build:sharedlinkflags+=['-mcmodel=medium']
|
||||
tools.build:exelinkflags+=['-mcmodel=medium']
|
||||
{% endif %}
|
||||
|
||||
{% elif compiler == "clang" %}
|
||||
|
||||
{% if sanitizers == "Address" %}
|
||||
tools.build:cxxflags+=['-fsanitize=address,undefined,float-divide-by-zero,signed-integer-overflow,unsigned-integer-overflow
|
||||
-fno-omit-frame-pointer -O1']
|
||||
-fno-omit-frame-pointer -O1 -mcmodel=medium']
|
||||
tools.build:sharedlinkflags+=['-mcmodel=medium']
|
||||
tools.build:exelinkflags+=['-mcmodel=medium']
|
||||
{% elif sanitizers == "Thread" %}
|
||||
tools.build:cxxflags+=['-fsanitize=thread,undefined,float-divide-by-zero,signed-integer-overflow,unsigned-integer-overflow
|
||||
-fno-omit-frame-pointer -O1']
|
||||
-fno-omit-frame-pointer -O1 -mcmodel=medium']
|
||||
tools.build:sharedlinkflags+=['-mcmodel=medium']
|
||||
tools.build:exelinkflags+=['-mcmodel=medium']
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
47
external/asan_suppressions.txt
vendored
47
external/asan_suppressions.txt
vendored
@@ -1,45 +1,2 @@
|
||||
leak:libboost_atomic.a
|
||||
leak:libboost_charconv.a
|
||||
leak:libboost_chrono.a
|
||||
leak:libboost_cobalt.a
|
||||
leak:libboost_container.a
|
||||
leak:libboost_context.a
|
||||
leak:libboost_contract.a
|
||||
leak:libboost_coroutine.a
|
||||
leak:libboost_date_time.a
|
||||
leak:libboost_exception.a
|
||||
leak:libboost_fiber_numa.a
|
||||
leak:libboost_fiber.a
|
||||
leak:libboost_filesystem.a
|
||||
leak:libboost_graph.a
|
||||
leak:libboost_iostreams.a
|
||||
leak:libboost_json.a
|
||||
leak:libboost_locale.a
|
||||
leak:libboost_log_setup.a
|
||||
leak:libboost_log.a
|
||||
leak:libboost_math_c99.a
|
||||
leak:libboost_math_c99f.a
|
||||
leak:libboost_math_c99l.a
|
||||
leak:libboost_math_tr1.a
|
||||
leak:libboost_math_tr1f.a
|
||||
leak:libboost_math_tr1l.a
|
||||
leak:libboost_nowide.a
|
||||
leak:libboost_prg_exec_monitor.a
|
||||
leak:libboost_process.a
|
||||
leak:libboost_program_options.a
|
||||
leak:libboost_random.a
|
||||
leak:libboost_regex.a
|
||||
leak:libboost_serialization.a
|
||||
leak:libboost_stacktrace_addr2line.a
|
||||
leak:libboost_stacktrace_backtrace.a
|
||||
leak:libboost_stacktrace_basic.a
|
||||
leak:libboost_stacktrace_noop.a
|
||||
leak:libboost_system.a
|
||||
leak:libboost_test_exec_monitor.a
|
||||
leak:libboost_thread.a
|
||||
leak:libboost_timer.a
|
||||
leak:libboost_type_erasure.a
|
||||
leak:libboost_unit_test_framework.a
|
||||
leak:libboost_url.a
|
||||
leak:libboost_wave.a
|
||||
leak:libboost_wserialization.a
|
||||
leak:libboost*
|
||||
leak:^external/*
|
||||
1
external/tsan_suppressions.txt
vendored
1
external/tsan_suppressions.txt
vendored
@@ -1 +0,0 @@
|
||||
suppressions: __atomic_thread_fence
|
||||
|
||||
Reference in New Issue
Block a user