[Wheel-builders] manylinux wheel troubles using C++ and streaming exceptions

Vitaly Kruglikov vkruglikov at numenta.com
Tue Aug 9 01:51:03 EDT 2016


I am experimenting with static libstdc++, but am still having the same issue of the std::sio:failure exception not getting caught. It may be because the references to libstdc++ are getting linked in as externals that at runtime might be getting linked to a dynamically-loaded libstdc++. I will try going with version scripts next to remove everything from the exported interface except the single python extension initialization function.

Thanks,
Vitaly

From: Guilherme Melo <gqmelo at gmail.com<mailto:gqmelo at gmail.com>>
Date: Monday, August 8, 2016 at 5:32 PM
To: Vitaly Kruglikov <vkruglikov at numenta.com<mailto:vkruglikov at numenta.com>>, "wheel-builders at python.org<mailto:wheel-builders at python.org>" <wheel-builders at python.org<mailto:wheel-builders at python.org>>
Subject: Re: [Wheel-builders] manylinux wheel troubles using C++ and streaming exceptions

Hi Vitaly,

I was curious about your problem and I've been able to reproduce it compiling with gcc 4.8.2 on CentOS5 and gcc 4.8.5 and gcc 4.9.3 on Ubuntu
Also it is not even necessary to pass -std=c++11, the bug happens either way.

this one exception class and the actual failures are unreasonably difficult to simulate in testing, making it difficult, if not impossible, to find all occurrences in one's own code, not to mention 3rd party code that it links with.

I don't think there is so many incompatibilities. The libstdc++ shipped by gcc 5.1.0+ should be backward compatible, but as you found out it is indeed a bug. As an example, on the company I work for we have hundreds of conda packages compiled with gcc 4.8.5. Recently we changed to gcc 5.4.0 for our applications and did not have to rebuild any of the dependencies (actually we are still compiling the dependencies with 4.8.5)

But regarding your problem I don't see much that can be done until they fix this:

- Maybe static linking libstdc++?
- Maybe manylinux1 should provide a way to ship libstdc++ with wheels for such cases?



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/wheel-builders/attachments/20160809/c8730a43/attachment-0001.html>


More information about the Wheel-builders mailing list