Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I'm failing to compile release 0.5 #39

Open
darachm opened this issue Mar 28, 2017 · 4 comments
Open

I'm failing to compile release 0.5 #39

darachm opened this issue Mar 28, 2017 · 4 comments

Comments

@darachm
Copy link

darachm commented Mar 28, 2017

I've got a several-year old installation of Arch, and I'm trying to
compile RapMap to benchmark against some other aligners with in
silico tests. I'm assessing accuracy and recall as
"alignment/mapping overlaps origin of read" and "bedtools subtract".

Anyways, so to try and compile the 0.5 release of RapMap you linked
here, I've got some errors.

gcc -v is

Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc-multilib/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --enable-multilib --disable-werror --enable-checking=release
Thread model: posix
gcc version 6.3.1 20170306 (GCC)

clang -v is

clang version 3.9.1 (tags/RELEASE_391/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.1
Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.3.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1
Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/6.3.1
Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.3.1
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
clang-3.9: warning: argument unused during compilation: '-fPIE'
clang-3.9: warning: argument unused during compilation: '-pie'
clang-3.9: warning: argument unused during compilation: '-fstack-check'
clang-3.9: warning: argument unused during compilation: '-fstack-protector-strong'

cmake -V is 3.7.2


mkdir build && cd build of course works fine

cmake .. works fine, reports that it couldn't find Cereal or
Jellyfish and will fetch and build both.

make reports errors and warnings. It seems to start at step

[ 65%] Building CXX object src/CMakeFiles/rapmap.dir/RapMapIndexer.cpp.o
cd /home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/build/src && /usr/lib/hardening-wrapper/bin/c++    -I/home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/include -I/home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/external -I/home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/external/cereal/include -I/home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/external/install/include -I/home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/external/install/include/jellyfish-2.2.6  -march=native -pthread -funroll-loops -fPIC -fomit-frame-pointer -O4 -DHAVE_ANSI_TERM -Wall -std=c++11 -static-libstdc++ -Wno-unknown-pragmas -Wreturn-type -Werror=return-type -Wno-unused-local-typedefs   -o CMakeFiles/rapmap.dir/RapMapIndexer.cpp.o -c /home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/src/RapMapIndexer.cpp
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include-fixed/limits.h:168:0,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include-fixed/syslimits.h: ,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include-fixed/limits.h:34,
                 from /usr/include/c++/6.3.1/climits:42,
                 from /home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/include/concurrentqueue.h:69,
                 from /home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/include/FastxParser.hpp:17,
                 from /home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/src/RapMapIndexer.cpp:41:
/home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/include/spdlog/fmt/bundled/format.h: In member function ‘void fmt::internal::ArgFormatterBase<Impl, Char>::visit_char(int)’:
/home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/include/spdlog/fmt/bundled/format.h:2198:24: error: expected unqualified-id before numeric constant
         const unsigned CHAR_WIDTH = 1;
                        ^

There's quite a few warnings, and then it ends with:

make[2]: *** [src/CMakeFiles/rapmap.dir/build.make:90: src/CMakeFiles/rapmap.dir/RapMapIndexer.cpp.o] Error 1
make[2]: Leaving directory '/home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/build'
make[1]: *** [CMakeFiles/Makefile2:232: src/CMakeFiles/rapmap.dir/all] Error 2
make[1]: Leaving directory '/home/zed/labDarach/hstAlingers/rapmapWork/compileStuff/RapMap-0.5.0/build'
make: *** [Makefile:164: all] Error 2

Any ideas on how to debug this, and fix it on my end or in the release?

@cljacobs
Copy link

cljacobs commented Mar 2, 2018

OK so I know I'm about a year late here, but I just ran into this myself. The problem here is that this version of RapMap (currently the most recent release) bundles an old version of spdlog, which in turn bundles fmt... which is what is actually causing the error here (see this issue for more details.)

The problem has been fixed in fmt and the fix has been included into more recent versions of spdlog. If anyone else runs into this problem, the way I fixed it was to checkout this spdlog commit and then replace the spdlog directory inside the RapMap source include directory with the new checkout version.

Unfortunately, simply updating to the latest version of spdlog doesn't work here, because RapMap relies on some of the older code and will throw other errors if you simply download a recent version of spdlog to update the include dir.

@rob-p
Copy link
Contributor

rob-p commented Apr 4, 2018

Hi @cljacobs,

The active development has been going on in a different branch, and it seems that "bit rot" caused problems in master (and the 0.5.0 release). I've updated master to be consistent with the latest develop branches, and will tag a 0.6.0 release soon. Could you let me know if the current master works for you without patches?

Thanks!
Rob

@cljacobs
Copy link

cljacobs commented Apr 4, 2018

Hi @rob-p,

The current master appears to be incapable of building right now, because it requires libjellyfish-2.0.a to be in the external/install/lib sub-directory, but CMakeLists.txt no longer includes the rules for building this dependency (see this commit). Specifically, it appears thatsrc/CMakeLists.txt explicitly requires the library to be in the external sub-directory, so even an system version of Jellyfish won't satisfy this dependency.

After copying over the version of libjellyfish-2.0.a that was built by this tagged release into the proper sub-directory, building and testing proceeded just fine.

EDIT: Just fixed some typos.

@rob-p
Copy link
Contributor

rob-p commented Apr 4, 2018

Ahh, thanks for finding this @cljacobs! I'll fix this in master before I tag this release; great catch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants