Eric Botcazou wrote:
>> Following the recent comments by Eric, the patch now sketches the
>> following setup:
>>
>> If multi-lib is wanted:
>> configure --with-cpu=leon ... : creates multilib-dir soft|v8
>> combinations using [-msoft-float|-mcpu=sparcleonv8] (MULTILIB_OPTIONS =
>> msoft-float mcpu=sparcleonv8)
>>
>> If Single-lib is wanted:
>> configure --with-cpu=sparcleonv7 --with-float=soft --disable-multilib ...
>> : (v7 | soft | no-multilib) configure --with-cpu=sparcleonv8
>> --with-float=soft --disable-multilib ... : (v8 | soft | no-multilib)
>> configure --with-cpu=sparcleonv7 --with-float=hard --disable-multilib ...
>> : (v7 | hard | no-multilib) configure --with-cpu=sparcleonv8
>> --with-float=hard --disable-multilib ... : (v8 | hard | no-multilib)
>>
>> Using --with-cpu=leon|sparcleonv7|sparcleonv8 the the sparc_cpu is switched
>> to PROCESSOR_LEON.
>
> I'm mostly OK, but I don't think we need sparcleonv7 or sparcleonv8.
> Attached
You are right.
> is another proposal, which:
>
> 1. Adds -mtune/--with-tune=leon for all SPARC targets. In particular, this
> mean that if you configure --target=sparc-{elf,rtems} --with-tune=leon, you
> get a multilib-ed compiler defaulting to V7/FPU and -mtune=leon, with V8 and
> NO-FPU libraries.
Ok, this scheme seems best.
>
> 2. Adds new targets sparc-leon-{elf,linux}: multilib-ed compiler defaulting
> to V8/FPU and -mtune=leon, with V7 and NO-FPU libraries.
Ok.
>
> 3. Adds new targets sparc-leon3-{elf,linux}: multilib-ed compiler defaulting
> to V8/FPU and -mtune=leon, with NO-FPU libraries.
>
> Singlelib-ed compilers are available through --disable-multilib and
> --with=cpu={v7,v8} --with-float={soft,hard} --with-tune=leon
> for sparc-{elf,rtems} or just
> --with=cpu={v7,v8} --with-float={soft,hard}
> for sparc-leon*-*.
>
> The rationale is that --with-cpu shouldn't change the set of multilibs, it is
> only the configure-time equivalent of -mcpu. This set of multilibs should
> only depend on the target and the presence of --disable-multilib.
>
Ok, understood.
>
> * config.gcc (sparc-*-elf*): Deal with sparc-leon specifically.
> (sparc-*-linux*): Likewise.
> (sparc*-*-*): Remove obsolete sparc86x setting.
> (sparc-leon*): Default to --with-cpu=v8 and --with-tune=leon.
> * doc/invoke.texi (SPARC Options): Document -mcpu/-mtune=leon.
> * config/sparc/sparc.h (TARGET_CPU_leon): Define.
> (TARGET_CPU_sparc86x): Delete.
> (TARGET_CPU_cypress): Define as alias to TARGET_CPU_v7.
> (TARGET_CPU_f930): Define as alias to TARGET_CPU_sparclite.
> (TARGET_CPU_f934): Likewise.
> (TARGET_CPU_tsc701): Define as alias to TARGET_CPU_sparclet.
> (CPP_CPU_SPEC): Add entry for -mcpu=leon.
> (enum processor_type): Add PROCESSOR_LEON.
> * config/sparc/sparc.c (leon_costs): New cost array.
> (sparc_option_override): Add entry for TARGET_CPU_leon and -mcpu=leon.
> Initialize cost array to leon_costs if -mtune=leon.
> * config/sparc/sparc.md (cpu attribute): Add leon.
> Include leon.md scheduling description.
> * config/sparc/leon.md: New file.
> * config/sparc/t-elf: Do not assemble Solaris startup files.
> * config/sparc/t-leon: New file.
> * config/sparc/t-leon3: Likewise.
>
>
Is the list above an indication that you are already finished with
the modifications? :-)
Can you give me a note, otherwise I'll create a new patch that implements
the scheme you suggested.
-- Greetings Konrad