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. So, my question is why the GPL enforcement outside of what would be a usual interpretation for GPLv3, for external integrations that may have nothing specifically to do with the Make code? Sure, if you include function.h then yes you are subject to it, but you do not have to. This seems overly aggressive and not really necessary. Is there an answer back in history that might explain it? Thanks, Randall