The Xtensa C/C++ compiler was updated significantly between version 7 and version 8. Because this update is so significant, Tensilica provides a compatibility mode for the compiler which, in turn, uses an older version of the libraries as well. The new version relies on newer versions of the libraries (and hence the licenses those libraries are under changed also--generally to more consistent wording.) In light of the above, this document is broken into two basic parts: 1) A description of the library licenses when using XCC in default mode, ie, the "newer" version. 2) A description of the library licenses when using XCC in compatibility mode--ie, when you pass -compat-v7 on the command line. ============== LIBRARY LICENSES IN DEFAULT MODE Code generated by Tensilica's Xtensa C/C++ (XCC) compiler in default mode may depend on the following compiler-specific runtime libraries: * libstdc++v3 -- Standard C++ library, including io streams and the headers for the standard template headers * libgcc -- Basic runtime support. ------------- LIBGCC This runtime library are derived from GCC and is distributed under the GNU General Public License with a special "runtime exception". This exception for the version of libgcc that XCC uses by default reads: In addition to the permissions in the GNU General Public License, the Free Software Foundation gives you unlimited permission to link the compiled version of this file into combinations with other programs, and to distribute those combinations without any restriction coming from the use of this file. (The General Public License restrictions do apply in other respects; for example, they cover modification of the file, and distribution when not linked into a combine executable.) All files except unwind-generic.h in the libgcc source tree use this license, or one where the typo on "combine" in the last line is fixed to "combined". The file unwind-generic.h has a slightly different license, but is not used by xt-xcc's libgcc.a. ------------- LIBSTDC++ Most of the source code files in XCC's version of libstdc++ have a runtime exception as follows: As a special exception, you may use this file as part of a free software library without restriction. Specifically, if other files instantiate templates or use macros or inline functions from this file, or you compile this file and link it with other files to produce an executable, this file does not by itself cause the resulting executable 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 General Public License. The library also includes a copy an SGI release of the C++ Standard Template Library (STL). The STL files contain code from both SGI and HP. The SGI license is: Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Silicon Graphics makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. The HP license is: Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Hewlett-Packard Company makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. ============== LIBRARY LICENSES IN -compat-v7 MODE Code generated by Tensilica's Xtensa C/C++ (XCC) compiler in compatibility mode may depend on the following compiler-specific runtime libraries: * libstdc++ -- Standard C++ library. * libio -- C++ I/O streams. * libgcc -- Basic runtime support. These runtime libraries are derived from GCC and are distributed under the GNU General Public License with a special "runtime exception". The exact wording of this exception has changed over time, and the version used with C++ code is slightly different than the version for C code. The latest version of this exception for libgcc is: In addition to the permissions in the GNU General Public License, the Free Software Foundation gives you unlimited permission to link the compiled version of this file into combinations with other programs, and to distribute those combinations without any restriction coming from the use of this file. (The General Public License restrictions do apply in other respects; for example, they cover modification of the file, and distribution when not linked into a combine executable.) The XCC runtime libraries include various wordings for this runtime exception, and portions of some libraries are covered by other less restrictive licenses. See below for details. ------------- LIBSTDC++ Most of the source code files in XCC's version of libstdc++ have a runtime exception as follows: As a special exception, you may use this file as part of a free software library without restriction. Specifically, if other files instantiate templates or use macros or inline functions from this file, or you compile this file and link it with other files to produce an executable, this file does not by itself cause the resulting executable 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 General Public License. A few of the files have an older version of this text: As a special exception, if you link this library with files compiled with a GNU compiler to produce an executable, this does not cause the resulting executable 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 General Public License. One file (libstdc++/std/complext.cc) includes code owned by AT&T Bell Laboratories and Bellcore with the following license: Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that the copyright notice and this permission notice and warranty disclaimer appear in supporting documentation, and that the names of AT&T Bell Laboratories or Bellcore or any of their entities not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. AT&T and Bellcore disclaim all warranties with regard to this software, including all implied warranties of merchantability and fitness. In no event shall AT&T or Bellcore be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or performance of this software. The library also includes a copy an SGI release of the C++ Standard Template Library (STL). The STL files contain code from both SGI and HP. The SGI license is: Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Silicon Graphics makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. The HP license is: Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Hewlett-Packard Company makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. ------------- LIBIO The libio files used with XCC use the older version of the runtime exception: As a special exception, if you link this library with files compiled with a GNU compiler to produce an executable, this does not cause the resulting executable 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 General Public License. Some code in libio is based on software that was developed by the University of California, Berkeley, for the Berkeley Software Distribution (BSD-4.4) and bears their copyright: Copyright (c) 1990 Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. [rescinded 22 July 1999] 4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. One file in libio (floatconv.c) is derived from code owned by AT&T with the following license: The author of this software is David M. Gay. Copyright (c) 1991 by AT&T. Permission to use, copy, modify, and distribute this software for any purpose without fee is hereby granted, provided that this entire notice is included in all copies of any software which is or includes a copy or modification of this software and in all copies of the supporting documentation for such software. THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. ------------- LIBGCC Some of the files in libgcc, including associated runtime files (e.g., crti.o), use the latest version of the runtime exception shown earlier. Other files use an older version: As a special exception, if you link this library with other files, some of which are compiled with GCC, to produce an executable, this library does not by itself cause the resulting executable 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 General Public License. The files in libgcc that are related to C++ runtime support use the same version of the runtime exception text as used by most of the libstdc++ files: As a special exception, you may use this file as part of a free software library without restriction. Specifically, if other files instantiate templates or use macros or inline functions from this file, or you compile this file and link it with other files to produce an executable, this file does not by itself cause the resulting executable 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 General Public License.