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
<2008>
2009
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
<2008>
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|