uggrid master does not build on GCC 8
I get an error during linking of libugL
about a missing vtable:
: && /usr/local/opt/gcc@8/bin/g++-8 -std=c++17 -Wall -D_REENTRANT -march=native -fvisibility-inlines-hidden -fvisibility-inlines-hidden -Wa,-q -fdiagnostics-color=always -fdiagnostics-color=always -g0 -O3 -DNDEBUG -ffast-math -funroll-loops -UNDEBUG -dynamiclib -Wl,-headerpad_max_install_names -L/Users/smuething/spack/pkg/darwin-highsierra-x86_64/gcc-8.1.0/hwloc-1.11.9-6nmbvn/lib -o lib/libugL.dylib -install_name @rpath/libugL.dylib dev/CMakeFiles/devices.dir/ugdevices.cc.o low/CMakeFiles/low.dir/ugenv.cc.o low/CMakeFiles/low.dir/heaps.cc.o low/CMakeFiles/low.dir/fifo.cc.o low/CMakeFiles/low.dir/misc.cc.o low/CMakeFiles/low.dir/defaults.cc.o low/CMakeFiles/low.dir/initlow.cc.o low/CMakeFiles/low.dir/fileopen.cc.o low/CMakeFiles/low.dir/ugstruct.cc.o low/CMakeFiles/low.dir/debug.cc.o low/CMakeFiles/low.dir/bio.cc.o low/CMakeFiles/low.dir/scan.cc.o low/CMakeFiles/low.dir/ugtimer.cc.o parallel/ddd/basic/CMakeFiles/basic.dir/io.cc.o parallel/ddd/basic/CMakeFiles/basic.dir/lowcomm.cc.o parallel/ddd/basic/CMakeFiles/basic.dir/notify.cc.o parallel/ddd/basic/CMakeFiles/basic.dir/reduct.cc.o parallel/ddd/basic/CMakeFiles/basic.dir/topo.cc.o parallel/ppif/MPI/CMakeFiles/ppifmpi.dir/ppif.cc.o lib/CMakeFiles/ugL.dir/__/dune/uggrid/parallel/ddd/dddcontext.cc.o lib/CMakeFiles/ugL.dir/__/dune/uggrid/parallel/ppif/ppifcontext.cc.o /Users/smuething/spack/pkg/darwin-highsierra-x86_64/gcc-8.1.0/openmpi-3.0.1-nuzhl2/lib/libmpi.dylib && :
Undefined symbols for architecture x86_64:
"UG::D2::memmgr_FreePMEM(void*)", referenced from:
DDD::NotifyExit(DDD::DDDContext&) in notify.cc.o
DDD::ddd_TopoExit(DDD::DDDContext&) in topo.cc.o
"UG::D2::memmgr_FreeTMEM(void*, int)", referenced from:
DDD::NotifyExit(DDD::DDDContext&) in notify.cc.o
"UG::D2::memmgr_AllocPMEM(unsigned long)", referenced from:
DDD::NotifyInit(DDD::DDDContext&) in notify.cc.o
DDD::ddd_TopoInit(DDD::DDDContext&) in topo.cc.o
"UG::D2::memmgr_AllocTMEM(unsigned long, int)", referenced from:
DDD::NotifyInit(DDD::DDDContext&) in notify.cc.o
"Dune::dwarn", referenced from:
DDD::LC_Connect(DDD::DDDContext&, DDD::Basic::MSG_TYPE*) in lowcomm.cc.o
DDD::DDD_Notify(DDD::DDDContext&) in notify.cc.o
DDD::DDD_GetChannels(DDD::DDDContext&, int) in topo.cc.o
"Dune::Exception::message(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
DDD::LC_NewMsgChunk(char const*, DDD::Basic::MSG_TYPE*) in lowcomm.cc.o
DDD::LC_NewMsgTable(char const*, DDD::Basic::MSG_TYPE*, unsigned long) in lowcomm.cc.o
DDD::LC_Connect(DDD::DDDContext&, DDD::Basic::MSG_TYPE*) in lowcomm.cc.o
DDD::LC_Abort(DDD::DDDContext&, int) in lowcomm.cc.o
DDD::LC_PollRecv(DDD::DDDContext const&) in lowcomm.cc.o
DDD::LC_PollSend(DDD::DDDContext const&) in lowcomm.cc.o
"Dune::Exception::Exception()", referenced from:
DDD::LC_NewMsgChunk(char const*, DDD::Basic::MSG_TYPE*) in lowcomm.cc.o
DDD::LC_NewMsgTable(char const*, DDD::Basic::MSG_TYPE*, unsigned long) in lowcomm.cc.o
DDD::LC_Connect(DDD::DDDContext&, DDD::Basic::MSG_TYPE*) in lowcomm.cc.o
DDD::LC_Abort(DDD::DDDContext&, int) in lowcomm.cc.o
DDD::LC_PollRecv(DDD::DDDContext const&) in lowcomm.cc.o
DDD::LC_PollSend(DDD::DDDContext const&) in lowcomm.cc.o
"typeinfo for Dune::Exception", referenced from:
DDD::LC_NewMsgChunk(char const*, DDD::Basic::MSG_TYPE*) [clone .cold.50] in lowcomm.cc.o
DDD::LC_NewMsgTable(char const*, DDD::Basic::MSG_TYPE*, unsigned long) [clone .cold.51] in lowcomm.cc.o
DDD::LC_Connect(DDD::DDDContext&, DDD::Basic::MSG_TYPE*) [clone .cold.53] in lowcomm.cc.o
DDD::LC_Abort(DDD::DDDContext&, int) [clone .cold.54] in lowcomm.cc.o
DDD::LC_PollRecv(DDD::DDDContext const&) [clone .cold.55] in lowcomm.cc.o
DDD::LC_PollSend(DDD::DDDContext const&) [clone .cold.56] in lowcomm.cc.o
"vtable for Dune::Exception", referenced from:
Dune::Exception::~Exception() in lowcomm.cc.o
DDD::LC_NewMsgChunk(char const*, DDD::Basic::MSG_TYPE*) in lowcomm.cc.o
DDD::LC_NewMsgTable(char const*, DDD::Basic::MSG_TYPE*, unsigned long) in lowcomm.cc.o
DDD::LC_Connect(DDD::DDDContext&, DDD::Basic::MSG_TYPE*) in lowcomm.cc.o
DDD::LC_Abort(DDD::DDDContext&, int) in lowcomm.cc.o
DDD::LC_PollRecv(DDD::DDDContext const&) in lowcomm.cc.o
DDD::LC_PollSend(DDD::DDDContext const&) in lowcomm.cc.o
...
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status