-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Closed
Description
Here's the problem: if you build a pybind11 when using 3.5.2 headers, it will reference this symbol:
U _PyThreadState_UncheckedGetbecause of how get_thread_state_unchecked is implemented. If you try to import this module with 3.5.0/3.5.1 version of Python, you will first get a linkage error and then most likely a segfault:
ImportError: foo.cpython-35m-x86_64-linux-gnu.so: undefined symbol: _PyThreadState_UncheckedGetNow, this is not very cool, since ABI compatibility between micro versions is something to be expected by default. It gets much worse if you use conda: it differentiates package versions by the major+minor numbers in the version only, so you have packages like foo-py34-0.1.0 and foo-py35-0.1.0 and it's implicitly assumed they should work well for all micro versions of the interpreter.
Metadata
Metadata
Assignees
Labels
No labels