EPICS Controls 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  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Building EPICS for multiple Linux distributions
From: Robert Soliday <[email protected]>
To: tech-talk <[email protected]>
Date: Wed, 10 Mar 2010 12:39:19 -0600
Andrew Johnson wrote:
Hi John,

On Wednesday 10 March 2010 08:45:01 John Dobbins wrote:
I was wondering if anyone can suggest an approach for building EPICS on
multiple linux distributions (which may have different kernel versions,
compiler versions, etc.)

Does one define new architectures linux-x86-distribution_a
linux-x86-distribution_b?

If you find that you do actually need to build different binaries on different distributions then that is probably the best way to do it, although you should not need to do that for every distribution. We have not had to introduce anything like that here at the APS, although our Linux distributions are all either Fedora Core or Red-Had Enterprise based. These have so far proven to be completely forward compatible, provided we install the distribution's relevant compatibility packages to provide the older .so libraries. We usually build shared code on the oldest distribution that we need to support, and find that it then just works on all our machines running newer versions.


Note that a different kernel version should almost never require a change to user-level application code, although some system utilities do need to match particular kernel releases. The Linux distributors seem to have solved most compatibility problems, and in my experience if I have a problem running binaries on a different machine it usually means it's missing an RPM.

HTH,

- Andrew

In the recent past when there were a lot of different flavors of Linux floating around here, this was a problem that I had to overcome. What I did was to build EPICS/Base with only static libraries and then build our EPICS/Extensions so that they are not linked to any shared libraries. To do this I editing epics/extensions/configure/CONFIG with the following:


echo SHARED_LIBRARIES=NO >> CONFIG
echo STATIC_BUILD=YES >> CONFIG
echo STATIC_LDLIBS_YES= -lc >> CONFIG
echo STATIC_LDFLAGS_YES= -Wl,-Bstatic -static-libgcc >> CONFIG
echo LDLIBS_READLINE = -lreadline -lcurses >> CONFIG

There is probably a better place to put these file but for my use this was good enough. The end result was completely static binaries that could run on any Linux system.

--Bob


Replies:
apt-get install edm Davidsaver, Michael
References:
Building EPICS for multiple Linux distributions John Dobbins
Re: Building EPICS for multiple Linux distributions Andrew Johnson

Navigate by Date:
Prev: Re: Building EPICS for multiple Linux distributions Andrew Johnson
Next: Re: Building EPICS for multiple Linux distributions Steven M. Hartman
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Building EPICS for multiple Linux distributions Andrew Johnson
Next: apt-get install edm Davidsaver, Michael
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·