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: Question from the RTEMS corner
From: "J. Lewis Muir via Core-talk" <core-talk at aps.anl.gov>
To: Ralph Lange <ralph.lange at gmx.de>
Cc: EPICS Core Talk <core-talk at aps.anl.gov>
Date: Wed, 26 Aug 2020 12:21:07 -0500
On 08/26, Ralph Lange via Core-talk wrote:
> On Wed, 26 Aug 2020 at 13:56, Heinz Junkes via Core-talk <
> core-talk at aps.anl.gov> wrote:
> 
> > I received the following question from an RTEMS developer:
> >
> > > How is EPICS used in real systems? Is the production executable built by
> > EPICS
> > > from the EPICS source tree? Is it a set of libraries that get installed
> > and an
> > > application links in these libraries?
> >
> > What should I answer?
> >
> 
> Obviously the second option.
> EPICS Base provides libraries and the build system, the user creates their
> own IOC application binary, linking in those libraries.

Just so the RTEMS developer doesn't get surprised by non-UNIX-like
shared library behavior, it might also be worth mentioning to them that
there is no guarantee of API nor ABI backward compatibility whatsoever
in EPICS Base, even across a patch version increase.

The UNIX-like shared library versioning scheme is that you have
libfoo.so.MAJOR.MINOR and symlinks that allow you to provide updated
libraries that bump MINOR but don't break backward compatibility.
The MINOR version increase will only contain backward-compatible
changes, and then when the application starts, it will try to
load libfoo.so.MAJOR which will be a symlink to the latest
libfoo.so.MAJOR.MINOR thus allowing the application to receive
backward-compatible changes without needing to be recompiled.

Unfortunately, EPICS Base libraries don't work this way.  I only say
this in light of the "Is it a set of libraries that get installed and an
application links in these libraries?" question since the "application
links in" part of that will be very fragile.  The exact version of EPICS
Base libraries that an application was compiled against are the ones
that are required to be installed in order for the application to work.
If instead a new version of EPICS Base is installed that replaces the
old version, then any applications must be recompiled against the new
EPICS Base libraries.

Lewis

Replies:
Re: Question from the RTEMS corner Chris Johns via Core-talk
References:
Question from the RTEMS corner Heinz Junkes via Core-talk
Re: Question from the RTEMS corner Ralph Lange via Core-talk

Navigate by Date:
Prev: Re: Question from the RTEMS corner Ralph Lange via Core-talk
Next: Minor issue with base 7.0.4.1 Mark Rivers 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: Question from the RTEMS corner Ralph Lange via Core-talk
Next: Re: Question from the RTEMS corner Chris Johns 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, 26 Aug 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·