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

Wolfgang Denk wd at denx.de
Tue Aug 18 10:35:53 CEST 2009


Dear Peter Chen,

In message <1250571462.6548.21.camel at nchen-desktop> you wrote:
> 
> > > > The "jump table provided by U-Boot exactly for this purpose" is the
> > > > list of functions exported through the "include/_exports.h" header
> > > > file.
...
> > 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.
> 
> I am sorry, I can't understand your meaning. For example, at

I'm close to give up. I try to as explicit as possible, and I see no
room for interpretation left, yet you still try to argument.

> "include/_exports.h"
> there is an EXPORT_FUNC(printf), do the standalone application must
> under GPL if
> it uses printf?

No. As explained several times before, the "jump table [is]  provided
by  U-Boot  exactly  for  this purpose", with "this purpose" being to
allow for closed source, proprietary code.

printf() gets exported through the jump table interface, so this is OK
to use in proprietary code.

> Then, what does "include/_exports.h" use?

It uses a list of functions (resp. function pointers) we consider  OK
to be used in closed source applications.

> In your COPYING, it writes:
>   NOTE! This copyright does *not* cover the so-called "standalone"
> applications that use U-Boot services by means of the jump table
> provided by U-Boot exactly for this purpose - this is merely
> considered normal use of U-Boot, and does *not* fall under the 
> heading of "derived work".

Indeed. And I explained this several times before.

> > > 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.
> > 
> 
> My code like belows:
> 
> typedef void (*pfn_t) (void);
> pfn_t sc_gps_pfn[] = {
>         LoadToMemory,
>         SaveData,
>         RFPowerCtrl,
>         MiscConfig,
>         RegisterDspInterruptHandler,
>         GetPowerStatus,
>         IsUserResume,
>         DebugOutput,
>         ReturnToBootLoader
> };

OK, so you are setting up a table of your  own  functions.  You  need
this  table only if you link the code containing these functions with
the U-Boot binary - and you do so  most  probably  because  the  code
calls into other U-Boot provided functions.

> We want to open this code, but want to close the code which use this
> function list in binary pattern.

You probably have no choice here. If your code that provides the list
of functions above is linked with U-Boot, you *must* release it under
GPL. No matter if you want or not - if you release your code at all,
it is GPLed.

And your list of functions above thus accesses GPLed  code  which  is
NOT  part  of include/_exports.h. So the GPL exception does NOT apply
to any code that references functions from  this  list,  i.  e.  your
standalone application must be released under GPL, too.

> > What you implement is some form of static linking.
...
> The standalone application is compiled by armcc, and this bin file is
> shared by WinCE and Linux bootloader.
> The standalone application uses bootloader functions by address not by
> name.

That does not matter. Accessing a function by address still means you
are linking against the code (in a stupid way, btw). Your standalone
application has to be released under GPL.


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
A quarrel is quickly settled when deserted by one party; there is  no
battle unless there be two.                                  - Seneca


More information about the U-Boot mailing list