ekg / seqwish

alignment to variation graph inducer
MIT License
143 stars 18 forks source link

Compilation issue - ipso::parallel is not recognized #101

Closed subwaystation closed 2 years ago

subwaystation commented 2 years ago

I am having the following issue:

cmake -H. -Bbuild -D CMAKE_BUILD_TYPE=Debug && cmake --build build -- -j 15
-- CMAKE_BUILD_TYPE: Debug
-- Configuring done
-- Generating done
-- Build files have been written to: /home/heumos/seqwish/build
[  7%] Built target iitii
[ 16%] Built target ips4o
[ 21%] Built target atomicqueue
[ 28%] Built target ska
[ 35%] Built target mmmulti
[ 42%] Built target bbhash
[ 56%] Built target gzipreader
[ 56%] Built target sdsl-lite
[ 62%] Built target mio
[ 69%] Built target paryfor
[ 75%] Built target atomicbitvector
[ 82%] Built target tayweeargs
Consolidate compiler generated dependencies of target seqwish
[ 83%] Building CXX object CMakeFiles/seqwish.dir/src/alignments.cpp.o
[ 83%] Building CXX object CMakeFiles/seqwish.dir/src/main.cpp.o
[ 84%] Building CXX object CMakeFiles/seqwish.dir/src/links.cpp.o
[ 85%] Building CXX object CMakeFiles/seqwish.dir/src/compact.cpp.o
[ 87%] Building CXX object CMakeFiles/seqwish.dir/src/gfa.cpp.o
[ 87%] Building CXX object CMakeFiles/seqwish.dir/src/vgp.cpp.o
[ 87%] Building CXX object CMakeFiles/seqwish.dir/src/match.cpp.o
[ 88%] Building CXX object CMakeFiles/seqwish.dir/src/transclosure.cpp.o
In file included from /home/heumos/seqwish/src/gfa.hpp:6,
                 from /home/heumos/seqwish/src/gfa.cpp:1:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp: In member function ‘void mmmulti::iitree<S, T>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp:245:16: error: ‘ips4o::parallel’ has not been declared
  245 |         ips4o::parallel::sort((Interval*)buffer.begin(),
      |                ^~~~~~~~
In file included from /home/heumos/seqwish/src/match.hpp:3,
                 from /home/heumos/seqwish/src/match.cpp:1:
/home/heumos/seqwish/deps/mmmulti/src/mmmultimap.hpp: In member function ‘void mmmulti::map<Key, Value>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmmultimap.hpp:244:16: error: ‘ips4o::parallel’ has not been declared
  244 |         ips4o::parallel::sort((std::pair<Key, Value>*)buffer.begin(),
      |                ^~~~~~~~
In file included from /home/heumos/seqwish/src/vgp.hpp:6,
                 from /home/heumos/seqwish/src/vgp.cpp:1:
/home/heumos/seqwish/deps/mmmulti/src/mmmultimap.hpp: In member function ‘void mmmulti::map<Key, Value>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmmultimap.hpp:244:16: error: ‘ips4o::parallel’ has not been declared
  244 |         ips4o::parallel::sort((std::pair<Key, Value>*)buffer.begin(),
      |                ^~~~~~~~
In file included from /home/heumos/seqwish/src/match.hpp:4:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp: In member function ‘void mmmulti::iitree<S, T>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp:245:16: error: ‘ips4o::parallel’ has not been declared
  245 |         ips4o::parallel::sort((Interval*)buffer.begin(),
      |                ^~~~~~~~
In file included from /home/heumos/seqwish/src/alignments.hpp:11,
                 from /home/heumos/seqwish/src/alignments.cpp:1:
/home/heumos/seqwish/deps/mmmulti/src/mmmultimap.hpp: In member function ‘void mmmulti::map<Key, Value>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmmultimap.hpp:244:16: error: ‘ips4o::parallel’ has not been declared
  244 |         ips4o::parallel::sort((std::pair<Key, Value>*)buffer.begin(),
      |                ^~~~~~~~
In file included from /home/heumos/seqwish/src/alignments.hpp:12:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp: In member function ‘void mmmulti::iitree<S, T>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp:245:16: error: ‘ips4o::parallel’ has not been declared
  245 |         ips4o::parallel::sort((Interval*)buffer.begin(),
      |                ^~~~~~~~
In file included from /home/heumos/seqwish/src/gfa.hpp:7:
/home/heumos/seqwish/deps/mmmulti/src/mmmultiset.hpp: In member function ‘void mmmulti::set<Value>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmmultiset.hpp:187:16: error: ‘ips4o::parallel’ has not been declared
  187 |         ips4o::parallel::sort((Value*)buffer.begin(),
      |                ^~~~~~~~
make[2]: *** [CMakeFiles/seqwish.dir/build.make:202: CMakeFiles/seqwish.dir/src/match.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/heumos/seqwish/src/compact.hpp:7,
                 from /home/heumos/seqwish/src/compact.cpp:1:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp: In member function ‘void mmmulti::iitree<S, T>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp:245:16: error: ‘ips4o::parallel’ has not been declared
  245 |         ips4o::parallel::sort((Interval*)buffer.begin(),
      |                ^~~~~~~~
In file included from /home/heumos/seqwish/src/main.cpp:8:
/home/heumos/seqwish/deps/mmmulti/src/mmmultimap.hpp: In member function ‘void mmmulti::map<Key, Value>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmmultimap.hpp:244:16: error: ‘ips4o::parallel’ has not been declared
  244 |         ips4o::parallel::sort((std::pair<Key, Value>*)buffer.begin(),
      |                ^~~~~~~~
In file included from /home/heumos/seqwish/src/main.cpp:9:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp: In member function ‘void mmmulti::iitree<S, T>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp:245:16: error: ‘ips4o::parallel’ has not been declared
  245 |         ips4o::parallel::sort((Interval*)buffer.begin(),
      |                ^~~~~~~~
In file included from /home/heumos/seqwish/src/compact.cpp:2:
/home/heumos/seqwish/deps/mmmulti/src/mmmultimap.hpp: In member function ‘void mmmulti::map<Key, Value>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmmultimap.hpp:244:16: error: ‘ips4o::parallel’ has not been declared
  244 |         ips4o::parallel::sort((std::pair<Key, Value>*)buffer.begin(),
      |                ^~~~~~~~
In file included from /home/heumos/seqwish/src/transclosure.hpp:13,
                 from /home/heumos/seqwish/src/transclosure.cpp:1:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp: In member function ‘void mmmulti::iitree<S, T>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp:245:16: error: ‘ips4o::parallel’ has not been declared
  245 |         ips4o::parallel::sort((Interval*)buffer.begin(),
      |                ^~~~~~~~
In file included from /home/heumos/seqwish/src/match.hpp:3,
                 from /home/heumos/seqwish/src/transclosure.hpp:15:
/home/heumos/seqwish/deps/mmmulti/src/mmmultimap.hpp: In member function ‘void mmmulti::map<Key, Value>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmmultimap.hpp:244:16: error: ‘ips4o::parallel’ has not been declared
  244 |         ips4o::parallel::sort((std::pair<Key, Value>*)buffer.begin(),
      |                ^~~~~~~~
In file included from /home/heumos/seqwish/src/links.hpp:8,
                 from /home/heumos/seqwish/src/links.cpp:1:
/home/heumos/seqwish/deps/mmmulti/src/mmmultiset.hpp: In member function ‘void mmmulti::set<Value>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmmultiset.hpp:187:16: error: ‘ips4o::parallel’ has not been declared
  187 |         ips4o::parallel::sort((Value*)buffer.begin(),
      |                ^~~~~~~~
In file included from /home/heumos/seqwish/src/links.hpp:9:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp: In member function ‘void mmmulti::iitree<S, T>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmiitree.hpp:245:16: error: ‘ips4o::parallel’ has not been declared
  245 |         ips4o::parallel::sort((Interval*)buffer.begin(),
      |                ^~~~~~~~
/home/heumos/seqwish/src/transclosure.cpp: In function ‘size_t seqwish::compute_transitive_closures(const seqindex_t&, mmmulti::iitree<long unsigned int, long unsigned int>&, const std::string&, mmmulti::iitree<long unsigned int, long unsigned int>&, mmmulti::iitree<long unsigned int, long unsigned int>&, uint64_t, uint64_t, uint64_t, bool, uint64_t, const std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >&)’:
/home/heumos/seqwish/src/transclosure.cpp:537:16: error: ‘ips4o::parallel’ has not been declared
  537 |         ips4o::parallel::sort(dsets.begin(), dsets.end());
      |                ^~~~~~~~
/home/heumos/seqwish/src/transclosure.cpp:567:16: error: ‘ips4o::parallel’ has not been declared
  567 |         ips4o::parallel::sort(dsets_by_min_pos.begin(), dsets_by_min_pos.end());
      |                ^~~~~~~~
/home/heumos/seqwish/src/transclosure.cpp:586:16: error: ‘ips4o::parallel’ has not been declared
  586 |         ips4o::parallel::sort(dsets.begin(), dsets.end());
      |                ^~~~~~~~
make[2]: *** [CMakeFiles/seqwish.dir/build.make:286: CMakeFiles/seqwish.dir/src/vgp.cpp.o] Error 1
make[2]: *** [CMakeFiles/seqwish.dir/build.make:174: CMakeFiles/seqwish.dir/src/alignments.cpp.o] Error 1
In file included from /home/heumos/seqwish/src/links.hpp:8,
                 from /home/heumos/seqwish/src/main.cpp:15:
/home/heumos/seqwish/deps/mmmulti/src/mmmultiset.hpp: In member function ‘void mmmulti::set<Value>::sort(int)’:
/home/heumos/seqwish/deps/mmmulti/src/mmmultiset.hpp:187:16: error: ‘ips4o::parallel’ has not been declared
  187 |         ips4o::parallel::sort((Value*)buffer.begin(),
      |                ^~~~~~~~
make[2]: *** [CMakeFiles/seqwish.dir/build.make:244: CMakeFiles/seqwish.dir/src/compact.cpp.o] Error 1
make[2]: *** [CMakeFiles/seqwish.dir/build.make:230: CMakeFiles/seqwish.dir/src/links.cpp.o] Error 1
make[2]: *** [CMakeFiles/seqwish.dir/build.make:272: CMakeFiles/seqwish.dir/src/gfa.cpp.o] Error 1
make[2]: *** [CMakeFiles/seqwish.dir/build.make:216: CMakeFiles/seqwish.dir/src/transclosure.cpp.o] Error 1
make[2]: *** [CMakeFiles/seqwish.dir/build.make:104: CMakeFiles/seqwish.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:430: CMakeFiles/seqwish.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

With

-- The CXX compiler identification is GNU 12.1.1
-- The C compiler identification is GNU 12.1.1
cmake version 3.24.1

Of note, in a VM with

-- The C compiler identification is GNU 10.3.0
-- The CXX compiler identification is GNU 10.3.0
cmake version 3.23.2

it does compile.

subwaystation commented 2 years ago

Ironically, ipso::parallel is also used in ODGI, but this one I can compile regardless of software versions.

AndreaGuarracino commented 2 years ago

Did the last fix solve the problem for you too?

subwaystation commented 2 years ago

:fire:

Yes, thanks @AndreaGuarracino!