MOOSE compile error -- _Prime_rehash_policy?

451 views
Skip to first unread message

john.m...@uconn.edu

unread,
Jun 23, 2016, 4:40:34 PM6/23/16
to moose-users
Hello,

Been having quite the difficulty getting the framework back on our system after our HPC people changed ourfile system.

We're using the newest intelics/2016.1-full compiler on our cluster.

At linking

Linking Executable /shared/sergelab/projects/moose/test/moose_test-opt...

*** Warning: Linking the executable /shared/sergelab/projects/moose/test/moose_test-opt against the loadable module
*** libmpichf90.so is not portable!
/shared/sergelab/projects/moose/framework/libmoose-opt.so: undefined reference to `std::__detail::_Prime_rehash_policy::_M_need_rehash(unsigned long, unsigned long, unsigned long) const@GLIBCXX_3.4.18'
/shared/sergelab/projects/moose/framework/libmoose-opt.so: undefined reference to `
std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)@GLIBCXX_3.4.15'
/shared/sergelab/projects/moose/test/lib/libmoose_test-opt.so: undefined reference to `std::__detail::_Prime_rehash_policy::_M_next_bkt(unsigned long) const@GLIBCXX_3.4.18'

make
: *** [/shared/sergelab/projects/moose/test/moose_test-opt] Error 1


Any ideas ? I think our support is a bit stumped by this one.

John

Cody Permann

unread,
Jun 23, 2016, 5:08:12 PM6/23/16
to moose-users
Googling a bit reveals that this is part of the hash map implementation. I don't believe we are using any "unordered_maps" yet in MOOSE directly, but we have been using them through libMesh's wrapped versions for a long time. Hash maps were part of the TR1 addition to the C++03 standard and even old compilers usually pick that up just fine. I wonder if now that we are using C++11 we are defaulting to the new "unordered_map" by default in MOOSE and it's not available in some of those older GLIBCXX libraries. 3.4.15 and 3.4.18 are really old. What compiler version are you using?

--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
Visit this group at https://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/e1c1efa9-ad56-45cb-9af9-bfeb07c8a9ef%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

john.m...@uconn.edu

unread,
Jun 24, 2016, 3:03:28 PM6/24/16
to moose-users
We're using gcc 4.8.2

Cody Permann

unread,
Jun 27, 2016, 10:59:36 AM6/27/16
to moose-users
I really don't know how to solve this without hacking away on the affected system. My guess is that trying a different compiler (like Clang) will get you to a solution faster. Also clang is about 50% faster at compiling C++11 and has better error messages than GCC as a bonus.

Cody

Peterson, JW

unread,
Jun 27, 2016, 11:32:30 AM6/27/16
to moose-users
In googling this error message, most of the replies seem to point to a broken compiler toolchain as the culprit -- either mixed up or duplicate installs of GCC are present, and/or the Intel compiler is using the available libstdc++ in an invalid way.

If you have thoroughly clobbered everything in MOOSE and still get this linking error, I think you'll need to get support to install a new compiler or redo this installation.

--
John

John Mangeri

unread,
Jun 27, 2016, 11:39:20 AM6/27/16
to moose...@googlegroups.com
Ah,

Thanks guys. We figured out that intelics was compiled against the RHEL6 gnu compiler, which does not have support for those versions of glibc. Or so I'm told.

--
You received this message because you are subscribed to a topic in the Google Groups "moose-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/moose-users/LYWw_NVkH8s/unsubscribe.
To unsubscribe from this group and all its topics, send an email to moose-users...@googlegroups.com.

Peterson, JW

unread,
Jun 27, 2016, 12:51:45 PM6/27/16
to moose-users
On Mon, Jun 27, 2016 at 9:39 AM, John Mangeri <john.m...@uconn.edu> wrote:
Ah,

Thanks guys. We figured out that intelics was compiled against the RHEL6 gnu compiler, which does not have support for those versions of glibc. Or so I'm told.

So, what is "Intelics"?  At first I thought it was something to do with the Intel...googling didn't turn up much information for me.

RHEL6 was based on GCC 4.4.x, which is no longer supported by MOOSE.  https://access.redhat.com/solutions/19458

If you have any influence over how the system is administered, I'd simply ask them for an up-to-date GCC.  You could then build the relevant supporting packages (PETSc, MPI, etc.) yourself using this new compiler and following Jason's instructions.

--
John

John Mangeri

unread,
Jun 27, 2016, 1:05:03 PM6/27/16
to moose...@googlegroups.com
intelics is some compiler we use (I believe all of the cxx, f90 support, ect is contained within that). I think its called Intel Cluster Studio?

I'm not claiming I understand any of this  :O

--
You received this message because you are subscribed to a topic in the Google Groups "moose-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/moose-users/LYWw_NVkH8s/unsubscribe.
To unsubscribe from this group and all its topics, send an email to moose-users...@googlegroups.com.
Visit this group at https://groups.google.com/group/moose-users.

Peterson, JW

unread,
Jun 27, 2016, 1:24:56 PM6/27/16
to moose-users
On Mon, Jun 27, 2016 at 11:05 AM, John Mangeri <john.m...@uconn.edu> wrote:
intelics is some compiler we use (I believe all of the cxx, f90 support, ect is contained within that). I think its called Intel Cluster Studio?

OK, if it is actually the Intel compiler, then from what we have found, you should only need to have a newer (working) g++ in your PATH in order for the Intel compiler to have C++11 support.  However, you can't go *too* new on the GCC, otherwise the Intel compiler can't actually compile the standard GCC headers.  For Intel 2016, I'd think you would be good with GCC 4.8.x for sure, and possibly with 5.2.x, but you'd just have to try it to be sure.

https://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler
https://software.intel.com/en-us/node/583823

--
John
Reply all
Reply to author
Forward
0 new messages