/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found

Hi,

I’m trying to compile a software on baobab but it crashes with this error message:

/home/brons/T2K/soft_centOS_7/ROOT/v5r34p34n00/Linux-x86_64/bin/rootcint: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by /home/brons/T2K/soft_centOS_7/ROOT/v5r34p34n00/Linux-x86_64/bin/rootcint) /home/brons/T2K/soft_centOS_7/ROOT/v5r34p34n00/Linux-x86_64/bin/rootcint: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20’ not found (required by /home/brons/T2K/soft_centOS_7/ROOT/v5r34p34n00/Linux-x86_64/lib/root/libCint.so.5.34)

Since the compilation was working before the maintenance, I’m wondering if that could be related to some libraries update done during the maintenance.

Thank you for your help,
Stéphanie

Did you try: “module load GCC” ?
If there are two steps to compile, like “cmake, make” or “Autoconf, make”,
You should do all the steps, from the beginning, after you have load GCC (and all modules you need).
I am not sure this is your problem but it might help.
You might also have module versions conflict so you can unload all modules “module purge”, then load them again.

Cheers

Hello Stéphanie,

Are you trying to compile the binary “rootcint”? It seems this binary was compiled elsewhere and requires a more recent version of GLIBCXX than available. We probably never had a newer GLIBCXX version than GLIBCXX_3.4.19.

For information this is the versions we have on Baobab:

[root@login2 ~]# strings /lib64/libstdc++.so.6 | grep LIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19

Best

Hello Joel and Yann,
Thank you for your answers. I could solve the problem. Usually to compile this software, I load the following modules:

module load GCC/4.9.3-2.25 OpenMPI/1.10.2
module load libXpm/3.5.11

(I found that this combination was working, the main problem with this software being that it uses an old version of ROOT, which complicates things…)

Loading this specific GCC version, the GLIBCXX_3.4.20 exists.

brons@login2:~$ strings /opt/ebsofts/GCC/4.9.2/lib64/libstdc++.so.6 | grep LIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20

So it seems that for some reason, the GCC module wasn’t loaded properly at the time I compiled the software. Maybe I reloaded another one on top and the correct one was not activated anymore, I’m not sure what I did…

Thanks again for your help!

Hello,

a small addition: If you compile your software with some modules loaded, you need to load them as well at runtime. If you don’t you’ll have issue like unknown symbols or version not found.

Best

2 posts were split to a new topic: Error with missing glibc