diff options
-rw-r--r-- | arch/arm/Kconfig | 19 | ||||
-rw-r--r-- | arch/arm/Makefile | 7 |
2 files changed, 24 insertions, 2 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index c4d585e2de7a..ead6172692db 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -401,6 +401,21 @@ config NO_IDLE_HZ | |||
401 | Currently at least OMAP, PXA2xx and SA11x0 platforms are known | 401 | Currently at least OMAP, PXA2xx and SA11x0 platforms are known |
402 | to have accurate timekeeping with dynamic tick. | 402 | to have accurate timekeeping with dynamic tick. |
403 | 403 | ||
404 | config AEABI | ||
405 | bool "Use the ARM EABI to compile the kernel" | ||
406 | help | ||
407 | This option allows for the kernel to be compiled using the latest | ||
408 | ARM ABI (aka EABI). This is only useful if you are using a user | ||
409 | space environment that is also compiled with EABI. | ||
410 | |||
411 | Since there are major incompatibilities between the legacy ABI and | ||
412 | EABI, especially with regard to structure member alignment, this | ||
413 | option also changes the kernel syscall calling convention to | ||
414 | disambiguate both ABIs and allow for backward compatibility support | ||
415 | (selected with CONFIG_OABI_COMPAT). | ||
416 | |||
417 | To use this you need GCC version 4.0.0 or later. | ||
418 | |||
404 | config ARCH_DISCONTIGMEM_ENABLE | 419 | config ARCH_DISCONTIGMEM_ENABLE |
405 | bool | 420 | bool |
406 | default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM) | 421 | default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM) |
@@ -587,6 +602,7 @@ comment "At least one emulation must be selected" | |||
587 | 602 | ||
588 | config FPE_NWFPE | 603 | config FPE_NWFPE |
589 | bool "NWFPE math emulation" | 604 | bool "NWFPE math emulation" |
605 | depends on !AEABI | ||
590 | ---help--- | 606 | ---help--- |
591 | Say Y to include the NWFPE floating point emulator in the kernel. | 607 | Say Y to include the NWFPE floating point emulator in the kernel. |
592 | This is necessary to run most binaries. Linux does not currently | 608 | This is necessary to run most binaries. Linux does not currently |
@@ -610,7 +626,7 @@ config FPE_NWFPE_XP | |||
610 | 626 | ||
611 | config FPE_FASTFPE | 627 | config FPE_FASTFPE |
612 | bool "FastFPE math emulation (EXPERIMENTAL)" | 628 | bool "FastFPE math emulation (EXPERIMENTAL)" |
613 | depends on !CPU_32v3 && EXPERIMENTAL | 629 | depends on !AEABI && !CPU_32v3 && EXPERIMENTAL |
614 | ---help--- | 630 | ---help--- |
615 | Say Y here to include the FAST floating point emulator in the kernel. | 631 | Say Y here to include the FAST floating point emulator in the kernel. |
616 | This is an experimental much faster emulator which now also has full | 632 | This is an experimental much faster emulator which now also has full |
@@ -642,6 +658,7 @@ source "fs/Kconfig.binfmt" | |||
642 | 658 | ||
643 | config ARTHUR | 659 | config ARTHUR |
644 | tristate "RISC OS personality" | 660 | tristate "RISC OS personality" |
661 | depends on !AEABI | ||
645 | help | 662 | help |
646 | Say Y here to include the kernel code necessary if you want to run | 663 | Say Y here to include the kernel code necessary if you want to run |
647 | Acorn RISC OS/Arthur binaries under Linux. This code is still very | 664 | Acorn RISC OS/Arthur binaries under Linux. This code is still very |
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 1fa2a1011584..fbfc14a56b96 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
@@ -56,8 +56,13 @@ tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100 | |||
56 | tune-$(CONFIG_CPU_XSCALE) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale | 56 | tune-$(CONFIG_CPU_XSCALE) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale |
57 | tune-$(CONFIG_CPU_V6) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) | 57 | tune-$(CONFIG_CPU_V6) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) |
58 | 58 | ||
59 | # Need -Uarm for gcc < 3.x | 59 | ifeq ($(CONFIG_AEABI),y) |
60 | CFLAGS_ABI :=-mabi=aapcs -mno-thumb-interwork | ||
61 | else | ||
60 | CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,) | 62 | CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,) |
63 | endif | ||
64 | |||
65 | # Need -Uarm for gcc < 3.x | ||
61 | CFLAGS +=$(CFLAGS_ABI) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm | 66 | CFLAGS +=$(CFLAGS_ABI) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm |
62 | AFLAGS +=$(CFLAGS_ABI) $(arch-y) $(tune-y) -msoft-float | 67 | AFLAGS +=$(CFLAGS_ABI) $(arch-y) $(tune-y) -msoft-float |
63 | 68 | ||