This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
ds:fesa_shared_libs [2015/04/09 11:44] tmilosic created |
ds:fesa_shared_libs [2015/09/17 11:00] (current) tmilosic |
||
---|---|---|---|
Line 16: | Line 16: | ||
is available to place the shared libraries.\\ | is available to place the shared libraries.\\ | ||
More specifically, | More specifically, | ||
- | On the FEC, '' | + | |
+ | On the **FEC** | ||
+ | < | ||
+ | fsl00c:/common/fesa/ | ||
+ | is mounted at | ||
+ | < | ||
+ | /fec/arch | ||
+ | </ | ||
+ | i.e. the libraries are available at\\ | ||
< | < | ||
- | /fec/arch/ | + | / |
</ | </ | ||
It is encouraged to create a subdirectory for each lib, e.g. HVWrapper resides in | It is encouraged to create a subdirectory for each lib, e.g. HVWrapper resides in | ||
Line 26: | Line 34: | ||
with | with | ||
< | < | ||
- | libcaenhvwrapper.so -> libcaenhvwrapper.so.5.62 | + | libcaenhvwrapper.so -> libcaenhvwrapper.so.5.77 |
libcaenhvwrapper.so.5.22 | libcaenhvwrapper.so.5.22 | ||
libcaenhvwrapper.so.5.56 | libcaenhvwrapper.so.5.56 | ||
libcaenhvwrapper.so.5.61 | libcaenhvwrapper.so.5.61 | ||
libcaenhvwrapper.so.5.62 | libcaenhvwrapper.so.5.62 | ||
+ | libcaenhvwrapper.so.5.77 | ||
</ | </ | ||
to make testing against different library versions simple.\\ | to make testing against different library versions simple.\\ | ||
+ | |||
+ | However, since this affects all FECs globally,\\ | ||
+ | make sure, that no operational system relying on that \\ | ||
+ | lib boots or reloads the FESA binary while pointing\\ | ||
+ | to an unwanted version and hooks it up - as this might \\ | ||
+ | lead to unexpected behaviour! | ||
==== Search Paths ==== | ==== Search Paths ==== | ||
The // | The // | ||
Line 77: | Line 92: | ||
==== Boilerplate Code ==== | ==== Boilerplate Code ==== | ||
- | When building FESA for a target architecture, | + | When building FESA for a target architecture, |
and accessible from the Makefile. | and accessible from the Makefile. | ||
Depending on where linking to the custom vendor shared library happens,\\ | Depending on where linking to the custom vendor shared library happens,\\ | ||
Line 89: | Line 104: | ||
</ | </ | ||
(Currently, that's actually more connected to the distribution instead of the architecture - see RFC)\\ | (Currently, that's actually more connected to the distribution instead of the architecture - see RFC)\\ | ||
- | Next create to directory variables that reference the mount point on the ASL73x and the path as seen on the FEC: | + | Next create to directory variables that reference the mount point on the ASL73x and the path as seen on the FEC.\\ |
+ | Mind again that ' | ||
< | < | ||
LIB_PREFIX_LOCAL=/ | LIB_PREFIX_LOCAL=/ | ||
- | LIB_FEC_PATH=/ | + | LIB_FEC_PATH_LOCAL=/ |
+ | LIB_FEC_PATH=/ | ||
</ | </ | ||
- | (Mind again that ' | + | Two LIB_FEC* paths are required |
- | Append | + | We can now append all appropriate paths to linker and rpath flags. |
< | < | ||
- | LINKER_FLAGS += -L$(LIB_PREFIX_LOCAL)$(LIB_FEC_PATH) -lcaenhvwrapper | + | LINKER_FLAGS += -L$(LIB_PREFIX_LOCAL)$(LIB_FEC_PATH_LOCAL) -lcaenhvwrapper |
- | LINKER_FLAGS += -Wl, | + | LINKER_FLAGS += -Wl, |
</ | </ | ||
There must be no whitespace around the commas!\\ | There must be no whitespace around the commas!\\ | ||
- | Otherwise the linker will complaint. | + | Otherwise, the linker will complain.\\ |
- | ==== Suggestion/ | + | \\ |
+ | This allows to test the binary on the ASL73x cluster and run it on the FEC. | ||
+ | ==== Proposal | ||
I suggest changing the directory structure for shared libs from | I suggest changing the directory structure for shared libs from | ||
< | < |