This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH], PowerPC long double transistion, patch #1
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
joseph@codesourcery.com