algbio / themisto

Space-efficient pseudoalignment with a colored de Bruijn graph
GNU General Public License v2.0
50 stars 4 forks source link

installation error with rust on macOS #35

Closed rohanmaddamsetti closed 5 months ago

rohanmaddamsetti commented 7 months ago

Hello,

When I run "make" to install themisto on my mac laptop, I get the following error:

error[E0635]: unknown feature stdsimd --> /Users/rohan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.3/src/lib.rs:99:42 | 99 | #![cfg_attr(feature = "stdsimd", feature(stdsimd))] | ^^^^^^^

For more information about this error, try rustc --explain E0635. error: could not compile ahash (lib) due to 1 previous error warning: build failed, waiting for other jobs to finish... make[3]: [lib/libggcat_cpp_bindings.a] Error 101 make[2]: [CMakeFiles/ggcat_cpp_api] Error 2 make[1]: [CMakeFiles/ggcat_cpp_api.dir/all] Error 2 make: [all] Error 2

Based on these links, it looks like the stdsimd feature was removed from Rust on February, breaking the themisto installation: https://users.rust-lang.org/t/error-e0635-unknown-feature-stdsimd/106445 https://github.com/tkaitchuck/aHash/issues/200

following some of these discussions, hoping to find a workaround by installing a Rust version dated February 4.

rohanmaddamsetti commented 7 months ago

just an update-- still haven't gotten themisto to install on my mac laptop, but I did get the themisto binary installed on our compute cluster. so will probably just work with that.

But here's the progress I made to get themisto working on my laptop--

changing rust versions didn't help, so I went back to nightly Rust as default: $ rustc --version rustc 1.79.0-nightly (88c2f4f5f 2024-04-02)

Then, I went into the ggcat directory, and ran the following to update rust dependencies: $ cargo update --recursive -v --color always

I then went into the build directory, and ran the following: cmake -DCMAKE_C_COMPILER=$(which gcc-13) -DCMAKE_CXX_COMPILER=$(which g++-13) -DMAX_KMER_LENGTH=31 ..

(I installed gcc with homebrew on mac-- gcc links to clang and g++ links to clang++, so to avoid breaking things, homebrew installs gcc as gcc-13 and g++ as g++-13, where 13 is the current version number)

I then ran make. I no longer get the "stdsimd" error, but get some other errors.

Here is the full output I get from running these steps-- my apologies if this is overwhelming and not helpful... it does look like I can get themisto working on our cluster, but it would be nice if I can get it working on my mac laptop too!

$ themisto % cd ggcat $ ggcat % cargo update --recursive -v --color always Updating crates.io index Updating addr2line v0.20.0 -> v0.21.0 Updating ahash v0.8.3 -> v0.8.11 Updating aho-corasick v1.0.2 -> v1.1.3 Unchanged anes v0.1.6 (latest: v0.2.0) Updating anstream v0.3.2 -> v0.6.13 Updating anstyle v1.0.1 -> v1.0.6 Updating anstyle-parse v0.2.1 -> v0.2.3 Updating anstyle-query v1.0.0 -> v1.0.2 Updating anstyle-wincon v1.0.1 -> v3.0.2 Updating anyhow v1.0.71 -> v1.0.81 Updating autocfg v1.1.0 -> v1.2.0 Updating backtrace v0.3.68 -> v0.3.71 Unchanged bigraph v2.1.1 (latest: v5.0.0) Updating bio v1.3.1 -> v1.6.0 Updating bio-types v1.0.0 -> v1.0.1 Updating bitflags v2.3.3 -> v2.5.0 Unchanged bitflags v1.3.2 (latest: v2.5.0) Updating bstr v1.5.0 -> v1.9.1 Updating bumpalo v3.13.0 -> v3.15.4 Updating bytecount v0.6.3 -> v0.6.7 Updating bytemuck v1.13.1 -> v1.15.0 Updating byteorder v1.4.3 -> v1.5.0 Updating bytesize v1.2.0 -> v1.3.0 Updating cc v1.0.79 -> v1.0.90 Updating chrono v0.4.26 -> v0.4.37 Updating ciborium v0.2.1 -> v0.2.2 Updating ciborium-io v0.2.1 -> v0.2.2 Updating ciborium-ll v0.2.1 -> v0.2.2 Updating clap v4.3.10 -> v4.5.4 Unchanged clap v2.34.0 (latest: v4.5.4) Unchanged clap v3.2.25 (latest: v4.5.4) Updating clap_builder v4.3.10 -> v4.5.2 Updating clap_derive v4.3.2 -> v4.5.4 Updating clap_lex v0.5.0 -> v0.7.0 Unchanged clap_lex v0.2.4 (latest: v0.7.0) Updating cloudflare-zlib-sys v0.3.0 -> v0.3.3 Removing cmake v0.1.50 Unchanged compact-genome v1.3.1 (latest: v2.1.1) Updating core-foundation v0.9.3 -> v0.9.4 Updating core-foundation-sys v0.8.4 -> v0.8.6 Unchanged core-graphics v0.22.3 (latest: v0.23.1) Updating core-graphics-types v0.1.2 -> v0.1.3 Unchanged core-text v19.2.0 (latest: v20.1.0) Updating crc32fast v1.3.2 -> v1.4.0 Unchanged criterion v0.4.0 (latest: v0.5.1) Updating crossbeam v0.8.2 -> v0.8.4 Updating crossbeam-channel v0.5.8 -> v0.5.12 Updating crossbeam-deque v0.8.3 -> v0.8.5 Updating crossbeam-epoch v0.9.15 -> v0.9.18 Updating crossbeam-queue v0.3.8 -> v0.3.11 Updating crossbeam-utils v0.8.16 -> v0.8.19 Adding crunchy v0.2.2 Updating csv v1.2.2 -> v1.3.0 Updating csv-core v0.1.10 -> v0.1.11 Updating cxx v1.0.97 -> v1.0.120 Updating cxx-build v1.0.97 -> v1.0.120 Updating cxxbridge-flags v1.0.97 -> v1.0.120 Updating cxxbridge-macro v1.0.97 -> v1.0.120 Updating dashmap v5.4.0 -> v5.5.3 Adding deranged v0.3.11 Unchanged derive-new v0.5.9 (latest: v0.6.0) Updating either v1.8.1 -> v1.10.0 Updating enum-map v1.1.1 -> v2.7.3 Updating enum-map-derive v0.6.0 -> v0.17.0 Adding equivalent v1.0.1 Updating errno v0.3.1 -> v0.3.8 Removing errno-dragonfly v0.1.2 Updating fdeflate v0.3.0 -> v0.3.4 Unchanged fdlimit v0.2.1 (latest: v0.3.0) Unchanged fixedbitset v0.4.2 (latest: v0.5.6) Updating flate2 v1.0.26 -> v1.0.28 Unchanged float-ord v0.2.0 (latest: v0.3.2) Unchanged font-kit v0.11.0 (latest: v0.13.0) Unchanged foreign-types v0.3.2 (latest: v0.5.0) Unchanged foreign-types-shared v0.1.1 (latest: v0.3.1) Updating freetype v0.7.0 -> v0.7.1 Updating freetype-sys v0.13.1 -> v0.19.0 (latest: v0.20.0) Updating futures-core v0.3.28 -> v0.3.30 Unchanged genome-graph v5.2.0 (latest: v8.0.0) Updating getrandom v0.2.10 -> v0.2.12 Removing getset v0.1.2 Unchanged gif v0.12.0 (latest: v0.13.1) Updating gimli v0.27.3 -> v0.28.1 Updating half v1.8.2 -> v2.4.0 Adding hashbrown v0.14.3 Unchanged hashbrown v0.12.3 (latest: v0.14.3) Unchanged hashbrown v0.13.2 (latest: v0.14.3) Adding heck v0.5.0 Unchanged heck v0.3.3 (latest: v0.5.0) Unchanged heck v0.4.1 (latest: v0.5.0) Updating hermit-abi v0.3.2 -> v0.3.9 Unchanged hermit-abi v0.1.19 (latest: v0.3.9) Updating human_format v1.0.3 -> v1.1.0 Updating iana-time-zone v0.1.57 -> v0.1.60 Updating image v0.24.6 -> v0.24.9 (latest: v0.25.1) Adding indexmap v2.2.6 Unchanged indexmap v1.9.3 (latest: v2.2.6) Unchanged io-lifetimes v1.0.11 (latest: v2.0.3) Removing is-terminal v0.4.8 Unchanged itertools v0.10.5 (latest: v0.12.1) Unchanged itertools v0.11.0 (latest: v0.12.1) Updating itoa v1.0.8 -> v1.0.11 Updating jpeg-decoder v0.3.0 -> v0.3.1 Updating js-sys v0.3.64 -> v0.3.69 Updating libc v0.2.147 -> v0.2.153 Updating libloading v0.8.0 -> v0.8.3 Updating libm v0.2.7 -> v0.2.8 Adding libredox v0.1.3 Removing linux-raw-sys v0.4.3 Unchanged linux-raw-sys v0.1.4 (latest: v0.6.4) Updating lock_api v0.4.10 -> v0.4.11 Updating log v0.4.19 -> v0.4.21 Unchanged matchtigs v1.7.0 (latest: v2.1.6) Updating matrixmultiply v0.3.7 -> v0.3.8 Updating memchr v2.5.0 -> v2.7.2 Removing memoffset v0.9.0 Updating miniz_oxide v0.7.1 -> v0.7.2 Updating multimap v0.8.3 -> v0.9.1 (latest: v0.10.0) Unchanged nalgebra v0.29.0 (latest: v0.32.5) Unchanged nalgebra-macros v0.1.0 (latest: v0.2.1) Updating num-complex v0.4.3 -> v0.4.5 Adding num-conv v0.1.0 Updating num-integer v0.1.45 -> v0.1.46 Updating num-traits v0.2.15 -> v0.2.18 Updating num_threads v0.1.6 -> v0.1.7 Updating object v0.31.1 -> v0.32.2 (latest: v0.34.0) Updating once_cell v1.18.0 -> v1.19.0 Updating ordered-float v3.7.0 -> v3.9.2 (latest: v4.2.0) Updating os_str_bytes v6.5.1 -> v6.6.1 (latest: v7.0.0) Updating parking_lot_core v0.9.8 -> v0.9.9 Updating paste v1.0.13 -> v1.0.14 Updating pathfinder_simd v0.5.1 -> v0.5.2 Removing pest v2.7.0 Updating petgraph v0.6.3 -> v0.6.4 Updating pin-project-lite v0.2.10 -> v0.2.14 Updating pkg-config v0.3.27 -> v0.3.30 Updating png v0.17.9 -> v0.17.13 Adding powerfmt v0.2.0 Updating proc-macro2 v1.0.63 -> v1.0.79 Unchanged proc-macro2 v0.4.30 (latest: v1.0.79) Unchanged procfs v0.15.1 (latest: v0.16.0) Updating quote v1.0.29 -> v1.0.35 Unchanged quote v0.6.13 (latest: v1.0.35) Unchanged radium v0.7.0 (latest: v1.1.0) Updating rayon v1.7.0 -> v1.10.0 Updating rayon-core v1.11.0 -> v1.12.1 Removing redox_syscall v0.2.16 Removing redox_syscall v0.3.5 Adding redox_syscall v0.4.1 (latest: v0.5.1) Updating redox_users v0.4.3 -> v0.4.5 Updating ref-cast v1.0.18 -> v1.0.22 Updating ref-cast-impl v1.0.18 -> v1.0.22 Updating regex v1.8.4 -> v1.10.4 Updating regex-automata v0.1.10 -> v0.4.6 Updating regex-syntax v0.7.2 -> v0.8.3 Removing retain_mut v0.1.7 Updating roaring v0.10.1 -> v0.10.3 Updating rustc_version v0.3.3 -> v0.4.0 Unchanged rustc_version v0.1.7 (latest: v0.4.0) Removing rustix v0.36.14 Removing rustix v0.38.2 Adding rustix v0.36.17 (latest: v0.38.32) Updating rustversion v1.0.13 -> v1.0.14 Updating ryu v1.0.14 -> v1.0.17 Updating safe_arch v0.7.0 -> v0.7.1 Updating scopeguard v1.1.0 -> v1.2.0 Updating scratch v1.0.5 -> v1.0.7 Updating semver v0.11.0 -> v1.0.22 Unchanged semver v0.1.20 (latest: v1.0.22) Removing semver-parser v0.10.2 Updating serde v1.0.166 -> v1.0.197 Updating serde_derive v1.0.166 -> v1.0.197 Updating serde_json v1.0.100 -> v1.0.115 Unchanged simba v0.6.0 (latest: v0.8.1) Updating simd-adler32 v0.3.5 -> v0.3.7 Updating simplelog v0.12.1 -> v0.12.2 Updating siphasher v0.3.10 -> v0.3.11 (latest: v1.0.1) Updating smallvec v1.10.0 -> v1.13.2 Updating strsim v0.10.0 -> v0.11.1 Unchanged strsim v0.8.0 (latest: v0.11.1) Unchanged strum v0.25.0 (latest: v0.26.2) Removing strum_macros v0.24.3 Removing strum_macros v0.25.1 Adding strum_macros v0.25.3 (latest: v0.26.2) Updating syn v2.0.23 -> v2.0.58 Unchanged syn v0.15.44 (latest: v2.0.58) Unchanged syn v1.0.109 (latest: v2.0.58) Updating termcolor v1.1.3 -> v1.4.1 Updating textwrap v0.16.0 -> v0.16.1 Unchanged textwrap v0.11.0 (latest: v0.16.1) Updating thiserror v1.0.41 -> v1.0.58 Updating thiserror-impl v1.0.41 -> v1.0.58 Updating thread_local v1.1.7 -> v1.1.8 Removing time v0.1.45 Removing time v0.3.22 Adding time v0.3.34 Updating time-core v0.1.1 -> v0.1.2 Updating time-macros v0.2.9 -> v0.2.17 Updating tokio v1.29.1 -> v1.37.0 Updating tokio-macros v2.1.0 -> v2.2.0 Updating tokio-stream v0.1.14 -> v0.1.15 Updating tracing v0.1.37 -> v0.1.40 Updating tracing-attributes v0.1.26 -> v0.1.27 Updating tracing-core v0.1.31 -> v0.1.32 Unchanged traitgraph v2.2.0 (latest: v5.0.0) Unchanged traitgraph-algo v5.4.0 (latest: v8.1.0) Unchanged traitsequence v1.1.0 (latest: v2.0.0) Unchanged ttf-parser v0.17.1 (latest: v0.20.0) Updating typenum v1.16.0 -> v1.17.0 Removing ucd-trie v0.1.5 Updating unicode-ident v1.0.10 -> v1.0.12 Updating unicode-segmentation v1.10.1 -> v1.11.0 Updating unicode-width v0.1.10 -> v0.1.11 Unchanged unicode-xid v0.1.0 (latest: v0.2.4) Updating uuid v1.4.0 -> v1.8.0 Updating walkdir v2.3.3 -> v2.5.0 Removing wasi v0.10.0+wasi-snapshot-preview1 Unchanged wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.0+wasi-0.2.0) Updating wasm-bindgen v0.2.87 -> v0.2.92 Updating wasm-bindgen-backend v0.2.87 -> v0.2.92 Updating wasm-bindgen-macro v0.2.87 -> v0.2.92 Updating wasm-bindgen-macro-support v0.2.87 -> v0.2.92 Updating wasm-bindgen-shared v0.2.87 -> v0.2.92 Updating web-sys v0.3.64 -> v0.3.69 Updating weezl v0.1.7 -> v0.1.8 Updating wide v0.7.10 -> v0.7.15 Updating winapi-util v0.1.5 -> v0.1.6 Removing windows v0.48.0 Adding windows-core v0.52.0 (latest: v0.55.0) Adding windows-sys v0.52.0 Unchanged windows-sys v0.45.0 (latest: v0.52.0) Unchanged windows-sys v0.48.0 (latest: v0.52.0) Removing windows-targets v0.48.1 Adding windows-targets v0.48.5 (latest: v0.52.4) Adding windows-targets v0.52.4 Unchanged windows-targets v0.42.2 (latest: v0.52.4) Removing windows_aarch64_gnullvm v0.48.0 Adding windows_aarch64_gnullvm v0.48.5 (latest: v0.52.4) Adding windows_aarch64_gnullvm v0.52.4 Unchanged windows_aarch64_gnullvm v0.42.2 (latest: v0.52.4) Removing windows_aarch64_msvc v0.48.0 Adding windows_aarch64_msvc v0.48.5 (latest: v0.52.4) Adding windows_aarch64_msvc v0.52.4 Unchanged windows_aarch64_msvc v0.42.2 (latest: v0.52.4) Removing windows_i686_gnu v0.48.0 Adding windows_i686_gnu v0.48.5 (latest: v0.52.4) Adding windows_i686_gnu v0.52.4 Unchanged windows_i686_gnu v0.42.2 (latest: v0.52.4) Removing windows_i686_msvc v0.48.0 Adding windows_i686_msvc v0.48.5 (latest: v0.52.4) Adding windows_i686_msvc v0.52.4 Unchanged windows_i686_msvc v0.42.2 (latest: v0.52.4) Removing windows_x86_64_gnu v0.48.0 Adding windows_x86_64_gnu v0.48.5 (latest: v0.52.4) Adding windows_x86_64_gnu v0.52.4 Unchanged windows_x86_64_gnu v0.42.2 (latest: v0.52.4) Removing windows_x86_64_gnullvm v0.48.0 Adding windows_x86_64_gnullvm v0.48.5 (latest: v0.52.4) Adding windows_x86_64_gnullvm v0.52.4 Unchanged windows_x86_64_gnullvm v0.42.2 (latest: v0.52.4) Removing windows_x86_64_msvc v0.48.0 Adding windows_x86_64_msvc v0.48.5 (latest: v0.52.4) Adding windows_x86_64_msvc v0.52.4 Unchanged windows_x86_64_msvc v0.42.2 (latest: v0.52.4) Unchanged wyz v0.5.1 (latest: v0.6.1) Unchanged yeslogic-fontconfig-sys v3.2.0 (latest: v5.0.0) Adding zerocopy v0.7.32 Adding zerocopy-derive v0.7.32 note: to see how you depend on a package, run cargo tree --invert --package <dep>@<ver> $ ggcat % cd .. $ themisto % ls
CMakeLists.txt LICENSE.txt build googletest src version.h.in CMakeLists_zlib.txt.in README.md example_input include testcases zstr Dockerfile SBWT ggcat integration_tests tests (cobra) rohan@HAL9000 themisto % cd build (cobra) rohan@HAL9000 build % cmake -DCMAKE_C_COMPILER=$(which gcc-13) -DCMAKE_CXX_COMPILER=$(which g++-13) -DMAX_KMER_LENGTH=31 .. -- The C compiler identification is GNU 13.2.0 -- The CXX compiler identification is GNU 13.2.0 -- Checking whether C compiler has -isysroot -- Checking whether C compiler has -isysroot - yes -- Checking whether C compiler supports OSX deployment target flag -- Checking whether C compiler supports OSX deployment target flag - yes -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /opt/homebrew/bin/gcc-13 - skipped -- Detecting C compile features -- Detecting C compile features - done -- Checking whether CXX compiler has -isysroot -- Checking whether CXX compiler has -isysroot - yes -- Checking whether CXX compiler supports OSX deployment target flag -- Checking whether CXX compiler supports OSX deployment target flag - yes -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /opt/homebrew/bin/g++-13 - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Maximum k-mer length is: 31 -- To change the maximum k-mer length, use the option -DMAX_KMER_LENGTH=n -- (n can be up to 255) -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE -- Found OpenMP_C: -fopenmp (found version "4.5") -- Found OpenMP_CXX: -fopenmp (found version "4.5") -- Found OpenMP: TRUE (found version "4.5") -- Found Git: /usr/bin/git (found version "2.39.3 (Apple Git-145)") -- Submodule update -- Themisto version: v3.2.1-3-ge7e8a8c -- Submodule update -- SBWT version: v3.2.1-3-ge7e8a8c -- Maximum k-mer length is: 31 -- To change the maximum k-mer length, use the option -DMAX_KMER_LENGTH=n -- (n can be up to 255) CMake Deprecation Warning at SBWT/sdsl-lite/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

