Additional libs needed to link Unify application
In discussions with Cameron today, he suggested me to create an issue to document this, as it might require some addition tot he current documentation.
After doing a fresh Unify build on Catalyst, based on the version that was created for the 0.9.2 release (i.e. after PR#611), I had a new failure when trying to build an application and linking it to the Unify library. This was the error message:
/usr/bin/ld: warning: libjson-c.so.5, needed by /g/g12/mendes3/UnifyFS-611/UnifyFS/install/lib/libunifyfs_gotcha.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libspath.so, needed by /g/g12/mendes3/UnifyFS-611/UnifyFS/install/lib/libunifyfs_gotcha.so, not found (try using -rpath or -rpath-link)
/g/g12/mendes3/UnifyFS-611/UnifyFS/install/lib/libunifyfs_gotcha.so: undefined reference to `spath_strdup_reduce_str'
//g/g12/mendes3/UnifyFS-611/UnifyFS/install/lib/libmargo.so.0: undefined reference to `json_object_array_get_idx@JSONC_0.14'
. . .
//g/g12/mendes3/UnifyFS-611/UnifyFS/install/lib/libmargo.so.0: undefined reference to `json_tokener_error_desc@JSONC_0.14'
make: *** [testphdf5-gotcha] Error 1
This did not occur in previous Unify versions. I noticed that both libspath and libjson-c are now created under install/lib64/, while previously only libgotcha existed there. Thus, I had to add those two libraries explicitly to my link line, and then that application could build and run fine as expected.
Cameron says the need for libspath could go away with a proper Unify config flag, but libjson-c is a "dependency of a dependency", so it is harder to handle.
Anyway, the need for these two libs in the link line should be documented somewhere. Right now, their absence seems to make the link to fail, and this makes the slide for the tutorial example to be invalid (as it only shows libgotcha).