musl: build broken on Thumb, use ARM mode
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 31 Mar 2016 19:00:08 +0000 (21:00 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Fri, 8 Apr 2016 10:08:33 +0000 (12:08 +0200)
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>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/musl/musl.mk

index 081a7002868251857f4cc96d92492a07cac8530d..733f940db224ade8280e4f5816237b19c2e9e3b7 100644 (file)
@@ -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) \