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

pasha needs libstdc++ #142

Merged
merged 4 commits into from
Aug 23, 2012
Merged

pasha needs libstdc++ #142

merged 4 commits into from
Aug 23, 2012

Conversation

JensTimmerman
Copy link
Contributor

Pasha is distributing it's own version of google-sparsehash, and depends on a gnu specific extention of libstdc++.

This is ok for GCC-based builds, but fails (or uses the system libstdc++ if available) with the Intel compiler.

@JensTimmerman
Copy link
Contributor Author

We should build libstdc++ with intel compilers and add it as a dependency.

@boegel
Copy link
Member

boegel commented Aug 22, 2012

This issue become apparent when trying to build Pasha on a SL6 system, which has a recent libstdc++.

Pasha ships on old version of google-sparsehash, which requires the ext/hash_fun.h include file. In recent versions of libstdc++, this include is no longer available, but split up into ext/hash_map and ext/hash_set.

So, next to adding libstdc++ as dependency for Pasha, the patch file that was now used for builds of Pasha with recent GCC versions (https://github.com/hpcugent/easybuild/blob/develop/easybuild/easyconfigs/p/Pasha/gcc-hash_fun-map-set.patch), will also need to be applied for Intel version.

The patch file should be renamed to reflect that it's not tied to GCC, but to libstdc++ instead.

@boegel
Copy link
Member

boegel commented Aug 22, 2012

Suggestion: build libstdc++ with GCC as build dependency and with dummy toolkit, and use that as dependency for Pasha (and google-sparsehash).
Then there's no need to build libstdc++ with Intel compilers, which is going to be a nightmare.

@JensTimmerman
Copy link
Contributor Author

Should be fixed (for our needs) by merging this pull request.

patches = ['intelmpi.patch']
patches = [
'intelmpi.patch',
# needed since this still relies on gnu specific includes from libstdc++ which changed in latest version
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix indentation here

@boegel
Copy link
Member

boegel commented Aug 23, 2012

This is a workaround, not a real fix. The real fix would be to build (an old version of) libstdc++ with GCC as build dependency, and use that as dependency for Pasha when it's being built with the Intel compilers.

patches = [
'intelmpi.patch',
# needed since this still relies on gnu specific includes from libstdc++ which changed in latest version
'gcc-hash_fun-map-set.patch',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rename this patch file to 'old-libstdc++-hash_fun-map-set.patch', since it's not tied to gcc but to libstdc++

and then also adjust the patch file used in the goalf easyconfig for Pasha

@JensTimmerman
Copy link
Contributor Author

fixed remarks.

@boegel
Copy link
Member

boegel commented Aug 23, 2012

seperate ticket opened for building stand-alone libstdc++ module

boegel added a commit that referenced this pull request Aug 23, 2012
@boegel boegel merged commit cb55cbc into easybuilders:develop Aug 23, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants