EPICS Home

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  <20202021  2022  2023  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  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: error calling dbGetLinkValue in EPICS base-3.15.6
From: Anindya Roy via Tech-talk <tech-talk at aps.anl.gov>
To: tech-talk at aps.anl.gov
Date: Thu, 19 Mar 2020 17:24:40 +0530
The call for dbGetLinkValue() in device driver file while building with EPICS base-3.15.6 generates error as
        undefined reference to `dbGetLinkValue'

The command line output of buliding ioc is attached for reference.

The same ioc is built with base-3.14.12.7 without error. Kindly help.

Regards
Anindya
VECC
, Kolkata, India

make -C ./configure install 
make[1]: Entering directory `/TS-7600/epics/DEFPS_IOC/configure'
perl -CSD /TS-7600/epics/base-3.15.6/bin/linux-x86_64/makeMakefile.pl O.linux-x86_64 ../..
perl -CSD /TS-7600/epics/base-3.15.6/bin/linux-x86_64/makeMakefile.pl O.linux-arm ../..
mkdir O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
    T_A=linux-x86_64 install
make[2]: Entering directory `/TS-7600/epics/DEFPS_IOC/configure/O.linux-x86_64'
perl -CSD /TS-7600/epics/base-3.15.6/bin/linux-x86_64/convertRelease.pl checkRelease
make[2]: Leaving directory `/TS-7600/epics/DEFPS_IOC/configure/O.linux-x86_64'
make -C O.linux-arm -f ../Makefile TOP=../.. \
    T_A=linux-arm install
