EPICS Controls Argonne National Laboratory

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: "Johnson, Andrew N. via Core-talk" <[email protected]>
To: "[email protected]" <[email protected]>
Date: Tue, 7 Jan 2020 16:54:22 +0000
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.

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

Navigate by Date:
Prev: [Bug 1740426] Re: portable printf() spec for size_t, long long, and others Martin Konrad via Core-talk
Next: Re: EPICS 7, pvAccess & static build Torsten Bögershausen 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 Michael Davidsaver via Core-talk
Next: Re: EPICS 7, pvAccess & static build Torsten Bögershausen 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 
ANJ, 07 Jan 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·