#310 build 7.20.4 failure in solaris x86

unexpected behavior
closed-remind
Sean Morrison
3
2012-01-04
2012-01-01
Anonymous
No

i build brlcad 7.20.4 , when build in openNURBS , it appear many isfinite error message, but i find not any isfinite in opennurbs_point.cpp file,
so i don't know how to solve this problem:
/bin/bash ../../../libtool --silent --tag=CXX --silent --mode=compile /opt/solarisstudio12.3/bin/CC -DHAVE_CONFIG_H -I. -I../../../include -DBRLCADBUILD=1 -I../../../include -I../../../src/other/openNURBS -w -g -D_FORTIFY_SOURCE=2 -c -o libopenNURBS_nil_la-opennurbs_point.lo `test -f 'opennurbs_point.cpp' || echo './'`opennurbs_point.cpp
"opennurbs_point.cpp", line 24: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 29: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 78: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 90: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 123: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 123: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 129: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 129: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 135: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 135: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 141: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 141: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 148: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 167: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 167: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 211: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 211: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 211: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 2935: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 3465: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 5256: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 5293: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 5834: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 5869: Error: The function "isfinite" must have a prototype.
"opennurbs_point.cpp", line 5918: Error: The function "isfinite" must have a prototype.
Compilation aborted, too many Error messages.
make: *** [libopenNURBS_nil_la-opennurbs_point.lo] Error 1

Discussion

  • Sean Morrison
    Sean Morrison
    2012-01-04

    • labels: --> Compilation
    • milestone: --> unexpected behavior
    • priority: 5 --> 3
    • assigned_to: nobody --> brlcad
    • status: open --> closed-remind
     
  • Sean Morrison
    Sean Morrison
    2012-01-04

    Thanks for the report. It's been quite a while since somebody has performed a complete build using the Sun compiler. The isfinite() function is declared through a macro in opennurbs_math.h

    If you edit that file and change line 369 from:

    #define ON_IS_FINITE(x) (isfinite(x)?true:false)

    to

    #define ON_IS_FINITE(x) (finite(x)?true:false)

    then the build may succeed. If it doesn't, then as the comment suggests, you can try simply changing the line to:

    #define ON_IS_FINITE(x) (true)

    As this build issue resides in one of our src/other external dependencies where there is already an upstream updated version available, it wouldn't make sense to edit our version. The issue is more appropriately reported to the upstream author (at http://opennurbs.org instead of to us) though given the comments in their sources, I believe they're aware of the issue and expect the source file to be edited during compilation.