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