dmalloc: Force arm mode instead of Thumb1 mode
authorRichard Genoud <richard.genoud@gmail.com>
Tue, 20 Jan 2015 11:24:37 +0000 (12:24 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 25 Jan 2015 19:30:18 +0000 (20:30 +0100)
dmalloc has some assembly that doesn't exist in thumb1 mode.
So, force arm mode for dmalloc.

Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/dmalloc/dmalloc.mk

index 581ec4075681747856accd92a180c8c34b7658bf..f87ae1709aec774570be507ebfe525eee3ea469c 100644 (file)
@@ -14,6 +14,7 @@ DMALLOC_LICENSE_FILES = dmalloc.h.1
 
 DMALLOC_INSTALL_STAGING = YES
 DMALLOC_CONF_OPTS = --enable-shlib
+DMALLOC_CFLAGS = $(TARGET_CFLAGS)
 
 ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
 DMALLOC_CONF_OPTS += --enable-cxx
@@ -27,6 +28,15 @@ else
 DMALLOC_CONF_OPTS += --disable-threads
 endif
 
+# dmalloc has some assembly function that are not present in thumb1 mode:
+# Error: lo register required -- `str lr,[sp,#4]'
+# so, we desactivate thumb mode
+ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y)
+DMALLOC_CFLAGS += -marm
+endif
+
+DMALLOC_CONF_ENV = CFLAGS="$(DMALLOC_CFLAGS)"
+
 define DMALLOC_POST_PATCH
        $(SED) 's/^ac_cv_page_size=0$$/ac_cv_page_size=12/' $(@D)/configure
        $(SED) 's/(ld -/($${LD-ld} -/' $(@D)/configure