From the article "past several years figuring out things like how to build newer compilers in order to take advantage of improvements in C++ and related tools."
This is much easier to solve in CentOS and RHEL than building new tools. Redhat has done this for you. If you are a developer and need newer build tools, enable the SCLO repo.
Thanks -- good to know about clang, although it does appear that the most recent version supported is clang 7 (Ubuntu defaults to 10, and supports 11). That's to be expected with RH/Centos, which again is one reason why e.g., Ubuntu can be easier to work with.
I'm also not sure I've bought in to the way the devtoolset stuff works, by swapping symlinks around. AFAICT that means that only one version is available at any given time.
If you build and install your own tools, you can (and should) install them in a non-standard location -- once you do that, it's relatively simple to support multiple versions at the same time.
Although if it wasn't for the COW vs. SSO strings problem, I would have spent more time on the devtoolset approach, but the lack of true C++11-style strings was a deal-breaker for me. I would much prefer not to be building compilers, although once you've done it once, it's not too bad.
Makes sense. Was hoping that devtoolset and llvmtoolset would be useful, but probably not in your case. I only mention them because a lot of folks never heard of it and they sometimes end up doing really complicated work arounds in omnibus or other frameworks.
5 comments
[ 3.0 ms ] story [ 21.2 ms ] threadThis is much easier to solve in CentOS and RHEL than building new tools. Redhat has done this for you. If you are a developer and need newer build tools, enable the SCLO repo.
Or devtoolset-8, whichever has the versions of tools you need. Then in your build script or global environment script, use To get an idea of what versions of tools are in which devtoolsets, visit a repo mirror [1].[1] - http://mirror.centos.org/centos-7/7/sclo/x86_64/rh/Packages/...
- RH devtoolset doesn't support clang, only gcc
-The compilers installed with the devtoolset packages on RH/CentOS 6 & 7 do not support the _GLIBCXX_USE_CXX11_ABI flag -- the old ABI (COW strings) is the only one supported. See https://bugzilla.redhat.com/show_bug.cgi?id=1546704 and https://stackoverflow.com/questions/50836145/glibcxx-use-cxx... for more info.
I'm also not sure I've bought in to the way the devtoolset stuff works, by swapping symlinks around. AFAICT that means that only one version is available at any given time.
If you build and install your own tools, you can (and should) install them in a non-standard location -- once you do that, it's relatively simple to support multiple versions at the same time.
Although if it wasn't for the COW vs. SSO strings problem, I would have spent more time on the devtoolset approach, but the lack of true C++11-style strings was a deal-breaker for me. I would much prefer not to be building compilers, although once you've done it once, it's not too bad.