All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jerry Van Baren <gerald.vanbaren@smiths-aerospace.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] Proposal for a make option to include an	additional stand alone program directory
Date: Fri, 27 Apr 2007 16:13:39 -0400	[thread overview]
Message-ID: <46325973.20201@smiths-aerospace.com> (raw)
In-Reply-To: <002601c78903$64f47cc0$01c4af0a@Glamdring>

Ulf Samuelsson wrote:
>> Wolfgang Denk wrote:
>>
>> I really don't want to be arguing the GPL, but I am interested in a 
>> technical solution to
>> a problem that is also legally permissible.
> 
> If you follow the rule that you cannot execute U-Boot code
> after you have executed non GPL code you will most likely not violate GPL.
> 
> Your technical solutions are obvious:
> 
> * Explain your problem to code owner and request code to be GPL.
> * Drop the code, ask for interface info, and rewrite GPL code from scratch
> * Write a program which calls the loader function, and then calls U-Boot.
>    This can be non-GPL.
> 
> What you can't do is to have U-boot call a subroutine inside the non-GPL 
> code,
> nor can you from non-GPL code jump to any point except the start of u-boot.

Not exactly true...

>>> Merging two binaries into one, so that A can make function calls into
>>> B *is* linking if the function of A depends on  the  results  of  the
>>> function calls of B.
>> How do you determine "depends"?  If B enables the 2nd Ethernet port, but 
>> you never
>> actually use it, then A doesn't really depend on B.  Takes these two 
>> scenarios:
>>
>> 1) U-Boot runs the binary application that enables Ethernet 2, but it 
>> doesn't load the
>> driver for Ethernet 2.  Therefore, the functioning of U-Boot does not 
>> depend on the binary.
> 
> Your violation occurs when you make a subroutine call.
> A pure jump which never returns is no violation.
> 
> If you, from U-boot enable some H/W using  call to non-GPL code,
> and then jump to an application which uses the H/W, then
> again you have violated the GPL.

Not exactly true...

>> 1) U-Boot runs the binary application that enables Ethernet 2, and it 
>> loads the driver for
>> Ethernet 2.  Therefore, the U-Boot can do Ethernet I/O on this device.
>>
>> By your definition, scenario #1 is not a GPL violation, but scenario #2 
>> is.  So I can
>> merge my closed-source proprietary binary in with GPL as long as I don't 
>> enabled the 2nd
>> Ethernet port.
>>
>>> Linux system calls is an explicitely exported interface so it  is  OK
>>> to use this from application code.
>> So it's okay for a non-GPL binary to call GPL code, but not the other way 
>> around?
>>
> 
> U-Boot does not have any explicitly exported interfaces except its entry 
> point.
> If you in any way make the address of a subroutine inside U-boot available
> to another application you link the application with U-Boot and the
> application must be GPL.
> You can jump to a binary which loads non-GPL stuff into another MCU
> but you cant return to u-boot.

Not exactly true...

U-Boot has a documented application interface that non-GPL "stand alone" 
applications may call.  This is equivalent to the linux system call API, 
that non-GPL applications may call.
   <http://www.denx.de/wiki/UBootdoc/StandalonePrograms>

<http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=README;h=90ef2c2eba66be9d011c84f34ca44cc637b76095;hb=HEAD#l3257>

3216 More About U-Boot Image Types:
3217 ------------------------------
3218
3219 U-Boot supports the following image types:
3220
3221    "Standalone Programs" are directly runnable in the environment
3222         provided by U-Boot; it is expected that (if they behave
3223         well) you can continue to work in U-Boot after return from
3224         the Standalone Program.

API:
<http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=include/exports.h;h=8f7f61703c6c47519794996d65931018b3216d86;hb=HEAD>

Examples:
<http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=tree;f=examples;h=3b95ec59ee8e58fc459596dfd32b3c3b2a881d77;hb=HEAD>

>> Timur Tabi
>> Linux Kernel Developer @ Freescale
> 
> Best Regards
> Ulf Samuelsson 

  reply	other threads:[~2007-04-27 20:13 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-26 17:15 [U-Boot-Users] Proposal for a make option to include an additional stand alone program directory Jeff Mann
2007-04-26 18:37 ` David Hawkins
2007-04-26 19:33   ` Jeff Mann
2007-04-26 20:02   ` Wolfgang Denk
2007-04-26 20:43     ` David Hawkins
2007-04-26 18:44 ` Timur Tabi
2007-04-26 19:13   ` Jeff Mann
2007-04-26 19:24     ` Timur Tabi
2007-04-26 20:10       ` Wolfgang Denk
2007-04-26 20:16         ` Timur Tabi
2007-04-26 20:31           ` Wolfgang Denk
2007-04-26 20:05   ` Wolfgang Denk
2007-04-26 20:09     ` Timur Tabi
2007-04-26 20:15       ` Wolfgang Denk
2007-04-26 20:19         ` Timur Tabi
2007-04-26 20:41           ` Wolfgang Denk
2007-04-26 20:53             ` Jerry Van Baren
2007-04-26 20:59             ` Timur Tabi
2007-04-27  9:38               ` Wolfgang Denk
2007-04-27 19:00                 ` Timur Tabi
2007-04-27 19:32                   ` Ulf Samuelsson
2007-04-27 20:13                     ` Jerry Van Baren [this message]
2007-04-30 19:51                     ` Wolfgang Denk
2007-04-30 19:45                   ` Wolfgang Denk
2007-04-26 20:52       ` Ulf Samuelsson
2007-04-26 21:04         ` Timur Tabi
2007-04-27  7:45           ` Stefan Roese
2007-04-27  9:40           ` Wolfgang Denk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46325973.20201@smiths-aerospace.com \
    --to=gerald.vanbaren@smiths-aerospace.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.