After researching GNAT's Ada compiler licensing, I'm very confused. I understand AdaCore's GPL 3 license requires distributing the source if it's linked to the runtime, while FSF's GPL 1 offers an exemption from the restriction, as described below:

GPL (no linking exception)

gnat-ce - GNAT Community edition. A release of AdaCore GNAT for free software developers, hobbyists, and students. The run-time libraries provided with GNAT Community are licensed under GPLv3 without linking exception. It supports Ada 2012 only.

GPL (with linking exception)

fsf-gnat - Free Software Foundation compiler for the Ada programming language which forms part of the GNU Compiler Collection. It supports all versions of the language, i.e. Ada 2012, Ada 2005, Ada 95 and Ada 83.

It's unclear to me, however, if the two distributions code bases are the same or different for Ada 2012. To add to the confusion, I've encountered BSD distributions of GNAT, which is odd since BSD has its own license. If the code bases are different, to what extent are the differences?

If they're the same, how can the two licenses seemingly contradict each other? Specifically, how is it possible to change the runtime restriction by another party by merely redistributing the same code under another license? I was under the impression that only the copyright holder can do so, which leads to my last question. What stops any developer from changing the license?

  • 3
    Could you perhaps add some links to your question, at the very least to the documents you're quoting from, and preferably also to some of the other things you mention (such as the code bases you wish us to compare)?
    – MadHatter
    Feb 7 at 10:54

1 Answer 1


Disclaimer: I'm not a lawyer, this is just my personal understanding. I'm not speaking as an employer of any organization, just as a person.

  1. There is no distinction between Ada Runtime and C/C++ Runtime in GCC sources. They use the same license.

  2. Code bases are the same in the sense as if you clone GCC FSF, change it, release changed code and say "this release has the same code base as FSF GCC!".

  3. If code has "GPL with exception" license, everybody could remove the exception and release code under pure GPL license. This is fine and legal. This doesn't contradict the license. So you can fork C++ GCC, remove GCC exception from C++ runtime files and release it as "GCC Community Edition" under GPL (without a exception). [This doesn't work in backward direction however, you can't get GPL code and release it with GPL with GCC exception, if you are not a copyright holder.]

  4. I don't know any GNAT (or GCC) released under BSD license and I strongly doubt that there is any such product. (It's better to say I'm sure there is none).

  5. There is NO GNAT Community Edition any more. I hope now people stop asking license questions and start writing Ada code.

  • 1
    "I hope now people stop asking license questions and start writing Ada code." This undermines your answer in my opinion; it is always a good idea that people ask questions so that they understand the implications of using specific pieces of software. Jun 11 at 17:38
  • On #3, I was referring to dragonlace.net. I guess it still keeps the FSF license?
    – ATL_DEV
    Jun 13 at 18:58
  • 1
    @ATL_DEV Yes, this is clearly shown by the ports page: "License: GPLv3 GPLv3RLE". "Available for a BSD distribution" does not mean "licensed under a BSD license", just as "Available for a Linux distribution" does not mean "licensed under the GPL". Jun 13 at 19:19
  • @PhilipKendall OK. Makes sense.
    – ATL_DEV
    Jun 13 at 19:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.