bbuchfink / diamond

Accelerated BLAST compatible local sequence aligner.
GNU General Public License v3.0
1.04k stars 182 forks source link

Compiling diamond on ARM (Raspberry pi 400) #496

Closed naturepoker closed 3 years ago

naturepoker commented 3 years ago

I'm not sure if this should be reported as an issue with diamond, but any advice would be appreciated!

Attempting to compile diamond on ARM based raspberry pi 400 (which is just raspberry pi 4) following the instruction listed here (https://github.com/bbuchfink/diamond/wiki/2.-Installation) ends up with an error.

The raspbian OS is currently set up with:

cmake --version 3.16.3
gcc (Raspbian 8.3.0-6+rpi1) 8.3.0
GNU Make 4.2.1

The error message during make process is:

Scanning dependencies of target arch_generic
[  0%] Building CXX object CMakeFiles/arch_generic.dir/src/dp/swipe/banded_3frame_swipe.cpp.o
[  1%] Building CXX object CMakeFiles/arch_generic.dir/src/dp/swipe/swipe.cpp.o
[  2%] Building CXX object CMakeFiles/arch_generic.dir/src/dp/swipe/banded_swipe.cpp.o
[  2%] Building CXX object CMakeFiles/arch_generic.dir/src/search/stage2.cpp.o
[  3%] Building CXX object CMakeFiles/arch_generic.dir/src/tools/benchmark.cpp.o
[  4%] Building CXX object CMakeFiles/arch_generic.dir/src/dp/swipe/swipe_wrapper.cpp.o
/home/diamond/diamond/src/dp/swipe/swipe_wrapper.cpp: In function ‘std::__cxx11::list<Hsp> DP::BandedSwipe::ARCH_GENERIC::recompute_reversed(const Sequence&, Frame, const Bias_correction*, int, Statistics&, std::__cxx11::list<Hsp>::const_iterator, std::__cxx11::list<Hsp>::const_iterator)’:
/home/diamond/diamond/src/dp/swipe/swipe_wrapper.cpp:200:11: note: parameter passing for argument of type ‘std::__cxx11::list<Hsp>::const_iterator’ {aka ‘std::_List_const_iterator<Hsp>’} changed in GCC 7.1
 list<Hsp> recompute_reversed(const Sequence& query, Frame frame, const Bias_correction* composition_bias, int flags, Statistics& stat, list<Hsp>::const_iterator begin, list<Hsp>::const_iterator end) {
           ^~~~~~~~~~~~~~~~~~
/home/diamond/diamond/src/dp/swipe/swipe_wrapper.cpp:200:11: note: parameter passing for argument of type ‘std::__cxx11::list<Hsp>::const_iterator’ {aka ‘std::_List_const_iterator<Hsp>’} changed in GCC 7.1
[  4%] Building CXX object CMakeFiles/arch_generic.dir/src/util/tantan.cpp.o
[  5%] Building CXX object CMakeFiles/arch_generic.dir/src/dp/scan_diags.cpp.o
[  6%] Building CXX object CMakeFiles/arch_generic.dir/src/dp/ungapped_simd.cpp.o
[  6%] Built target arch_generic
Scanning dependencies of target diamond
[  6%] Building CXX object CMakeFiles/diamond.dir/src/run/main.cpp.o
[  7%] Building CXX object CMakeFiles/diamond.dir/src/basic/config.cpp.o
[  8%] Building CXX object CMakeFiles/diamond.dir/src/stats/score_matrix.cpp.o
[  9%] Building CXX object CMakeFiles/diamond.dir/src/data/queries.cpp.o
[  9%] Building CXX object CMakeFiles/diamond.dir/src/data/reference.cpp.o
[ 10%] Building CXX object CMakeFiles/diamond.dir/src/data/seed_histogram.cpp.o
[ 11%] Building CXX object CMakeFiles/diamond.dir/src/output/daa/daa_record.cpp.o
[ 11%] Building CXX object CMakeFiles/diamond.dir/src/util/command_line_parser.cpp.o
[ 12%] Building CXX object CMakeFiles/diamond.dir/src/util/seq_file_format.cpp.o
[ 13%] Building CXX object CMakeFiles/diamond.dir/src/util/util.cpp.o
[ 13%] Building CXX object CMakeFiles/diamond.dir/src/basic/basic.cpp.o
/home/diamond/diamond/src/basic/basic.cpp: In member function ‘void Seed::enum_neighborhood(unsigned int, int, std::vector<Seed>&, int)’:
/home/diamond/diamond/src/basic/basic.cpp:142:44: error: call of ‘(Score_matrix) (Letter&, unsigned int&)’ is ambiguous
   int new_score = score + score_matrix(l, i);
                                            ^
In file included from /home/diamond/diamond/src/basic/seed.h:27,
                 from /home/diamond/diamond/src/basic/shape.h:27,
                 from /home/diamond/diamond/src/basic/shape_config.h:28,
                 from /home/diamond/diamond/src/basic/basic.cpp:24:
/home/diamond/diamond/src/basic/../stats/score_matrix.h:84:6: note: candidate: ‘int Score_matrix::operator()(Letter, Letter) const’
  int operator()(Letter a, Letter b) const
      ^~~~~~~~
/home/diamond/diamond/src/basic/../stats/score_matrix.h:89:6: note: candidate: ‘int Score_matrix::operator()(size_t, size_t) const’
  int operator()(size_t a, size_t b) const
      ^~~~~~~~
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-unknown-warning-option’
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-copy’
make[2]: *** [CMakeFiles/diamond.dir/build.make:193: CMakeFiles/diamond.dir/src/basic/basic.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/diamond.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

Here's the message I got during the 'cmake ..' stage prior to make- cmake itself seems to conclude without errors:

-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test HAS_GNUPP14
-- Performing Test HAS_GNUPP14 - Success
-- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found version "1.2.11") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/diamond/diamond/bin
bbuchfink commented 3 years ago

Try this: f9b456d1132322f15ce4c98816cf3b4876391267

naturepoker commented 3 years ago

Hi,

Thank you for responding!

I test compiled the new version on raspberry pi 400, and it's still failing with error 2, but at a different section.

Please let me know if there's something I could do to help out, alas cpp isn't my forte.

Scanning dependencies of target arch_generic
[  0%] Building CXX object CMakeFiles/arch_generic.dir/src/dp/swipe/banded_3frame_swipe.cpp.o
[  1%] Building CXX object CMakeFiles/arch_generic.dir/src/dp/swipe/swipe.cpp.o
[  2%] Building CXX object CMakeFiles/arch_generic.dir/src/dp/swipe/banded_swipe.cpp.o
[  2%] Building CXX object CMakeFiles/arch_generic.dir/src/search/stage2.cpp.o
[  3%] Building CXX object CMakeFiles/arch_generic.dir/src/tools/benchmark.cpp.o
[  4%] Building CXX object CMakeFiles/arch_generic.dir/src/dp/swipe/swipe_wrapper.cpp.o
/home/diamond/src/dp/swipe/swipe_wrapper.cpp: In function ‘std::__cxx11::list<Hsp> DP::BandedSwipe::ARCH_GENERIC::recompute_reversed(const Sequence&, Frame, const Bias_correction*, int, Statistics&, std::__cxx11::list<Hsp>::const_iterator, std::__cxx11::list<Hsp>::const_iterator)’:
/home/diamond/src/dp/swipe/swipe_wrapper.cpp:200:11: note: parameter passing for argument of type ‘std::__cxx11::list<Hsp>::const_iterator’ {aka ‘std::_List_const_iterator<Hsp>’} changed in GCC 7.1
 list<Hsp> recompute_reversed(const Sequence& query, Frame frame, const Bias_correction* composition_bias, int flags, Statistics& stat, list<Hsp>::const_iterator begin, list<Hsp>::const_iterator end) {
           ^~~~~~~~~~~~~~~~~~
/home/diamond/src/dp/swipe/swipe_wrapper.cpp:200:11: note: parameter passing for argument of type ‘std::__cxx11::list<Hsp>::const_iterator’ {aka ‘std::_List_const_iterator<Hsp>’} changed in GCC 7.1
[  4%] Building CXX object CMakeFiles/arch_generic.dir/src/util/tantan.cpp.o
[  5%] Building CXX object CMakeFiles/arch_generic.dir/src/dp/scan_diags.cpp.o
[  6%] Building CXX object CMakeFiles/arch_generic.dir/src/dp/ungapped_simd.cpp.o
[  6%] Built target arch_generic
Scanning dependencies of target diamond
[  6%] Building CXX object CMakeFiles/diamond.dir/src/run/main.cpp.o
[  7%] Building CXX object CMakeFiles/diamond.dir/src/basic/config.cpp.o
[  8%] Building CXX object CMakeFiles/diamond.dir/src/stats/score_matrix.cpp.o
[  9%] Building CXX object CMakeFiles/diamond.dir/src/data/queries.cpp.o
[  9%] Building CXX object CMakeFiles/diamond.dir/src/data/reference.cpp.o
[ 10%] Building CXX object CMakeFiles/diamond.dir/src/data/seed_histogram.cpp.o
[ 11%] Building CXX object CMakeFiles/diamond.dir/src/output/daa/daa_record.cpp.o
[ 11%] Building CXX object CMakeFiles/diamond.dir/src/util/command_line_parser.cpp.o
[ 12%] Building CXX object CMakeFiles/diamond.dir/src/util/seq_file_format.cpp.o
[ 13%] Building CXX object CMakeFiles/diamond.dir/src/util/util.cpp.o
[ 13%] Building CXX object CMakeFiles/diamond.dir/src/basic/basic.cpp.o
[ 14%] Building CXX object CMakeFiles/diamond.dir/src/basic/hssp.cpp.o
/home/diamond/src/basic/hssp.cpp: In member function ‘bool Hsp::is_weakly_enveloped_by(std::__cxx11::list<Hsp>::const_iterator, std::__cxx11::list<Hsp>::const_iterator, int) const’:
/home/diamond/src/basic/hssp.cpp:215:6: note: parameter passing for argument of type ‘std::__cxx11::list<Hsp>::const_iterator’ {aka ‘std::_List_const_iterator<Hsp>’} changed in GCC 7.1
 bool Hsp::is_weakly_enveloped_by(list<Hsp>::const_iterator begin, list<Hsp>::const_iterator end, int cutoff) const
      ^~~
/home/diamond/src/basic/hssp.cpp:215:6: note: parameter passing for argument of type ‘std::__cxx11::list<Hsp>::const_iterator’ {aka ‘std::_List_const_iterator<Hsp>’} changed in GCC 7.1
/home/diamond/src/basic/hssp.cpp: In member function ‘bool Hsp::is_enveloped_by(std::__cxx11::list<Hsp>::const_iterator, std::__cxx11::list<Hsp>::const_iterator, double) const’:
/home/diamond/src/basic/hssp.cpp:228:6: note: parameter passing for argument of type ‘std::__cxx11::list<Hsp>::const_iterator’ {aka ‘std::_List_const_iterator<Hsp>’} changed in GCC 7.1
 bool Hsp::is_enveloped_by(std::list<Hsp>::const_iterator begin, std::list<Hsp>::const_iterator end, double p) const
      ^~~
/home/diamond/src/basic/hssp.cpp:228:6: note: parameter passing for argument of type ‘std::__cxx11::list<Hsp>::const_iterator’ {aka ‘std::_List_const_iterator<Hsp>’} changed in GCC 7.1
[ 15%] Building CXX object CMakeFiles/diamond.dir/src/dp/ungapped_align.cpp.o
[ 15%] Building CXX object CMakeFiles/diamond.dir/src/run/tools.cpp.o
[ 16%] Building CXX object CMakeFiles/diamond.dir/src/chaining/greedy_align.cpp.o
[ 17%] Building CXX object CMakeFiles/diamond.dir/src/output/output_format.cpp.o
[ 18%] Building CXX object CMakeFiles/diamond.dir/src/output/clustering_variables.cpp.o
[ 18%] Building CXX object CMakeFiles/diamond.dir/src/output/clustering_format.cpp.o
[ 19%] Building CXX object CMakeFiles/diamond.dir/src/output/join_blocks.cpp.o
In file included from /usr/include/c++/8/vector:69,
                 from /home/diamond/src/output/../util/io/serializer.h:24,
                 from /home/diamond/src/output/../util/io/output_file.h:24,
                 from /home/diamond/src/output/output.h:28,
                 from /home/diamond/src/output/join_blocks.cpp:24:
/usr/include/c++/8/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const IntermediateRecord&}; _Tp = IntermediateRecord; _Alloc = std::allocator<IntermediateRecord>]’:
/usr/include/c++/8/bits/vector.tcc:413:7: note: parameter passing for argument of type ‘std::vector<IntermediateRecord>::iterator’ {aka ‘__gnu_cxx::__normal_iterator<IntermediateRecord*, std::vector<IntermediateRecord> >’} changed in GCC 7.1
       vector<_Tp, _Alloc>::
       ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/bits/stl_algo.h:61,
                 from /usr/include/c++/8/algorithm:62,
                 from /home/diamond/src/output/../util/io/../string/string.h:6,
                 from /home/diamond/src/output/../util/io/../text_buffer.h:31,
                 from /home/diamond/src/output/../util/io/output_file.h:25,
                 from /home/diamond/src/output/output.h:28,
                 from /home/diamond/src/output/join_blocks.cpp:24:
/usr/include/c++/8/bits/stl_heap.h: In function ‘void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<JoinRecord*, std::vector<JoinRecord> >; _Distance = int; _Tp = JoinRecord; _Compare = __gnu_cxx::__ops::_Iter_comp_val<bool (*)(const JoinRecord&, const JoinRecord&)>]’:
/usr/include/c++/8/bits/stl_heap.h:128:5: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<JoinRecord*, std::vector<JoinRecord> >’ changed in GCC 7.1
     __push_heap(_RandomAccessIterator __first,
     ^~~~~~~~~~~
In file included from /usr/include/c++/8/vector:69,
                 from /home/diamond/src/output/../util/io/serializer.h:24,
                 from /home/diamond/src/output/../util/io/output_file.h:24,
                 from /home/diamond/src/output/output.h:28,
                 from /home/diamond/src/output/join_blocks.cpp:24:
/usr/include/c++/8/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {JoinRecord}; _Tp = JoinRecord; _Alloc = std::allocator<JoinRecord>]’:
/usr/include/c++/8/bits/vector.tcc:413:7: note: parameter passing for argument of type ‘std::vector<JoinRecord>::iterator’ {aka ‘__gnu_cxx::__normal_iterator<JoinRecord*, std::vector<JoinRecord> >’} changed in GCC 7.1
       vector<_Tp, _Alloc>::
       ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/vector.tcc:413:7: note: parameter passing for argument of type ‘std::vector<JoinRecord>::iterator’ {aka ‘__gnu_cxx::__normal_iterator<JoinRecord*, std::vector<JoinRecord> >’} changed in GCC 7.1
