On Fri, Jun 15, 2018 at 08:43:52PM +0000, Joseph Myers wrote: > On Thu, 14 Jun 2018, Michael Meissner wrote: > > > Any other libgcc function that has a long double interface should get the > > linker warning that the wrong type was used. > > libgcc functions have interfaces corresponding to a particular machine > mode and names that vary depending on that mode - not interfaces directly > involving a type such as long double. The interfaces for ibm128 format > are generally *tf* (or __gcc_q*) and those for ieee128 format are > generally *kf*. As far as I know, all the previously observed issues with > some functions getting built for the wrong format have by now been fixed, > and if any more such issues arise in future, they are simply libgcc bugs > to be fixed in libgcc. > > Because the names depend on the format not the type, there is no risk of > ABI inconsistency from linking with a libgcc function for the wrong > format, and so I think the linker warning is never relevant for linking > with libgcc (and once the glibc support is in, it won't be relevant for > linking with glibc either). Linker warnings are relevant for the generic > case of a library that *doesn't* do anything special to support both > formats simultaneously - not for a library that properly handles getting > things right for both formats automatically.
Yes. And as far as I see the same is true for *all* libgcc functions (not only long double), so we can just as well turn off the gnu_attributes warning for all of libgcc. Segher