Thumb-2: Add Thumb-2 support to the build files
authorCatalin Marinas <catalin.marinas@arm.com>
Fri, 24 Jul 2009 11:33:02 +0000 (12:33 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 24 Jul 2009 11:33:02 +0000 (12:33 +0100)
This patch adds the necessary entries to the Makefile and Kconfig
files for building the Thumb-2 kernel.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm/Kconfig
arch/arm/Kconfig.debug
arch/arm/Makefile

index da28e7b..a36b5a8 100644 (file)
@@ -983,6 +983,18 @@ config HZ
        default AT91_TIMER_HZ if ARCH_AT91
        default 100
 
+config THUMB2_KERNEL
+       bool "Compile the kernel in Thumb-2 mode"
+       depends on CPU_V7 && EXPERIMENTAL
+       select AEABI
+       select ARM_ASM_UNIFIED
+       help
+         By enabling this option, the kernel will be compiled in
+         Thumb-2 mode. A compiler/assembler that understand the unified
+         ARM-Thumb syntax is needed.
+
+         If unsure, say N.
+
 config ARM_ASM_UNIFIED
        bool
 
index a89e473..1a6f70e 100644 (file)
@@ -8,6 +8,7 @@ source "lib/Kconfig.debug"
 # n, but then RMK will have to kill you ;).
 config FRAME_POINTER
        bool
+       depends on !THUMB2_KERNEL
        default y if !ARM_UNWIND
        help
          If you say N here, the resulting kernel will be slightly smaller and
index 3505572..e150f23 100644 (file)
@@ -93,9 +93,16 @@ ifeq ($(CONFIG_ARM_UNWIND),y)
 CFLAGS_ABI     +=-funwind-tables
 endif
 
+ifeq ($(CONFIG_THUMB2_KERNEL),y)
+AFLAGS_AUTOIT  :=$(call as-option,-Wa$(comma)-mimplicit-it=thumb,-Wa$(comma)-mauto-it)
+AFLAGS_NOWARN  :=$(call as-option,-Wa$(comma)-mno-warn-deprecated,-Wa$(comma)-W)
+CFLAGS_THUMB2  :=-mthumb $(AFLAGS_AUTOIT) $(AFLAGS_NOWARN)
+AFLAGS_THUMB2  :=$(CFLAGS_THUMB2) -Wa$(comma)-mthumb
+endif
+
 # Need -Uarm for gcc < 3.x
-KBUILD_CFLAGS  +=$(CFLAGS_ABI) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm
-KBUILD_AFLAGS  +=$(CFLAGS_ABI) $(arch-y) $(tune-y) -include asm/unified.h -msoft-float
+KBUILD_CFLAGS  +=$(CFLAGS_ABI) $(CFLAGS_THUMB2) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm
+KBUILD_AFLAGS  +=$(CFLAGS_ABI) $(AFLAGS_THUMB2) $(arch-y) $(tune-y) -include asm/unified.h -msoft-float
 
 CHECKFLAGS     += -D__arm__