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



Reply via email to