Open cuppajoeman opened 4 months ago
I have been trying to package v5.0.0 and noticed another bug, which is that it by default assumes your CPU has some simd
features:
This compilation of the library still works, but then when you try to use it in your own project you get errors about missing instructions because of this.
Hi @cuppajoeman!
First off, thanks for the detailed report.
Yes, as you pointed out, this might be an issue that arises or not depending on the distribution you are compiling. I will have a try soon on my end.
Sometime after joltphysics v3.0.1 this was fixed and is now fixed in version 5.0.0. In such a scenario is the package still fine to keep up even though it won't build on some systems? I'm willing to learn how to package and then update this to version 5.0.0, but I'm curious what we do with package versions that don't build on certain systems...
Regarding this, yes, we are willing to update on new versions of the library that fixes the issue. In the case the old versions fall too far behind, we even remove them from the index and prioritize new versions. Also, if you just want to indicate that the recipe is still not valid for some configurations it's perfectly fine, we just add a validate()
method with the condition there just like this: https://docs.conan.io/2/reference/conanfile/methods/validate.html
I have been trying to package v5.0.0 and noticed another bug, which is that it by default assumes your CPU has some
simd
features:This compilation of the library still works, but then when you try to use it in your own project you get errors about missing instructions because of this.
Sorry, I replied and did not read you latest comment. I think in this case we will need to ask the author of the library and give some details of the issue upstream. Maybe they can help us with this. Thanks!
I have been trying to package v5.0.0 and noticed another bug, which is that it by default assumes your CPU has some
simd
features: https://github.com/conan-io/conan-center-index/blob/2d8c1487659a85c2949ac404c9f9a7ed3eb7790e/recipes/joltphysics/all/conanfile.py#L36This compilation of the library still works, but then when you try to use it in your own project you get errors about missing instructions because of this.
Sorry, I replied and did not read you latest comment. I think in this case we will need to ask the author of the library and give some details of the issue upstream. Maybe they can help us with this. Thanks!
Hey I think you misread this, I was just trying to say that in the conanfile.py that was a default setting, and that it should probably be not, because assuming so means that if you try to compile and your CPU doesn't have this instruction, then we would get the problem that I described, Joltphysics on it's own works fine, I think this was just an assumption made by the previous packager.
@cuppajoeman I think I did not give the details - Having a look at https://github.com/jrouwe/JoltPhysics/blob/4084c13b676a2e7ebf9662b47dcb949179b8c4a1/Build/CMakeLists.txt#L40 I saw the options of the recipe and it was covering the same as in the CMakeLists but it is not quite right, so, definitely, it seems there was an incorrect assumption of default option there as you pointed out
Description
By creating the following
conanfile.txt
:then running
conan install . --build=missing
on my system, it starts the build process and we get the following:In the above logs we can see that
uint8_t
does not define a type, indeed this is noted by the mainter ofjoltphysics
: https://github.com/jrouwe/JoltPhysics/commit/ddd5b5e36d247115367cbf5544f59ae732cc95e9Also I looked at cached binaries on conancenter to see what kind of build setup was used to actually compile this and noted that we have the following one:
So noting that the only differece between that and my settings were that I had compiler.version: 14, I changed my compiler settings and still got the above error. Specifically when I force build it with the settings:
I still get the
uint8_t
does not name a type error, I think this error comes up on specific linux distributions that don't automatically include<cstdint>
but I honestly don't fully understand why this occurs because it seems like the build settings are identical, so this seems to be a linux distribution specific thing, specifically occurs on manjaro.Sometime after joltphysics v3.0.1 this was fixed and is now fixed in version 5.0.0. In such a scenario is the package still fine to keep up even though it won't build on some systems? I'm willing to learn how to package and then update this to version 5.0.0, but I'm curious what we do with package versions that don't build on certain systems...
Package and Environment Details
Conan profile
[settings] arch=x86_64 build_type=Release compiler=gcc compiler.cppstd=17 compiler.libcxx=libstdc++11 compiler.version=14 os=Linux
Steps to reproduce
As specified in the original post.
Logs
As specified in the original post.