In file included from /usr/include/c++/8/bits/stl_algo.h:61,
                 from /usr/include/c++/8/algorithm:62,
                 from /home/diamond/src/output/../util/io/../string/string.h:6,
                 from /home/diamond/src/output/../util/io/../text_buffer.h:31,
                 from /home/diamond/src/output/../util/io/output_file.h:25,
                 from /home/diamond/src/output/output.h:28,
                 from /home/diamond/src/output/join_blocks.cpp:24:
/usr/include/c++/8/bits/stl_heap.h: In function ‘void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<JoinRecord*, std::vector<JoinRecord> >; _Distance = int; _Tp = JoinRecord; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(const JoinRecord&, const JoinRecord&)>]’:
/usr/include/c++/8/bits/stl_heap.h:214:5: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<JoinRecord*, std::vector<JoinRecord> >’ changed in GCC 7.1
     __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
     ^~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_heap.h: In function ‘void std::__make_heap(_RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<JoinRecord*, std::vector<JoinRecord> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(const JoinRecord&, const JoinRecord&)>]’:
/usr/include/c++/8/bits/stl_heap.h:326:5: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<JoinRecord*, std::vector<JoinRecord> >’ changed in GCC 7.1
     __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
     ^~~~~~~~~~~
/usr/include/c++/8/bits/stl_heap.h:326:5: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<JoinRecord*, std::vector<JoinRecord> >’ changed in GCC 7.1
In file included from /usr/include/c++/8/vector:69,
                 from /home/diamond/src/output/../util/io/serializer.h:24,
                 from /home/diamond/src/output/../util/io/output_file.h:24,
                 from /home/diamond/src/output/output.h:28,
                 from /home/diamond/src/output/join_blocks.cpp:24:
