Local lib installation path not searched when library found in system location
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
EPICS Base |
Fix Released
|
Low
|
Andrew Johnson |
Bug Description
When a module creates a library that is also installed in a system location, the first make run does not add the local library installation path to the linker lines for creating shared libraries and products.
When running make a second time, or if the library is not found in a system location, the local lib installation path is correctly added.
Reason: the EPICS build system is only adding *existing* library locations to the linker line.
When the first make starts, the local lib installation dir does not exist, and is not added to the search path since the (installed) library is found in the system location. A non-existing local lib install path is only added as a fallback if the library is not found in a system location.
Proposal:
Instead of adding a non-existing local lib installation dir only as a fallback (if the library is not found in a system location), the local lib installation dir should be added unconditionally, at the front of the search path.
Workaround:
Add
SHRLIBDIR_
PRODDIR_LDFLAGS += -L$(INSTALL_LIB)
e.g. in Base (or the application's) CONFIG_SITE.
Changed in epics-base: | |
status: | Confirmed → Fix Committed |
Changed in epics-base: | |
status: | Fix Committed → Fix Released |
That workaround is obviously a Linux-only solution...
The final fix should properly use the architecture/OS specific way of adding search paths.