-
Notifications
You must be signed in to change notification settings - Fork 23
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
GCC 10.3.0 internal compiler error #575
Comments
Looks like GCC have already patched this, with users confirming it has already been resolved by building their own gcc 10.3.x from version control. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100102 Depending on what happens with the GCC releases we probably just want to drop in a little bit of cmake which prevents gcc 10.3.0 being used, lesser and newer versions are fine (as long as CMakes' checking that nvcc works in general with that version passes). Based on comments discussed in the bugzilla linked above, it seems that:
So GCC 10.3 is always going to be bad, as is 11.1 so we probably just want to explicitly block those from configuring (or issue a dev warning as a minimum? |
GCC We should add a compiler test to check if this is triggered or not at cmake configuration time (via try-compile with a very small snippet) rather than simply blocking based on version number. Based on the gcc bug discussion: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100102#c17 reproducer.cpp #include <chrono>
template<int()> struct ratio;
template<class, class> struct duration {
static constexpr int _S_gcd();
template<class> using __is_harmonic = ratio<_S_gcd>;
using type = __is_harmonic<int>;
}; g++ -c -o reproducer.o reproducer.cpp Under GCC 10.3.0 on Ubuntu 20.04:
This is however still failing on ubuntu 21.04 with gcc 10.3 and 11.1, even though flamegpu is now building correctly, so this might be the wrong test (i.e. checking for something that will always fail, not that chrono is broken?) Current master, with the docs only build for 10.3 check disabled on 20.04 still fails when it gets to EnvironmentDescription.cu, while ubuntu 21.04 doesn't suffer from this. Just Confirmed that the following works to demonstrate the issue on 20.04 gcc 10.3, while working on 21.04 10.3
|
This allows working (patched) versions of gcc 10.3.0 and 11.1.0 to be used Closes #575
* Update Visualiser repository commit and do not install GLU on CI * Add override specifiers to overrides of virtual functions in util::Timer This allows an additional warning to be enabled * Remove CMake < 3.18 support and modernise CMake CMake < 3.18 was already deprecated as 3.18 is required for c++17 CUDA + Updates the readme version requirements + Updates CMake Minimum required statements + Removes workarounds for old CMake versions + Use FindCUDAToolkit now it is always available + Switch to linking against the shared cuda runtime library, rather than implicit default of static on some platforms + Create INTERFACE library targets for header only libraries. This enforces the use of SYSTEM on includes + Create ALIAS library targets for 3rd party dependencies, for consistency + Stops the modification of CMAKE_<LANGUAGE>_FLAGS which is poor form + Switches from global defines/includes/links to per-target through the use of target specific functions + Ensure packages are available where they are used + Prevent in-source CMake builds + Use PUBLIC/INTERFACE/PRIVATE for link libraries etc. This may currently be excessivly public + Inherit visualisation dependency from target, required vis repo update. + Cmake organisation + Adjusts swig/python CMake to re-use components from elsewhere more + This file could do with work still + Misc other CMake changes * Use Cmake try_compile to check for <chrono> nvcc+gcc support This allows working (patched) versions of gcc 10.3.0 and 11.1.0 to be used Closes #575
gcc: internal compiler error: Segmentation fault signal terminated program cc1plus
Occurs during compilation of
DeviceAgentVector_impl.cu.o
, when using GCC 10.3.0 and CUDA 11.3 under ubuntu. This is also causing CI failurse since the ubuntu image updated GCC version.Based on the cuda linux installation guide for 11.3, GCC 9.x is the supported GCC version for CUDA 11.3 on x86 hosts.
I'll leave this issue open for now, until we decide if we should warn / error at CMake configiuration time is GCC >= 10.3 is used (in conjunction with CUDA 11.3, and any others that do not error already at configure time). This may not effect arm / power hosts where GCC 10.2 is the supported / recommended host compiler.
The text was updated successfully, but these errors were encountered: