Experimental Physics and Industrial Control System
|
Hello Hugo,
I wrote the following for a related issue. 1st, some explanation.
This method was given to me by Andrew Johnson (APS) and Janet
Anderson (retired). "BCDA" (Beamlines Controls and Data
Acquisition) is my home group here at the APS. "dserve's" refers to
hard disk servers that we use to make various versions of EPICSbase
and synApps available to all our beamlines for building EPICS IOC's.
Maintaining
EPICS Build Host Backward Compatibility
In order to maintain compatibility across multiple RHEL OS
versions (e.g. RHEL6 & RHEL7) at the beamlines, BCDA must
use a workstation with the oldest OS version available when
building software (e.g. EPICS base & synApps) for
distribution on the shared dserve's. If this is not done, then
utilities that use OS shared runtime libraries (e.g.,
EPICSbase's "antelope") will be built with links to newer
versions of libraries that do not reside on workstations with
older OS versions. When workstations with the older OS run that
utility, they fail. The assumption with this method is that
newer OS versions will always be backward compatible with the
older version.
We tried doing something similar to your "possible solution"; we
created OS version specific EPICS_HOST_ARCH's; e.g.,
linux-x86_64-el5, linux-x86_64-el6. It was unwieldy and difficult
to remember which versions of synApps supported which OS versions,
so we abandoned it for the above method. It is still somewhat
complicated (see attached), but supporting a limited number of
EPICS_HOST_ARCH's helps.
Ron
On 1/9/2017 11:36 AM, Hugo Slepicka
wrote:
Hi All,
I would like some input from the community regarding the
organization of EPICS build for multiple OS targets (not
cross-compiling), e.g. RHEL (5, 6, 7), Debian and other
flavors available to coexist in a shared directory
structure.
How is the community handling cases similar to rhel7-x86_64
versus rhel6-x86_64 given that "EPICS_HOST_ARCH" returns
"linux-x86_64" for both?
One possible
solutions would be to use something like:
<shared_path>/<os_version>/base/.../<EPICS_HOST_ARCH>/...
- where
os_version would be: rhel5, rhel6, deb7, deb8, etc.
Another solution would be to apply a local patch to the
EPICS building system to return a specific value for
EPICS_HOST_ARCH including the <os_version>, e.g.
rhel6-x86_64, resulting in something like this:
<shared_path>/base/.../<NEW_EPICS_HOST_ARCH>/...
Thanks,
Hugo
|
Attachment:
synApps distributions.pdf
Description: Adobe PDF document
- Replies:
- RE: Multiple OS Build Mark Rivers
- References:
- Multiple OS Build Hugo Slepicka
- Navigate by Date:
- Prev:
Re: Multiple OS Build Ralph Lange
- Next:
RE: Multiple OS Build Mark Rivers
- 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: Multiple OS Build Ralph Lange
- Next:
RE: Multiple OS Build Mark Rivers
- 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, 21 Dec 2017 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
·
Search
·
EPICS V4
·
IRMIS
·
Talk
·
Bugs
·
Documents
·
Links
·
Licensing
·
|