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

Subject: Re: Multiple OS Build
From: Ron Sluiter <[email protected]>
To: Hugo Slepicka <[email protected]>, "[email protected]" <[email protected]>
Date: Mon, 9 Jan 2017 13:45:41 -0600
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  <20172018  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  <20172018  2019  2020  2021  2022  2023  2024 
ANJ, 21 Dec 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·