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 | 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: ANN: RTEMS libnetworking relocation |
From: | "Johnson, Andrew N. via Core-talk" <core-talk at aps.anl.gov> |
To: | Chris Johns <chrisj at rtems.org> |
Cc: | Core talk <core-talk at aps.anl.gov>, Michael Davidsaver <mdavidsaver at gmail.com>, Joel Sherrill <joel at rtems.org> |
Date: | Tue, 9 Mar 2021 03:16:10 +0000 |
On Mar 8, 2021, at 4:49 PM, Chris Johns via Core-talk <core-talk at aps.anl.gov> wrote:
Isn’t there an overlap between the header files that come with the two stacks? If you want to be able to install both stacks, they probably need to install their headers into different places.
I recently rebuilt a BSP to change from the libbsd stack to the legacy one, installing the result into the same prefix. I didn’t delete the old BSP tree first, and the result was a mixture of headers in the BSP’s lib/include directory. The EPICS code was
still pulling in a header from the libbsd stack that it shouldn’t have been using, and the result was a linker error with missing symbols for some shell commands that are not present in the legacy stack. It wasn’t until I rebuilt the BSP from scratch that
I found the wrong header issue in our code.
How do you reconcile those two: If both stacks can be built for a BSP, both sets of libraries would be present, so checking for the presence of one or the other library wouldn’t tell us which to use.
We don’t currently have a way in EPICS to adjust what we build based on what libraries are available upstream, although that could be added if necessary. The user needs to specify that kind of thing somewhere, but I think we’d prefer that the
RTEMS BSP tell us how it has been configured in the makefile fragments that we include from the BSP. If the user has to provide information about how the RTEMS BSP was built in their EPICS build configuration but they get it wrong our code will fail to build,
so it seems more sensible for our build system to get as much information as it can directly from your build system.
If you get to the stage were a user can have both stacks built and installed so that switching between them would just be a matter of user preference when EPICS gets built, then letting the user choose the stack in their EPICS target configuration
would be fine, but we’d want to be able to confirm that their RTEMS build actually contains the stack they’re asking for at the start of our build, not when we first try to compile or link an application image against it.
- Andrew
--
Complexity comes for free, simplicity you have to work for.
|