Pull request #220
closedAvoid c++11 in py-pinocchio when it's not necessary
Description
Hi,
We recently agreed on using c++11 for math/py-pinocchio, but this it looks like some users have issues with that.
Here is a workaround.
Updated by Anthony Mallet over 4 years ago
This does not work: dependencies are resolved in a single pass, so
when PKGVERSION.urdfdom is defined, the
DEPEND_ABI.boost-headers += boost-headers>=1.55 is not taken into
account anymore.
Updated by Anthony Mallet over 4 years ago
Now that pinocchio explicitly wants C++11 (at least on all supported
platforms), I guess this issue becomes irrelevant?
Updated by Guilhem Saurel over 4 years ago
Pinocchio did not change anything on this point I think, and I don't agree with d9e529578d1026f0553ea7c432e4c69d6c66b8e1, because this header is required only if PINOCCHIO_WITH_CXX11_SUPPORT is defined:
https://github.com/stack-of-tasks/pinocchio/blob/v2.2.1/src/math/tensor.hpp#L11
And this should be automatically defined if we compile with C+++11:
https://github.com/stack-of-tasks/pinocchio/blob/v2.2.1/src/macros.hpp#L9
So yes, now, if we compile pinocchio in C++11, we require Eigen >= 3.3.
Still, I don't have a solution for this issue, and I'd be in favor of including c++11.mk anyway, even if this require users to compile dependent libraries with c++11 where it might not be absolutely required. But in those cases, the user is also free to compile pinocchio from source, as we would be missing too much functionalities in the binary release if we really wanted to stick with C++98, and this would add way too much complexity to provide binary version with and without c++11.
Updated by Anthony Mallet over 4 years ago
On Wednesday 4 Dec 2019, at 14:46, Guilhem Saurel wrote:
And this should be automatically defined if we compile with C+++11:
https://github.com/stack-of-tasks/pinocchio/blob/v2.2.1/src/macros.hpp#L9
OK, now I understand : py-pinocchio was failing with g++-4.9 and
eigen<3.3 because it is C++11 enabled (because of urdfdom >=
1). That's why I put requirement on eigen3>=3.3 in pinocchio itself, I
tought it was the same.
But due to the magic macro the packages would not be the same
depending on the compiler, it's not really nice either.
So yes, now, if we compile pinocchio in C++11, we require Eigen
= 3.3.
In practice, this just disables debian 8 compared to previous status.
Updated by Anthony Mallet over 4 years ago
Pinocchio did not change anything on this point I think, and I don't agree with d9e529578d1026f0553ea7c432e4c69d6c66b8e1
Please revert it if needed.
Updated by Guilhem Saurel about 4 years ago
About this, I think we can build on C++11 everywhere but 16.04.
It seems that we get many reports from people on this platform who have ubuntu's urdfdom (and therefore don't require the C++11), but can't compile anything against pinocchio until we explain them to add the right flag for C++11.
Would this be OK ?
Updated by Guilhem Saurel over 3 years ago
- Status changed from New to Closed
Fixed upstream, thanks for your feedbacks !