7 ms·
wish gcc 10 was built into ubuntu 20.04
by liquidify 6y ago
wish gcc 10 was built into ubuntu 20.04
- RMPR 6y agoGCC 10 is in Fedora 32 though https://fedoramagazine.org/announcing-fedora-32/ https://fedoramagazine.org/announcing-fedora-32/
- Twirrim 6y agoYou want a bleeding edge release in your non-bleeding edge LTS distribution?
- jcelerier 6y agoit does not make sense to pair development toolchain versions with operating system versions.
- klodolph 6y agoWhat do you think LTS entails, exactly? One of the core ideas of working with LTS is that you can build your software on an LTS release and ship it to somebody else on the same LTS release, either as a source or as a binary. If you want the latest GCC, that's fine, you're not forced to use the default compiler distributed with your OS. But it doesn't make sense to update the default compiler used in an LTS release. If you want that, then you don't want LTS.
- jcelerier 6y ago> One of the core ideas of working with LTS is that you can build your software on an LTS release and ship it to somebody else on the same LTS release, either as a source or as a binary. Yes, and updating compilers don't prevent that at all. You can use GCC 10 to ship code that will build and run on Ubuntu 12.04 without issues. Xcode 11 can ship code that works back to macOS 10.6 and Visual Studio 2019 can still optionally target windows fucking XP !
- rumanator 6y ago> Yes, and updating compilers don't prevent that at all. You do understand that ABI backward compabitility is not ensured, don't you? https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html Some software packages even break between distro releases. The primary value of a distro is to provide a fixed platform that application developers and users can safely target. Risking ABI breakups just because a rare number of users wish to be on the bleeding edge without wanting to do any of the work to install their own software is something that's very hard to justify.
- jcelerier 6y agoLet me quote exactly the page you linked : > The GNU C++ compiler, g++, has a compiler command line option to switch between various different C++ ABIs. This explicit version switch is the flag -fabi-version. If you want to target a given distro, you -fabi-version this distro's ABI, just like you set -mmacosx-version-min on mac or set _WIN32_WINNT on windows
- rumanator 6y agoThat's something that might be useful for one of those rare end-users who for some reason want to try to build something with a bleeding edge compiler. That is also mind-numbingly absurd to force upon the vast majority who couldn't care less about the bleeding edge and want a stable platform to act as a fixe target without risking random ABI breakages. I should not be forced to endure a brittle and fragile and overly-complex compilation process just because a random guy somewhere had a whim about taking a compiler out for a spin. The world expects stability. If you wish to try out some stuff, just download the compiler and build the damn thing yourself. Hell, odds are that there's already a PPA somewhere. So where's the need to screw over everyone?
- jcelerier 6y ago> That is also mind-numbingly absurd to force upon the vast majority who couldn't care less about the bleeding edge and want a stable platform to act as a fixe target without risking random ABI breakages. but why would you have "random ABI breakages" ? there isn't any issue with using e.g. VS2010, 2012, 2015, 2017, 2019 to make a windows software for instance, so what makes you think Linux would be any different if you could install a compiler version of your choosing instead of the one fixed by Ubuntu / Debian / whatever. Why is it a problem for C/C++ but not for Go / Rust / every other native-compiled language in the universe ?
- fnord123 6y agoeh, no. the OS package manager is for sysadmins. LTS is for sysadmins to not have to worry about versions changing under their feet rapidly when they apply security updates. If you want to develop an application, you use your own toolchain. But yes I know most C++ people don't d this because C++ tools don't easily support it. But that's on C++ for not having pyenv, rustup, multiruby, etc equivalent.
- MaxBarraclough 6y agoC++ lets you statically link the standard library though, right? Or am I missing your point?
- fnord123 6y agoYes, but I'm quite sure GP is talking about using LTS so the installed libraries are the same as you built with. IIRC there's still an issue with gethostname which must be dynamically linked.
- deleted 6y ago[deleted]
- Florin_Andrei 6y ago> it doesn't make sense to update the default compiler used in an LTS release. If you want that, then you don't want LTS This needs to be emphasized.
- deleted 6y ago[deleted]
- loeg 6y agoIf you want the newest version of software, Ubuntu does not cater to that.
- simion314 6y agoIf you are a dev then you can prefer using an LTS flavor of Ubuntu with a PPA for whatever you need to be newer. For important stuff this PPA are provided by Canonical so I run newer kernel and nvidia drivers on an older LTS.
- e12e 6y agoWell, you might want to run a newer/non-lts release via lxd/lxc. It's probably a much better idea than pulling in willy-nilly ppa's.
- purerandomness 6y agoBut at this point, why not simply run Arch Linux?
- simion314 6y agoYou might want LTS and upgrade some packages when needed/forced and not play the "update" lottery. New updates not only bring you cool new feature and fixes , they bring new bugs and sometimes features are removed or GUIs are moved around. At least with my LTS I worked around for existing bugs , upgraded from PPA the things I needed to, browsers are latest versions and my IDE is auto-updating too.
- yjftsjthsd-h 6y agoStable base. I'm pretty fond of Ubuntu LTS as the OS running the bare metal, then [docker] containers on top of that to run applications, which means I can have as new of apps as I want while keeping a nice boring stable kernel/bootloader/sshd/whatever.
- e12e 6y agoI'm not sure I understand. You want a stable host system without the need for forced, sometimes breaking, upgrades - so an lts release "on the outside". You want to develop with new tooling, so a newer release under lxd/lxc. But you probably want to deploy on an lts release - maybe the one comming in a year? You could of course develop under arch in lxd/lxc - then validate for an lts release once your code is "done". But I don't think you'd generally would want to deploy to arch - as you'd have to play catch-up in order to keep up with security patches (or backport yourself)?
- throwawayanss21 6y agoIt is available in the repos it just isn't the default
- unixhero 6y agojust add it in as a ppa!
- wyldfire 6y agoIt's nice when they're built in, sure. But gcc is pretty easy to build on its own.
- umvi 6y agoJust use docker and you can have any toolchain you want any time you want
- brutt 6y agoJust use Fedora, which targets developers.
- SomeoneFromCA 6y agoThey still may have a snap for it....
- woadwarrior01 6y agoThere's a PPA[1] for that. [1]: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/ppa https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/pp...
- pantalaimon 6y agohttps://packages.ubuntu.com/focal/gcc-10 https://packages.ubuntu.com/focal/gcc-10
- cozzyd 6y agoCompiling gcc is actually not so bad (and sometimes necessary if you want to e.g. use drd to debug openmp, so you can make libgomp use pthreads primitives that drd knows how to do deal with).