[Buildroot] [git commit branch/2023.02.x] package/gcc: disable libsanitizer on ARM Thumb classic

Peter Korsgaard peter at korsgaard.com
Mon Sep 11 09:24:00 UTC 2023


commit: https://git.buildroot.net/buildroot/commit/?id=2625ea6bf2f77b0292811432ea627c44b81f9ee3
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/2023.02.x

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 <alexander.sverdlin at gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
(cherry picked from commit fd17b3dd44363b8d47f2394cc5320b271229982c)
Signed-off-by: Peter Korsgaard <peter at korsgaard.com>
---
 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



More information about the buildroot mailing list