[Debian-med-packaging] Bug#702882: fixing libf2c.so: undefined reference to `MAIN__'

Tamás Nepusz ntamas at gmail.com
Mon Mar 24 12:32:10 UTC 2014


I have spent a few hours now to try to sort out the f2c issues with igraph; here’s a summary of what I’ve found:

1) The configure.ac script tries to link to f2c even if it would not be needed at all. Basically, f2c is needed if someone wants to use the BLAS, LAPACK or ARPACK version that comes bundled with igraph (because these were converted from Fortran using f2c). Since we link to the BLAS, LAPACK and ARPACK packages provided in Debian itself, linking to f2c is not needed at all. I have recently committed a patch to the development branch of igraph on Github that resolves this issue [1].

2) The bug mentioned in #1 did not appear in the Debian package for igraph before (with the 0.5.x versions) because configure.ac did *not* link to -f2c at all (even though a comment in it claimed to do so). Therefore, out of pure coincidence, everything worked just fine for 0.5.x and things went wrong for 0.6.x when configure.ac was fixed (by debian/patches/link_f2c.patch) and the compiler started to link to f2c.

3) There is yet another bug in src/Makefile.am, which is not affecting Debian but I thought I’d raise it anyway. When at least one of BLAS, LAPACK or ARPACK is compiled from the source bundled with igraph *but* F2C is linked dynamically from an external libf2c.so, the makefile does not link the dummy MAIN__ Fortran function from src/f2c/dummy.c (or, alternatively, from src/f2c_dummy.c, which is a duplicate). I will commit yet another patch to the igraph development tree on Github to fix this.
 
In the meanwhile, the easiest (but probably not the cleanest) way to fix the MAIN__ linkage issue for the Debian package would be to remove debian/patches/link_f2c.patch completely. Alternatively, one could merge the patch [1] I mentioned above into debian/patches.

[1] https://github.com/igraph/igraph/commit/fb554c839a1c9d40818e16aec8c8444b50b243e2

All the best,
Tamas



More information about the Debian-med-packaging mailing list