Disable unaligned memory access

Recent versions of GCC generate code that makes use of ARMv7's ability to
access 16- and 32-bit values from addresses that are not 16- or 32-bit aligned.
The problem is that this does not work for strongly-ordered or device memory.
Since the MMU is (currently) turned off in barebox, all memory is treated as
strongly-ordered. The file doc/README.unaligned-memory-access.txt that comes
with u-boot discusses the issue in great detail. The u-boot folks decided to
make GCC not emit any unaligned access operations. They achieve this by a
series of tricks including avoiding certain perfectly legal C language
constructs. We chose the easier route and pass -mno-unaligned-access to GCC to
make it not generate such unaligned access operations. According to the
following email, this appears to be the preferred method of barebox maintainer
Sascha Hauer:

http://lists.infradead.org/pipermail/barebox/2012-December/011468.html

Change-Id: Ifca733859e92171e54d71090bbcb818800abcac7
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 40d200d..d2882c3 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -39,6 +39,8 @@
 CFLAGS_ABI	+=-funwind-tables
 endif
 
+CFLAGS_ABI	+=$(call cc-option,-mno-unaligned-access)
+
 CPPFLAGS += $(CFLAGS_ABI) $(arch-y) $(tune-y)
 AFLAGS   += -include asm/unified.h