diff options
| -rw-r--r-- | arch/arm/Kconfig | 12 | ||||
| -rw-r--r-- | arch/arm/Kconfig.debug | 1 | ||||
| -rw-r--r-- | arch/arm/Makefile | 11 |
3 files changed, 22 insertions, 2 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index da28e7ba6083..a36b5a8b123e 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -983,6 +983,18 @@ config HZ | |||
| 983 | default AT91_TIMER_HZ if ARCH_AT91 | 983 | default AT91_TIMER_HZ if ARCH_AT91 |
| 984 | default 100 | 984 | default 100 |
| 985 | 985 | ||
| 986 | config THUMB2_KERNEL | ||
| 987 | bool "Compile the kernel in Thumb-2 mode" | ||
| 988 | depends on CPU_V7 && EXPERIMENTAL | ||
| 989 | select AEABI | ||
| 990 | select ARM_ASM_UNIFIED | ||
| 991 | help | ||
| 992 | By enabling this option, the kernel will be compiled in | ||
| 993 | Thumb-2 mode. A compiler/assembler that understand the unified | ||
| 994 | ARM-Thumb syntax is needed. | ||
| 995 | |||
| 996 | If unsure, say N. | ||
| 997 | |||
| 986 | config ARM_ASM_UNIFIED | 998 | config ARM_ASM_UNIFIED |
| 987 | bool | 999 | bool |
| 988 | 1000 | ||
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index a89e4734b8f0..1a6f70e52921 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug | |||
| @@ -8,6 +8,7 @@ source "lib/Kconfig.debug" | |||
| 8 | # n, but then RMK will have to kill you ;). | 8 | # n, but then RMK will have to kill you ;). |
| 9 | config FRAME_POINTER | 9 | config FRAME_POINTER |
| 10 | bool | 10 | bool |
| 11 | depends on !THUMB2_KERNEL | ||
| 11 | default y if !ARM_UNWIND | 12 | default y if !ARM_UNWIND |
| 12 | help | 13 | help |
| 13 | If you say N here, the resulting kernel will be slightly smaller and | 14 | If you say N here, the resulting kernel will be slightly smaller and |
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 3505572a21e6..e150f232458d 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
| @@ -93,9 +93,16 @@ ifeq ($(CONFIG_ARM_UNWIND),y) | |||
| 93 | CFLAGS_ABI +=-funwind-tables | 93 | CFLAGS_ABI +=-funwind-tables |
| 94 | endif | 94 | endif |
| 95 | 95 | ||
| 96 | ifeq ($(CONFIG_THUMB2_KERNEL),y) | ||
| 97 | AFLAGS_AUTOIT :=$(call as-option,-Wa$(comma)-mimplicit-it=thumb,-Wa$(comma)-mauto-it) | ||
| 98 | AFLAGS_NOWARN :=$(call as-option,-Wa$(comma)-mno-warn-deprecated,-Wa$(comma)-W) | ||
| 99 | CFLAGS_THUMB2 :=-mthumb $(AFLAGS_AUTOIT) $(AFLAGS_NOWARN) | ||
| 100 | AFLAGS_THUMB2 :=$(CFLAGS_THUMB2) -Wa$(comma)-mthumb | ||
| 101 | endif | ||
| 102 | |||
| 96 | # Need -Uarm for gcc < 3.x | 103 | # Need -Uarm for gcc < 3.x |
| 97 | KBUILD_CFLAGS +=$(CFLAGS_ABI) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm | 104 | KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_THUMB2) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm |
| 98 | KBUILD_AFLAGS +=$(CFLAGS_ABI) $(arch-y) $(tune-y) -include asm/unified.h -msoft-float | 105 | KBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_THUMB2) $(arch-y) $(tune-y) -include asm/unified.h -msoft-float |
| 99 | 106 | ||
| 100 | CHECKFLAGS += -D__arm__ | 107 | CHECKFLAGS += -D__arm__ |
| 101 | 108 | ||
