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  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024  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  <20222023  2024 
<== Date ==> <== Thread ==>

Subject: Re: SynApps compilation error
From: Lucas Russo via Tech-talk <tech-talk at aps.anl.gov>
To: "Marco A. Barra Montevechi Filho" <marco.filho at lnls.br>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Mon, 22 Aug 2022 11:01:28 -0700
Hello Marco,

Commenting on the second solution.

I would say that even though you created symlinks from /usr/include/rpc 
pointing to /usr/include/tirpc/rpc (that solves the header issues) you still 
need asyn to be linked against tirpc.

Looking at asyn R4-36 files I think you should set

configure/CONFIG_SITE:
TIRPC=YES 

So that would enable asyn to be linked against tirpc and solve your undefined reference issue.

asyn/Makefile:

 34 # Some linux systems moved RPC related symbols to libtirpc
 35 # Define TIRPC in configure/CONFIG_SITE in this case
 36 ifeq ($(TIRPC),YES)
 37   USR_INCLUDES_Linux += -I/usr/include/tirpc
 38   asyn_SYS_LIBS_Linux += tirpc
 39 endif

Hope this helps,

Lucas

On Mon, Aug 22, 2022 at 10:40 AM Marco A. Barra Montevechi Filho via Tech-talk <tech-talk at aps.anl.gov> wrote:
Hello all.

Im trying to compile synApps in my local machine. I had the problem in which make release inside synApps_6_1/support was freezing but as Iain suggested, commenting XXX in configure/RELEASE solved it.

Im now having trouble with make rebuild. I found two strategies that take me further into the compilation process, but both end up in barriers i cannot advance. Simply trying "make rebuild" ​right after commenting XXX in configure/RELEASE gets me:

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

Aviso Legal: Esta mensagem e seus anexos podem conter informações confidenciais e/ou de uso restrito. Observe atentamente seu conteúdo e considere eventual consulta ao remetente antes de copiá-la, divulgá-la ou distribuí-la. Se você recebeu esta mensagem por engano, por favor avise o remetente e apague-a imediatamente.

Disclaimer: This email and its attachments may contain confidential and/or privileged information. Observe its content carefully and consider possible querying to the sender before copying, disclosing or distributing it. If you have received this email by mistake, please notify the sender and delete it immediately.


References:
SynApps compilation error Marco A. Barra Montevechi Filho via Tech-talk

Navigate by Date:
Prev: SynApps compilation error Marco A. Barra Montevechi Filho via Tech-talk
Next: Re: SynApps compilation error Mark Rivers via Tech-talk
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  <20222023  2024 
Navigate by Thread:
Prev: SynApps compilation error Marco A. Barra Montevechi Filho via Tech-talk
Next: Re: SynApps compilation error Mark Rivers via Tech-talk
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  <20222023  2024 
ANJ, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·