u-boot-sakoman: fix break caused by the new binutils
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Mon, 24 Jan 2011 14:48:58 +0000 (15:48 +0100)
committerKoen Kooi <koen@openembedded.org>
Mon, 24 Jan 2011 15:01:37 +0000 (16:01 +0100)
New assemblers need -march=armv7-a+sec on command line or .arch_extension sec
inline to enable use of the smc instruction.

This patch adds as-instr to check the latter to conditionally enable the
former in AFLAGS for files that use smc.

Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
Signed-off-by: Koen Kooi <koen@openembedded.org>
recipes/u-boot/u-boot-sakoman/fix-break-caused-by-new-binutils.patch [new file with mode: 0644]
recipes/u-boot/u-boot-sakoman_git.bb

diff --git a/recipes/u-boot/u-boot-sakoman/fix-break-caused-by-new-binutils.patch b/recipes/u-boot/u-boot-sakoman/fix-break-caused-by-new-binutils.patch
new file mode 100644 (file)
index 0000000..16bc980
--- /dev/null
@@ -0,0 +1,31 @@
+Index: git/arch/arm/cpu/armv7/omap4/Makefile
+===================================================================
+--- git.orig/arch/arm/cpu/armv7/omap4/Makefile
++++ git/arch/arm/cpu/armv7/omap4/Makefile
+@@ -26,6 +26,8 @@ include $(TOPDIR)/config.mk
+ LIB   =  $(obj)lib$(SOC).o
+ SOBJS += lowlevel_init.o
++plus_sec := $(call as-instr,.arch_extension sec,+sec)
++lowlevel_init.o: AFLAGS += -Wa,-march=armv7-a$(plus_sec)
+ COBJS += board.o
+ COBJS += mem.o
+Index: git/config.mk
+===================================================================
+--- git.orig/config.mk
++++ git/config.mk
+@@ -266,3 +266,13 @@ cmd_link_o_target = $(if $(strip $1),\
+                     rm -f $@; $(AR) rcs $@ )
+ #########################################################################
++
++# Tries to compile an assembly instruction
++as-instr = $(shell if echo -e "$(1)" | \
++            $(CC) $(AFLAGS) -c -xassembler - \
++             -o $(TMPOUT)astest$$$$.out > /dev/null 2>&1; \
++         then rm $(TMPOUT)astest$$$$.out; echo "$(2)"; \
++         else echo "$(3)"; fi)
++
++#########################################################################
++
index 5b9ff11..8dfe713 100644 (file)
@@ -7,6 +7,7 @@ SRCREV = "261733408a27d14590cf3ec6b596461808050e32"
 PV = "2010.12+${PR}+git${SRCREV}"
 
 SRC_URI = "git://www.sakoman.com/git/u-boot.git;branch=omap4-exp;protocol=git \
+          file://fix-break-caused-by-new-binutils.patch \
           "
 S = "${WORKDIR}/git"