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