4 ms·
OpenBSD's base gcc is a fork of the last GPLv2 version, like Apple and embedded except with many local changes, e.g. gcc-local(1): http://man.openbsd.org/OpenB
by brynet 11y ago
OpenBSD's base gcc is a fork of the last GPLv2 version, like Apple and embedded except with many local changes, e.g. gcc-local(1):
http://man.openbsd.org/OpenBSD-current/man1/gcc-local.1 http://man.openbsd.org/OpenBSD-current/man1/gcc-local.1
There's newer versions of gcc in ports, llvm/clang was recently updated to 3.7.1, post 5.9.
- wolf550e 11y agoThe last GPLv2 GCC is 4.2.1. OpenBSD has 4.9.3 (they also have 4.2.1 and 3.3.6). Why not 5.3? Why was clang updated post 5.9? How long do they take to stabilize a release?
- cm3 11y agoOpenBSD isn't the only system that's avoided gcc5 due to the breaking C++ ABI changes.
- pjmlp 11y agoWhich bring lots of fun when trying to use binary builds of Swift, for example.
- cm3 11y agoDo you mean linking C++ .so built by gcc5?
- pjmlp 11y agoNo just plain Swift. For example the binaries for Ubuntu 14.04 don't work if the newer GCC is already installed. Swift compiler will fail to find the modules due to an ABI error as it will interpret the function call results from libstd++ as failure. The workaround is to re-compile everything with the new version.
- deleted 11y ago[deleted]
- cm3 11y agoI don't know much about Swift, so please excuse my ignorance. Are these modules .so files, written in C++, linked by the system CXX (gcc5), and therefore unusable by Swift which was linked with Clang itself, or what's the technical explanation?
- pjmlp 11y agoThe Swift runtime library is currently partially written in C++.
- cm3 11y agoI see, and in what scenario does it try to load a C++ .so built with gcc4? I'm sure this happens, but I'm curious what scenario it is on a distro where stuff shouldn't be partially built with g++4 and other stuff with g++5. I ran into the issues and am interested in the details as a way to avoid it myself.
- pjmlp 11y agoThis is the bug: https://bugs.swift.org/browse/SR-23 https://bugs.swift.org/browse/SR-23
- gnoway 11y agoOpenBSD releases on a 6 month cadence, and they don't typically hold a release to fit something in at the last minute. I think they finalize the release well before the release date too; 5.9 was released on 3/29, but the errata page[0] shows 3 issues with patches from before that date. [0] http://www.openbsd.org/errata59.html http://www.openbsd.org/errata59.html
- _asummers 11y agoHere's a Theo de Raadt talk on the OpenBSD release cycle, for those who are curious. https://www.youtube.com/watch?v=i7pkyDUX5uM https://www.youtube.com/watch?v=i7pkyDUX5uM
- wolf550e 11y agoGCC changed their system for numbering versions with version 5. GCC 4.9.X [1] was the stable branch first released on 2014-04-22 with latest patch 4.9.4 released on 2015-06-26. GCC 5.X is the next stable branch first released exactly a year after 4.9 on 2015-04-22 with latest patch 5.3 released on 2015-12-04. LLVM 3.5 [2] was released on 2014-09-03, latest patch 3.5.2 was released on 2015-04-02. LLVM 3.6 was released on 2015-02-27, latest patch 3.6.2 was released on 2015-07-16. LLVM 3.7 was released on 2015-09-01, latest patch 3.7.1 was released on 2016-06-05. 6 months before the 2016-03-29 release of OpenBSD 5.9, i.e. at the end of September of 2015, GCC 5.2 was the stable version, not GCC 4.9.3, but they chose GCC 4.9.3. LLVM 3.7 was the stable release, but they chose 3.5 (I hope it's 3.5.2 though it doesn't say). So, OpenBSD's compilers are the stable branch from ~14 months before the release, with relevant updates applied. Not Debian, but not Arch either. 1 - https://gcc.gnu.org/releases.html https://gcc.gnu.org/releases.html 2 - http://llvm.org/releases/ http://llvm.org/releases/
- fish2000 11y agoOP I believe you meant to say “q.v.” instead of “e.g.”