-- Compiler is recent enough to support C++14. -- Performing Test HAVE_GCC_STD=C14WALLWEXTRADNDEBUG -- Performing Test HAVE_GCC_STD=C14WALLWEXTRADNDEBUG - Success -- Performing Test HAVE_GCC_O3FFAST_MATH__FUNROLL_LOOPS -- Performing Test HAVE_GCC_O3FFAST_MATH__FUNROLL_LOOPS - Success -- Performing Test HAVE_CXA_DEMANGLE -- Performing Test HAVE_CXA_DEMANGLE - Success -- Compiler supports DEMANGLE. -- Performing Test HAVE_GCC_DHAVE_CXA_DEMANGLE -- Performing Test HAVE_GCC_DHAVE_CXA_DEMANGLE - Success git found: /usr/bin/git CMake Deprecation Warning at SBWT/sdsl-lite/external/libdivsufsort/CMakeLists.txt:2 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

CMake Warning (dev) at SBWT/sdsl-lite/external/libdivsufsort/CMakeLists.txt:7 (project): Policy CMP0048 is not set: project() command manages VERSION variables. Run "cmake --help-policy CMP0048" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

The following variable(s) would be set to empty:

PROJECT_VERSION
PROJECT_VERSION_MAJOR
PROJECT_VERSION_MINOR
PROJECT_VERSION_PATCH

