diff --git a/biology/seqwish/Makefile b/biology/seqwish/Makefile index a00135305a4b..0bbf8c64b169 100644 --- a/biology/seqwish/Makefile +++ b/biology/seqwish/Makefile @@ -1,30 +1,31 @@ PORTNAME= seqwish DISTVERSIONPREFIX= v DISTVERSION= 0.7.11 +PORTREVISION= 1 CATEGORIES= biology MASTER_SITES= https://github.com/ekg/seqwish/releases/download/v${DISTVERSION}/ MAINTAINER= yuri@FreeBSD.org COMMENT= Alignment to variation graph inducer WWW= https://github.com/ekg/seqwish LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE BROKEN_FreeBSD_15= compilation fails with clang-19, see https://github.com/ekg/seqwish/issues/126 BROKEN_i386= compilation fails: error: use of undeclared identifier '_pdep_u64' USES= cmake:noninja compiler:c++14-lang -#CMAKE_ARGS= -DEXTRA_FLAGS="" # disable -march=native ; this causes the link failure: undefined symbol: __sync_val_compare_and_swap_16, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274927 +CMAKE_ARGS= -DEXTRA_FLAGS="" # disable -march=native PLIST_FILES= bin/${PORTNAME} OPTIONS_DEFINE= OPENMP OPTIONS_DEFAULT= OPENMP OPENMP_CMAKE_BOOL= USE_OPENMP OPENMP_CXXFLAGS= -fopenmp OPENMP_BROKEN_OFF= https://github.com/ekg/seqwish/issues/114 .include <bsd.port.mk> diff --git a/biology/seqwish/files/patch-deps_paryfor_paryfor.hpp b/biology/seqwish/files/patch-deps_paryfor_paryfor.hpp new file mode 100644 index 000000000000..c8a0fc7b928d --- /dev/null +++ b/biology/seqwish/files/patch-deps_paryfor_paryfor.hpp @@ -0,0 +1,25 @@ +--- deps/paryfor/paryfor.hpp.orig 2024-10-15 18:25:21 UTC ++++ deps/paryfor/paryfor.hpp +@@ -51,7 +51,22 @@ static inline void spin_loop_pause() noexcept { + } + } // namespace atomic_queue + } // namespace paryfor ++#elif defined(__ppc64__) || defined(__powerpc64__) ++namespace paryfor { ++namespace atomic_queue { ++constexpr int CACHE_LINE_SIZE = 128; // TODO: Review that this is the correct value. ++static inline void spin_loop_pause() noexcept { ++ asm volatile("or 31,31,31 # very low priority"); // TODO: Review and benchmark that this is the right instruction. ++} ++} // namespace atomic_queue ++} // namespace paryfor + #else ++namespace paryfor { ++namespace atomic_queue { ++constexpr int CACHE_LINE_SIZE = 64; // TODO: Review that this is the correct value. ++static inline void spin_loop_pause() noexcept {} ++} // namespace atomic_queue ++} // namespace paryfor + #error "Unknown CPU architecture." + #endif +