/home/travis/build/diydrones/ardupilot/libraries/AP_Eigen/AP_Eigen.h:17:81: note: #pragma message: std::lgamma*() does not exist in this environment. #pragma message("std::lgamma*() does not exist in this environment.") ^
In file included from /home/travis/opt/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include/c++/4.9.3/random:51:0, from /home/travis/opt/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include/c++/4.9.3/bits/stl_algo.h:66, from /home/travis/opt/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include/c++/4.9.3/algorithm:62, from /home/travis/build/diydrones/ardupilot/libraries/AP_Eigen/eigen/Eigen/Core:160, from /home/travis/build/diydrones/ardupilot/libraries/AP_Eigen/AP_Eigen.h:32, from /home/travis/build/diydrones/ardupilot/libraries/Filter/LowPassFilter2p.cpp:100:
/home/travis/opt/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include/c++/4.9.3/bits/random.tcc: In member function 'void std::poisson_distribution<_IntType>::param_type::_M_initialize()':
/home/travis/opt/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include/c++/4.9.3/bits/random.tcc:1408:55: error: no matching function for call to 'max(float, const double&)'
_M_d = std::round(std::max(6.0, std::min(__m, __dx))); ^
compilation terminated due to -Wfatal-errors.
Please fix this fast, it cannot be that half of the standard library cannot be used with ARM.
I try to build the Eigen library on a ARM with cxx11. The library builds with ARM GCC 4.8.* but not with ARM 4.9.* /travis- ci.org/ diydrones/ ardupilot/ builds/ 88184030 lists.freebsd. org/pipermail/ freebsd- current/ 2014-January/ 048130. html
It also builds on a native environment. See: https:/
Other people reported the same problems: http://
As parts of the libs are protected by guard DEFs, compilation on GCC 4.8 was only possible with such a construct:
#pragma once USE_C99_ FP_MACROS_ DYNAMIC 1
#pragma GCC diagnostic push
#define RAND_MAX __RAND_MAX
#pragma GCC diagnostic ignored "-Wshadow"
#pragma GCC diagnostic ignored "-Wfloat-equal"
#define _GLIBCXX_
..
Here is the short version of my compiler error:
/home/travis/ build/diydrones /ardupilot/ libraries/ AP_Eigen/ AP_Eigen. h:17:81: note: #pragma message: std::lgamma*() does not exist in this environment.
# pragma message( "std::lgamma* () does not exist in this environment.")
^ opt/gcc- arm-none- eabi-4_ 9-2015q3/ arm-none- eabi/include/ c++/4.9. 3/random: 51:0,
from /home/travis/ opt/gcc- arm-none- eabi-4_ 9-2015q3/ arm-none- eabi/include/ c++/4.9. 3/bits/ stl_algo. h:66,
from /home/travis/ opt/gcc- arm-none- eabi-4_ 9-2015q3/ arm-none- eabi/include/ c++/4.9. 3/algorithm: 62,
from /home/travis/ build/diydrones /ardupilot/ libraries/ AP_Eigen/ eigen/Eigen/ Core:160,
from /home/travis/ build/diydrones /ardupilot/ libraries/ AP_Eigen/ AP_Eigen. h:32,
from /home/travis/ build/diydrones /ardupilot/ libraries/ Filter/ LowPassFilter2p .cpp:100: opt/gcc- arm-none- eabi-4_ 9-2015q3/ arm-none- eabi/include/ c++/4.9. 3/bits/ random. tcc: In member function 'void std::poisson_ distribution< _IntType> ::param_ type::_ M_initialize( )': opt/gcc- arm-none- eabi-4_ 9-2015q3/ arm-none- eabi/include/ c++/4.9. 3/bits/ random. tcc:1408: 55: error: no matching function for call to 'max(float, const double&)' std::max( 6.0, std::min(__m, __dx)));
^
In file included from /home/travis/
/home/travis/
/home/travis/
_M_d = std::round(
compilation terminated due to -Wfatal-errors.
Please fix this fast, it cannot be that half of the standard library cannot be used with ARM.