This warning is for project developers. Use -Wno-dev to suppress it.

-- Performing Test HAVE_GCC_WALL -- Performing Test HAVE_GCC_WALL - Success -- Performing Test HAVE_GCC_FOMIT_FRAME_POINTER -- Performing Test HAVE_GCC_FOMIT_FRAME_POINTER - Success -- Looking for inttypes.h -- Looking for inttypes.h - found -- Looking for memory.h -- Looking for memory.h - found -- Looking for stddef.h -- Looking for stddef.h - found -- Looking for stdint.h -- Looking for stdint.h - found -- Looking for stdlib.h -- Looking for stdlib.h - found -- Looking for string.h -- Looking for string.h - found -- Looking for strings.h -- Looking for strings.h - found -- Looking for sys/types.h -- Looking for sys/types.h - found -- Performing Test HAVE_INLINE -- Performing Test HAVE_INLINE - Success -- Performing Test HAVEINLINE -- Performing Test HAVEINLINE - Success -- Performing Test HAVE_INLINE_ -- Performing Test HAVEINLINE - Success -- Performing Test HAVE___DECLSPECDLLEXPORT -- Performing Test HAVE_DECLSPECDLLEXPORT - Failed -- Performing Test HAVE_DECLSPECDLLIMPORT -- Performing Test HAVE_DECLSPECDLLIMPORT - Failed -- Check size of uint8_t -- Check size of uint8_t - done -- Check size of int32_t -- Check size of int32_t - done -- Looking for PRId32 -- Looking for PRId32 - found -- Check size of int64_t -- Check size of int64_t - done -- Looking for PRId64 -- Looking for PRId64 - found -- Looking for C++ include cstdio -- Looking for C++ include cstdio - found -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) CMake Deprecation Warning at SBWT/KMC/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

-- Submodule update -- Found ZLIB: /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/lib/libz.tbd (found version "1.2.12") CMake Deprecation Warning at build/_deps/roaring-src/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

CMake Deprecation Warning at build/_deps/roaring-src/tools/cmake/FindCTargets.cmake:2 (cmake_policy): Compatibility with CMake < 3.5 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions. Call Stack (most recent call first): build/_deps/roaring-src/CMakeLists.txt:42 (find_package)

