On 03/15/16 09:28, François Bissey wrote:
On 03/15/16 05:23, Victor Shoup wrote:
That is a bummer with the C++11 issues.
The way I see it, C++11 is the future, and pretty much all
C++ must eventually deal with it.
Looking over the build issues with singular -- if the make files don't
respect CFLAGS or CXXFLAGS, then maybe one can make
the g++ command itself be a script that calls the "real" g++
with the right flags...
That's about the only thing I didn't try yet, having
CXX="g++ -std=c++11"
That may work. Some objects (that look like debugging objects)
are purposefully build without any *FLAGS so defining the
compiler is about the only way to get there.
Defining CXX="g++ -std=c++11" does work. At least singular compiles.
I will do a more comprehensive battery of tests in sage-on-gentoo as
time allows.
* flint will also need some love for its ntl interface but it does
obey CXXFLAGS. And with CXXFLAGS="-std=c++11" it does compile and
passes it test suite.
* similarly eclib fails at configuration time but is able to take
CXXFLAGS. Compiles and passes its tests with CXXFLAGS="-std=c++11".
* linbox-1.3.2 fails to find ntl for the linboxsage library
but it will compile and work without it.
It does respect CXXFLAGS and will find ntl at configuration time
if CXXFLAGS="-std=c++11" is provided. Unfortunately compilation fails
in that case:
/bin/sh ../../libtool --tag=CXX --mode=compile x86_64-pc-linux-gnu-g++
-DHAVE_CONFIG_H -I. -I../.. -O2 -g -DNDEBUG -U_LB_DEBUG
-DDISABLE_COMMENTATOR -std=c++11 -c -o diophantine-solver.lo
diophantine-solver.C
libtool: compile: x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../..
-O2 -g -DNDEBUG -U_LB_DEBUG -DDISABLE_COMMENTATOR -std=c++11 -c
diophantine-solver.C -fPIC -DPIC -o .libs/diophantine-solver.o
In file included from ../../linbox/vector/vector-domain-gf2.h:59:0,
from ../../linbox/vector/vector-domain.h:1293,
from ../../linbox/matrix/matrix-domain.h:42,
from ../../linbox/matrix/sparse.h:75,
from ../../linbox/blackbox/sparse.h:57,
from ../../linbox/blackbox/lambda-sparse.h:29,
from ../../linbox/algorithms/rational-solver.h:43,
from ../../linbox/algorithms/diophantine-solver.h:29,
from diophantine-solver.C:25:
../../linbox/field/gf2.h: In function 'void
std::swap(std::_Bit_reference, std::_Bit_reference)':
../../linbox/field/gf2.h:985:14: error: redefinition of 'void
std::swap(std::_Bit_reference, std::_Bit_reference)'
inline void swap(stdBitReference __x, stdBitReference __y)
^
In file included from
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4/vector:65:0,
from ../../linbox/util/debug.h:42,
from ../../linbox/algorithms/rational-solver.h:38,
from ../../linbox/algorithms/diophantine-solver.h:29,
from diophantine-solver.C:25:
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4/bits/stl_bvector.h:112:3:
note: 'void std::swap(std::_Bit_reference, std::_Bit_reference)'
previously defined here
swap(_Bit_reference __x, _Bit_reference __y) noexcept
^
So linbox-1.3.2 would have to go without ntl support.
Cannot comment on more recent linbox at the moment but c++11 support was
requested by upstream for the upgrade currently under review. So should
be OK.
* sage itself will probably need extra flags for anything that depends
on ntl.
In a way it is a partial c++11 support card for sage components.
Francois
--
You received this message because you are subscribed to the Google Groups
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.