# 2016-06-09: Compiler special meeting
Time: 14:00 UTC
Hangout link: [](https://hangouts.google.com/call/v5olhwzpfzgzpoq5i3wthjpqpie)[https://hangouts.google.com/call/v5olhwzpfzgzpoq5i3wthjpqpie](https://hangouts.google.com/call/v5olhwzpfzgzpoq5i3wthjpqpie)
**Attendees**
* Jonathan Helmus
* [John Kirkham](https://conda-forge.hackpad.com/ep/profile/wv6uvIZX6h0)
* [Johannes Koster](https://conda-forge.hackpad.com/ep/profile/vuQo2WAv29A)
* [Bjorn Gruning](https://conda-forge.hackpad.com/ep/profile/DMmBLyb21HK)
* [Michael Sarahan](https://conda-forge.hackpad.com/ep/profile/yHQTJXZ4gyS)
* Ray
* Phil Elson
**Agenda**
Compiler docker images:
* Conda-forge
* `docker pull condaforge/linux-anvil`
* Built on Quay ( [](https://quay.io/repository/condaforge/linux-anvil)[https://quay.io/repository/condaforge/linux-anvil](https://quay.io/repository/condaforge/linux-anvil) )
* Mirrored ( [](https://hub.docker.com/r/condaforge/linux-anvil/)[https://hub.docker.com/r/condaforge/linux-anvil/](https://hub.docker.com/r/condaforge/linux-anvil/) )
* CentOS 6, GCC 4.4.7, Devtoolset2 (GCC 4.8)
* Source code ( [](https://github.com/conda-forge/docker-images/tree/fbde090bd608caa720d5caad861aa382a8bf3f5c/linux-anvil)[https://github.com/conda-forge/docker-images/tree/fbde090bd608caa720d5caad861aa382a8bf3f5c/linux-anvil](https://github.com/conda-forge/docker-images/tree/fbde090bd608caa720d5caad861aa382a8bf3f5c/linux-anvil) )
* Bioconda: [](https://hub.docker.com/r/bioconda/bioconda-builder/)[https://hub.docker.com/r/bioconda/bioconda-builder/](https://hub.docker.com/r/bioconda/bioconda-builder/)
* CentOS 5, GCC 4.4, Devtoolset2 (GCC 4.8)
* GCC 4.8 on PATH by default
Centers of discussion:
* Need of libstdc++ updates / shadowing
* Language compatibility needs (C++11/14)
As time allows: MSYS2 on Windows
**Notes**
Overview of the Docker images
* conda-forge and bioconda seems to use same GCC version
Key points:
* Need to monitor if we need to ship libstdc++
* Not needed if use Devtoolset
* But users may still need to install if they are missing this library, like Arch linux, so we may want to ship this anyway
* Need to say what language standard we are going to support C++14?
* Legacy ABI support for old libraries (dual API, issues with older/newer ABI)
History on conda-forge
* Initial conda-forge used gcc package
* sometimes this would cause issues if packages were not pinned
* switched to devoolset2 which does the static linking trick,
Future
* Use devtoolset4? (GCC 5.3, available on CentOS6)
* Build our own compiler toolchain
* GCC 6, could have some issues
* Could have devtoolset2 and devtoolset4 installed in same Docker image
* Need to have some mechanism to activate a particular toolset
* Using devtoolset does limit OS (CentOS5 only supports devtoolset2 not 4)
* Could we build our own devtoolset?
* Patches are available (srpm)
* Not small task, but do we want to take this on?
* Here is a link for some source ( [](https://git.centos.org/commit/rpms)[https://git.centos.org/commit/rpms](https://git.centos.org/commit/rpms%21devtoolset-4-gcc/e14f97005a3d22e658d01d0fc8899f5bda1982ca)[!devtoolset-4-gcc/e14f97005a3d22e658d01d0fc8899f5bda1982ca](https://git.centos.org/commit/rpms%21devtoolset-4-gcc/e14f97005a3d22e658d01d0fc8899f5bda1982ca) )
* Using Docker image from Continuum
* Would need to ship libstdc++ and keep it up to date to avoid shadowing system version (need to be newer than users with newest version)
* Not many package in defaults link against libstdc++
* Have been shipping and has not seen issue yet...
* Julia has been doing this
* libgfortran was broken because defaults was shipping old version which causes issues if user has more recent version of library installed
* Could we have a version of libstdc++ conda package which nothing depends on but users could install if they are missing a system libstdc++?
* Current infrastructure may not be able to support building gcc, but we could user other systems for this.
* Continuum needs to support CentOS 5, conda-forge is happy with CentOS6 as minimum glibc version
* John will do this. (After some discussion it became unclear whether this was best approach; so, holding off for now.)
* Should have common build environment
* How to support fortran on Mac
* New to use gfortran and have packages depend on libgfortran? package
* May be out of date, should we update?
* Port this solution to Linux?
* Either use patches or ship libstdc++
* Have same package for Mac and Linux OR use devtoolset magic?
* Want time to think and advantages and disadvantages for both
* [Hackpad](https://conda-forge.hackpad.com/Devtools-vs-Ship-libstdc-Oz7Qqr4WrOr)
* Private vote by next Thursday, fill out [](http://goo.gl/forms/CexagdweBOKZZDjv1)[http://goo.gl/forms/CexagdweBOKZZDjv1](http://goo.gl/forms/CexagdweBOKZZDjv1)
* Come up with a list of gcc 6.x problems that are encountered.
* Why use clang vs gcc on Mac
* gcc has been remove in recent version of OS X
* MSYS2
* Can be useful to get devtools
* What about "alternative" MSYS2 Python environment
* Visual Studio and MSYS2 gcc are not compatible
* gfortran is big target (at least for Jonathan)
* msys2-w64 packages/channels on Anaconda Cloud
* OpenBLAS... does seem to be working on Windows
* Does this work with VS 2015?
* Use ATLAS instead of OpenBLAS for windows numpy?
* Would need to repackage binary ATLAS DLL
* Get some BLAS build even if it is not the best
* How are SciPy Windows wheels being built?