Licensing: Using TBB (open source version) in commercial apps

Licensing: Using TBB (open source version) in commercial apps


I'm trying to understand the licensing situation for the open source version of TBB. The libstd++ exception to the GPL (which apparently is used for the template header files) says:

   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.

This could be read in at least three different ways:

  • Just from reading the first sentence ("you may use this file as part of a free software library"), I could be led to assume that even with the libstd++ exception, this software is not intended to be used in commercial software at all. (Which would contradict Intel's stated intentions as I interpret them from the TBB FAQs.)
  • As long as I use the binaries and header files from the official distribution, I can use them wherever I like. However, if I want to make a change in the core libraries (i.e. in the non-template code), I need to rebuild those, and if I then use that modified/rebuilt library in my commercial app, I may be in trouble.
  • I can modify/rebuild both the template headers and the core libraries as I see fit, and link or compile them with my app.

Can somebody clarify the situation?



4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

    We really can't give you legal advice on
    licensing; we can just tell you what the licensing is.

    However, you might find the Q&A portion
    following the actual license text at helpful. I note that there the FSF says: "Hopefully that text
    is self-explanatory. If it isn't, you need to speak to your lawyer, or the Free
    Software Foundation.

    Q: So any program which uses libstdc++ falls under the

    A: No. The special exception permits use of
    the library in proprietary applications."



Well, legal advice is one thing, and I understand that nobody here can provide any kind legal counseling,but I'd be interested in what the original intention behind the choice was. Are we supposed to use the open source version of TBB in commercial applications, even if we need to modify the original code?



Intention -- ubiquitous use of TBB encouraging/enabling migration towards multi-core (an inevitable destination, it appears); use of well known license(s) as-is (without modifcation); encouragement/motivation to share back changes so that the overall community benefits from any modifications found to be beneficial.

Again, I can't tell you what you're supposed to use. I can tell you what I, in my opinion, would use if I were developing a commercial product--I would opt for the commercial version, especially if I planned to modify the code. That is my opinion, not legal advice!

Leave a Comment

Please sign in to add a comment. Not a member? Join today