If the program dynamically links
plug-ins, and they make function calls
to each other and share data
structures, we believe they form a
single program, which must be treated
as an extension of both the main
program and the plug-ins. In order to
use the GPL-covered plug-ins, the main
program must be released under the GPL
or a GPL-compatible free software
license, and that the terms of the GPL
must be followed when the main program
is distributed for use with these
plug-ins.
Source