Yes finite() is obsolete on many systems, however isfinite() is only
standardized by C99, not C89. GSL attempts to deal with this by defining
gsl_finite() which is simply a wrapper to isfinite() if available, and
otherwise finite(). The configure script tries to detect which (or both)
are available.
I have replaced the last remaining finite() calls in the GSL code with
gsl_finite() calls, so this should help if your system no longer defines
finite().
Please see the latest git master branch for the changes.
Patrick
On 01/29/2014 06:50 PM, Jeff E Mandel wrote:
I’m trying to compile GSL with Xcode 5.02 (clang) on Mavericks for iosphoneos
and iosphonesimulator. It fails due to deprecation of finite. On further
investigation:
%grep -R unavailable gsl-1.16
…
gsl-1.16/config.log:conftest.c:59:10: error: 'finite' is unavailable: not
available on iOS
…
Examination of
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/usr/include/math.h
shows:
/* Legacy BSD API: please use C99 isfinite( ) instead. */
extern int finite(double) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,
__MAC_10_9, __IPHONE_NA, __IPHONE_NA);
I understand what it wants me to do, and it seems GSL is slowly moving from
finite to infinite, but this process isn’t complete. Can this be addressed?
Thanks,
Jeff E Mandel MD MS
Assistant Professor of Anesthesiology
Perelman School of Medicine at the University of Pennsylvania