Experimental Physics and Industrial Control System
|
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
<2010>
2011
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
<2010>
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|
ANJ, 02 Sep 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
·
Search
·
EPICS V4
·
IRMIS
·
Talk
·
Bugs
·
Documents
·
Links
·
Licensing
·
|