In file included from vxi11core.h:9,
from vxi11core_xdr.c:6:
/usr/include/rpc/rpc.h:38:10: fatal error: rpc/types.h: No such file or directory
38 | #include <rpc/types.h> /* some typedefs */
| ^~~~~~~~~~~~~
compilation terminated.
I found two strategies, one in tech-talk and one in ask ubuntu.
1 (tech-talk solution in
https://epics.anl.gov/tech-talk/2020/msg00444.php): uncomment # TIRPC=YES in asyn_version/configure/CONFIG_SITE. I append the result below.
2 (ask ubuntu solution in
https://askubuntu.com/questions/1360945/fatal-error-rpc-rpc-h-no-such-file-or-directory): do "apt-get install
libntirpc-dev
" and create symlinks in /usr/include/rpc pointing to /usr/include/tirpc/rpc.
Anyone have any tips on how to proceed?
Appends:
1 - result of first solution:
/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/home/marco/EPICS/synApps_6_1/support/seq-2-2-6/include -I/home/marco/EPICS/epics-base/include/compiler/gcc -I/home/marco/EPICS/epics-base/include/os/Linux -I/home/marco/EPICS/epics-base/include -c ../req_file.c
/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/home/marco/EPICS/synApps_6_1/support/seq-2-2-6/include -I/home/marco/EPICS/epics-base/include/compiler/gcc -I/home/marco/EPICS/epics-base/include/os/Linux -I/home/marco/EPICS/epics-base/include -c
../saveData_writeXDR.c
../saveData_writeXDR.c: In function ‘saveData_Init’:
../saveData_writeXDR.c:798:5: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
798 | else
| ^~~~
../saveData_writeXDR.c:801:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘else’
801 | return;
| ^~~~~~
../saveData_writeXDR.c: In function ‘extraValCallback’:
../saveData_writeXDR.c:1839:9: error: unknown type name ‘READONLY’
1839 | READONLY DBR_VAL * pval = eha.dbr;
| ^~~~~~~~
../saveData_writeXDR.c:1839:26: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
1839 | READONLY DBR_VAL * pval = eha.dbr;
| ^
../saveData_writeXDR.c:1848:37: error: ‘pval’ undeclared (first use in this function)
1848 | size= strlen((char*)pval);
| ^~~~
../saveData_writeXDR.c:1848:37: note: each undeclared identifier is reported only once for each function it appears in
../saveData_writeXDR.c: In function ‘extraDescCallback’:
../saveData_writeXDR.c:1886:9: error: unknown type name ‘READONLY’
1886 | READONLY DBR_VAL * pval = eha.dbr;
| ^~~~~~~~
../saveData_writeXDR.c:1886:26: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
1886 | READONLY DBR_VAL * pval = eha.dbr;
| ^
../saveData_writeXDR.c:1890:38: error: ‘pval’ undeclared (first use in this function)
1890 | strncpy(pnode->desc, (char *)pval, MAX_STRING_SIZE);
| ^~~~
../saveData_writeXDR.c: In function ‘saveExtraPV’:
../saveData_writeXDR.c:2250:18: warning: variable ‘channel’ set but not used [-Wunused-but-set-variable]
2250 | chid channel;
| ^~~~~~~
make[4]: *** [/home/marco/EPICS/epics-base/configure/RULES_BUILD:259: saveData_writeXDR.o] Error 1
make[4]: Leaving directory '/home/marco/EPICS/synApps_6_1/support/sscan-R2-11-3/sscanApp/src/O.linux-x86_64'
make[3]: *** [/home/marco/EPICS/epics-base/configure/RULES_ARCHS:58: install.linux-x86_64] Error 2
make[3]: Leaving directory '/home/marco/EPICS/synApps_6_1/support/sscan-R2-11-3/sscanApp/src'
make[2]: *** [/home/marco/EPICS/epics-base/configure/RULES_DIRS:85: src.install] Error 2
make[2]: Leaving directory '/home/marco/EPICS/synApps_6_1/support/sscan-R2-11-3/sscanApp'
make[1]: *** [/home/marco/EPICS/epics-base/configure/RULES_DIRS:85: sscanApp.install] Error 2
make[1]: Leaving directory '/home/marco/EPICS/synApps_6_1/support/sscan-R2-11-3'
make: *** [/home/marco/EPICS/epics-base/configure/RULES_DIRS:85: /home/marco/EPICS/synApps_6_1/support/sscan-R2-11-3.install] Error 2
2 - Result of second solution:
First compiler complains about not finding netconfig.h. I then create a symlink to it in /usr/include poiting to /usr/include//usr/include/tirpc/netconfig.h.
Then:
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../../include/compiler/gcc -I../../../../include/os/Linux -I../../../../include -I/home/marco/EPICS/synApps_6_1/support/ipac-2-15/include
-I/home/marco/EPICS/synApps_6_1/support/seq-2-2-6/include -I/home/marco/EPICS/epics-base/include/compiler/gcc -I/home/marco/EPICS/epics-base/include/os/Linux -I/home/marco/EPICS/epics-base/include -MM -MF asynPortDriverTest.d ../asynPortDriverTest.cpp
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../../include/compiler/gcc -I../../../../include/os/Linux -I../../../../include
-I/home/marco/EPICS/synApps_6_1/support/ipac-2-15/include -I/home/marco/EPICS/synApps_6_1/support/seq-2-2-6/include -I/home/marco/EPICS/epics-base/include/compiler/gcc -I/home/marco/EPICS/epics-base/include/os/Linux -I/home/marco/EPICS/epics-base/include
-c ../asynPortDriverTest.cpp
/usr/bin/g++ -o asynPortDriverTest -L/home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64 -L/home/marco/EPICS/epics-base/lib/linux-x86_64 -Wl,-rpath,/home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64 -Wl,-rpath,/home/marco/EPICS/epics-base/lib/linux-x86_64
-rdynamic -m64 asynPortDriverTest.o -lasyn -lCom
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `xdr_bytes'
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `xdr_free'
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `clnt_sperror'
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `xdr_bool'
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `xdr_int'
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `clnt_spcreateerror'
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `xdr_string'
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `xdr_void'
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `xdr_enum'
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `clnttcp_create'
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `xdr_u_char'
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `xdr_u_int'
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `xdr_u_short'
/usr/bin/ld: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64/libasyn.so: undefined reference to `xdr_char'
collect2: error: ld returned 1 exit status
make[3]: *** [/home/marco/EPICS/epics-base/configure/RULES_BUILD:231: asynPortDriverTest] Error 1
make[3]: Leaving directory '/home/marco/EPICS/synApps_6_1/support/asyn-R4-36/asyn/asynPortDriver/unittest/O.linux-x86_64'
make[2]: *** [/home/marco/EPICS/epics-base/configure/RULES_ARCHS:58: install.linux-x86_64] Error 2
make[2]: Leaving directory '/home/marco/EPICS/synApps_6_1/support/asyn-R4-36/asyn/asynPortDriver/unittest'
make[1]: *** [/home/marco/EPICS/epics-base/configure/RULES_DIRS:85: asyn/asynPortDriver/unittest.install] Error 2
make[1]: Leaving directory '/home/marco/EPICS/synApps_6_1/support/asyn-R4-36'
make: *** [/home/marco/EPICS/epics-base/configure/RULES_DIRS:85: /home/marco/EPICS/synApps_6_1/support/asyn-R4-36.install] Error 2