EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: sscan compile error on base 3.14.10 on linux
From: Tim Mooney <[email protected]>
To: Dirk Zimoch <[email protected]>
Cc: "John M. Skinner" <[email protected]>, [email protected]
Date: Tue, 02 Dec 2008 08:30:53 -0600
Dirk,  Thanks for the information.  We have little choice, because the
code change must happen between 3.14.9 and 3.14.10.  At minimum, the
fix communicates the solution.  In the event it doesn't also implement
it, we rely on knowledgeable humans.  I hate relying on humans, of course,
but I must admit that they are sometimes pretty handy things to have around.

By the way, Ron Sluiter was the guy who figured out how to do this.  (He
loves being blamed for stuff.)

Tim

Dirk Zimoch wrote:
Hi Tim,

Arithmetic with macros like EPICS_MODIFICATION<(l) only works if EPICS_MODIFICATION is numeric. This is not guaranteed. In pre-releases like 3.14.10-pre1 we have:

# This part may contain letters, eg 0beta1
EPICS_MODIFICATION = 10pre1

Of course it would be nice to have a mechanism to find out the current EPICS release, but EPICS does not provide this feature.

Dirk


Tim Mooney wrote:
John,
You can fix the scanOnce errors like this:
   scanOnce((struct dbCommon *)psscan);
and the precision problem like this:
   pPos->p_pr = precPvt->pDynLinkInfo->precision.dp;

But note that the precision fix is base-version dependent.  The current
sscanRecord code actually looks like this:

#include <epicsVersion.h> /* for LT_EPICSBASE macro */
...
/* Less than EPICS base version test.*/
#define LT_EPICSBASE(v,r,l) ((EPICS_VERSION<=(v)) && (EPICS_REVISION<=(r)) && (EPICS_MODIFICATION<(l)))
...
#if LT_EPICSBASE(3,14,10)
pPos->p_pr = precPvt->pDynLinkInfo->precision;
#else
pPos->p_pr = precPvt->pDynLinkInfo->precision.dp;
#endif


Tim


John M. Skinner wrote:
I'm trying to build sscan 2.6.2 on EPICS base 3.14.10 but get these compile warnings and errors:

../sscanRecord.c: In function `special':
../sscanRecord.c:1451: warning: passing arg 1 of `scanOnce' from incompatible pointer type
../sscanRecord.c:1585: warning: passing arg 1 of `scanOnce' from incompatible pointer type
../sscanRecord.c: In function `notifyCallback':
../sscanRecord.c:2457: warning: passing arg 1 of `scanOnce' from incompatible pointer type
../sscanRecord.c: In function `userGetCallback':
../sscanRecord.c:2523: warning: passing arg 1 of `scanOnce' from incompatible pointer type
../sscanRecord.c: In function `pvSearchCallback':
../sscanRecord.c:2613: error: incompatible types in assignment
../sscanRecord.c:2643: error: incompatible types in assignment
../sscanRecord.c:2743: warning: passing arg 1 of `scanOnce' from incompatible pointer type
../sscanRecord.c: In function `posMonCallback':
../sscanRecord.c:2818: warning: passing arg 1 of `scanOnce' from incompatible pointer type
../sscanRecord.c: In function `doPuts':
../sscanRecord.c:4013: warning: passing arg 1 of `scanOnce' from incompatible pointer type
../sscanRecord.c:4190: warning: passing arg 1 of `scanOnce' from incompatible pointer type


I get the same results on both Fedora Core 3 and Fedora Core 8. I have no problem building the scan record on EPICS base 3.14.9.

thanks,
John Skinner (BNL/NSLS)





-- Tim Mooney ([email protected]) (630)252-5417 Beamline Controls & Data Acquisition Group Advanced Photon Source, Argonne National Lab.

References:
sscan compile error on base 3.14.10 on linux John M. Skinner
Re: sscan compile error on base 3.14.10 on linux Tim Mooney
Re: sscan compile error on base 3.14.10 on linux Dirk Zimoch

Navigate by Date:
Prev: Re: sscan compile error on base 3.14.10 on linux Dirk Zimoch
Next: Device Driver Initialization routine David Dudley
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: sscan compile error on base 3.14.10 on linux Dirk Zimoch
Next: Re: sscan compile error on base 3.14.10 on linux Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·