0006-remove-uninit-f2c.patch 1.09 KB
uninit.c includes glibc-specific <fpu_control.h> not provided by musl.
Somewhat portable replacement is <fenv.h>, which is available in musl
but requires non-trivial changes to uninit.c.

f2c uses _uninit_f2c() from uninit.c to implement its -trapuv option,
pre-initializiing floating-point variables to NaN and asking FPU to send
SIGFPE whenever NaN value is encountered.

clapack source has already been run through f2c without -trapuv,
so uninit.c code is not used anywhere and can be safely excluded.

Signed-off-by: Alex Suykov <alex.suykov@gmail.com>

--- a/F2CLIBS/libf2c/CMakeLists.txt
+++ b/F2CLIBS/libf2c/CMakeLists.txt
@@ -1,7 +1,7 @@
 set(MISC 
   f77vers.c i77vers.c main.c s_rnge.c abort_.c exit_.c getarg_.c iargc_.c
   getenv_.c signal_.c s_stop.c s_paus.c system_.c cabs.c ctype.c
-  derf_.c derfc_.c erf_.c erfc_.c sig_die.c uninit.c)
+  derf_.c derfc_.c erf_.c erfc_.c sig_die.c)
 set(POW pow_ci.c pow_dd.c pow_di.c pow_hh.c pow_ii.c pow_ri.c pow_zi.c pow_zz.c)
 set(CX 	c_abs.c c_cos.c c_div.c c_exp.c c_log.c c_sin.c c_sqrt.c)
 set(DCX	z_abs.c z_cos.c z_div.c z_exp.c z_log.c z_sin.c z_sqrt.c)