string substitution removes part of path when linking versioned shared libraries
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
EPICS Base |
Fix Released
|
Undecided
|
Janet B. Anderson |
Bug Description
Hello!
I am building an EPICS extension which has the shared library version inside of it's directory name.
The full path is:
~/E-Linac/
and the shared library version is 2:
SHRLIB_VERSION = 2
Once the versioned library was built the build system tried to create a symbolic link:
ln -s libNDPluginGeom
ln: creating symbolic link `/home/
The error occurred because the linking command in RULES_BUILD removes all substrings of the form ".$(SHRLIB_
To fix this problem I changed the two linking commands in RULES_BUILD from
line 389: ln -s $< $(subst .$(SHRLIB_
line 412: ln -s $< $(subst .$(LOADABLE_
to
line 389: ln -s $< $(@:.$(
line 412: ln -s $< $(@:.$(
This is a greedier substitution which will only remove the last occurrence of the substring.
Janet committed the fix, thanks Jason!