[PATCH] gcc: add support for the PowerPC EABI

Mircea Gherzan mgherzan@gmail.com
Mon Sep 19 15:40:00 GMT 2011


Hi Yann,

On Fri, Sep 16, 2011 at 02:27:35PM +0200, Yann E. MORIN wrote:
> Mircea, All,
> 
> On Friday 16 September 2011 02:19:02 Mircea Gherzan wrote:
> > # HG changeset patch
> > # User Mircea Gherzan <mgherzan@gmail.com>
> > # Date 1316132293 -7200
> > # Node ID ddb7a1b016c824a0ddaf97768d37c1a1fb287156
> > # Parent  eda6ef5a2532607ab7060814eb8b786bd361ab11
> > gcc: add support for the PowerPC EABI
> 
> You have to add a SoB line:
>   http://crosstool-ng.org/hg/crosstool-ng/file/tip/docs/7%20-%20Contributing%20to%20crosstool-NG.txt#l24
> 
> > diff -r eda6ef5a2532 -r ddb7a1b016c8 config/arch/powerpc.in.2
> > --- a/config/arch/powerpc.in.2	Mon Sep 12 12:54:45 2011 +0200
> > +++ b/config/arch/powerpc.in.2	Fri Sep 16 02:18:13 2011 +0200
> > @@ -1,8 +1,31 @@
> >  # powerpc specific configuration file
> >  
> > -config ARCH_POWERPC_SPE
> > +config ARCH_POWERPC_ABI
> 
> Yes, _POWERPC_ is a legacy naming scheme, back when the menus in the
> menuconfig were not autogenerated. Nowadays, the naming scheme is to
> use the architecture name in lowercase, the same as the file is named
> (eg. 'powerpc' here).
> 
> It would be really great if you could also do the rename at the same
> time.
> 
> > +    string
> > +    default ""     if ARCH_POWERPC_ABI_DEFAULT
> > +    default "eabi" if ARCH_POWERPC_ABI_EABI
> > +    default "spe"  if ARCH_POWERPC_ABI_SPE
> > +
> > +choice
> >      bool
> > -    prompt "Enable SPE support"
> > +    prompt "ABI"
> > +    default ARCH_POWERPC_ABI_DEFAULT
> > +
> > +config ARCH_POWERPC_ABI_DEFAULT
> > +    bool
> > +    prompt "default"
> > +    help
> > +      The default ABI (System V.4). 
> > +
> > +config ARCH_POWERPC_ABI_EABI
> > +    bool
> > +    prompt "EABI"
> > +    help
> > +      The Embedded ABI (stack alignment of 8 bytes, etc).
> 
> This should depend on BARE_METAL.
> 
> > +config ARCH_POWERPC_ABI_SPE
> > +    bool
> > +    prompt "SPE"
> >      help
> >        Add support for the Signal Processing Engine.  This will set up
> >        the toolchain so that it supports the SPE ABI extensions. This
> > @@ -14,3 +37,6 @@
> >        will also automatically add "-mabi=spe -mspe" to your TARGET_CFLAGS,
> >        and "--enable-e500_double" to your CC_EXTRA_CONFIG_ARRAY, so you
> >        do not need to explicitly add them.
> > +
> > +endchoice
> > +
> > diff -r eda6ef5a2532 -r ddb7a1b016c8 scripts/build/arch/powerpc.sh
> > --- a/scripts/build/arch/powerpc.sh	Mon Sep 12 12:54:45 2011 +0200
> > +++ b/scripts/build/arch/powerpc.sh	Fri Sep 16 02:18:13 2011 +0200
> > @@ -6,14 +6,23 @@
> >          CT_TARGET_ARCH="powerpc64"
> >      fi
> >  
> > -    # Add spe in the tuple if needed
> > -    case "${CT_LIBC},${CT_ARCH_POWERPC_SPE}" in
> > -        glibc,|eglibc,)   CT_TARGET_SYS=gnu;;
> > -        glibc,y|eglibc,y) CT_TARGET_SYS=gnuspe;;
> > +    CT_TARGET_SYS="gnu"
> > +    case "${CT_ARCH_POWERPC_ABI}" in
> > +        "") ;;
> > +        eabi)   
> > +            CT_TARGET_SYS="eabi";;
> > +        spe)
> > +            case "${CT_LIBC}" in
> > +                glibc|eglibc)
> > +                    CT_TARGET_SYS="gnuspe";;
> > +                *)
> > +                    CT_TARGET_SYS="spe";;
> > +                    
> > +            esac;;
> >      esac
> 
> The coding style for all other case..esac is either:
>  - all on a single line:
>      pattern)  code;;
>  - one line for pattern, then lines for code, then ';;' on its own line:
>      pattern)
>          code
>          ;;

Thank you for your feedback. All the issues have been addressed in v3 of
the patch. Could you please apply it and release a new version (1.12.3)?

Thanks,
Mircea

--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list