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  <20192020  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  <20192020 
<== Date ==> <== Thread ==>

Subject: Re: Inter-module dependency between stream and calc
From: "Johnson, Andrew N. via Tech-talk" <tech-talk@aps.anl.gov>
To: "Zimoch Dirk (PSI)" <dirk.zimoch@psi.ch>, "Konrad, Martin" <konrad@frib.msu.edu>
Cc: "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
Date: Tue, 19 Mar 2019 17:44:39 +0000
Hi Dirk,

On 3/19/19 6:52 AM, Zimoch Dirk (PSI) via Tech-talk wrote:
> Ralph is right. If you want to use StreamDevice with and without sCalcout support, you need two libraries.
I disagree, most of us *don't* need two libraries, just two DBD files.
The situation at PSI is different because you of the way you construct
your IOCs at runtime using dynamic loading, and I think that has
affected your thinking of how the issue appears for the rest of us.

Sites that completely link their IOCs at build-time (which is most EPICS
sites AFAIK) just need to ensure that the DBD file created for an IOC
that wants to use StreamDevice without scalcout doesn't include the
sCalcoutRecord.dbd file or the device() entry for devscalcoutStream.
This means the generated registerRecordDeviceDriver.cpp file for that
IOC won't refer to either the record or its stream device support, so
the link will succeed at build-time without the linker having to look at
the calc library.

This will certainly work for VxWorks and any other targets that are
statically linked, although it might fail where libstream and libcalc
are built as shared libraries if the linker requires all libraries to be
named on the final link command-line. In those cases the application
would need to set CALC in its RELEASE file and pull in the synApps files.

> In version 2.7 I had the sCalcout support separated but I found it inconvenient for me to maintain. Also I assumed that people would either use sCalcout or not so that two libs would be an overkill for most users.
I will be building StreamDevice 2.8.8 here without CALC since we haven't
used the devscalcoutStream support here at all yet, but it would be nice
to make it available in case some odd IOC might want it, without that
affecting our other applications at all.

All I think we need to allow that is for you to provide a separate
streamScalcout.dbd file that includes that device entry when the build
sees that CALC or SYNAPPS defined, and for that device() entry to be
excluded from the main stream.dbd file. There are obviously other ways
to separate it so anything equivalent to this would be fine, you don't
have to follow my suggestion above exactly.

- Andrew

-- 
Arguing for surveillance because you have nothing to hide is no
different than making the claim, "I don't care about freedom of
speech because I have nothing to say." -- Edward Snowdon


References:
Inter-module dependency between stream and calc Konrad, Martin via Tech-talk
Re: Inter-module dependency between stream and calc Zimoch Dirk (PSI) via Tech-talk

Navigate by Date:
Prev: Re: Inter-module dependency between stream and calc Ralph Lange via Tech-talk
Next: Re: StreamDevice processing issue Davis, Mark 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  <20192020 
Navigate by Thread:
Prev: Re: Inter-module dependency between stream and calc Zimoch Dirk (PSI) via Tech-talk
Next: Re: Inter-module dependency between stream and calc Konrad, Martin 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  <20192020 
ANJ, 19 Mar 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·