-- BENCHMARK_DATA_DIR: /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/benchmarks/realdata/ -- TEST_DATA_DIR: /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/tests/testdata/ -- Building a static library. -- ROARING_LIB_TYPE: STATIC -- Library output directory (does not apply to Visual Studio): /Users/rohan/Bioinformatics/themisto/build -- CMAKE_SYSTEM_PROCESSOR: arm64 -- CMAKE_BUILD_TYPE: Release -- ROARING_DISABLE_X64: OFF -- ROARING_DISABLE_AVX: ON -- ROARING_DISABLE_NEON: OFF -- ROARING_DISABLE_NATIVE: ON -- ROARING_ARCH: native -- ROARING_BUILD_STATIC: ON -- ROARING_LINK_STATIC: OFF -- ROARING_BUILD_LTO: OFF -- ROARING_SANITIZE: OFF -- CMAKE_C_COMPILER: /opt/homebrew/bin/gcc-13 -- CMAKE_C_FLAGS: -std=c11 -fPIC -DDISABLEAVX -Wall -Wextra -Wsign-compare -Wshadow -Wwrite-strings -Wpointer-arith -Winit-self
-- CMAKE_C_FLAGS_DEBUG: -ggdb -- CMAKE_C_FLAGS_RELEASE: -O3 -- Configuring done (11.8s) -- Generating done (0.1s) -- Build files have been written to: /Users/rohan/Bioinformatics/themisto/build $ build % make [ 0%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/array_util.c.o [ 1%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/bitset_util.c.o [ 2%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/containers/array.c.o /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/array.c: In function 'array_container_shrink_to_fit': /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/array.c:90:31: warning: pointer 'oldarray' may be used after 'realloc' [-Wuse-after-free] 90
if (src->array == NULL) free(oldarray); // should never happen? ^~~~~~ /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/array.c:89:21: note: call to 'realloc' here 89 (uint16_t )realloc(oldarray, src->capacity sizeof(uint16_t)); ^~~~~~~~~~~ /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/array.c: In function 'array_container_grow': /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/array.c:127:39: warning: pointer 'array' may be used after 'realloc' [-Wuse-after-free] 127 if (container->array == NULL) free(array); ^~~ /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/array.c:126:25: note: call to 'realloc' here 126 (uint16_t )realloc(array, new_capacity sizeof(uint16_t)); ^~~~~~~~~~~ [ 3%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/containers/bitset.c.o [ 3%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/containers/containers.c.o [ 4%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/containers/convert.c.o [ 5%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/containers/mixed_intersection.c.o [ 6%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/containers/mixed_union.c.o [ 6%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/containers/mixed_equal.c.o [ 7%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/containers/mixed_subset.c.o [ 8%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/containers/mixed_negation.c.o [ 9%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/containers/mixed_xor.c.o [ 10%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/containers/mixed_andnot.c.o [ 10%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/containers/run.c.o /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/run.c: In function 'run_container_shrink_to_fit': /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/run.c:94:28: warning: pointer 'oldruns' may be used after 'realloc' [-Wuse-after-free] 94 if (src->runs == NULL) free(oldruns); // should never happen? ^~~~~ /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/run.c:93:28: note: call to 'realloc' here 93 src->runs = (rle16_t )realloc(oldruns, src->capacity sizeof(rle16_t)); ^~~~~~~~~~~~~ /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/run.c: In function 'run_container_grow': /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/run.c:134:32: warning: pointer 'oldruns' may be used after 'realloc' [-Wuse-after-free] 134 if (run->runs == NULL) free(oldruns); ^~~~~ /Users/rohan/Bioinformatics/themisto/build/_deps/roaring-src/src/containers/run.c:133:24: note: call to 'realloc' here 133 (rle16_t )realloc(oldruns, run->capacity sizeof(rle16_t)); ^~~~~~~~~~~~~ [ 11%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/roaring.c.o [ 12%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/roaring_priority_queue.c.o [ 13%] Building C object _deps/roaring-build/src/CMakeFiles/roaring.dir/roaring_array.c.o [ 13%] Linking C static library ../../../lib/libroaring.a [ 13%] Built target roaring Compiling proc-macro2 v1.0.79 Compiling unicode-ident v1.0.12 Compiling libc v0.2.153 Compiling autocfg v1.2.0 Compiling cfg-if v1.0.0 Compiling cc v1.0.90 Compiling version_check v0.9.4 Compiling serde v1.0.197 Compiling libm v0.2.8 Compiling memchr v2.7.2 Compiling syn v1.0.109 Compiling hashbrown v0.14.3 Compiling crossbeam-utils v0.8.19 Compiling num-traits v0.2.18 Compiling ppv-lite86 v0.2.17 Compiling once_cell v1.19.0 Compiling lazy_static v1.4.0 Compiling lock_api v0.4.11 Compiling parking_lot_core v0.9.9 Compiling itoa v1.0.11 Compiling smallvec v1.13.2 Compiling either v1.10.0 Compiling scopeguard v1.2.0 Compiling thiserror v1.0.58 Compiling adler v1.0.2 Compiling proc-macro2 v0.4.30 Compiling miniz_oxide v0.7.2 Compiling quote v1.0.35 Compiling syn v2.0.58 Compiling getrandom v0.2.12 Compiling rand_core v0.6.4 Compiling crossbeam-epoch v0.9.18 Compiling rand_chacha v0.3.1 Compiling backtrace v0.3.71 Compiling rand v0.8.5 Compiling gimli v0.28.1 Compiling ryu v1.0.17 Compiling byteorder v1.5.0 Compiling unicode-xid v0.1.0 Compiling crossbeam-deque v0.8.5 Compiling parking_lot v0.12.1 Compiling object v0.32.2 Compiling proc-macro-error-attr v1.0.4 Compiling rustc-demangle v0.1.23 Compiling syn v0.15.44 Compiling quote v0.6.13 Compiling lz4-sys v1.9.4 Compiling proc-macro-error v1.0.4 Compiling ahash v0.8.11 Compiling rayon-core v1.12.1 Compiling crossbeam-channel v0.5.12 Compiling crossbeam-queue v0.3.11 Compiling aho-corasick v1.1.3 Compiling typenum v1.17.0 Compiling addr2line v0.21.0 Compiling regex-syntax v0.8.3 Compiling bytesize v1.3.0 Compiling zerocopy v0.7.32 Compiling json v0.12.4 Compiling serde_json v1.0.115 Compiling mt-debug-counters v0.1.3 (/Users/rohan/Bioinformatics/themisto/ggcat/libs-crates/mt-debug-counters-rs) Compiling desse-derive v0.2.1 Compiling crossbeam v0.8.4 Compiling nightly-quirks v0.1.2 (/Users/rohan/Bioinformatics/themisto/ggcat/libs-crates/nightly-quirks-rs) Compiling filebuffer v0.4.0 Compiling serde_derive v1.0.197 Compiling thiserror-impl v1.0.58 Compiling tokio-macros v2.2.0 Compiling regex-automata v0.4.6 Compiling num_cpus v1.16.0 Compiling pin-project-lite v0.2.14 Compiling bytemuck v1.15.0 Compiling tokio v1.37.0 Compiling lz4 v1.24.0 Compiling rayon v1.10.0 Compiling desse v0.2.1 Compiling replace_with v0.1.7 Compiling unchecked-index v0.2.2 Compiling crc32fast v1.4.0 Compiling unicode-width v0.1.11 Compiling unicode-segmentation v1.11.0 Compiling textwrap v0.11.0 Compiling heck v0.3.3 Compiling atty v0.2.14 Compiling bitflags v1.3.2 Compiling ansi_term v0.12.1 Compiling strsim v0.8.0 Compiling structopt-derive v0.4.18 Compiling flate2 v1.0.28 Compiling hashbrown v0.13.2 Compiling static_assertions v1.1.0 Compiling bstr v1.9.1 Compiling itertools v0.10.5 Compiling matrixmultiply v0.3.8 Compiling paste v1.0.14 Compiling equivalent v1.0.1 Compiling indexmap v2.2.6 Compiling safe_arch v0.7.1 Compiling num-complex v0.4.5 Compiling num-integer v0.1.46 Compiling vec_map v0.8.2 Compiling dashmap v5.5.3 Compiling bincode v1.3.3 Compiling clap v2.34.0 Compiling regex v1.10.4 Compiling num-rational v0.4.1 Compiling rustversion v1.0.14 Compiling fixedbitset v0.4.2 Compiling parallel-processor v0.1.8 (/Users/rohan/Bioinformatics/themisto/ggcat/libs-crates/parallel-processor-rs) Compiling rawpointer v0.2.1 Compiling semver v0.1.20 Compiling rustc_version v0.1.7 Compiling petgraph v0.6.4 Compiling wide v0.7.15 warning: struct RwLockIterator is never constructed --> libs-crates/parallel-processor-rs/src/memory_fs/file/internal.rs:43:8
43 struct RwLockIterator<'a, A, B, I: Iterator> {
^^^^^^^^^^^^^^

= note: #[warn(dead_code)] on by default

warning: call to .deref() on a reference in this situation does nothing --> libs-crates/parallel-processor-rs/src/memory_fs/file/writer.rs:57:60 57 ... file_read.get_underlying_file().deref() ^^^^^^^^
= note: the type UnderlyingFile does not implement Deref, so calling deref on &UnderlyingFile copies the reference, which does not do anything and can be removed = note: #[warn(noop_method_call)] on by default help: remove this redundant call 57 - file_read.get_underlying_file().deref() 57 + file_read.get_underlying_file()
help: if you meant to clone UnderlyingFile, implement Clone for it --> libs-crates/parallel-processor-rs/src/memory_fs/file/internal.rs:107:1 107+ #[derive(Clone)] 108 pub enum UnderlyingFile {
warning: call to .deref() on a reference in this situation does nothing --> libs-crates/parallel-processor-rs/src/execution_manager/execution_context.rs:212:22 212 .unwrap() __^ 213 .deref() ____^
= note: the type `PacketsPoolStrategy<E>` does not implement `Deref`, so calling `deref` on `&PacketsPoolStrategy<E>` copies the reference, which does not do anything and can be removed
help: remove this redundant call 212 - .unwrap() 213 - .deref() 212 + .unwrap()
help: if you meant to clone PacketsPoolStrategy<E>, implement Clone for it 27 + #[derive(Clone)] 28 pub(crate) enum PacketsPoolStrategy {
Compiling approx v0.5.1 Compiling csv-core v0.1.11 Compiling dynamic-dispatch-proc-macro v0.4.2 (/Users/rohan/Bioinformatics/themisto/ggcat/libs-crates/dynamic-dispatch-rs/dynamic-dispatch-proc-macro) Compiling ggcat_config v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/config) Compiling ggcat_utils v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/utils) Compiling traitsequence v1.1.0 Compiling radium v0.7.0 Compiling feature-probe v0.1.1 Compiling structopt v0.3.26 Compiling dynamic-dispatch v0.4.3 (/Users/rohan/Bioinformatics/themisto/ggcat/libs-crates/dynamic-dispatch-rs) Compiling streaming-libdeflate-rs v0.1.5 (/Users/rohan/Bioinformatics/themisto/ggcat/libs-crates/streaming-libdeflate-rs) Compiling ggcat_hashes v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/hashes) Compiling bv v0.11.1 Compiling simba v0.6.0 Compiling ggcat_structs v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/structs) Compiling csv v1.3.0 Compiling ggcat_io v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/io) warning: the item FromIterator is imported redundantly --> crates/io/src/compressed_read.rs:5:5 5 use std::iter::FromIterator; ^^^^^^^^^^^^^^^^^^^^^^^ --> /rustc/88c2f4f5f50ace5ddc7655ea311435104d3659bd/library/std/src/prelude/mod.rs:148:13

