From af9b65485bf8469f1a10525d3d8c014a5775187c Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Sat, 19 Sep 2026 20:44:41 -0400 Subject: [PATCH] build: move '-mthumb-interwork' into the configure script When we request a thumb build on a non-thumb-only target, we hand compilation to a script that tries to build everything as thumb, falling back to non-thumb arm mode if the thumb build fails. In order for this to work, the compiler flag -mthumb-interwork is required. Move this definition out of the thumb-cc script, and into the configure script (ie along with the other target-specific definitions) Change-Id: Idc1f8caa088dbbf710b169b272de61cc0b7c9ca6 --- tools/configure | 1 + tools/thumb-cc.py | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/configure b/tools/configure index 7f3628b540..3e5331360b 100755 --- a/tools/configure +++ b/tools/configure @@ -4722,6 +4722,7 @@ fi if test "$ARG_ARM_THUMB" = "1"; then extradefines="$extradefines -DUSE_THUMB" + GCCOPTS="$GCCOPTS -mthumb-interwork" CC="$toolsdir/thumb-cc.py $CC" fi diff --git a/tools/thumb-cc.py b/tools/thumb-cc.py index 9e2b96c346..a7b31aead5 100755 --- a/tools/thumb-cc.py +++ b/tools/thumb-cc.py @@ -31,7 +31,11 @@ if '-o' in args and args.index('-o') < len(args) - 1: if len(args[args.index('-o') + 1].rsplit('.o', 1)) == 1: execv(args[0], args) # output doesn't end in .o -args.append('-mthumb-interwork') # thumb-interwork is required +# thumb-interwork is required; add if not present +if '-mthumb-interwork' not in args: + args += ['-mthumb-interwork']; + +# Try to compile in thumb mode first gcc = Popen(args + ['-mthumb'], stdout=PIPE, stderr=PIPE) (out, err) = gcc.communicate()