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. -- Joseph S. Myers jos...@codesourcery.com