diff options
Diffstat (limited to 'arch')
| -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 | ||