= note: the item FromIterator is already defined here | = note: #[warn(unused_imports)] on by default

Compiling newtype_derive v0.1.6 Compiling roaring v0.10.3 Compiling ggcat_minimizer_bucketing v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/minimizer_bucketing) Compiling nalgebra-macros v0.1.0 Compiling rand_distr v0.4.3 warning: ggcat_io (lib) generated 1 warning Compiling atoi v2.0.0 Compiling thread_local v1.1.8 Compiling anyhow v1.0.81 Compiling tap v1.0.1 Compiling bitvector v0.1.5 Compiling siphasher v0.3.11 Compiling ref-cast v1.0.22 Compiling heck v0.4.1 Compiling utf8parse v0.2.1 Compiling instrumenter-proc-macro v0.1.1 (/Users/rohan/Bioinformatics/themisto/ggcat/libs-crates/instrumenter-rs/instrumenter-proc-macro-rs) Compiling anstyle-parse v0.2.3 Compiling strum_macros v0.25.3 Compiling instrumenter v0.1.2 (/Users/rohan/Bioinformatics/themisto/ggcat/libs-crates/instrumenter-rs) Compiling ggcat_colors v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/colors) Compiling traitgraph v2.2.0 warning: creating a mutable reference to mutable static is discouraged --> crates/colors/src/storage/run_length.rs:135:52 135 ColorIndexSerializer::serialize_colors(&mut TEMP_COLOR_BUFFER, colors); ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
= note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
= note: this will be a hard error in the 2024 edition
= note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
= note: `#[warn(static_mut_refs)]` on by default

