Summary: | sci-mathematics/flint-2.5.2 - /usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/include/g++-v5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Juergen Rose <rose> |
Component: | Current packages | Assignee: | Patrick Lauer <patrick> |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | CC: | dschridde+gentoobugs, frp.bissey, mjo, yamadharma |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | build.log |
Description
Juergen Rose
2016-01-22 20:08:15 UTC
Setting CXXFLAGS=-std=c++11 for flint in /etc/portage/env works around this issue. (In reply to Dennis Schridde from comment #1) > Setting CXXFLAGS=-std=c++11 for flint in /etc/portage/env works around this > issue. Has the same effect: # cat /etc/portage/env/sci-mathematics/flint-2.5.2 CFLAGS="${CFLAGS} -std=gnu11" If compiling as C++11, linking sci-mathematics/sage against sci-mathematics/flint (compiled as C++11) and sci-libs/libsingular (compiled as C++03, as it does not build with -std=c++11) will run into this error: /usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: _ZN3NTL9ZZ_pEInfoE: TLS reference in /usr/lib/libflint.so mismatches non-TLS reference in /usr/lib/libsingular.so /usr/lib/libflint.so: error adding symbols: Bad value collect2: error: ld returned 1 exit status (In reply to Dennis Schridde from comment #2) > (In reply to Dennis Schridde from comment #1) > > Setting CXXFLAGS=-std=c++11 for flint in /etc/portage/env works around this > > issue. > > Has the same effect: > # cat /etc/portage/env/sci-mathematics/flint-2.5.2 > CFLAGS="${CFLAGS} -std=gnu11" > > If compiling as C++11, linking sci-mathematics/sage against > sci-mathematics/flint (compiled as C++11) and sci-libs/libsingular (compiled > as C++03, as it does not build with -std=c++11) will run into this error: > /usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/../../../../x86_64-pc-linux-gnu/bin/ > ld: _ZN3NTL9ZZ_pEInfoE: TLS reference in /usr/lib/libflint.so mismatches > non-TLS reference in /usr/lib/libsingular.so > /usr/lib/libflint.so: error adding symbols: Bad value > collect2: error: ld returned 1 exit status You can't just set that per-library. So all the dependencies should inherit the same, then it should work (and possibly break other things) I probably should have been added to that. You used ntl built with threads which requires c++11. That means c++11 is needed in all the dependencies of ntl in that case, including flint. Am I correct that this is now effectively obsolete due to c++11 being supported by default in the last few stable versions of sys-devel/gcc (as well as sys-devel/clang)? flint is C code except for the NTL interface (one file) which is C++ and should be compiled to the same standard as NTL. Effectively yes, we should close this. Ok, thanks! |