On Fri, Feb 13, 2015 at 5:10 AM, <[email protected]> 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, 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 ------------------------------------------------------------------------------ Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