help: use addr_of_mut! instead to create a raw pointer | 135 | ColorIndexSerializer::serialize_colors(addr_of_mut!(TEMP_COLOR_BUFFER), colors); | ~~~~~~~

Compiling wyz v0.5.1 Compiling enum-map-derive v0.17.0 Compiling ref-cast-impl v1.0.22 Compiling derive-new v0.5.9 Compiling error-chain v0.12.4 Compiling anstyle v1.0.6 Compiling powerfmt v0.2.0 Compiling colorchoice v1.0.0 Compiling time-core v0.1.2 Compiling anstyle-query v1.0.2 Compiling num-conv v0.1.0 Compiling bit-vec v0.6.3 Compiling funty v2.0.0 Compiling time-macros v0.2.17 Compiling bit-set v0.5.3 Compiling anstream v0.6.13 Compiling bitvec v1.0.1 Compiling nalgebra v0.29.0 Compiling deranged v0.3.11 Compiling bio-types v1.0.1 Compiling enum-map v2.7.3 warning: ggcat_colors (lib) generated 1 warning Compiling traitgraph-algo v5.4.0 Compiling ggcat_kmers_transform v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/kmers_transform) Compiling ndarray v0.15.6 warning: parallel-processor (lib) generated 3 warnings (run cargo fix --lib -p parallel-processor to apply 2 suggestions) Compiling multimap v0.9.1 Compiling fxhash v0.2.1 Compiling itertools-num v0.1.3 Compiling ordered-float v3.9.2 Compiling num_threads v0.1.7 Compiling itertools v0.11.0 Compiling link-cplusplus v1.0.9 Compiling strsim v0.11.1 Compiling editdistancek v1.0.2 Compiling scratch v1.0.7 Compiling log v0.4.21 Compiling custom_derive v0.1.7 Compiling strum v0.25.0 Compiling heck v0.5.0 Compiling bytecount v0.6.7 Compiling triple_accel v0.4.0 Compiling clap_lex v0.7.0 Compiling clap_derive v4.5.4 Compiling time v0.3.34 Compiling clap_builder v4.5.2 Compiling compact-genome v1.3.1 Compiling bigraph v2.1.1 Compiling termcolor v1.4.1 Compiling cxxbridge-flags v1.0.120 Compiling disjoint-sets v0.4.2 Compiling codespan-reporting v0.11.1 Compiling simplelog v0.12.2 Compiling cxx v1.0.120 Compiling ggcat_assembler_minimizer_bucketing v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/assembler_minimizer_bucketing) Compiling memory-stats v1.1.0 Compiling permutation v0.4.1 Compiling atomic-counter v1.0.1 Compiling cxx-build v1.0.120 Compiling ggcat_assembler_kmers_merge v0.1.0 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/assembler_kmers_merge) Compiling clap v4.5.4 Compiling fs_extra v1.3.0 Compiling ggcat_dumper v0.1.1 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/dumper) warning: the feature slice_group_by has been stable since 1.77.0 and no longer requires an attribute to enable --> crates/dumper/src/lib.rs:1:12 1 #![feature(slice_group_by)] ^^^^^^^^^^^^^^

= note: #[warn(stable_features)] on by default

