EPICS Home

Experimental Physics and Industrial Control System


 
2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  Index 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: Re: EPICS 7, pvAccess & static build
From: Torsten Bögershausen via Core-talk <[email protected]>
To: "Johnson, Andrew N." <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Tue, 7 Jan 2020 17:57:08 +0000
Thanks Michael and Andrew,
now it works.
(And even thanks to Ralph)

/Torsten




> Am 07.01.2020 um 17:54 schrieb Johnson, Andrew N. via Core-talk <[email protected]>:
> 
> On 1/7/20 6:30 AM, Michael Davidsaver via Core-talk wrote:
>> When linking with static libraries the order of _LIBS matters.  Look up "single pass linker".
> 
> I would add that the EPICS 7 build system defines a variable EPICS_BASE_PVA_CORE_LIBS with the libraries given in the correct order, which you can use instead of having to remember (and possibly update in the future) the list of core PVA libraries to link against. It doesn't include qsrv or pvDatabase though, so using it your EthercatMC_LIBS setting should look like this:
> 
> EthercatMC_LIBS += qsrv
> EthercatMC_LIBS += pvDatabase
> EthercatMC_LIBS += $(EPICS_BASE_PVA_CORE_LIBS)
> 
> - Andrew
> 
> 
>> On Tue, Jan 7, 2020, 1:52 AM Torsten Bögershausen via Core-talk <[email protected]> wrote:
>> Hej all,
>> 
>> I am working to set up a travis job for our motor module "EthercatMC".
>> 
>> The dynamic build works, including pvAccess.
>> The static build fails like this:
>> 
>> -----------------
>> [snip]
>> In function `epics::pvDatabase::PVDatabase::getRecordNames[abi:cxx11]()':
>> 
>> pvDatabase.cpp:(.text+0x10a6): undefined reference to 
>> `epics::pvData::PVDataCreate::getPVDataCreate()'
>> 
>> pvDatabase.cpp:(.text+0x10b8): undefined reference to
>> [snip]
>> ----------------
>> 
>> My Makefile has the following:
>> ifdef BASE_7_0
>>   EthercatMC_DBD += PVAServerRegister.dbd
>>   EthercatMC_DBD += PVACommonRegister.dbd
>>   EthercatMC_DBD += softIocPVA.dbd
>>   EthercatMC_DBD += registerChannelProviderLocal.dbd
>> endif
>> 
>> ifdef BASE_7_0
>> EthercatMC_LIBS += pvAccess
>> EthercatMC_LIBS += pvAccessCA
>> EthercatMC_LIBS += pvData
>> EthercatMC_LIBS += pvDatabase
>> EthercatMC_LIBS += pvAccessIOC
>> EthercatMC_LIBS += qsrv
>> endif
>> 
>> 
>> First of all, we don't use static builds @ ESS, so that I can simply
>> remove that JOB -
>> and second, I tried to find out what is missing, but without success so far.
>> Does anybody have an idea, what is missing ?
>> 
>> 
>> The whole changeset is here:
>> <https://github.com/tboegi/m-epics-EthercatMC/compare/2d1108c874cf^...b67da723a3b4>
>> 
>> And the travis JOB is here:
>> <https://travis-ci.com/tboegi/m-epics-EthercatMC/builds/143355047?utm_medium=notification&utm_source=email>
>> 
>> Thanks in advance
>> /Torsten
> 
> -- 
> Complexity comes for free, Simplicity you have to work for.
> 


References:
EPICS 7, pvAccess & static build Torsten Bögershausen via Core-talk
Re: EPICS 7, pvAccess & static build Michael Davidsaver via Core-talk
Re: EPICS 7, pvAccess & static build Johnson, Andrew N. via Core-talk

Navigate by Date:
Prev: Re: EPICS 7, pvAccess & static build Johnson, Andrew N. via Core-talk
Next: [Bug 1858826] [NEW] subArray record: prevent posting unneeded updates on CA Martin Konrad via Core-talk
Index: 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: EPICS 7, pvAccess & static build Johnson, Andrew N. via Core-talk
Next: [Bug 1858826] [NEW] subArray record: prevent posting unneeded updates on CA Martin Konrad via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024