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
[email protected]