Patchwork [v2] powerpc: Update compilation flags with core specific options

login
register
mail settings
Submitter Catalin Udma
Date July 25, 2013, 11:54 a.m.
Message ID <1374753254-10381-1-git-send-email-catalin.udma@freescale.com>
Download mbox | patch
Permalink /patch/261675/
State Superseded
Headers show

Comments

Catalin Udma - July 25, 2013, 11:54 a.m.
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@freescale.com>
---
changes for v2: 
    - update also KBUILD_AFLAGS with -mcpu and -msoft-float flags
  
 arch/powerpc/Makefile |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)
Kumar Gala - July 26, 2013, 3:50 p.m.
On Jul 25, 2013, at 6:54 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@freescale.com>
> ---
> changes for v2: 
>    - update also KBUILD_AFLAGS with -mcpu and -msoft-float flags
> 
> arch/powerpc/Makefile |   16 +++++++++++++++-
> 1 files changed, 15 insertions(+), 1 deletions(-)

Is the assembler redundant for older toolchains?

- k
Udma Catalin-Dan-B32721 - July 29, 2013, 8:29 a.m.
> > 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@freescale.com>
> > ---
> > changes for v2:
> >    - update also KBUILD_AFLAGS with -mcpu and -msoft-float flags
> >
> > arch/powerpc/Makefile |   16 +++++++++++++++-
> > 1 files changed, 15 insertions(+), 1 deletions(-)
> 
> Is the assembler redundant for older toolchains?
> 
> - k
[CU] gcc defines the mapping from -mcpu to assembler options in file
gcc/config/rs6000/rs6000.h, like this:
	%{mcpu=8540: -me500} \
	%{mcpu=8548: -me500} \
	%{mcpu=e300c2: -me300} \
	%{mcpu=e300c3: -me300} \
	%{mcpu=e500mc: -me500mc} \
	%{mcpu=e500mc64: -me500mc64} \
	%{mcpu=e5500: -me5500} \
	%{mcpu=e6500: -me6500} \

I have checked this mapping from gcc 3.3 (where 8540 entry was added) to
3.4, 4.3, 4.4 and 4.8.1...The -Wa option is redundant for all these
older toolchains.
Catalin
Scott Wood - July 29, 2013, 11:53 p.m.
On 07/25/2013 06:54:14 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@freescale.com>
> ---
> changes for v2:
>     - update also KBUILD_AFLAGS with -mcpu and -msoft-float flags
> 
>  arch/powerpc/Makefile |   16 +++++++++++++++-
>  1 files changed, 15 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> index 0624909..cb5cbe2 100644
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -140,6 +140,21 @@ ifeq ($(CONFIG_6xx),y)
>  KBUILD_CFLAGS		+= -mcpu=powerpc
>  endif
> 
> +ifeq ($(CONFIG_E500),y)
> +ifeq ($(CONFIG_64BIT),y)
> +KBUILD_CFLAGS		+= -mcpu=e5500
> +KBUILD_AFLAGS		+= -mcpu=e5500 -msoft-float
> +else
> +ifeq ($(CONFIG_PPC_E500MC),y)
> +KBUILD_CFLAGS		+= -mcpu=e500mc
> +KBUILD_AFLAGS		+= -mcpu=e500mc -msoft-float
> +else
> +KBUILD_CFLAGS		+= -mcpu=8540
> +KBUILD_AFLAGS		+= -mcpu=8540 -msoft-float
> +endif
> +endif
> +endif

Instead of specifying -msoft-float here, shouldn't it go on the main  
KBUILD_AFLAGS in arch/powerpc/Makefile, right next to where it's added  
for KBUILD_CFLAGS?

-Scott

Patch

diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 0624909..cb5cbe2 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -140,6 +140,21 @@  ifeq ($(CONFIG_6xx),y)
 KBUILD_CFLAGS		+= -mcpu=powerpc
 endif
 
+ifeq ($(CONFIG_E500),y)
+ifeq ($(CONFIG_64BIT),y)
+KBUILD_CFLAGS		+= -mcpu=e5500
+KBUILD_AFLAGS		+= -mcpu=e5500 -msoft-float
+else
+ifeq ($(CONFIG_PPC_E500MC),y)
+KBUILD_CFLAGS		+= -mcpu=e500mc
+KBUILD_AFLAGS		+= -mcpu=e500mc -msoft-float
+else
+KBUILD_CFLAGS		+= -mcpu=8540
+KBUILD_AFLAGS		+= -mcpu=8540 -msoft-float
+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 +162,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)