EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Architecture dependent dbd files
From: Mark Rivers via Core-talk <[email protected]>
To: "[email protected]" <[email protected]>
Date: Sat, 2 Nov 2019 19:36:11 +0000

One of the nice things about EPICS is the ability to build multiple architectures in the same tree.  This works well for libraries since arch is kept in its own directory.

 

However, it seems to have problems with dbd files.

 

Consider a complex application like ADSimDetector.  I want to build that application on 32/64 bit Linux, 32/64 bit Windows, MacOS, vxWorks, etc.  However, there are a number of features that are available on some architectures, but not all.  For example GraphicsMagick and OpenCV don’t build on vxWorks, I might have OpenCV for Linux but not for Windows, etc.  The problem is that there is only one version of simDetectorApp.dbd.  Whichever architecture is built first creates that dbd file, and it may not be compatible with other architectures that are built later.

 

The solution that I have seen recommended, and have used in some cases, is to use a different dbd file name for each architecture.  For example, the main application I run on our beamlines, CARS, the dbd directory contains this:

corvette:~/support/CARS>ls -l dbd

total 3928

-r--r--r-- 1 epics domain users  971697 Oct 14 14:52 CARSLinux.dbd

-r--r--r-- 1 epics domain users  974335 May 17 08:31 CARSLinuxNoLibUsb.dbd

-r--r--r-- 1 epics domain users 1057936 May 15 18:08 CARSVX.dbd

-rwxrwxr-x 1 epics domain users 1010893 Oct 14 15:06 CARSWin32.dbd

 

So I had to use different names for Linux, Linux without libusb (old SUSE on Pilatus), vxWorks, and Windows.  If there are some feature I wanted to use on 64-bit Windows that was not available on 32-bit Windows I would need to create yet another dbd file name.

 

This seems silly.  It seems like the right solution is to simply make dbd files be architecture-dependent, rather than a single version in O.Common.

 

Is this already supported somehow, or is it planned for some time in the future?

 

Thanks,

Mark

 


Replies:
Re: Architecture dependent dbd files Johnson, Andrew N. via Core-talk

Navigate by Date:
Prev: Base 7 modules/RELEASE*.local files Mark Rivers via Core-talk
Next: Jenkins build became unstable: epics-pva2pva-linux32 #160 APS Jenkins via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Base 7 modules/RELEASE*.local files Johnson, Andrew N. via Core-talk
Next: Re: Architecture dependent dbd files Mark Rivers via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
ANJ, 04 Nov 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·