/usr/include/c++/8/bits/vector.tcc: In function ‘void join_query(std::vector<BinaryBuffer>&, TextBuffer&, Statistics&, unsigned int, const char*, unsigned int, Output_format&, const Search::Config&)’:
/usr/include/c++/8/bits/vector.tcc:109:4: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<JoinRecord*, std::vector<JoinRecord> >’ changed in GCC 7.1
    _M_realloc_insert(end(), std::forward<_Args>(__args)...);
    ^~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/bits/stl_algo.h:61,
                 from /usr/include/c++/8/algorithm:62,
                 from /home/diamond/src/output/../util/io/../string/string.h:6,
                 from /home/diamond/src/output/../util/io/../text_buffer.h:31,
                 from /home/diamond/src/output/../util/io/output_file.h:25,
                 from /home/diamond/src/output/output.h:28,
                 from /home/diamond/src/output/join_blocks.cpp:24:
/usr/include/c++/8/bits/stl_heap.h:397:23: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<JoinRecord*, std::vector<JoinRecord> >’ changed in GCC 7.1
       std::__make_heap(__first, __last, __cmp);
       ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/vector:64,
                 from /home/diamond/src/output/../util/io/serializer.h:24,
                 from /home/diamond/src/output/../util/io/output_file.h:24,
                 from /home/diamond/src/output/output.h:28,
                 from /home/diamond/src/output/join_blocks.cpp:24:
