libgeodecomp icon indicating copy to clipboard operation
libgeodecomp copied to clipboard

libgeodecomp-0.4.0 fails to compile

Open HJarausch opened this issue 5 years ago • 2 comments

I'm working on a Gentoo system. I have libflatarray-0.3.0 installed here. Compilation of ibgeodecomp-0.4.0 fails here with several errors, e.g.

/var/tmp/portage/sci-libs/libgeodecomp-0.4.0/work/libgeodecomp-0.4.0/src/testbed/performancetests/main.cpp:2253:41: error: no matching function for call to 'LibFlatArray::evaluate::evaluate(std::__cxx11::string&)' LibFlatArray::evaluate eval(revision); ^ In file included from /var/tmp/portage/sci-libs/libgeodecomp-0.4.0/work/libgeodecomp-0.4.0/src/testbed/performancetests/main.cpp:22: /usr/include/libflatarray/testbed/evaluate.hpp:21:5: note: candidate: 'LibFlatArray::evaluate::evaluate(const string&, const string&)' evaluate(const std::string& name, const std::string& revision) :


libgeodecomp-0.4.0/src/libgeodecomp/storage/soagrid.h: In instantiation of 'void LibGeoDecomp::SoAGridHelpers::SetContent<CELL, INIT_INTERIOR>::operator()(LibFlatArray::soa_accessor<CELL, DIM_X, DIM_Y, DIM_Z, INDEX>) const [with long int DIM_X = 32; long int DIM_Y = 32; long int DIM_Z = 32; long int INDEX = 0; CELL = JacobiCellStreakUpdate; bool INIT_INTERIOR = true]': /usr/include/libflatarray/api_traits.hpp:106:9: required from 'void LibFlatArray::api_traits::has_default_3d_sizes_uniform::select_size(char*, FUNCTOR&, std::size_t, std::size_t, std::size_t) [with CELL = JacobiCellStreakUpdate; FUNCTOR = LibGeoDecomp::SoAGridHelpers::SetContent<JacobiCellStreakUpdate, true>; std::size_t = long unsigned int]' /usr/include/libflatarray/api_traits.hpp:133:13: required from 'void LibFlatArray::api_traits::select_sizes<CELL, HAS_SIZES>::operator()(char*, FUNCTOR&, std::size_t, std::size_t, std::size_t) [with FUNCTOR = LibGeoDecomp::SoAGridHelpers::SetContent<JacobiCellStreakUpdate, true>; CELL = JacobiCellStreakUpdate; HAS_SIZES = void; std::size_t = long unsigned int]' /usr/include/libflatarray/soa_grid.hpp:135:47: required from 'void LibFlatArray::soa_grid<T, ALLOCATOR, USE_CUDA_FUNCTORS>::callback(FUNCTOR) [with FUNCTOR = LibGeoDecomp::SoAGridHelpers::SetContent<JacobiCellStreakUpdate, true>; T = JacobiCellStreakUpdate; ALLOCATOR = LibFlatArray::aligned_allocator<char, 4096>; bool USE_CUDA_FUNCTORS = false]' libgeodecomp-0.4.0/src/libgeodecomp/storage/soagrid.h:278:9:required from 'LibGeoDecomp::SoAGrid<CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT>::SoAGrid(const LibGeoDecomp::CoordBox<LibGeoDecomp::SoAGrid<CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT>::DIM>&, const CELL&, const CELL&, const LibGeoDecomp::Coord<LibGeoDecomp::SoAGrid<CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT>::DIM>&) [with CELL = JacobiCellStreakUpdate; TOPOLOGY = LibGeoDecomp::TopologiesHelpers::Topology<3, false, false, false>; bool TOPOLOGICALLY_CORRECT = false]' libgeodecomp-0.4.0/src/testbed/performancetests/main.cpp:998:56: required from here libgeodecomp-0.4.0/src/libgeodecomp/storage/soagrid.h:73:32: error: invalid use of member function 'const long int& LibFlatArray::soa_accessor<JacobiCellStreakUpdate, MY_DIM_X, MY_DIM_Y, MY_DIM_Z, INDEX>::index() const [with long int MY_DIM_X = 32; long int MY_DIM_Y = 32; long int MY_DIM_Z = 32; long int INDEX = 0]' (did you forget the '()' ?) accessor.index = ~~~~~~~~~~~~~~~^ z * DIM_X * DIM_Y + ~~~~~~~~~~~~~~~~~~~ y * DIM_X; ~~~~~~~~~


libgeodecomp-0.4.0/src/libgeodecomp/storage/soagrid.h:80:21: error: no pre-increment operator for type ++accessor.index;

HJarausch avatar Mar 22 '19 10:03 HJarausch

Hi,

On Fri, Mar 22, 2019 at 03:00:45AM -0700, HJarausch wrote:

I'm working on a Gentoo system. I have libflatarray-0.3.0 installed here.

Libgeodecomp 0.4.0 requires an older version of libflatarray.

However, libgeodecomp bundles its own version of libflatarray. So if you un-emerge libflatarray everything should be fine.

-- Kurt

shifty91 avatar Mar 23 '19 09:03 shifty91

This problem is fixed in gentoo now (see https://bugs.gentoo.org/681160). Bug can be closed.

shifty91 avatar Jan 25 '20 07:01 shifty91