#20350: Work with gcc's new cxx11 abi
----------------------------------+----------------------------
Reporter: vbraun | Owner:
Type: defect | Status: new
Priority: major | Milestone: sage-7.2
Component: packages: standard | Keywords:
Merged in: | Authors:
Reviewers: | Report Upstream: N/A
Work issues: | Branch:
Commit: | Dependencies:
Stopgaps: |
----------------------------------+----------------------------
gcc-5 introduces a new cxx11 abi, and linking C++ libraries with different
abi versions will cause missing `std::__cxx11` symbols like
{{{
undefined reference to `std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>
>::push_back(char)@GLIBCXX_3.4.21'
}}}
This is an issue whenever we build our own gcc; Right now that means
gcc-4.9.3 which only supports the old abi. So linking with any system C++
library will fail, and there are various optional libraries that packages
test for and link when available. Also, gcc-5 system installations may
default to the old abi (e.g. Fedora), so we can't just do a version check.
Originated in this thread: https://groups.google.com/d/msg/sage-
devel/2lRw3RO1ZlQ/H8fc7fCYEAAJ
Its clear that we must update our gcc to 5 if we ever want to be able to
link to new-abi libraries. Then we could also match the abi by putting
`-D_GLIBCXX_USE_CXX11_ABI=[0|1]` into the `CFLAGS`
The only alternative would be to never link against a system C++ library,
e.g. disable the optional libqd support in libfplll (and probably more).
--
Ticket URL: <http://trac.sagemath.org/ticket/20350>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.