====================
UnifyFS Dependencies
====================
--------
Required
--------
- `Automake `_ version 1.15 (or later)
- `GOTCHA `_ version 1.0.4 (or later)
- `Margo `_ version 0.13.1 and its dependencies:
- `Argobots `_ version 1.1 (or later)
- `Mercury `_ version 2.2.0 (or later)
- `libfabric `_ (avoid versions 1.13 and 1.13.1) or `bmi `_
- `JSON-C `_
- `OpenSSL `_
.. important::
Margo uses pkg-config to ensure it compiles and links correctly with all of
its dependencies' libraries. When building manually, you'll need to set the
``PKG_CONFIG_PATH`` environment variable to include the paths of the
directories containing the ``.pc`` files for Margo, Mercury, Argobots, and OpenSSL.
--------
Optional
--------
- `spath `_ for normalizing relative paths
----------
===================
UnifyFS Error Codes
===================
Wherever sensible, UnifyFS uses the error codes defined in POSIX `errno.h
`_.
UnifyFS specific error codes are defined as follows:
.. table::
:widths: auto
===== ========= ======================================
Value Error Description
===== ========= ======================================
1001 BADCONFIG Configuration has invalid setting
1002 GOTCHA Gotcha operation error
1003 KEYVAL Key-value store operation error
1004 MARGO Mercury/Argobots operation error
1005 NYI Not yet implemented
1006 PMI PMI2/PMIx error
1007 SHMEM Shared memory region init/access error
1008 THREAD POSIX thread operation failed
1009 TIMEOUT Operation timed out
===== ========= ======================================