Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmake 3.9.1 seems to have been built with too new libstdc++ #6529

Closed
ezyang opened this issue Oct 9, 2017 · 3 comments
Closed

cmake 3.9.1 seems to have been built with too new libstdc++ #6529

ezyang opened this issue Oct 9, 2017 · 3 comments

Comments

@ezyang
Copy link

ezyang commented Oct 9, 2017

Take a look at https://anaconda.org/anaconda/cmake/3.9.1/download/linux-64/cmake-3.9.1-hd1fb129_0.tar.bz2 which is the most recent upload for cmake on linux64:

$ strings bin/cmake | grep GLIBCXX_3.4.20
GLIBCXX_3.4.20
_ZSt24__throw_out_of_range_fmtPKcz@@GLIBCXX_3.4.20

This requires a more recent libstdc++ than Anaconda is currently shipping, see https://repo.continuum.io/pkgs/main/linux-64/libstdcxx-ng-7.2.0-h7a57d05_2.tar.bz2 (also c.f. #483)

strings /private/home/ezyang/pytorch/env/lib/libstdc++.so | grep ^GLIBCXX
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_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
$ conda list | grep stdcxx
libstdcxx-ng              7.2.0                h7a57d05_2  

By the way, the previous patch release (visible at https://anaconda.org/anaconda/libstdcxx-ng/files ; in fact the new _2 package is not visible yet) had the necessary symbols. So, this only just started being broken three days ago, according to the timestamp on the new package version.

CC @kalefranz who is marked as the uploader for libstdcxx-ng on https://anaconda.org/anaconda/libstdcxx-ng/files

Also, the error message you get when this is broken is:

$ cmake --version
cmake: /private/home/ezyang/pytorch/env/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by cmake)
cmake: /private/home/ezyang/pytorch/env/bin/../lib/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by cmake)
cmake: /private/home/ezyang/pytorch/env/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by cmake)
@nehaljwani
Copy link

CC @msarahan

@jjhelmus
Copy link
Contributor

The libstdc++.so library from the libstdcxx-ng-7.2.0-h7a57d05_2.tar.bz2 package includes 3.4.20 as well as newer symbols:

$ strings ~/anaconda3/envs/cmake2/lib/libstdc++.so | grep GLIBCXX_3.4.2
GLIBCXX_3.4.2
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.21
GLIBCXX_3.4.24
GLIBCXX_3.4.20
GLIBCXX_3.4.2
GLIBCXX_3.4.23
GLIBCXX_3.4.22

@ezyang Can you provide the output of conda list in the environment that is causing issues.

My guess is that the libstdc++.so file from the gcc-4.8.5-7.tar.bz2 package is clobbering the libstdc++.so from libstdcxx-ng-7.2.0-h7a57d05_2.tar.bz2. Is gcc 4.8.5 installed in that environment?

The gcc package should not be used with the newer libraries. If compilers are needed the gcc_linux-64 and gxx_linux-64 packages should be used.

@ezyang
Copy link
Author

ezyang commented Oct 11, 2017

The problem is definitely from 'gcc' clobbering libstdc++. We will stop advising our users to install the 'gcc' package.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants