From: <bar...@ar...> - 2015-02-17 07:12:28
|
Hello, yes I manually changed the flags -Mno-omit-frame-pointer to -Mnoframe because that is what PGI told me was their equivalent flag. However reading through the man pages I think it is actually -Mframe. I tried this one, too, but no success (same error). I now tried building only in dbg mode and like that it seems to compile and run through all tests without errors. I am going to run the other tests through a debugger once I can update my PGI license and use the debugger. Sincerely On Feb 13, 2015, at 4:08 PM, John Peterson <jwp...@gm...<mailto:jwp...@gm...>> wrote: On Fri, Feb 13, 2015 at 5:10 AM, <bar...@ar...<mailto:bar...@ar...>> wrote: Hello, I am using PGI compilers 15.1 on a Ubuntu 14.04 system. I would like to install the MOOSE framework. In order to do so I am first trying to install libMesh. The configuration and compilation steps seem to run fine and they finish. But when typing 'make check' there is an error at a certain step. When I compile with METHODS='opt oprof dbg' I get the following error in make check: make[3]: `example-dbg' is up to date. make[3]: `example-opt' is up to date. CXXLD example-oprof ../../../.libs/libmesh_oprof.a(libmesh_oprof_la-tree_node.o): In function `.st50665': tree_node.C:(.gnu.linkonce.r._ZNK7libMesh8TreeNodeILj2EE19create_bounding_boxEj[_ZNK7libMesh8TreeNodeILj2EE19create_bounding_boxEj]+0x0): undefined reference to `.LB14852' make[3]: *** [example-oprof] Error 2 This error appears to be related to explicit template instantiation of the TreeNode<T> class, create_bounding_box() is one of its member functions. According to demangler.com<http://demangler.com>, specifically the binary and quad-tree instantiations: > libMesh::TreeNode<2u>::create_bounding_box(unsigned int) const > libMesh::TreeNode<4u>::create_bounding_box(unsigned int) const This is a fairly straightforward use of explicit instantiation, so I think the code is correct. The only real difference between opt and oprof modes is that, in oprof mode, we pass "-g -fno-omit-frame-pointer" to the compiler. As per your email to the moose-users list, you mentioned changing this flag: > I have to change the flags '-fno-omit-frame-pointer' to the PGI-flag '-Mnoframe' Did you manually remove -fno-omit-frame-pointer from the flags in opt mode as well as adding -Mnoframe? When I compile with METHODS='opt dbg' I get the following message in make check: *************************************************************** * Running Example miscellaneous_ex8: * example-opt *************************************************************** Generating 100 point cloud...done bounding box is (x,y,z)=( 0.11, 0.34, 0.19) (x,y,z)=( 9.96, 9.65, 9.96) bounding box is (x,y,z)=( 0.11, 0.34, 0.19) (x,y,z)=( 9.96, 9.65, 9.96) r_bbox = 16.7078 rbf(r_bbox/2) = 0.1875 [0]PETSC ERROR: ------------------------------------------------------------------------ [0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range This is the nanoflann example. nanoflann is a heavily-templated contrib library. I don't know too much about it, but we've never had issues with this example on any other compilers so I again have to suspect PGI. As Paul mentioned, we would need a stack trace in debug mode from the same example to be able to say more... -- John |