On Fri, 13 May 2011, Bernd Schmidt wrote:

> On 05/10/2011 09:53 PM, Joseph S. Myers wrote:
> > General comment: there are lots of new files here that are built for the 
> > target, and if possible it's preferable for such sources to be under 
> > libgcc/config/ with associated build rules also located there not in the 
> > gcc/ directory.
> 
> I've made an attempt to move over the floating-point library functions,
> but this doesn't work since the include paths aren't set up properly -
> sfp-machine.h isn't found regardless of where it is placed. So I've left
> things in place for now.

I had thought there were some soft-fp files in libgcc/, but actually it 
appears there are just wrappers (see config/i386/64) including files from 
libgcc/config/.  Moving non-soft-fp files to libgcc/config/ should work, 
however.

> I'm also unsure what to do about t-c6x-softfp. I've noticed that e.g.
> moxie has two copies of the corresponding file, but I don't know why.

The main soft-fp configuration will only work in the gcc/ directory at 
present.

> >> +/* Make __c6xabi_AEABI_NAME an alias for __GCC_NAME.  */
> 
> > All this code now needs to go in a header in libgcc/config/, listed in 
> > libgcc_tm_file.
> 
> Changed. However, there's no libgcc_tm_file as far as I can see and
> other ports add the header to tm_file.

See r173619.

> > It's desirable for --target-help to show the list of valid values, either 
> > in the help for the individual option (as for various Enum options in 
> > common.opt, using the TAB-separated form of help text) or by adding a help 
> > text to the Enum definition.
> 
> I've done the latter. Text added to the EnumValues appears to be
> ignored, is that correct?

Yes, EnumValue entries don't have their own help text.

> > * Add the two new targets to contrib/config-list.mk (and confirm they do 
> > pass --enable-werror-always builds with current trunk GCC).
> 
> Added. I've tried to change my builds to use that option, but there are
> lots of errors that appear unrelated to the C6X port. c6x.o compiles
> without warnings.

There shouldn't be lots of errors; Joern does such builds frequently.  
Note that you need to start with a *current native trunk compiler* and use 
that when building the cross compiler; GCC is only expected to build 
cleanly with -Werror when the build uses the same version of GCC, not when 
it uses an older release.

>  - gcc.dg/march.c fails due to extra help text

It looks like this needs a similar fix (target-independent) to r172056 
(which fixed mtune.c).

> +#define PREFERRED_RELOAD_CLASS(x, class) (class)

This macro is being phased out and replaced by a target hook.  In general 
any target macro whose only use is in targhooks.c to provide a default 
transitional version of a hook should not be defined by a new port; new 
ports should define the hooks directly for all macros that are at that 
stage in transition to being hooks.

> +GCC_4.5.0 {

4.7.0 seems more appropriate for a new configuration.

> +  __c6xabi_divi
> +  __c6xabi_divu
> +  __c6xabi_remu
> +  __c6xabi_remi
> +  __c6xabi_divremu
> +  __c6xabi_divremi

> +  __c6xabi_strasgi_64plus
> +  __c6xabi_push_rts
> +  __c6xabi_pop_rts

These are all marked hidden in lib1funcs.asm, presumably because of their 
special register use conventions, so it doesn't make sense to give them 
symbol versions.

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to