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