-
Notifications
You must be signed in to change notification settings - Fork 283
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
CMakeMake
could default CMAKE_BUILD_TYPE
to RelWithDebInfo
instead of Release
#3032
Comments
CMakeMake
could default CMAKE_BUILD_TYPE to RelWithDebInfo instead of Release
@Flamefire Thoughts on this? |
I'm a bit worried given that the additional size is not only storage but also bandwidth from the shared filesystem on a cluster where the additional data gets transferred on every use although it is rarely used by most users and more of interest to developers/maintainers. And we also don't add Maybe we could have another flag which is used to decide whether we add As for using another build type: We have the |
Yes I agree we should be consistent, so it would be
Having a global option also sounds good to me. I don't imagine the size impact to be all that significant; it would in total be far less than a single NVHPC install. |
As mentioned I don't worry only about the size but also about the additional bandwidth used when transferring the binaries from the global filesystem to the nodes on each use by many users with no use for most of them
Sounds like we already have a flag for that. So if we already add |
We could introduce a |
Actually, |
There are 3 possible options: Release, Release-with-debug-info, Debug (i.e. unoptimized) Currently CMakeMake does honor the toolchain option and switches between Release and Debug. The issue I see is that we haven't really defined/documented what that option should do: "Enable debug" is a bit vague As for |
Yes if we compare with what EB does with it's compiler flags in the build environment, the toolchain opts does:
is the correct options I.M.O. So yes, docs should change to be clear it's about adding debug symbols only. |
Made this PR for cmake and meson #3452 |
CMakeMake
could default CMAKE_BUILD_TYPE to RelWithDebInfo instead of ReleaseCMakeMake
could default CMAKE_BUILD_TYPE
to RelWithDebInfo
instead of Release
As this came up in the confcall I missed: Defaulting to |
Yes I mentioned in the confcall (and there was no objections) that this is the plan. Easyblocks respect toolchainopts correctly, and as a separate thing to allow the default value of toolchainopts.debug to be set globally |
Release
sets-O3 -DNDEBUG
which overrides the default-O2
from easybuild.RelWithDebInfo
sets-O2 -g -DNDEBUG
so is more compatible, and the debug info doesn't hurt (it increases the size of the binary but not much compared to typical datasets many researchers deal with, and it does make profiling easier and debug backtraces much more legible).One could also let it depend on toolchainopts, i.e. if
'opt': True
is set, then useRelease
elseRelWithDebInfo
?The text was updated successfully, but these errors were encountered: