This wasn't mission critical to me at the time, and the solution looked scary, so I put it aside. A month and a half later, I actually tried the simple steps that Tamas gave and it worked. Thanks!
On Sat, Sep 27, 2014 at 3:20 AM, Tamas Nepusz <[email protected]> wrote: > > Installing python-igraph with pip install python-igraph yields a lot of > > effort and then the following error at the end: > > > > /usr/bin/ld: /usr/lib64/libm.a(s_atan.o): relocation R_X86_64_32S against > > `.rodata' can not be used when making a shared object; recompile with > -fPIC > This is probably the same as the following issue (although with a > different linked library): > > https://github.com/igraph/igraph/issues/640 > > The easiest workaround would probably be to: > > 1. Download python-igraph-0.7.tar.gz from > https://pypi.python.org/pypi/python-igraph/0.7 > 2. Extract it somewhere > 3. Replace setup.py in the tarball with our patched one from > https://raw.githubusercontent.com/igraph/igraph/develop/interfaces/python/setup.py > 4. Run “python setup.py install" > > The full story is (roughly) as follows (you can skip this if you are in a > hurry): > > 1. When you run “pip install python-igraph”, the installer figures out > that you have not compiled and installed the C core of igraph so it tries > to download and compile the C core. To prevent complications with dynamic > linkage (a dynamically compiled igraph library would have to be installed > somewhere in /usr/lib or /usr/lib64 so the system could see it, and it is > not nice to mess around with these locations unless done via a package > manager), the C core of igraph is compiled statically and linked to the > Python interface. > > 2. The C core of the igraph library also depends on some system libraries > such as libxml2 (for parsing GraphML files) or libm (for doing all sorts of > math stuff). Again, to prevent complications with dynamic linkage (the > Python interface could break if it links dynamically to these libraries and > the libraries are updated), the setup script will strive to link to the > static copies of these libraries, i.e. to libxml2.a instead of libxml2.so.* > and to libm.a instead of libm.so.*. Unfortunately, this linkage works only > if the static libraries (i.e. the ones with the .a extension) are compiled > with specific compiler switches, one of which is -fPIC. > > 3. In your case, libm.a was compiled without -fPIC (probably by the > maintainers of whatever Linux flavour you are using), so the linkage does > not work and you get this cryptic error message. > > Actually, this is not the first time that libm.a causes problems; it also > happened before with someone else on Sabayon Linux, so the development > branch of our codebase already contains a new version of setup.py that > links to libm dynamically - that’s what you had to download in the > workaround above. > > Let me know whether it worked for you or not. > > All the best, > Tamas >
_______________________________________________ igraph-help mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/igraph-help
