On Thu, Jun 14, 2018 at 08:18:42PM -0400, Michael Meissner wrote:
> On Thu, Jun 14, 2018 at 06:25:49PM -0500, Segher Boessenkool wrote:
> > On Wed, Jun 13, 2018 at 05:10:15PM -0400, Michael Meissner wrote:
> > > In addition to the previous patch to aid in transitioning the PowerPC long
> > > double format to IEEE 128-bit, I have some additional patches that are 
> > > needed.
> > > The previous patch is:
> > > https://gcc.gnu.org/ml/gcc-patches/2018-06/msg00634.html
> > > 
> > > This patch turns off setting the .gnu_attributes when building the libgcc
> > > helper functions.  I ran into some linker warnings as I built some 
> > > multilib
> > > toolchains, and this turns off those warnings.
> > 
> > Should we turn it off for all of libgcc instead?
> 
> It is only needed if long double is passed or returned.  The conversion and
> support routines get called with long double values if long double is IEEE
> 128-bit, and with KFmode values if not.
> 
> Any other libgcc function that has a long double interface should get the
> linker warning that the wrong type was used.

I don't get this.  We have separate function names for all functions
working on different long double types.  The compiler knows what type is
in use, so it won't generate a call to the wrong function.  Or if it will,
that is no different from calling the wrong define_insn, etc., so the
attributes are not a good seat belt system anyway.

I don't see how gnu_attributes ever helps in libgcc (not just for long
double: in general).


Segher

Reply via email to