-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wheels are not ABI compatible with C++11 #776
Comments
I am not sure that passing To be honest, I think |
Yes, what I wrote yesterday downstream was the outcome of the first quick check of resources in the internet. I confirm that passing that option to the compiler is not an option. The compilation in CentOS uses a modern gcc, but then is Changing that option would result to a wheel not compatible with The best solution IMO is what we use also elsewhere: compile a As a final remark, this is necessary only because we vendor the entire CMake project and allow downstream projects to import it. If we were only providing the bindings, the process would be valid. |
The final outcome to address the problem is described in #777 (comment).
|
As now the wheels are compatible with C++11, can we close the issue @diegoferigo ? |
Sure. Closing. |
I move the discussion about the ABI compatibility of the new wheels (#774) from robotology-legacy/gym-ignition#276.
Long story short. The standard
manylinux2014
requires gcc4 that does not support the new C++11 ABI for std::string. This means that the libraries included in the wheel included in the exported CMake project cannot be consumed by dowstream projects that use the new ABI (nowadays, mostly all the code).The subtle part is that downstream compilation works just fine, but then the loader will not find any symbol that has the old
std::string
signature.There are quite a lot of issues out there, an interesting one is pytorch/pytorch#17492. Other interesting details are recapped in How we build Apache Arrow's manylinux wheels. A third one from tensorflow https://groups.google.com/a/tensorflow.org/g/build/c/Xo190xAPyW8?pli=1.
I'm not yet sure what is the best solution here. If supporting
manylinux2014
is too problematic, maybe uploading wheels not compliant with it would work just fine for the majority of the users. cc @traversaroThe text was updated successfully, but these errors were encountered: