読者です 読者をやめる 読者になる 読者になる

GCCのOpenMP実装(libgomp)のライセンス

C++ GCC OpenMP

最近gccOpenMPを使っていて、ふとライセンスが気になったので調べてみました。ただし私は法律の専門家ではないので、正確な情報はライセンスの原文を見て判断してください。

そもそも、gccC++のコードをコンパイルすると、OpenMPとは関係なくlibstdc++やlibgccが自動的にリンクされます。これらのライブラリは例外条項付きのGPLでライセンスされていて、コンパイル時にgccと非GPL互換ソフトウェアを混ぜて使わない限りはリンクしたプログラムを非GPLで配布できるというものです。

なのでOpenMPライブラリのlibgompも同じだろう、と思いGCC4.9.2のドキュメントを見たのですが、単にGPL(v3)としか書いていないように見えます。そんなはずは、と思ってもう少し調べてみるとGNUのライセンス解説のページに答えらしきものがありました。

どのライブラリをGCCランタイムライブラリ例外はカバーしますか?
 GCCランタイムライブラリ例外がカバーするのは、そのライセンスヘッダに例外が適用されると述べられた告知があるすべてのファイルです。これには、libgcc, libstdc++, libfortran, libgomp, libdecnumber, libgcov とGCCで配布されるそのほかのライブラリが含まれます。

GCCランタイムライブラリ例外とFAQ

どうやらlibgompも例外に含まれているようです。実際に手持ちのomp.hを見てみると、ちゃんと

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

と書いてありました。

なお、これは私の手元にあるライブラリの場合であって、皆さんの手元にあるものとは異なる可能性があります(特にGPLv2の場合など)。繰り返しになりますが正確な情報は皆さんの手元にあるライセンスの原文を参照してください。