[Bug 274927] Toolchain fails on the __sync_val_compare_and_swap function without -march=native (port biology/seqwish)
Date: Sun, 05 Nov 2023 19:37:00 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274927 Bug ID: 274927 Summary: Toolchain fails on the __sync_val_compare_and_swap function without -march=native (port biology/seqwish) Product: Base System Version: 13.2-STABLE Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: bin Assignee: bugs@FreeBSD.org Reporter: yuri@freebsd.org The port biology/seqwish fails when -march=native is removed. I couldn't reproduce this on a smaller example. Un-commenting CMAKE_ARGS=-DEXTRA_FLAGS="" in the port's makefile causes removal of -march=native in the cmake script, which triggers this build failure: ld: error: undefined symbol: __sync_val_compare_and_swap_16 >>> referenced by transclosure.cpp >>> CMakeFiles/seqwish.dir/src/transclosure.cpp.o:(std::__1::__function::__func<seqwish::compute_transitive_closures(seqwish::seqindex_t const&, mmmulti::iitree<unsigned long, unsigned long>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, mmmulti::iitree<unsigned long, unsigned long>&, mmmulti::iitree<unsigned long, unsigned long>&, unsigned long, unsigned long, unsigned long, bool, unsigned long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>> const&)::$_5, std::__1::allocator<seqwish::compute_transitive_closures(seqwish::seqindex_t const&, mmmulti::iitree<unsigned long, unsigned long>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, mmmulti::iitree<unsigned long, unsigned long>&, mmmulti::iitree<unsigned long, unsigned long>&, unsigned long, unsigned long, unsigned long, bool, unsigned long, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>> const&)::$_5>, void (unsigned long)>::operator()(unsigned long&&)) >>> referenced by transclosure.cpp >>> CMakeFiles/seqwish.dir/src/transclosure.cpp.o:(seqwish::DisjointSets::unite(unsigned long, unsigned long)) >>> referenced by transclosure.cpp >>> CMakeFiles/seqwish.dir/src/transclosure.cpp.o:(seqwish::DisjointSets::unite(unsigned long, unsigned long)) >>> referenced 2 more times c++: error: linker command failed with exit code 1 (use -v to see invocation) -- You are receiving this mail because: You are the assignee for the bug.