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 2025 | 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 2025 |
<== 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 |
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
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