From 2625ea6bf2f77b0292811432ea627c44b81f9ee3 Mon Sep 17 00:00:00 2001 From: Alexander Sverdlin Date: Sun, 4 Jun 2023 18:35:35 +0200 Subject: [PATCH] package/gcc: disable libsanitizer on ARM Thumb classic libsanitizer is broken for Thumb1, sanitizer_linux.cc contains unconditional "ldr ip, [sp], #8", which causes: ....s: Assembler messages: ....s:4190: Error: lo register required -- `ldr ip,[sp],#8' Fixes: http://autobuild.buildroot.net/results/5e15820c5db8c4c48c1de62a0c77171aeee381ba/ Signed-off-by: Alexander Sverdlin Signed-off-by: Thomas Petazzoni (cherry picked from commit fd17b3dd44363b8d47f2394cc5320b271229982c) Signed-off-by: Peter Korsgaard --- package/gcc/gcc.mk | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk index 25cb4ce8e2..1ecbf7e9b4 100644 --- a/package/gcc/gcc.mk +++ b/package/gcc/gcc.mk @@ -154,6 +154,14 @@ ifeq ($(BR2_mips)$(BR2_mipsel):$(BR2_TOOLCHAIN_GCC_AT_LEAST_12),y:y) HOST_GCC_COMMON_CONF_OPTS += --disable-libsanitizer endif +# libsanitizer is broken for Thumb1, sanitizer_linux.cc contains unconditional +# "ldr ip, [sp], #8", which causes: +# ....s: Assembler messages: +# ....s:4190: Error: lo register required -- `ldr ip,[sp],#8' +ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y) +HOST_GCC_COMMON_CONF_OPTS += --disable-libsanitizer +endif + # The logic in libbacktrace/configure.ac to detect if __sync builtins # are available assumes they are as soon as target_subdir is not # empty, i.e when cross-compiling. However, some platforms do not have