make[2]: Entering directory `/TS-7600/epics/DEFPS_IOC/configure/O.linux-arm'
perl -CSD /TS-7600/epics/base-3.15.6/bin/linux-x86_64/convertRelease.pl checkRelease
make[2]: Leaving directory `/TS-7600/epics/DEFPS_IOC/configure/O.linux-arm'
make[1]: Leaving directory `/TS-7600/epics/DEFPS_IOC/configure'
make -C ./rtcMpsApp install 
make[1]: Entering directory `/TS-7600/epics/DEFPS_IOC/rtcMpsApp'
make -C ./src install 
make[2]: Entering directory `/TS-7600/epics/DEFPS_IOC/rtcMpsApp/src'
perl -CSD /TS-7600/epics/base-3.15.6/bin/linux-x86_64/makeMakefile.pl O.linux-x86_64 ../../..
perl -CSD /TS-7600/epics/base-3.15.6/bin/linux-x86_64/makeMakefile.pl O.linux-arm ../../..
mkdir O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
    T_A=linux-x86_64 install
make[3]: Entering directory `/TS-7600/epics/DEFPS_IOC/rtcMpsApp/src/O.linux-x86_64'
/usr/bin/gcc  -D_GNU_SOURCE -D_DEFAULT_SOURCE            -D_X86_64_  -DUNIX  -Dlinux     -O3 -g   -Wall      -mtune=generic     -m64 -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include -I/TS-7600/epics/base-3.15.6/include/compiler/gcc -I/TS-7600/epics/base-3.15.6/include/os/Linux -I/TS-7600/epics/base-3.15.6/include        -MM -MF devRTCDEFLECTOR.d  ../devRTCDEFLECTOR.c
/usr/bin/gcc  -D_GNU_SOURCE -D_DEFAULT_SOURCE            -D_X86_64_  -DUNIX  -Dlinux     -O3 -g   -Wall      -mtune=generic     -m64 -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include -I/TS-7600/epics/base-3.15.6/include/compiler/gcc -I/TS-7600/epics/base-3.15.6/include/os/Linux -I/TS-7600/epics/base-3.15.6/include        -MM -MF rtcMpsComm.d  ../rtcMpsComm.c
/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/TS-7600/epics/base-3.15.6/include/compiler/gcc -I/TS-7600/epics/base-3.15.6/include/os/Linux -I/TS-7600/epics/base-3.15.6/include        -MM -MF rtcMpsMain.d  ../rtcMpsMain.cpp
Creating dbd file rtcMps.dbd
perl -CSD /TS-7600/epics/base-3.15.6/bin/linux-x86_64/dbdExpand.pl   -I. -I.. -I../O.Common -I../../../dbd -I/TS-7600/epics/base-3.15.6/dbd -o rtcMps.dbd base.dbd rtcMpsSupport.dbd
perl -CSD /TS-7600/epics/base-3.15.6/bin/linux-x86_64/registerRecordDeviceDriver.pl   -I. -I.. -I../O.Common -I../../../dbd -I/TS-7600/epics/base-3.15.6/dbd    -o rtcMps_registerRecordDeviceDriver.cpp ../O.Common/rtcMps.dbd rtcMps_registerRecordDeviceDriver /TS-7600/epics/DEFPS_IOC
/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/TS-7600/epics/base-3.15.6/include/compiler/gcc -I/TS-7600/epics/base-3.15.6/include/os/Linux -I/TS-7600/epics/base-3.15.6/include        -MM -MF rtcMps_registerRecordDeviceDriver.d  rtcMps_registerRecordDeviceDriver.cpp
make[3]: Leaving directory `/TS-7600/epics/DEFPS_IOC/rtcMpsApp/src/O.linux-x86_64'
make[3]: Entering directory `/TS-7600/epics/DEFPS_IOC/rtcMpsApp/src/O.linux-x86_64'
Installing created dbd file ../../../dbd/rtcMps.dbd
/usr/bin/gcc  -D_GNU_SOURCE -D_DEFAULT_SOURCE            -D_X86_64_  -DUNIX  -Dlinux     -O3 -g   -Wall      -mtune=generic     -m64 -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include -I/TS-7600/epics/base-3.15.6/include/compiler/gcc -I/TS-7600/epics/base-3.15.6/include/os/Linux -I/TS-7600/epics/base-3.15.6/include        -c ../rtcMpsComm.c
/usr/bin/gcc  -D_GNU_SOURCE -D_DEFAULT_SOURCE            -D_X86_64_  -DUNIX  -Dlinux     -O3 -g   -Wall      -mtune=generic     -m64 -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include -I/TS-7600/epics/base-3.15.6/include/compiler/gcc -I/TS-7600/epics/base-3.15.6/include/os/Linux -I/TS-7600/epics/base-3.15.6/include        -c ../devRTCDEFLECTOR.c
../devRTCDEFLECTOR.c: In function â??init_longinâ??:
../devRTCDEFLECTOR.c:190:3: warning: format â??%[^,	â?? expects argument of type â??char *â??, but argument 4 has type â??int *â?? [-Wformat=]
   sscanf(plongin->inp.value.instio.string, "%d,%[^,\t]d", &node, &psCmd);  
   ^
../devRTCDEFLECTOR.c:186:19: warning: unused variable â??respâ?? [-Wunused-variable]
  char *cmd=NULL, *resp=NULL;
                   ^
../devRTCDEFLECTOR.c:186:8: warning: unused variable â??cmdâ?? [-Wunused-variable]
  char *cmd=NULL, *resp=NULL;
        ^
../devRTCDEFLECTOR.c:185:7: warning: unused variable â??tempValâ?? [-Wunused-variable]
  long tempVal=0;
       ^
../devRTCDEFLECTOR.c:184:37: warning: unused variable â??cntâ?? [-Wunused-variable]
  int status=0, node, ret, incRet=0, cnt=0, psCmd;
                                     ^
../devRTCDEFLECTOR.c:184:27: warning: unused variable â??incRetâ?? [-Wunused-variable]
  int status=0, node, ret, incRet=0, cnt=0, psCmd;
                           ^
../devRTCDEFLECTOR.c:184:22: warning: unused variable â??retâ?? [-Wunused-variable]
  int status=0, node, ret, incRet=0, cnt=0, psCmd;
                      ^
../devRTCDEFLECTOR.c: In function â??read_longinâ??:
../devRTCDEFLECTOR.c:263:7: warning: unused variable â??tempValâ?? [-Wunused-variable]
  long tempVal=0;
       ^
../devRTCDEFLECTOR.c:262:34: warning: unused variable â??iâ?? [-Wunused-variable]
  int node, ret, incRet=0, cnt=0, i, psCmd, paramIndx, chkSum;
                                  ^
../devRTCDEFLECTOR.c: In function â??init_longoutâ??:
../devRTCDEFLECTOR.c:394:3: warning: format â??%[^	
â?? expects argument of type â??char *â??, but argument 4 has type â??int *â?? [-Wformat=]
   sscanf(plongout->out.value.instio.string, "%d,%[^\t\n]d", &node, &psCmd);  
   ^
../devRTCDEFLECTOR.c: In function â??write_calcoutâ??:
../devRTCDEFLECTOR.c:640:4: warning: implicit declaration of function â??dbGetLinkValueâ?? [-Wimplicit-function-declaration]
    dbGetLinkValue(plink, DBR_DOUBLE, pvalue, NULL, NULL); //base-3.14
    ^
../devRTCDEFLECTOR.c:629:28: warning: variable â??instCurrentRangeAiâ?? set but not used [-Wunused-but-set-variable]
  float instVoltageRangeAi, instCurrentRangeAi;
                            ^
../devRTCDEFLECTOR.c:627:87: warning: unused variable â??oprnSetCurrentLoâ?? [-Wunused-variable]
  int psIndex, oprnMode, opiSetVoltageLi, opiSetCurrentLi, adcCount, oprnSetVoltageLo, oprnSetCurrentLo, i;
                                                                                       ^
../devRTCDEFLECTOR.c:627:42: warning: unused variable â??opiSetCurrentLiâ?? [-Wunused-variable]
  int psIndex, oprnMode, opiSetVoltageLi, opiSetCurrentLi, adcCount, oprnSetVoltageLo, oprnSetCurrentLo, i;
                                          ^
../devRTCDEFLECTOR.c:627:25: warning: unused variable â??opiSetVoltageLiâ?? [-Wunused-variable]
  int psIndex, oprnMode, opiSetVoltageLi, opiSetCurrentLi, adcCount, oprnSetVoltageLo, oprnSetCurrentLo, i;
                         ^
../devRTCDEFLECTOR.c:625:7: warning: unused variable â??tempâ?? [-Wunused-variable]
  char temp[40];
       ^
../devRTCDEFLECTOR.c:622:11: warning: unused variable â??statusâ?? [-Wunused-variable]
      long status;
           ^
/usr/bin/ar -rc    librtcMpsSupport.a        rtcMpsComm.o devRTCDEFLECTOR.o 
/usr/bin/ranlib librtcMpsSupport.a
/usr/bin/g++ -o librtcMpsSupport.so -shared -fPIC -Wl,-hlibrtcMpsSupport.so -L/TS-7600/epics/DEFPS_IOC/lib/linux-x86_64 -L/TS-7600/epics/base-3.15.6/lib/linux-x86_64 -Wl,-rpath,/TS-7600/epics/DEFPS_IOC/lib/linux-x86_64 -Wl,-rpath,/TS-7600/epics/base-3.15.6/lib/linux-x86_64           -rdynamic -m64            rtcMpsComm.o devRTCDEFLECTOR.o    -ldbRecStd -ldbCore -lca -lCom   -lpthread   -lreadline -lm -lrt -ldl -lgcc
Installing shared library ../../../lib/linux-x86_64/librtcMpsSupport.so
Installing library ../../../lib/linux-x86_64/librtcMpsSupport.a
/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/TS-7600/epics/base-3.15.6/include/compiler/gcc -I/TS-7600/epics/base-3.15.6/include/os/Linux -I/TS-7600/epics/base-3.15.6/include        -c rtcMps_registerRecordDeviceDriver.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/TS-7600/epics/base-3.15.6/include/compiler/gcc -I/TS-7600/epics/base-3.15.6/include/os/Linux -I/TS-7600/epics/base-3.15.6/include        -c ../rtcMpsMain.cpp
/usr/bin/g++ -o rtcMps  -L/TS-7600/epics/DEFPS_IOC/lib/linux-x86_64 -L/TS-7600/epics/base-3.15.6/lib/linux-x86_64 -Wl,-rpath,/TS-7600/epics/DEFPS_IOC/lib/linux-x86_64 -Wl,-rpath,/TS-7600/epics/base-3.15.6/lib/linux-x86_64           -rdynamic -m64            rtcMps_registerRecordDeviceDriver.o rtcMpsMain.o    -lrtcMpsSupport -ldbRecStd -ldbCore -lca -lCom   
/TS-7600/epics/DEFPS_IOC/lib/linux-x86_64/librtcMpsSupport.so: undefined reference to `dbGetLinkValue'
collect2: error: ld returned 1 exit status
make[3]: *** [rtcMps] Error 1
make[3]: Leaving directory `/TS-7600/epics/DEFPS_IOC/rtcMpsApp/src/O.linux-x86_64'
make[2]: *** [install.linux-x86_64] Error 2
make[2]: Leaving directory `/TS-7600/epics/DEFPS_IOC/rtcMpsApp/src'
make[1]: *** [src.install] Error 2
make[1]: Leaving directory `/TS-7600/epics/DEFPS_IOC/rtcMpsApp'
make: *** [rtcMpsApp.install] Error 2

Replies:
Re: error calling dbGetLinkValue in EPICS base-3.15.6 Mark Rivers via Tech-talk

Navigate by Date:
Prev: Re: monitors on array variables Michael Davidsaver via Tech-talk
Next: Re: error calling dbGetLinkValue in EPICS base-3.15.6 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  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: monitors on array variables Siddons, David via Tech-talk
Next: Re: error calling dbGetLinkValue in EPICS base-3.15.6 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  <20202021  2022  2023  2024