The finite() function has been superseded by isfinite(). There is also
no need to use scalb(), as the exponent is also an integer value. We can
simply use scalbn().
There is also no need to use __isnanf(). The values passed are
guaranteed to be of type float, meaning we can safely use the standard
isnan().
A couple of small issues still remain with linking:
LINK all
/usr/bin/ranlib: file: libopenlibm.a(e_rem_pio2.o) has no symbols
/usr/bin/ranlib: file: libopenlibm.a(e_rem_pio2f.o) has no symbols
/usr/bin/ranlib: file: libopenlibm.a(k_cosf.o) has no symbols
/usr/bin/ranlib: file: libopenlibm.a(k_sinf.o) has no symbols
/usr/bin/ranlib: file: libopenlibm.a(k_tanf.o) has no symbols
LINK all
ld: duplicate symbol ___ieee754_rem_pio2 in src/s_sin.o and src/s_cos.o for architecture x86_64
collect2: ld returned 1 exit status