
On 31.10.2017 19:23, Wes Turner wrote:
Maybe the anaconda team has some insight on a standard way to capture (& configure) compiler versions and flags in package metadata?
From https://www.anaconda.com/blog/developer-blog/announcing-the-release-of-anaco... :
The Anaconda 5.0 release used very modern compilers to rebuild almost everything (~99.5%) provided in the installers for x86 Linux and MacOS. This enables Anaconda users to get the benefits of the latest compilers— still allowing support for older operating systems—back to MacOS 10.9 and CentOS 6. Our own builds of GCC 7.2 (Linux) and Clang 4.0.1 (MacOS) are used, and every reasonable security flag has been enabled. CFLAGS and CXXFLAGS are no longer managed by each package; instead compiler activation sets them globally.
The packages built with the new compilers are in a different channel from packages built the old way, and as we build out this new channel, we will eventually be able to change the default experience to only using these packages. Interested in using this approach to build your own conda packages? Stay tuned for a more developer-focused blog post! It's all the same -- all packages are supposed to be built with the same compiler settings. So there's no problem of saving the flags into package metadata and checking compatibility with the local system.
There's, in fact, the same problem of potential unchecked incompatibility if a package is compiled in a different environment: see https://stackoverflow.com/questions/46912969/osx-c14-compiler-not-detected-m... (in that case, it's a different compiler version). -- Regards, Ivan