/usr/include/c++/8/bits/stl_vector.h:1085:4: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<IntermediateRecord*, std::vector<IntermediateRecord> >’ changed in GCC 7.1
    _M_realloc_insert(end(), __x);
    ^~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/vector:69,
                 from /home/diamond/src/output/../util/io/serializer.h:24,
                 from /home/diamond/src/output/../util/io/output_file.h:24,
                 from /home/diamond/src/output/output.h:28,
                 from /home/diamond/src/output/join_blocks.cpp:24:
/usr/include/c++/8/bits/vector.tcc:109:4: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<JoinRecord*, std::vector<JoinRecord> >’ changed in GCC 7.1
    _M_realloc_insert(end(), std::forward<_Args>(__args)...);
    ^~~~~~~~~~~~~~~~~
[ 20%] Building CXX object CMakeFiles/diamond.dir/src/data/frequent_seeds.cpp.o
[ 20%] Building CXX object CMakeFiles/diamond.dir/src/align/legacy/query_mapper.cpp.o
/home/diamond/src/align/legacy/query_mapper.cpp: In member function ‘void Target::inner_culling()’:
/home/diamond/src/align/legacy/query_mapper.cpp:313:25: note: parameter passing for argument of type ‘std::__cxx11::list<Hsp>::const_iterator’ {aka ‘std::_List_const_iterator<Hsp>’} changed in GCC 7.1
   if (i->is_enveloped_by(hsps.begin(), i, 0.5))
       ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
[ 21%] Building CXX object CMakeFiles/diamond.dir/src/output/blast_tab_format.cpp.o
[ 22%] Building CXX object CMakeFiles/diamond.dir/src/dp/needleman_wunsch.cpp.o
[ 22%] Building CXX object CMakeFiles/diamond.dir/src/output/blast_pairwise_format.cpp.o
[ 23%] Building CXX object CMakeFiles/diamond.dir/src/run/double_indexed.cpp.o
In file included from /home/diamond/src/run/double_indexed.cpp:52:
/home/diamond/src/run/../util/data_structures/deque.h:180:12: error: ‘Deque<T, E, Sync>::Iterator Deque<T, E, Sync>::Iterator::operator-(int) const’ cannot be overloaded with ‘Deque<T, E, Sync>::Iterator Deque<T, E, Sync>::Iterator::operator-(ptrdiff_t) const’
   Iterator operator-(int i) const {
            ^~~~~~~~
/home/diamond/src/run/../util/data_structures/deque.h:136:12: note: previous declaration ‘Deque<T, E, Sync>::Iterator Deque<T, E, Sync>::Iterator::operator-(ptrdiff_t) const’
   Iterator operator-(ptrdiff_t i) const {
            ^~~~~~~~
cc1plus: warning: unrecognized command line option ‘-Wno-unknown-warning-option’
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-copy’
make[2]: *** [CMakeFiles/diamond.dir/build.make:375: CMakeFiles/diamond.dir/src/run/double_indexed.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/diamond.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
bbuchfink commented 3 years ago

Please find out if you are running a 32 bit or 64 bit system. Diamond does not work on 32 bit.

naturepoker commented 3 years ago

Hi,

You're right - I reflashed the Raspberrry Pi 400 with a 64bit Rasbian OS (in beta state as of writing this - 2021-Jul-31) and re-ran the f9b456d compilation as described, and Diamond works perfectly on ARM/Raspberry pi OS now.

For reference, the 64bit beta version of Rasbian OS can be found here - https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2021-05-28/

And the system information after installing the OS is:

$uname -r
5.10.52-v8

$gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/8/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 8.3.0-6' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --disable-libphobos --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu
Thread model: posix
gcc version 8.3.0 (Debian 8.3.0-6) 

Thank you very much for the help! Please feel free to close this one.