diff mbox

[v3,03/10] musl: build broken on Thumb, use ARM mode

Message ID 1459450815-6494-4-git-send-email-thomas.petazzoni@free-electrons.com
State Accepted
Commit 97fd876f62c3106cbcafa79e5f05b0a8f14c3d9e
Headers show

Commit Message

Thomas Petazzoni March 31, 2016, 7 p.m. UTC
Building the musl C library on Thumb (Thumb1, not Thumb2), fails with:

 {standard input}:20: Error: only lo regs allowed with immediate -- `mov fp,#0'
 {standard input}:21: Error: only lo regs allowed with immediate -- `mov lr,#0'
 {standard input}:25: Error: unshifted register required -- `and ip,a1,#-16'

Since there are no cores that we support that are Thumb1 only, use the
same solution as the one used by glibc: build the C library in ARM
mode.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/musl/musl.mk | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Peter Korsgaard April 8, 2016, 10:09 a.m. UTC | #1
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 > Building the musl C library on Thumb (Thumb1, not Thumb2), fails with:
 >  {standard input}:20: Error: only lo regs allowed with immediate -- `mov fp,#0'
 >  {standard input}:21: Error: only lo regs allowed with immediate -- `mov lr,#0'
 >  {standard input}:25: Error: unshifted register required -- `and ip,a1,#-16'

 > Since there are no cores that we support that are Thumb1 only, use the
 > same solution as the one used by glibc: build the C library in ARM
 > mode.

 > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Committed, thanks.
diff mbox

Patch

diff --git a/package/musl/musl.mk b/package/musl/musl.mk
index 081a700..733f940 100644
--- a/package/musl/musl.mk
+++ b/package/musl/musl.mk
@@ -23,6 +23,12 @@  MUSL_ADD_TOOLCHAIN_DEPENDENCY = NO
 
 MUSL_INSTALL_STAGING = YES
 
+# Thumb build is broken, build in ARM mode, since all architectures
+# that support Thumb1 also support ARM.
+ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y)
+MUSL_EXTRA_CFLAGS += -marm
+endif
+
 define MUSL_CONFIGURE_CMDS
 	(cd $(@D); \
 		$(TARGET_CONFIGURE_OPTS) \