Dynamic Linking Library
for MinGW under MS-Windows
Though the EDLL library itself
is LGPL, the
EDLL package comes with
multiple licenses. The following will hopefully be helpful for you to
understand what is covered by which license.
BFD and iberty
licensed under the GPL. If you have to link with these libraries you
will have to open your source code as well. There is now a flag in the edll configure
script which will turn OFF the use of the BFD and iberty
libraries (this is actually the default.)
This library is covered by the GNU Less General
Public License. This more or less means you can freely copy and
distribute this library in source and binary form. However, if you
modify the source code, you need to share the changes. If your
application links with a version of the EDLL library in binary form,
don't need to share the source code of your application.
- EDLL (the library: edll.h and src/*.[ch], except ltdl.c)
The different tests and examples coming with the EDLL library are
domain. This means anyone is free to use, copy, redistribute, modify,
etc. all of these files. They are not of much interest anyway except to
test the functionality of the EDLL library.
The image on the top-right shows the
result of the edll-bss plugin. It creates a circle using sinf() and
cosf() for which it needs to be linked against the mingwex library and
it uses a large COMMON section (256 x 256 x 3).
A copy of this library is offered in this package since it can be used
to load the plug-ins using the standard lt_dlopen()
function. This version understands and makes use of the EDLL library
instead of directly calling the MS-Windows LoadLibrary() function.
- LibTool dynamic loader (ltdl.c and ltdl.h)
The license of this library is LGPL. You can
find additional information about this package on the GNU website.
The documentation offered along the EDLL is covered by the GNU FDL.
The older versions of edll (up
to 0.5) could only be used with the BFD and iberty libraries (that you
needed to link against along with the EDLL). Because these two
libraries are licensed under the GPL, it means that
your code will also fall under the GPL. As you probably know, this
means you need to distribute all
the source code along any of your software linked against these
- The BFD and iberty libraries
I spent about 12 hours to rewrite the necessary code to handle the COFF
format. The edll is now
capable of loading the .exe and .o files generated by gcc and g++ (and
most certainly other compilers, especially for the .exe files.) This is
now the default for the edll.
It means you are not bound to the GPL, but also, it means the code only
support the Microsoft COFF format (and not all of it). Maybe one day we
could have support for ELF so we can compile all the plugins on native
Linux and run them on Microsoft as is. On the other hand, you should be
able to ask gcc/g++ to generate COFF files under Linux (I should try
that some day!).
The configure flags you can use to switch between the edll COFF
handling and the BFD and iberty libraries is:
--disable-usebfd (this is the default)
--enable-usebfd (GPL license!)
|edll has always been loading DLLs
with the LoadLibrary()
Win32 function. This is still the case and there is no worry there. It
will always work as expected.
This page was created by Alexis Wilke
Last updated on September 17, 2007 at 20:38