On Wed, Dec 01, 2021 at 09:54:50PM +0100, Jakub Jelinek wrote:
> sinl in C when compiled with -mabi=ieeelongdouble), but I'm not sure
> if those need to be declared by libgfortran or math.h declares them).

To answer this myself, just tried on Fedora 34 and we'd need to
declare those ourselves.
Because math.h for -mabi=ibmlongdouble (which we want to compile
the libgfortran *.c files with so that REAL16 is long double as before)
only has prototypes like:
extern long double sinl (long double __x) __attribute__ ((__nothrow__ , 
__leaf__)); extern long double __sinl (long double __x) __attribute__ 
((__nothrow__ , __leaf__));
and with -mabi=ieeelongdouble it has:
extern long double sinl (long double __x) __asm__ ("" "__sinieee128") 
__attribute__ ((__nothrow__ , __leaf__)); extern long double __sinl (long 
double __x) __asm__ ("" "____sinieee128") __attribute__ ((__nothrow__ , 
__leaf__));
but in neither case there is what we actually need for libgfortran,
which is
extern __float128 __sinieee128 (__float128) __attribute__ ((__nothrow__, 
__leaf__));

        Jakub

Reply via email to