Sanitizer libraries static linking (#70)

* scons: Fix sanitizer lib link for clang

Change-Id: I2441466c5c9343afd938185b8ec5047d4e95ac70

* scons: Statically link libubsan when using sanitizers with gcc

Change-Id: I362a1fb87771454ad94e439847a85d19108f375a

---------

Co-authored-by: Gabriel Busnot <gabriel.busnot@arteris.com>
This commit is contained in:
Gabriel Busnot
2023-07-12 20:24:18 +02:00
committed by GitHub
parent 753933d471
commit 2a880053bb

View File

@@ -562,10 +562,14 @@ for variant_path in variant_paths:
if sanitizers:
sanitizers = ','.join(sanitizers)
if env['GCC'] or env['CLANG']:
libsan = (
['-static-libubsan', '-static-libasan']
if env['GCC']
else ['-static-libsan']
)
env.Append(CCFLAGS=['-fsanitize=%s' % sanitizers,
'-fno-omit-frame-pointer'],
LINKFLAGS=['-fsanitize=%s' % sanitizers,
'-static-libasan'])
LINKFLAGS=['-fsanitize=%s' % sanitizers] + libsan)
if main["BIN_TARGET_ARCH"] == "x86_64":
# Sanitizers can enlarge binary size drammatically, north of