old_GekkoFS_old icon indicating copy to clipboard operation
old_GekkoFS_old copied to clipboard

undefined reference when making GekkoFS

Open elham9449 opened this issue 4 years ago • 3 comments

I have installed all GekkoFS dependencies and now, after running cmake, when I try to make, I get the following undefined reference error:

[ 66%] Linking CXX executable gkfs_daemon
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: warning: libabt.so.1, needed by /home/adibi/gekko/install/lib/libmargo.so, may conflict with libabt.so.0
backend/metadata/libmetadata_db.a(merge.cpp.o):(.rodata._ZTIN4gkfs8metadata21MetadataMergeOperatorE[_ZTIN4gkfs8metadata21MetadataMergeOperatorE]+0x10): undefined reference to `typeinfo for rocksdb::MergeOperator'
/home/adibi/gekko/install/lib/libmargo.so: undefined reference to `HG_Addr_lookup2'
/home/adibi/gekko/install/lib/libmargo.so: undefined reference to `hg_proc_checksum_update'
collect2: error: ld returned 1 exit status
make[2]: *** [src/daemon/gkfs_daemon] Error 1
make[1]: *** [src/daemon/CMakeFiles/gkfs_daemon.dir/all] Error 2
make: *** [all] Error 2

I installed margo using spack (and others using the compile_dep.sh script). Could this be the source of the problem? Or should I look elsewhere?

Thanks

elham9449 avatar Jan 23 '22 15:01 elham9449

I think these routines come from the mercury library. Can you make sure you've got that installed?

adrianjhpc avatar Jan 23 '22 15:01 adrianjhpc

I think these routines come from the mercury library. Can you make sure you've got that installed?

I installed mercury using compile_dep.sh and it was successful. The only package I installed without compile_dep.sh script was margo which I downloaded using spack. Then, I copied margo contents into the installed directory of GekkoFS dependencies (margo with compile_dep.sh failed and I got lots of undefined references). Maybe if I fix that if will solve the issue?

elham9449 avatar Jan 23 '22 15:01 elham9449

Where did you install mercury? Is it in the default place or somewhere else? You'll need to make sure LD_LIBRARY_PATH can find it.

adrianjhpc avatar Jan 23 '22 16:01 adrianjhpc