when using AVR or ARM toolchains for Atmel microcontrollers, is using GCC macros such as __AVR_...__ or linker variables making my code GPL?

I know GCC is covered by "GPL 3.0" + "GCC Runtime Library Exception" but I am not sure if this exception covers the use of small macros like above.

And the linker is ld from binutils, which is covered by "GPL 3.0".

1 Answer 1


Yes, GCC macros and linker variables are covered by the GCC Runtime Library Exception, see

[...] in this way, the header files and runtime libraries covered by this Exception.

There are no clues that the built-in libraries should not be part of the exceptions.

  • the linker ld is from binutils. According to the FAQ of GCC Runtime Library Exception, "GCC Runtime Library Exception covers any file that has a notice in its license headers stating that the exception applies. This includes libgcc, libstdc++, libfortran, libgomp, libdecnumber, libgcov, and other libraries distributed with GCC". But it does not mention clearly binutils.
    – Wind
    Jan 31, 2021 at 20:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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