Hi everyone,
I hope this is the right place to ask, if not, please point me to it :)
I am trying to port the SeqAn bioinformatics library and derived
applications to OpenBSD (mainly because my Laptop runs OpenBSD, but I
hope it will be useful to others).
Beside other questions regarding OpenMP and -march=native that I asked
here previously (and I hope to getback to soon), I am encountering some
strange build behaviour of gcc49 that I have never encountered on other
platforms:
Some build targets report that there is an error during linking, but
curiously there is no error, the linking succeeds. Have any of you
encountered something similar when porting software to OpenBSD or do you
have recommendations on how to debug this?
HowTo reproduce:
* checkout master from https://github.com/seqan/seqan
* install gcc-4.9.3p3
* cmake path/to/seqan -DCMAKE_CXX_COMPILER=eg++
* make test_sequence_v2 VERBOSE=1 # see error
* ls bin # see that binary is there
* bin/test_sequence_v2 # see that the binary works
* make test_sequence_v2 VERBOSE=1 # nothing to be done, because first
make actually did work
Thanks for your help!
Best regards,
Hannes
This is what the (non)error looks like:
collect2: error: /usr/bin/nm returned 1 exit status
*** Error 1 in .
(tests/sequence/CMakeFiles/test_sequence_v2.dir/build.make:95
'bin/test_sequence_v2')
*** Error 1 in . (CMakeFiles/Makefile2:4191
'tests/sequence/CMakeFiles/test_sequence_v2.dir/all')
*** Error 1 in . (CMakeFiles/Makefile2:4203
'tests/sequence/CMakeFiles/test_sequence_v2.dir/rule')
*** Error 1 in /home/h4nn3s/devel/seqan-build/release2 (Makefile:1291
'test_sequence_v2')
A full log is attached.
# BUILDING FIRST TIME PRODUCES ERROR DURING LINKING
% make test_sequence_v2 VERBOSE=1
/usr/local/bin/cmake -H/home/h4nn3s/devel/seqan
-B/home/h4nn3s/devel/seqan-build/release2 --check-build-system
CMakeFiles/Makefile.cmake 0
make -f CMakeFiles/Makefile2 test_sequence_v2
/usr/local/bin/cmake -H/home/h4nn3s/devel/seqan
-B/home/h4nn3s/devel/seqan-build/release2 --check-build-system
CMakeFiles/Makefile.cmake 0
/usr/local/bin/cmake -E cmake_progress_start
/home/h4nn3s/devel/seqan-build/release2/CMakeFiles 0
make -f CMakeFiles/Makefile2 tests/sequence/CMakeFiles/test_sequence_v2.dir/all
make -f CMakeFiles/seqan_library.dir/build.make
CMakeFiles/seqan_library.dir/depend
cd /home/h4nn3s/devel/seqan-build/release2 && /usr/local/bin/cmake -E
cmake_depends "Unix Makefiles" /home/h4nn3s/devel/seqan
/home/h4nn3s/devel/seqan /home/h4nn3s/devel/seqan-build/release2
/home/h4nn3s/devel/seqan-build/release2
/home/h4nn3s/devel/seqan-build/release2/CMakeFiles/seqan_library.dir/DependInfo.cmake
--color=
make -f CMakeFiles/seqan_library.dir/build.make
CMakeFiles/seqan_library.dir/build
Built target seqan_library
make -f tests/sequence/CMakeFiles/test_sequence_v2.dir/build.make
tests/sequence/CMakeFiles/test_sequence_v2.dir/depend
cd /home/h4nn3s/devel/seqan-build/release2 && /usr/local/bin/cmake -E
cmake_depends "Unix Makefiles" /home/h4nn3s/devel/seqan
/home/h4nn3s/devel/seqan/tests/sequence /home/h4nn3s/devel/seqan-build/release2
/home/h4nn3s/devel/seqan-build/release2/tests/sequence
/home/h4nn3s/devel/seqan-build/release2/tests/sequence/CMakeFiles/test_sequence_v2.dir/DependInfo.cmake
--color=
make -f tests/sequence/CMakeFiles/test_sequence_v2.dir/build.make
tests/sequence/CMakeFiles/test_sequence_v2.dir/build
Building CXX object
tests/sequence/CMakeFiles/test_sequence_v2.dir/test_sequence_v2.cpp.o
cd /home/h4nn3s/devel/seqan-build/release2/tests/sequence &&
/home/h4nn3s/bin/eg++ -DSEQAN_ENABLE_TESTING=1 -DSEQAN_HAS_EXECINFO=1
-D_FILE_OFFSET_BITS=64 -D_GLIBCXX_USE_C99=1 -D_LARGEFILE_SOURCE
-I/home/h4nn3s/devel/seqan/include -std=c++14 -W -Wall -pedantic
-fstrict-aliasing -Wstrict-aliasing -DSEQAN_GLOBAL_EXCEPTION_HANDLER=1 -o
CMakeFiles/test_sequence_v2.dir/test_sequence_v2.cpp.o -c
/home/h4nn3s/devel/seqan/tests/sequence/test_sequence_v2.cpp
Linking CXX executable ../../bin/test_sequence_v2
cd /home/h4nn3s/devel/seqan-build/release2/tests/sequence &&
/usr/local/bin/cmake -E cmake_link_script
CMakeFiles/test_sequence_v2.dir/link.txt --verbose=1
/home/h4nn3s/bin/eg++ -std=c++14 -W -Wall -pedantic -fstrict-aliasing
-Wstrict-aliasing CMakeFiles/test_sequence_v2.dir/test_sequence_v2.cpp.o -o
../../bin/test_sequence_v2 -lpthread -lexecinfo -lelf
-Wl,-rpath-link,/usr/X11R6/lib
collect2: error: /usr/bin/nm returned 1 exit status
*** Error 1 in . (tests/sequence/CMakeFiles/test_sequence_v2.dir/build.make:95
'bin/test_sequence_v2')
*** Error 1 in . (CMakeFiles/Makefile2:4191
'tests/sequence/CMakeFiles/test_sequence_v2.dir/all')
*** Error 1 in . (CMakeFiles/Makefile2:4203
'tests/sequence/CMakeFiles/test_sequence_v2.dir/rule')
*** Error 1 in /home/h4nn3s/devel/seqan-build/release2 (Makefile:1291
'test_sequence_v2')
# BINARYIS IS THERE
% ls bin
test_sequence_v2
# RUNNING THE BINARYWORKS::
% bin/test_sequence_v2
# ...
# BUILDING THE SAME TARGET AGAIN SHOWS THAT THERE IS NOTHING TO BE DONE:
% make test_sequence_v2 VERBOSE=1
/usr/local/bin/cmake -H/home/h4nn3s/devel/seqan
-B/home/h4nn3s/devel/seqan-build/release2 --check-build-system
CMakeFiles/Makefile.cmake 0
make -f CMakeFiles/Makefile2 test_sequence_v2
/usr/local/bin/cmake -H/home/h4nn3s/devel/seqan
-B/home/h4nn3s/devel/seqan-build/release2 --check-build-system
CMakeFiles/Makefile.cmake 0
/usr/local/bin/cmake -E cmake_progress_start
/home/h4nn3s/devel/seqan-build/release2/CMakeFiles 0
make -f CMakeFiles/Makefile2 tests/sequence/CMakeFiles/test_sequence_v2.dir/all
make -f CMakeFiles/seqan_library.dir/build.make
CMakeFiles/seqan_library.dir/depend
cd /home/h4nn3s/devel/seqan-build/release2 && /usr/local/bin/cmake -E
cmake_depends "Unix Makefiles" /home/h4nn3s/devel/seqan
/home/h4nn3s/devel/seqan /home/h4nn3s/devel/seqan-build/release2
/home/h4nn3s/devel/seqan-build/release2
/home/h4nn3s/devel/seqan-build/release2/CMakeFiles/seqan_library.dir/DependInfo.cmake
--color=
make -f CMakeFiles/seqan_library.dir/build.make
CMakeFiles/seqan_library.dir/build
Built target seqan_library
make -f tests/sequence/CMakeFiles/test_sequence_v2.dir/build.make
tests/sequence/CMakeFiles/test_sequence_v2.dir/depend
cd /home/h4nn3s/devel/seqan-build/release2 && /usr/local/bin/cmake -E
cmake_depends "Unix Makefiles" /home/h4nn3s/devel/seqan
/home/h4nn3s/devel/seqan/tests/sequence /home/h4nn3s/devel/seqan-build/release2
/home/h4nn3s/devel/seqan-build/release2/tests/sequence
/home/h4nn3s/devel/seqan-build/release2/tests/sequence/CMakeFiles/test_sequence_v2.dir/DependInfo.cmake
--color=
make -f tests/sequence/CMakeFiles/test_sequence_v2.dir/build.make
tests/sequence/CMakeFiles/test_sequence_v2.dir/build
Built target test_sequence_v2
/usr/local/bin/cmake -E cmake_progress_start
/home/h4nn3s/devel/seqan-build/release2/CMakeFiles 0