Joel Sherrill joel.sherrill at
Fri May 7 16:08:41 UTC 2004

Etienne Fortin wrote:

> Hi everyone,
> I would like to know the fundamental difference between the GPL license
> of RTEMS, augmented with the mentionned "special restriction" in the
> LICENSE file, and the LGPL license? To me, it looks very similar, but
> I'm not too familiar with licensing issues.
> Exception mentionned in LICENSE file:
> "
> As a special exception, including RTEMS header files in a file,
> instantiating RTEMS generics or templates, or linking other files
> with RTEMS objects to produce an executable application, does not
> by itself cause the resulting executable application to be covered
> by the GNU General Public License. This exception does not
> however invalidate any other reasons why the executable file might be
> covered by the GNU Public License.
> "

Embedded systems based upon RTEMS are generally statically linked.
All libraries and user code become part of one executable image.
So RTEMS is GPL which normally would require any code statically
linked with it to also be licensed in a GPL compatible manner.
RTEMS is saying we don't push that restriction onto your application.

BUT .. we are not and can not give you permission to link
some other GPL library with your library and not honor the
GPL restrictions for that library.

The LGPL is not appropriate for RTEMS because of section 6 (
sorry for wrapping, I cut and pasted this from the FSF site):

> 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.
> You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:
>     * a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)
>     * b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.
>     * c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.
>     * d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.
>     * e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. 

We can't do (b) since that requires dynamic linking.  This leaves
the other alternatives.  Most embedded systems developers would not
want to be responsible for giving the end users their application
in binary along with RTEMS source code.  No one would want the
liability of providing RTEMS and application object code to end
users.  Can you imaging the potential damage if people starting
modifying the RTOS in their ABS controller or some other safety
critical system?

This was a hard fought compromise and matches the exception
paragraph on more than one of the language specific run-times
or compiler support libraries shipped with or in support of
GCC.  We modeled ours after the GNU Ada run-time exception.


> Etienne Fortin
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (
> Version: 6.0.672 / Virus Database: 434 - Release Date: 2004-04-28

More information about the users mailing list