Bug#708604: roboptim-core: FTBFS on 32-bit systems: comparison between signed and unsigned integer expressions

Aaron M. Ucko ucko at debian.org
Fri May 17 02:15:32 UTC 2013


Source: roboptim-core
Version: 2.0-1
Severity: serious
Justification: fails to build from source

Builds of roboptim-core for 32-bit architectures have been failing:

   In file included from /.../roboptim-core-2.0/tests/visualization-gnuplot-differentiable-function.cc:26:0:
   /.../roboptim-core-2.0/include/roboptim/core/visualization/gnuplot-differentiable-function.hh: In function 'roboptim::visualization::gnuplot::Command roboptim::visualization::gnuplot::plot_jac(const DifferentiableFunction&, const argument_t&)':
   /.../roboptim-core-2.0/include/roboptim/core/visualization/gnuplot-differentiable-function.hh:68:52: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
   /.../roboptim-core-2.0/include/roboptim/core/visualization/gnuplot-differentiable-function.hh:69:52: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
   /.../roboptim-core-2.0/include/roboptim/core/visualization/gnuplot-differentiable-function.hh:74:41: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
   cc1plus: all warnings being treated as errors
   make[3]: *** [tests/CMakeFiles/visualization-gnuplot-differentiable-function.dir/visualization-gnuplot-differentiable-function.cc.o] Error 1

It looks like the offending comparisons are between unsigned int and
Eigen::DenseIndex, which defaults to ptrdiff_t.  On 64-bit
architectures, it doesn't matter that ptrdiff_t is signed, because
it's still wide enough to encompass unsigned int's full range;
however, 32-bit architectures don't fare so well.  As such, I'd
recommend changing the relevant variables' types to DenseIndex to
ensure consistency with Eigen and avoid trouble anywhere.

Could you please take a look yourself?

Thanks!



More information about the debian-science-maintainers mailing list