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.
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
- 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:
Re: Inter-module dependency between stream and calc Ralph Lange via Tech-talk
Re: StreamDevice processing issue Davis, Mark via Tech-talk
- Navigate by Thread:
Re: Inter-module dependency between stream and calc Zimoch Dirk (PSI) via Tech-talk
Re: Inter-module dependency between stream and calc Konrad, Martin via Tech-talk