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

Fix 990 / Compilation issues with C++11 and libc++ #993

Merged
merged 4 commits into from
Aug 3, 2018

Conversation

heplesser
Copy link
Contributor

Note that the issues fixed here do not occur with gcc and libstdc++, they only occur with LLVM/Clang compilers using libc++ in C++11 mode and with some other compilers that do not use libstdc++.

@heplesser heplesser added ZC: Kernel DO NOT USE THIS LABEL ZP: PR Created DO NOT USE THIS LABEL S: Critical Needs to be addressed immediately T: Maintenance Work to keep up the quality of the code and documentation. I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) labels Aug 2, 2018
@heplesser heplesser added this to the NEST 2.16 milestone Aug 2, 2018
@heplesser
Copy link
Contributor Author

@ikitayama @carlosengutierrez This PR should solve the operator=() compilation issues with C++11/libc++. Could you check?

@ikitayama
Copy link

@heplesser the build's been going smoothly (97% done), as you know the Fujitsu toolchain takes couples of hours to complete build, so I'll let you know when it's done around midnight here.
I'm a SLI person, so Carlos should check his PyNEST build himself.

Copy link
Contributor

@hakonsbm hakonsbm left a comment

Choose a reason for hiding this comment

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

Looks good to me, and compiles and runs without problems using both Clang-6.0 and GCC-8 with -std=c++11.

@ikitayama
Copy link

confirmation (including make installcheck) will be done sometime tomorrow.

@ikitayama
Copy link

@carlosengutierrez are you finished building the 5g branch with FCC natively? Here it's been running for 2 hours, but still going.

@carlosengutierrez
Copy link

Hi @ikitayama ,
I am trying to build the branch -->> heplesser:fix-990-c++11-issues (that is the branch to test, right?)
I have to install it by interactive jobs, last night I could reach 97% but connection was broken, now trying again.
Thanks, C.

@ikitayama
Copy link

You could use screen so that your build job don't get terminated.

@ikitayama
Copy link

@heplesser the cross build with FCC with the -DCMAKE_CXX_FLAGS="-Xg -std=c++11" on the frontend of K computer successfully finished. Took about 3 hours.

@heplesser
Copy link
Contributor Author

@ikitayama Excellent, thank you!

@heplesser
Copy link
Contributor Author

I have added another commit, which automatically includes the -std=c++11 compiler flag to CMAKE_CXX_FLAGS before all other flags are processed. This flag appears to be standard for all compilers I checked (gcc, clang, intel, xlc, pgi, fujitsu). While gcc will compile NEST with c++11 features even without this flag, other compilers need it to accept C++11 features.

Copy link
Contributor

@suku248 suku248 left a comment

Choose a reason for hiding this comment

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

Alright then, I guess this is ready to be merged.
Thanks @heplesser for solving this issue and thanks @ikitayama and @carlosengutierrez for testing!

@heplesser heplesser merged commit a2812db into nest:master Aug 3, 2018
@heplesser heplesser deleted the fix-990-c++11-issues branch August 3, 2018 08:33
@carlosengutierrez
Copy link

@heplesser I could compile the updated nest master branch. PYNEST is running.

@heplesser
Copy link
Contributor Author

@carlosengutierrez Excellent, thank you for testing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) S: Critical Needs to be addressed immediately T: Maintenance Work to keep up the quality of the code and documentation. ZC: Kernel DO NOT USE THIS LABEL ZP: PR Created DO NOT USE THIS LABEL
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants