> From: <rsbec...@nexbridge.com> > Date: Wed, 1 Dec 2021 09:09:55 -0500 > Cc: bug-make@gnu.org, bo...@kolpackov.net > > On December 1, 2021 9:06 AM, Tim Murphy wrote: > > <big snip> > > -load $(XTRA_OUTPUTDIR)/hash$(XTRA_EXT) > > This thread brings up a question. The load function checks for GPL > compatibility. > > /* Assert that the GPL license symbol is defined. */ > symp = (load_func_t) dlsym (dlp, "plugin_is_GPL_compatible"); > if (! symp) > OS (fatal, flocp, > _("Loaded object %s is not declared to be GPL compatible"), > ldname); > > I am wondering why that is the case. A DLL that is loaded by GNU Make is not > necessarily subject to GPLv2 or GPLv3. GPLvx makes it clear that you are > subject to GPLvx if you include portions of the code from the project under > license. However, an external DLL that is loaded by GNU Make via dlopen does > not have to use any code from the code base. Using a published API, which > would be the function interface has precedent for being excluded from license > enforcement - the UNIX kernel API is an example that is purely public domain > itself, while the individual header files are subject to licenses.
The test doesn't check that the library is under GPL, it tests that it's "GPL-compatible", which means it's Free Software. GNU Make doesn't want to load non-free modules.