
Am Freitag 24 Februar 2012, 20:17:19 schrieb Mike Frysinger:
On Friday 24 February 2012 13:10:36 Michael Walle wrote:
As far as i know applications can use functions defined in exports.h without being licensed under the GPL.
correct, that is what the COPYING file states
Who is responsible to define which functions are exported? Are the currently exported functions the only ones available to closed source applications or is it possible to add further ones which are needed.
someone posts a request and the maintainers evaluate it. typically the exported funcs should be "high level" and not hooks into u-boot internals.
Functions may need arguments which are pointers to some structures. These structures are likely be defined in some GPL'ed header file and must not be used, i guess? So the exported functions must only use integral data types, opaque pointers and structures which are not defined in a GPL'ed header file.
which is why the exported funcs are "high level" and not ones that get into low level stuff that would necessitate passing structs. the other problem with struct passing is that they tend to break the ABI layer. -mike
Then i guess there is no way to support a board which has only evil closed source drivers for its networking card. That is, i can't export eth_register() to register my ops defined in the blob without violating the GPL.
Even if the headers for the "struct eth_device" were public domain, this mechanism would be sth like 'linking' against the uboot, wouldn't it?