[PATCH] Update compilation flags with core specific options
Scott Wood
scottwood at freescale.com
Wed Jul 24 10:11:17 EST 2013
On 07/02/2013 06:20:04 AM, Catalin Udma wrote:
> If CONFIG_E500 is enabled, the compilation flags are updated
> specifying the target core -mcpu=e5500/e500mc/8540
> Also remove -Wa,-me500, being incompatible with -mcpu=e5500/e6500
> The assembler option is redundant if the -mcpu= flag is set.
> The patch fixes the kernel compilation problem for e5500/e6500
> when using gcc option -mcpu=e5500/e6500.
>
> Signed-off-by: Catalin Udma <catalin.udma at freescale.com>
> ---
> arch/powerpc/Makefile | 13 ++++++++++++-
> 1 files changed, 12 insertions(+), 1 deletions(-)
>
> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> index 0624909..82808b5 100644
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -140,6 +140,18 @@ ifeq ($(CONFIG_6xx),y)
> KBUILD_CFLAGS += -mcpu=powerpc
> endif
>
> +ifeq ($(CONFIG_E500),y)
> +ifeq ($(CONFIG_64BIT),y)
> +KBUILD_CFLAGS += -mcpu=e5500
> +else
> +ifeq ($(CONFIG_PPC_E500MC),y)
> +KBUILD_CFLAGS += -mcpu=e500mc
> +else
> +KBUILD_CFLAGS += -mcpu=8540
> +endif
> +endif
> +endif
> +
> # Work around a gcc code-gen bug with -fno-omit-frame-pointer.
> ifeq ($(CONFIG_FUNCTION_TRACER),y)
> KBUILD_CFLAGS += -mno-sched-epilog
> @@ -147,7 +159,6 @@ endif
>
> cpu-as-$(CONFIG_4xx) += -Wa,-m405
> cpu-as-$(CONFIG_ALTIVEC) += -Wa,-maltivec
> -cpu-as-$(CONFIG_E500) += -Wa,-me500
> cpu-as-$(CONFIG_E200) += -Wa,-me200
>
> KBUILD_AFLAGS += $(cpu-as-y)
This breaks the vdso for e500v1/v2 (userspace dies with SIGILL), since
KBUILD_CFLAGS doesn't get used when building asm files, and the vdso
uses mftbu/mftbl which are not being assembled to the form that
e500v1/v2 support.
We should be setting -mcpu=whatever and -msoft-float in both CFLAGS and
AFLAGS, since we don't call "as" directly, and target selection should
not differ based on whether we're building a C file or an asm file.
-Scott
More information about the Linuxppc-dev
mailing list