OK, thanks for the advice. I just saw your reply after opening https://github.com/epics-base/epics-base/pull/228, which adds an ABSOLUTE_DBD option in configure/CONFIG_SITE (default behavior is still relative path). Feel free to close if you’d rather not merge it.
-Evan
-----Original Message-----
From: Michael Davidsaver <mdavidsaver at gmail.com>
Sent: Wednesday, March 30, 2022 11:55 AM
To: Daykin, Evan <daykin at frib.msu.edu>
Cc: tech-talk at aps.anl.gov
Subject: Re: softIoc compiling-in relative path to softIoc.dbd
[EXTERNAL] This email originated from outside of FRIB
On 3/30/22 05:55, Daykin, Evan via Tech-talk wrote:
> Hi tech-talk,
>
> I am finishing up a Debian package for base 7.0.6. In the finished product, I discovered that the compiled-in path to softIoc.dbd is not what I expect. I would like the path to be /usr/lib/epics/dbd/softIoc.dbd, but it is instead always pointing to <pwd>/../../dbd/softIoc.dbd, no matter where the softIoc executable resides. This causes an issue, since the Debian package drops the executables in /usr/bin, with symlinks to those executables in /usr/lib/epics. Thus, the calculated DBD path is /usr/bin/../../dbd/softIoc.dbd, which points to nothing.
>
> If I understand correctly, this is happening like so:
>
> 1.modules/database/src/std/softIoc/RULES generates epicsInstallDir.h by calling makeInstallDir.pl “$(FINAL_LOCATION)”. (resolves to /usr/lib/epics)
>
> 2.softMain.cpp pulls in the EPICS_BASE #define macro from epicsInstallDir.h.
>
> 3.softMain.cpp creates a constant DBD_FILE, defined as EPICS_BASE/dbd/softIoc.dbd
>
> 4.softMain.cpp’s main method attempts to calculate a relative path based on DBD_FILE, and this is ultimately what is used.
>
> So my question is, what is the preferred course of action here?
>
> -Re-arrange the package to drop executables in $(EPICS_BASE)/bin/$(EPICS_HOST_ARCH), and link to them from /usr/bin?
This seems preferable to me.
> -Add a compile-time flag to insist on an absolute path?
>
> -Something else?
* Patch softMain.cpp to use a static, absolute, path for softIoc.dbd.
> Thank you,
>
> Evan
>
- References:
- softIoc compiling-in relative path to softIoc.dbd Daykin, Evan via Tech-talk
- Re: softIoc compiling-in relative path to softIoc.dbd Michael Davidsaver via Tech-talk
- Navigate by Date:
- Prev:
Re: softIoc compiling-in relative path to softIoc.dbd Michael Davidsaver via Tech-talk
- Next:
Re: Static Build on armv7 Florian Feldbauer via Tech-talk
- 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: softIoc compiling-in relative path to softIoc.dbd Michael Davidsaver via Tech-talk
- Next:
Static Build on armv7 Florian Feldbauer via Tech-talk
- 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
|