3 ms·
Why provide that antique gcc? Better to not provide gcc at all, and an ability to install a recent GCC at user's discretion, than to provide a 12 year old gcc i
by wolf550e 6y ago
Why provide that antique gcc? Better to not provide gcc at all, and an ability to install a recent GCC at user's discretion, than to provide a 12 year old gcc in the base system.
Why is their clang/llvm stale in a new release?
- 4ad 6y agoProvide isn't the the right word. GCC is in the base system because some architectures haven't yet switched to clang, either because clang doesn't support the architecture, or because the work of switching the toolchain (which is not trivial) has not been done yet. The system must be able to build itself, so "better to not provide gcc at all" doesn't make sense. In the cases where OpenBSD (and FreeBSD) don't yet use clang, they use the most recent GCC version that was still GPLv2 licensed. GPLv3 is not acceptable to OpenBSD in the base system. More recent versions of GCC are provided in the ports system, for users to install. Those are not used by the base system. The system compilers are (mostly) for building the system. They don't even search in regular paths users might expect, like /usr/local. If users need a general purpose compiler, they can install one from ports. The situation with clang is similar. OpenBSD uses the last version of clang/LLVM that was still BSD-licensed. Now LLVM uses the Apache license, which is not acceptable to OpenBSD in the base system. (However, FreeBSD is okay with it.)
- michaelmrose 6y agoIs never getting a newer version of gcc or llvm as default sustainable so long as developers can install a new version for their own use? What happens in 2030 or 2040?
- genr8 6y agoHow is the user supposed to navigate all the logistics and technical ramafications of ethical/political dev / package choices ? Everything has alternative versions, its hard for me to keep track of who forked what and why.
- trasz 6y agoGenerally speaking they don't need to. If you are developing C code and need some particular compiler version, you just install a package (ie "pkg install gcc9") and make sure to set CC=gcc9, and that's it.
- marios 6y agoIn OpenBSD, "base builds base". That is to say, one must be able to build the system using the compiler provided in the compXX.tgz set. gcc moved to GPLv3 and OpenBSD doesn't ship GPLv3 code. For a long time, that's the reason why it was stuck on an ancient gcc. OpenBSD moved to clang/llvm because it has a more acceptable licence. However, clang/llvm does not support all architectures OpenBSD supports, so that's why there's stil gcc. Users can install a newer gcc (v8.3) from packages/ports. Newer LLVM releases are licensed with APL2.0, and that doesn't sit well with OpenBSD: http://lists.llvm.org/pipermail/llvm-dev/2017-April/112300.html http://lists.llvm.org/pipermail/llvm-dev/2017-April/112300.h... https://marc.info/?l=openbsd-misc&m=147503691302850&w=2 https://marc.info/?l=openbsd-misc&m=147503691302850&w=2 So they're using the last LLVM release with an acceptable licence.
- saagarjha 6y agoHow long will they eschew both major compilers? This can't possibly be sustainable.
- moonchild 6y agoWhy not? This isn't the 90s anymore. Clang 8 is a very usable c compiler with excellent optimizations and excellent diagnostics. (OpenBSD doesn't use c++, so they don't need newer standards of that anyway.) And newer versions of both clang and gcc are available as packages.