
I just re-read the GNU Lesser General Public License today - and I discovered that it places some utterly strange (IMHO) restrictions on executables statically linked with LGPLed libraries. Unfortunately, GHC for Windows produces such executables by linking in libgmp statically. Dynamically linking with libgmp would cause no restrictions, but if it is statically linked, the LGPL says that everyone distributing a program compiled with GHC has to 'Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)'
Yes, this is a pain. We really ought to distribute GMP as a DLL on Windows, and stop making static versions on Unix (the Solaris distribution of GHC generally includes a static libgmp, but most of the other dists don't). Better still, we could find an alternative to GMP - I don't know of one that is as fast & provides all the functionality that we use from GMP, though. Cheers, Simon
participants (1)
-
Simon Marlow