[U-Boot] License Problems for standalone application at u-boot

Wolfgang Denk wd at denx.de
Mon Aug 17 10:03:08 CEST 2009


Dear Peter Chen,

In message <1250474437.13885.23.camel at nchen-desktop> you wrote:
> 
> > > 1. Does jump table means the function lists which the standalone
> > > applications uses?
> > 
> > The "jump table provided by U-Boot exactly for this purpose" is the
> > list of functions exported through the "include/_exports.h" header
> > file.
> 
>     At my situation, the standalone program is hardware independent.
> And the u-boot supplies hardware interfaces according to different
> platforms.
> Like at u-boot/board/myboard/myboard.c, there are a function lists
> struct, and the address
> of this struct will transfer to standalone program. 

If you set up your own list of function pointers (in addition or
instead of the jump table provided by the "include/_exports.h"
header), then this is a form of linking against the U-Boot code, and
your application must be released under GPL.

> Is it free to license at below situation:
> The function list which is defined at u-boot/board/myboard/myboard.c,
> and all functions in this list
> only uses functions at include/_exports.h and some of user-defined
> functions.

Your description is really vague; it would be easier if you could
give specific code examples or such. If "some of user-defined
functions" refers to code that is covered by the GPL, then your
application must be released under GPL, too.

> Or Need I to export my functions at include/_exports.h? At my standalone
> application only uses address of
> functions at function list, not the name of function, so It doesn't need
> to include include_exports.h.

What you implement is some form of static linking.

... which technically is a stupid thing to do, as your application
will only be able to run with a very specific binary image of U-Boot.
Even rebuilding the same version of U-Boot (jut using a different
tool chain, for example) will most likely result in a U-Boot image
that cannot run your application code any more. Even worse, ther
ewill be not even a clear failure mode, instead you will execute
random code.

> We would like to release our u-boot under GPL, but standalone

Actually you have no choice; U-Boot is already covered by the GPL -
as soon as you distribute the code, you also have to fufil the
resulting requirements of the GPL.

> application includes some IP properties code, so 
> we want to close it.

This is no problem, as long as you strictly follow the rules. I think
the exception from the GPL is pretty well defined and leaves not much
room for interpretation. What you describe sounds fishy to me.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If a group of N persons implements a COBOL compiler,  there  will  be
N-1 passes. Someone in the group has to be the manager. - T. Cheatham


More information about the U-Boot mailing list