Hi,
I encountered a problem to run EPICS CA clients build with EPICSR3.14.8.1 under MacOSX 10.3/10.4.
In the osdStrtod.h under base-3.14.8.1/src/libCom/osi/posix, macro epicsStrtod is defined as:
#define epicsStrtod strtod
On the otherhand , the file epicsStdlib.c in base-3.14.8.1/src/libCom/ includes the definition of epicsStrtod. Because <epicsStrtod.h> is included before the definition of epicsStrtod function, this definition
acually defines strtod as a external funtion.
The epicsStrtod calls a strtod function inside it. It ends up the
infinite calling sequence. For example, a simple "caget fred" command will never end in this environment.
I'm not quite sure if this problem is related to my development environment( MacOSX 10.3/10.4 with gcc3, distributed by Apple . I don't use any fink command.)
1) Is there any other who encounter the same or similar problem with EPICS3.14.8.1?
2) there may be severay ways to avoid this phenomena, but which one do you like to take. For example, just remove the sentence
#define epicsStrtod strtod
or define a new macro like
#define HAS_WORKING_STRTOD_IN_SYSTEM 0
and skip the definition of epicsStrtod.
Or better otherway?
Thank you very much for your attension.
Regards,
Noboru Yamamoto
EPICS group/JPARC control group
KEK, JAPAN