-
-
Notifications
You must be signed in to change notification settings - Fork 311
Description
Part of the success of conda-forge is that many upstream projects have adopted (or at least support) development environments based on conda-forge packages. Almost inevitably, this ends up pulling in compilers as well - either through the explicit compilers package, or through other means (like directly depending on gcc_linux-64 or clang_osx-64).
This runs into the question whether this is something we can or want to support. The status quo following Hyrum's law is of course that they're being used in several ways.
This "off-label" compiler use then runs into issues, like that the flags we inject into our compiler activation create problems for development. Anything from -DNDEBUG / -O2, etc. etc., see:
- Don't add -O flags to [C/CXX/F]FLAGS outside of conda-build ctng-compiler-activation-feedstock#80
- Activating the gcc compiler should not set the install prefix ctng-compiler-activation-feedstock#77
- Inclusion of
CXXFLAGSfromx86_64&aarch64Linux variants causes build error ctng-compiler-activation-feedstock#74 -fvisibility-inlines-hiddenbreaks libprotobuf (and potentially other software) ctng-compiler-activation-feedstock#73- Should LD_FLAGS be the same across all linuxen? ctng-compiler-activation-feedstock#72
- Add -fno-merge-constants to default flags? ctng-compiler-activation-feedstock#63
- GCC 9.3 compilers should not include
-fopenmpor-std=c++17by default ctng-compiler-activation-feedstock#42 - Using -fPIE/-pie on macOS results in many spurious warnings clang-compiler-activation-feedstock#90
- CMAKE_ARGS should contain -DCMAKE_BUILD_TYPE=None, else builds picks up -O3 instead -O2 #1859
- [DOC] Compiler flags and where they come from #893
Latest comment to this effect:
@rgommers: Polluting
CFLAGS& co gives so many problems, isn't there an issue/plan somewhere to get rid of unnecessary flags and insert the desired ones for package building only insideconda-build/mamba-build?In this same release cycle we also already had to add this warning:
Assuming we want to make our support explicit (for the usage of our compilers outside of conda-forge), we could potentially have both an internal & external compiler activation; the conda-forge internal one would add all the necessary flags (as now), and the external one would be reduced to a minimum.
Thoughts?
