3 ms·
OpenBSD isn't the only system that's avoided gcc5 due to the breaking C++ ABI changes.
by cm3 11y ago
OpenBSD 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