llnl / llnl/UnifyFS

Additional libs needed to link Unify application

Open
#621 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
122
Forks
34
PR merge metrics
No merged PRs in 30d

Description

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).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the tutorial example slide and its application link line, then compare them with the fresh 0.9.2 Catalyst build output. Document the need for libspath and libjson-c alongside libgotcha, including the observed linker failure and the successful link result.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.