epics-modules / sscan

APS BCDA synApps module: sscan
https://epics.anl.gov/bcda/synApps/sscan/sscan.html
Other
2 stars 14 forks source link

error: unknown type name ‘READONLY’ #24

Closed kmpeters closed 3 years ago

kmpeters commented 3 years ago

I get the following error when building sscan-R2-11-4 against base-7.0.6:

make[3]: Entering directory '/scratch/synApps_2_1/support/sscan-R2-11-4/sscanApp/src/O.linux-x86_64'
/usr/bin/gcc  -D_GNU_SOURCE -D_DEFAULT_SOURCE         -DUSE_TYPED_RSET   -D_X86_64_  -DUNIX  -Dlinux      -O3 -g   -Wall -Werror-implicit-function-declaration      -mtune=generic      -m64 -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include      -I/scratch/synApps_2_1/support/seq-2-2-9/include -I/scratch/base-7.0.6/include/compiler/gcc -I/scratch/base-7.0.6/include/os/Linux -I/scratch/base-7.0.6/include        -c ../saveData_writeXDR.c
../saveData_writeXDR.c: In function ‘extraValCallback’:
../saveData_writeXDR.c:1841:2: error: unknown type name ‘READONLY’
 1841 |  READONLY DBR_VAL * pval = eha.dbr;
      |  ^~~~~~~~
../saveData_writeXDR.c:1841:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
 1841 |  READONLY DBR_VAL * pval = eha.dbr;
      |                   ^
../saveData_writeXDR.c:1850:23: error: ‘pval’ undeclared (first use in this function)
 1850 |   size= strlen((char*)pval);
      |                       ^~~~
../saveData_writeXDR.c:1850:23: note: each undeclared identifier is reported only once for each function it appears in
../saveData_writeXDR.c: In function ‘extraDescCallback’:
../saveData_writeXDR.c:1888:2: error: unknown type name ‘READONLY’
 1888 |  READONLY DBR_VAL * pval = eha.dbr;
      |  ^~~~~~~~
../saveData_writeXDR.c:1888:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
 1888 |  READONLY DBR_VAL * pval = eha.dbr;
      |                   ^
../saveData_writeXDR.c:1892:31: error: ‘pval’ undeclared (first use in this function)
 1892 |  strncpy(pnode->desc, (char *)pval, MAX_STRING_SIZE);
      |                               ^~~~
make[3]: *** [/scratch/base-7.0.6/configure/RULES_BUILD:259: saveData_writeXDR.o] Error 1
make[3]: Leaving directory '/scratch/synApps_2_1/support/sscan-R2-11-4/sscanApp/src/O.linux-x86_64'
make[2]: *** [/scratch/base-7.0.6/configure/RULES_ARCHS:58: install.linux-x86_64] Error 2
make[2]: Leaving directory '/scratch/synApps_2_1/support/sscan-R2-11-4/sscanApp/src'
make[1]: *** [/scratch/base-7.0.6/configure/RULES_DIRS:85: src.install] Error 2
make[1]: Leaving directory '/scratch/synApps_2_1/support/sscan-R2-11-4/sscanApp'
make: *** [/scratch/base-7.0.6/configure/RULES_DIRS:85: sscanApp.install] Error 2

Adding shareLib.h to saveData_writeXDR.c eliminates the build error:

sscan-R2-11-4$ git diff sscanApp/src/saveData_writeXDR.c
diff --git a/sscanApp/src/saveData_writeXDR.c b/sscanApp/src/saveData_writeXDR.c
index 24ba3df..a98c284 100644
--- a/sscanApp/src/saveData_writeXDR.c
+++ b/sscanApp/src/saveData_writeXDR.c
@@ -208,6 +208,7 @@
 #include <dbDefs.h>         /* for PVNAME_STRINGSZ */
 #include <epicsTypes.h>     /* for MAX_STRING_SIZE */
 #include <epicsStdio.h>                /* for epicsSnprintf() */
+#include <shareLib.h>          /* for READONLY */

 #define MAX(a,b) ((a)>(b)?(a):(b))
 #define MIN(a,b) ((a)<(b)?(a):(b))
MarkRivers commented 3 years ago

Didn’t I make a commit that fixed that 4 months ago? Look at the master branch.

kmpeters commented 3 years ago

Yes you did. I ran into problems building synApps_6_2_1, which doesn't use the master branch of sscan, and I documented the error without looking closely at whether or not the master branch fixed it.