From the GPL FAQ
If a program released under the GPL uses plug-ins, what are the requirements
for the licenses of a plug-in? (#GPLAndPlugins)
It depends on how the program invokes its plug-ins. If the program uses
fork and exec to invoke plug-ins, then the plug-ins are separate programs, so
the license for the main program makes no requirements for them.
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. This means the plug-ins must be released under the GPL or a
GPL-compatible free software license, and that the terms of the GPL must be
followed when those plug-ins are distributed.
If the program dynamically links plug-ins, but the communication between
them is limited to invoking the ‘main’ function of the plug-in with some
options and waiting for it to return, that is a borderline case.