-
Notifications
You must be signed in to change notification settings - Fork 169
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
Use C++17 in O2 #1293
Use C++17 in O2 #1293
Conversation
Let's see if tests are OK. Will be discussed tomorrow at WP3. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes we can!
@davidrohr can you please have a look at the error log? |
Regarding the http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4193.html#809 I suggest we simply drop it. |
@sawenzel as discussed privately, Vc has been bumped to three commits ahead of 1.3.3 to fix the |
@ktf @dberzano : your fix is correct. Below is the full story: The register keyword was inserted some time ago as a workaround for a bug either in ROOT5 or in OpenCL. Essentially, the compiler required a keyword at that place before any of the GPUsharedref() macros, so we had to place a keyword there with "no meaning". The proper way would be to use the typename keyword, but that was not understood by one of the interpreters/compilers (don't remember which), so we used the deprecated register keyword, which is ignored by all compilers. |
This should be fixed as well: https://github.com/alisw/apmon-cpp/issues/2 |
We also need AliceO2Group/AliceO2#1352 (ready to be merged but currently on hold). I am working on the Vc issue now. |
8f3906a
to
28abbcd
Compare
The Vc issue required some thinking. The fix is there. Note: a full build on CC7 works, locally, but it won't work here until AliceO2Group/AliceO2#1352 is merged. |
@alisw/mrrtf any impediment? Can you approve if it's OK for you? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no objection. will deal with any changes required in alo, if any, please proceed.
Hold your horses. Does not work on macOS Mojave, breaks on GEANT4:
|
@awegrzyn while compiling Monitoring v1.9.2, I get on Mojave:
I am using our boost, v1.68.0 (from this pull request). The problem is not seen on CC7. Do you have any clue? For the record, the failing command is: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -fPIC -O2 -std=c++17 -Wall -pedantic -Wextra -O2 -g -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -dynamiclib -Wl,-headerpad_max_install_names -o lib/libMonitoring.dylib -install_name @rpath/libMonitoring.dylib CMakeFiles/Monitoring.dir/src/Monitoring.cxx.o CMakeFiles/Monitoring.dir/src/Metric.cxx.o CMakeFiles/Monitoring.dir/src/Backends/InfoLoggerBackend.cxx.o CMakeFiles/Monitoring.dir/src/Backends/InfluxDB.cxx.o CMakeFiles/Monitoring.dir/src/Backends/Flume.cxx.o CMakeFiles/Monitoring.dir/src/Backends/StdOut.cxx.o CMakeFiles/Monitoring.dir/src/DerivedMetrics.cxx.o CMakeFiles/Monitoring.dir/src/ProcessMonitor.cxx.o CMakeFiles/Monitoring.dir/src/ProcessDetails.cxx.o CMakeFiles/Monitoring.dir/src/MonitoringFactory.cxx.o CMakeFiles/Monitoring.dir/src/Transports/UDP.cxx.o CMakeFiles/Monitoring.dir/src/Transports/TCP.cxx.o CMakeFiles/Monitoring.dir/src/Transports/HTTP.cxx.o CMakeFiles/Monitoring.dir/src/Exceptions/MonitoringException.cxx.o /Users/volpe/.alibuildsw/osx_x86-64/boost/v1.68.0-1/lib/libboost_system.dylib /usr/lib/libcurl.dylib |
@dberzano Either adding |
OK so - I had done that, however - as you can see - I had to disable boost_python (do we really need it?) otherwise boost cannot compile if the linked Python version has headers containing unsupported C++17 stuff (like the |
So, everything works, except for tests depending on boost, see #1305. We need to fix this. |
So as this issue is popping up again, shouldn't we take Ruben's approach and just add boost to ROOT_INCLUDE_PATH. We anyway have it that way for setups where we use system root. Why should it be different if we compile ROOT with alidist? |
Hi @davidrohr, I believe the reasons were clearly explained in #1305, I don't want to discuss it again. This PR failing is not a good argument in favor of that solution. The issue is popping up because, incidentally, the PR was first built on a certain machine with certain paths. The builds were cached, and when it reran, the cached builds were relocated to different paths. I am pushing @shahor02's solution here just because I am tired of this C++17 PR, but this is not an endorsement nor a solution. And it may break at any point in the future. |
@dberzano : We will need a new version of AliTPCCommon after this PR to fix builds with GPU. |
No description provided.