On Tue, Aug 18, 2015 at 4:49 PM, Dale <rdalek1...@gmail.com> wrote:
>
> If you have any info on how to override this, I'd be glad to see it.
> Just a link or something would help.
>

I haven't tested it, but I'd think the simplest solution would be
something like this (which just turns EXPORT_SYMBOL_GPL into
EXPORT_SYMBOL, and should be a lot easier than fixing every export
that the drivers use):

diff --git a/include/linux/export.h b/include/linux/export.h
index 96e45ea..b1bc4c3 100644
--- a/include/linux/export.h
+++ b/include/linux/export.h
@@ -69,7 +69,7 @@ extern struct module __this_module;
        __EXPORT_SYMBOL(sym, "")

 #define EXPORT_SYMBOL_GPL(sym)                                 \
-       __EXPORT_SYMBOL(sym, "_gpl")
+       __EXPORT_SYMBOL(sym, "")

 #define EXPORT_SYMBOL_GPL_FUTURE(sym)                          \
        __EXPORT_SYMBOL(sym, "_gpl_future")


I really think that this kind of approach by the kernel devs isn't
really going to go anywhere.  It might cause companies like nvidia/ati
to just dump linux support, but it seems more likely that they'd just
play workaround games.  Maybe they create a GPL module that just
exposes all the APIs as non-GPL.  Maybe they make it clear that their
module is non-GPL, but have it report itself as GPL to the kernel.

I think the kernel devs would be hard-pressed to mount some kind of
GPL infringement lawsuit.  In general US courts have tended to block
attempts to use copyright/trademark/patents/etc simply to prevent
interoperability, and that is basically what this is.

And would we really want it any other way?  How is this not like
Brother sticking chips in their ink cartridges containing copyrighted
code, or the chip in lightning cables?

I do get the frustration of the kernel developers.  The GPU makers
should be competing on their GPUs, not on their drivers.  However,
Linux isn't their main market and forcing the issue is probably just
going to drive them to ignore it.

-- 
Rich

Reply via email to