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  <20182019  2020  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  <20182019  2020 
<== Date ==> <== Thread ==>

Subject: Re: EPICS Application Package
From: Benjamin Franksen <benjamin.franksen@helmholtz-berlin.de>
To: EPICS Tech Talk <tech-talk@aps.anl.gov>
Date: Fri, 16 Nov 2018 14:45:51 +0100
Am 12.10.18 um 17:11 schrieb Ralph Lange:
> Yes, I was referring to the ESS EPICS setup, which has been developed based
> on the PSI implementation.
> And: no, there is no way to get this working with just a "normal base"
> system. That run-time module resolution and linking mechanism is a
> complicated beast, and needs additional tools and services.
> Bugs in such setups have the tendency to show up at run time as spontaneous
> core dumps.
> 
> Starting from "normal base", your basic option is shared libraries vs.
> statically built binaries. When using shared libraries, you have to make
> sure that the right versions of the right libraries are in the right place
> when running the IOC. EPICS won't help you with that, so people use package
> managers or containers to do this.

We are using shared libraries for our soft IOCs and don't need package
managers or containers. The trick is to make sure all the libraries are
installed along with the application and to set the RPATH accordingly.

Our setup is roughly as follows: in the place where IOC binaries are
built, we specify

LINKER_USE_RPATH=NO
USR_LDFLAGS += '-Wl,-rpath,../../bin/$(T_A)'

In addition we have a special SupportModulesApp directory that contains
only a Makefile with the following content (stripped to show only the
Linux stuff):

TOP=..
include $(TOP)/configure/CONFIG

MODULE_PATHS = $(SHRLIB_SEARCH_DIRS)
MODULE_LIBNAMES = $(notdir $(foreach dir,$(MODULE_PATHS),$(wildcard
$(dir)/lib*.a)))
MODULE_NAMES = $(MODULE_LIBNAMES:$(LIB_PREFIX)%.a=%)

MODULES_Linux = $(foreach dir,$(SHRLIB_SEARCH_DIRS),$(wildcard
$(dir)/lib*.so*))
BIN_INSTALLS_Linux = $(MODULES_Linux)

include $(TOP)/configure/RULES


SupportModulesApp must be built after all otehr *App. It copies all the
shared libraries from all support modules listed in configure/RELEASE
and stores them in the local bin directory, so that the IOC binaries
find them.

We have been using this scheme for quite some time now. It requires *no*
pre-installed libraries on the target host except the standard systenm
libraries (libc, libm, etc).

Attachment: signature.asc
Description: OpenPGP digital signature


Replies:
Re: EPICS Application Package J. Lewis Muir
References:
EPICS Application Package Vikram Bhagat via Tech-talk
Re: EPICS Application Package Ralph Lange
Re: EPICS Application Package Bo Jakobsen
Re: EPICS Application Package Ralph Lange

Navigate by Date:
Prev: Re: modbus connection error to ABB PLC Mark Rivers
Next: job opportunities at ORNL Hartman, Steven M. 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  <20182019  2020 
Navigate by Thread:
Prev: Re: EPICS Application Package Jeong Han Lee
Next: Re: EPICS Application Package J. Lewis Muir
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  <20182019  2020 
ANJ, 16 Nov 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·