Hi, I think I have an idea but I'm not 100% sure. It seems that igraph is compiled with thread-local storage support by default (meaning that global variables are declared as thread-local, so in theory it should be safe to use igraph from multiple threads at the same time -- although it's highly experimental and not tested thoroughly at all, so we do not officially support this). This seems to be an error in the configure script because that was definitely not our intention at all. I will have to follow up on this later.
Now, this means that when you install the C core, you get a copy of the igraph library somewhere in your library path where thread-local variables are enabled. On OS X, thread-local storage is actually emulated, and the ___emutls_get_address function is needed for this. The problem is then that later on you compile the Python interface, and the setup script of the Python interface is not able to find the installed C core (as you mentioned this), so it *downloads* the C core again and compiles it -- but this time the installer explicitly passes the --disable-tls argument to the configure script. Then you end up with a Python interface which is expected to link to a C core *without* thread-local support, while the actual igraph library that you have on your system is compiled *with* thread-local support. I see three possible solutions if this is really the case: 1) Get rid of the existing C core installation of igraph. If you installed it in /usr/local (which is what igraph does by default), you can simply remove /usr/local/lib/libigraph* and /usr/local/include/igraph* 2) Try to make the setup.py script of the Python interface find where the C core was installed instead of downloading it again. By default the setup script uses pkg-config to figure out where the C core is, so first try typing "pkg-config --cflags --libs igraph" into a terminal and check whether it is working. (It should print a bunch of compiler flags). 3) Recompile the C core with "./configure --disable-tls && make && make install", then recompile the Python interface as well (just to be on the safe side). Let me know if it didn't work so we can continue investigating. All the best, Tamas _______________________________________________ igraph-help mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/igraph-help
