On Mon, Oct 04, 2021 at 01:36:56PM +0200, Jakub Jelinek via Gcc wrote:
> On Mon, Oct 04, 2021 at 01:24:05PM +0200, Richard Biener wrote:
> > > Your thoughts on this?
> >
> > How does glibc deal with this? There's a load of long double ABI in there.
>
> I don't know, CCing Florian; all I can see is that starting with glibc 2.26
> in addition to sin{f,,l} there is also sinf128, but dunno if glibc headers
> transparently map sinl to sinf128 or something else for the IEEE quad long
> double or what. But I believe glibc is like libstdc++ in that the same
> libc.so.6 is ABI compatible with both ABIs (well, also the one where
> long double is double, in that case I think glibc headers transparently
> remap sinl to sin etc.).
Carlos said it is the __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 stuff in
math.h etc., so I expect it is actually sinl -> __sinieee128 redirection
(using extern long double sinl (long double) __asm ("__sinieee128"); or so,
but through a lot of preprocessor macros).
Jakub