From: Ulf Samuelsson <ulf@atmel.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 21:32:03 +0200 [thread overview]
Message-ID: <002601c78903$64f47cc0$01c4af0a@Glamdring> (raw)
In-Reply-To: 46324857.2020904@freescale.com
> 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.
>
>> 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.
> 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.
> Timur Tabi
> Linux Kernel Developer @ Freescale
>
Best Regards
Ulf Samuelsson
next prev parent reply other threads:[~2007-04-27 19:32 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 [this message]
2007-04-27 20:13 ` Jerry Van Baren
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='002601c78903$64f47cc0$01c4af0a@Glamdring' \
--to=ulf@atmel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox