Skip to content

Commit

Permalink
gcc-sanitizers.inc: Workaround for aarch64
Browse files Browse the repository at this point in the history
When using the -fsanitize=address  CXX_FLAG for a program compiled for
aarch64 / arm64

This is happing:
MemorySanitizer: CHECK failed: sanitizer_allocator_primary64.h:133 "((kSpaceBeg))
 == ((address_range.Init(TotalSpaceSize, PrimaryAllocatorName, kSpaceBeg)))"
 (0xe00000000000, 0xfffffffffffffff4) (tid=51745)

With -DSANITIZER_CAN_USE_ALLOCATOR64=0 this is not happening and
potenial bugs are detected.

ARM32 does not require this patch.

More info about the issue in this thread:
llvm/llvm-project#65144

(From OE-Core rev: 95a5357d8093c5c52205b9f78a4f906b41bf4caa)

Signed-off-by: Thomas Roos <throos@amazon.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
  • Loading branch information
thomas-roos authored and rpurdie committed Jan 22, 2025
1 parent 7167565 commit 38e208b
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions meta/recipes-devtools/gcc/gcc-sanitizers.inc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ EXTRA_OECONF_PATHS = "\
--with-build-sysroot=${STAGING_DIR_TARGET} \
"

# Workaround for this issue: https://github.com/llvm/llvm-project/issues/65144 on aarch64
# compiler-rt/sanitizers/aarch64: CHECK failed: sanitizer_allocator_primary64.h:133
CXXFLAGS:append:aarch64 = " -DSANITIZER_CAN_USE_ALLOCATOR64=0"

do_configure () {
rm -rf ${B}/${TARGET_SYS}/libsanitizer/
mkdir -p ${B}/${TARGET_SYS}/libsanitizer/
Expand Down

0 comments on commit 38e208b

Please sign in to comment.