ECP-VeloC / VELOC

Very-Low Overhead Checkpointing System
http://veloc.rtfd.io
MIT License
52 stars 21 forks source link

Build fails at linking with undefined reference to `kvtree_xxx` on Cori (NERSC) #34

Closed bebosudo closed 1 year ago

bebosudo commented 3 years ago

Hi all, I wanted to try VELOC 1.4 on Cori at NERSC, but it fails at the linking phase of veloc-backend, it seems:

$ mkdir ~/veloc-1.4/
$ ./auto-install.py ~/veloc-1.4/
Installing VeloC in /global/homes/c/chiusole/veloc-1.4...
Downloading Boost...
100% [......................................................................] 121849575 / 121849575Installing KVTree...
Cloning into '/tmp/veloc/KVTree'...

...

Scanning dependencies of target veloc-backend
[ 47%] Building CXX object src/backend/CMakeFiles/veloc-backend.dir/main.cpp.o
[ 52%] Linking CXX executable veloc-backend
/usr/bin/ld: /global/homes/c/chiusole/veloc-1.4/lib64/liber.a(er.c.o): in function `ER_Init':
er.c:(.text+0x2): undefined reference to `kvtree_new'
/usr/bin/ld: er.c:(.text+0xe): undefined reference to `kvtree_new'
/usr/bin/ld: er.c:(.text+0x1c): undefined reference to `redset_init'
/usr/bin/ld: er.c:(.text+0x25): undefined reference to `shuffile_init'
/usr/bin/ld: /global/homes/c/chiusole/veloc-1.4/lib64/liber.a(er.c.o): in function `ER_Finalize':
er.c:(.text+0x57): undefined reference to `kvtree_get'
/usr/bin/ld: er.c:(.text+0x5f): undefined reference to `kvtree_size'
/usr/bin/ld: er.c:(.text+0x89): undefined reference to `kvtree_get'
/usr/bin/ld: er.c:(.text+0x91): undefined reference to `kvtree_size'
/usr/bin/ld: er.c:(.text+0xb9): undefined reference to `kvtree_delete'
/usr/bin/ld: er.c:(.text+0xc5): undefined reference to `kvtree_delete'
/usr/bin/ld: er.c:(.text+0xcc): undefined reference to `shuffile_finalize'
/usr/bin/ld: er.c:(.text+0xd8): undefined reference to `redset_finalize'
/usr/bin/ld: /global/homes/c/chiusole/veloc-1.4/lib64/liber.a(er.c.o): in function `ER_Create_Scheme':
er.c:(.text+0x14b): undefined reference to `redset_create'
/usr/bin/ld: er.c:(.text+0x171): undefined reference to `kvtree_set_kv_int'
/usr/bin/ld: er.c:(.text+0x185): undefined reference to `kvtree_util_set_ptr'
/usr/bin/ld: er.c:(.text+0x1d5): undefined reference to `kvtree_unset_kv_int'
/usr/bin/ld: er.c:(.text+0x1df): undefined reference to `redset_delete'
...

/usr/bin/ld: axl_sync.c:(.text+0x14c): undefined reference to `kvtree_util_set_int'
/usr/bin/ld: axl_sync.c:(.text+0x17a): undefined reference to `kvtree_util_set_int'
/usr/bin/ld: axl_sync.c:(.text+0x1aa): undefined reference to `kvtree_util_set_int'
/usr/bin/ld: /global/homes/c/chiusole/veloc-1.4/lib64/libaxl.a(axl_sync.c.o): in function `axl_sync_wait':
axl_sync.c:(.text+0x1e8): undefined reference to `kvtree_get_kv_int'
/usr/bin/ld: axl_sync.c:(.text+0x1fc): undefined reference to `kvtree_util_get_int'
collect2: error: ld returned 1 exit status
gmake[2]: *** [src/backend/CMakeFiles/veloc-backend.dir/build.make:100: src/backend/veloc-backend] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:204: src/backend/CMakeFiles/veloc-backend.dir/all] Error 2
gmake: *** [Makefile:141: all] Error 2
Installation failed!

I've tried with the default PrgEnv-intel and also swapping with PrgEnv-gnu, and both get stuck at the same point. Any idea what the problem may be? Happy to provide more details

bnicolae commented 1 year ago

Please try the main branch. We have updated many of the dependencies meanwhile.