On Fri, 1 Jul 2011 17:12:29 -0400, Nicolas Pinto wrote:
One bit of information that might be relevant is that you can
only import one package that uses shipped boost at a time, for some reason.

Any idea what the reason could be. I love the fact that I can now "pip
install -vU py{cuda,opencl}" on every machine I have and it works
beautfiully with the shipped boost *BUT* not when a program wants to
use both. I'd love to contribute a fix but I have a limited bandwidth
and a pointer would be helpful.

I think there are some global structures (type tables?) that are supposed to be shared among all BPL-using modules, and I think the fact that there are now two modules trying to export those is what makes things break. I'm not sure how those structures are accessed. If they're accessed by symbol name with some dynamic linker magic, here's a trick that could work: Simply compile pycuda with -Dboost=pycudaboost and pyopencl with -Dboost=pyopenclboost. That should (somewhat forcibly) rename that "boost" namespace. It might also break all kinds of other stuff. But it's worth trying.

Let me know how it goes.

Andreas

_______________________________________________
PyCUDA mailing list
PyCUDA@tiker.net
http://lists.tiker.net/listinfo/pycuda

Reply via email to