Compiling ggcat_querier v0.1.1 (/Users/rohan/Bioinformatics/themisto/ggcat/crates/querier) error[E0599]: no method named group_by_mut found for struct Vec<(CompressedReadIndipendent, DumperKmersReferenceData<u32>)> in the current scope --> crates/dumper/src/pipeline/dumper_colormap_reading.rs:99:48 | 99 | for unitigs_by_color in temp_sequences.group_by_mut(|a, b| a.1 == b.1) { | ^^^^^^^^^^^^ method not found in Vec<(CompressedReadIndipendent, DumperKmersReferenceData<u32>)>

For more information about this error, try rustc --explain E0599. warning: ggcat_dumper (lib) generated 1 warning error: could not compile ggcat_dumper (lib) due to 1 previous error; 1 warning emitted warning: build failed, waiting for other jobs to finish... warning: the feature slice_group_by has been stable since 1.77.0 and no longer requires an attribute to enable --> crates/querier/src/lib.rs:1:12 1 #![feature(slice_group_by)] ^^^^^^^^^^^^^^

= note: #[warn(stable_features)] on by default

error[E0599]: no method named group_by found for struct Vec<(u32, u64)> in the current scope --> crates/querier/src/pipeline/colored_query_output.rs:213:53 | 213 | for (i, qc) in temp_colors_list.group_by(|a, b| a.0 == b.0).enumerate() { | ^^^^^^^^ method not found in Vec<(u32, u64)>

error[E0599]: no method named group_by_mut found for struct Vec<(CounterEntry<u32>, u32)> in the current scope --> crates/querier/src/pipeline/colormap_reading.rs:104:46 | 104 | for queries_by_color in counters_vec.group_by_mut(|a, b| a.1 == b.1) { | ^^^^^^^^^^^^ method not found in Vec<(CounterEntry<u32>, u32)>

error[E0609]: no field query_index on type &_ --> crates/querier/src/pipeline/colormap_reading.rs:135:64 | 135 | temp_queries_buffer.sort_unstable_by_key(|c| c.query_index); | ^^^^^^^^^^^ unknown field

error[E0599]: no method named group_by_mut found for struct Vec<(CounterEntry<<CX as ColorsManager>::SingleKmerColorDataType>, <CX as ColorsManager>::SingleKmerColorDataType)> in the current scope --> crates/querier/src/pipeline/counters_sorting.rs:193:43 | 193 | for query_results in counters_vec.group_by_mut(|a, b| a.0.query_index == b.0.query_index) { | ^^^^^^^^^^^^ method not found in Vec<(CounterEntry<<CX as ColorsManager>::SingleKmerColorDataType>, <CX as ColorsManager>::SingleKmerColorDataType)>

Some errors have detailed explanations: E0599, E0609. For more information about an error, try rustc --explain E0599. warning: ggcat_querier (lib) generated 1 warning error: could not compile ggcat_querier (lib) due to 4 previous errors; 1 warning emitted make[3]: [lib/libggcat_cpp_bindings.a] Error 101 make[2]: [CMakeFiles/ggcat_cpp_api] Error 2 make[1]: [CMakeFiles/ggcat_cpp_api.dir/all] Error 2 make: [all] Error 2

jnalanko commented 5 months ago

OS X binaries are now available with the latest version: https://github.com/algbio/themisto/releases/tag/v3.2.2

rohanmaddamsetti commented 5 months ago

Hello, thanks for releasing MacOS binaries!

Unfortunately, neither binary is working for me. I am running MacOS Sonoma 14.2.1

With the x86_64 binary I get this error message: dyld[87605]: Symbol not found: ZNKSt7cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcmm Referenced from: <8231E0B4-961C-344E-B6E9-A4EA2E8147C0> /Users/rohan/Bioinformatics/themisto-v3.2.2-x86_64-apple-darwin22/themisto Expected in: /usr/lib/libstdc++.6.dylib zsh: abort themisto

With the aarch64 binary I get: dyld[87932]: Symbol not found: ZNKSt7cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcmm Referenced from: <3DF1F03A-9C5A-351F-A5D3-D88DF3543D61> /Users/rohan/Bioinformatics/themisto-v3.2.2-aarch64-apple-darwin22/themisto Expected in: /usr/lib/libstdc++.6.dylib zsh: abort /Users/rohan/Bioinformatics/themisto-v3.2.2-aarch64-apple-darwin22/themisto

tmaklin commented 5 months ago

Hi, I'm looking into this; it looks like some of the dependencies are not built with the correct compiler flags..

iosfwd commented 5 months ago

@tmaklin The toolchain file for arm64 has the following definition: https://github.com/algbio/themisto/blob/master/deploy/macOS/arm64-toolchain_GNU.cmake

set(CMAKE_SYSTEM_PROCESSOR X86)

while CMake documentation says: https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_PROCESSOR.html

When cross-compiling, a CMAKE_TOOLCHAIN_FILE should set the CMAKE_SYSTEMPROCESSOR variable to match target architecture that it specifies (via [CMAKE_COMPILER](https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html#variable:CMAKE_%3CLANG%3E_COMPILER) and perhaps CMAKE__COMPILER_TARGET).

tmaklin commented 5 months ago

It's probably not the toolchain file as the x86 binary doesn't work on my x86 mac either but it might affect the arm64 macs I suppose. Though I have used the same approach to cross compile other C++ projects for arm64 macs and they seem to work (see eg https://github.com/PROBIC/mSWEEP/releases) (I don't have an arm64 mac to test these myself tho).

iosfwd commented 5 months ago

@tmaklin

It's probably not the toolchain file as the x86 binary doesn't work on my x86 mac either but it might affect the arm64 macs I suppose. Though I have used the same approach to cross compile other C++ projects for arm64 macs and they seem to work (see eg https://github.com/PROBIC/mSWEEP/releases) (I don't have an arm64 mac to test these myself tho).

Your arm64 mac toolchain used in that project has: https://github.com/tmaklin/biobins/blob/master/macOS/arm64-toolchain.cmake

set(CMAKE_SYSTEM_PROCESSOR ARM64)

rather than:

set(CMAKE_SYSTEM_PROCESSOR X86)

like in Themisto's toolchain.

Themisto arm64 binary doesn't work on my arm64 Mac, while arm64 binary from your project worked. As a side note, your project's arm64 binary seems to actually be an universal binary, linking to both x86 libraries and arm64 libraries:

otool -L mSWEEP 
mSWEEP (architecture x86_64):
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
    /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.8)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.36.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
mSWEEP (architecture arm64):
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
    /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.8)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.36.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
tmaklin commented 5 months ago

I think I figured it out -- KMC was using static linking for everything which messed up the compiled library, and the whole project additionally needs to link the GCC C++ library statically because it's not available on macs. New scripts at https://github.com/algbio/themisto/tree/update-macos-build Also changed CMAKE_SYSTEM_PROCESSOR to ARM64, thanks for that.

New mac binaries are available here https://github.com/algbio/themisto/releases/tag/v3.2.2 @iosfwd can you check if the aarch64 binary still gives the linker error? The x86 binary does not do that anymore on my machine.

iosfwd commented 5 months ago

I think I figured it out -- KMC was using static linking for everything which messed up the compiled library, and the whole project additionally needs to link the GCC C++ library statically because it's not available on macs. New scripts at https://github.com/algbio/themisto/tree/update-macos-build Also changed CMAKE_SYSTEM_PROCESSOR to ARM64, thanks for that.

New mac binaries are available here https://github.com/algbio/themisto/releases/tag/v3.2.2 @iosfwd can you check if the aarch64 binary still gives the linker error? The x86 binary does not do that anymore on my machine.

New aarch64 binary works on my machine now. @tmaklin

tmaklin commented 5 months ago

Thanks! @rohanmaddamsetti this should hopefully be fixed now.

rohanmaddamsetti commented 5 months ago

Both MacOS binaries work on my computer now. Thanks guys!

On Wed, Jun 12, 2024 at 7:25 AM Tommi Mäklin @.***> wrote:

Thanks! @rohanmaddamsetti https://github.com/rohanmaddamsetti this should hopefully be fixed now.

— Reply to this email directly, view it on GitHub https://github.com/algbio/themisto/issues/35#issuecomment-2162767172, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQ26LGJTK5FHUBBOS3SBKLZHAVY7AVCNFSM6AAAAABFULVGUOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRSG43DOMJXGI . You are receiving this because you were mentioned.Message ID: @.***>

jnalanko commented 5 months ago

Really glad to hear! Thank you so much @tmaklin and @iosfwd for all the work! Much appreciated.

Closing the issue now.