This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Libgcc and its license

Hi everyone,

I have a question about GCC licensing related to libgcc.

I asked Nick Clifton who did a license change in the past (Thu Apr 9
15:00:19 2009 UTC - r145841) about how he did that commit, changing
GPLv2 licenses to GPLv3 with GCC Runtime Exception. And he suggested me
to ask the GCC steering committee about any kind of licensing issue.

I am wondering on this change now, because we would like to use libgcc
with GPLv3 with GCC Runtime Exception.

Theoretically libgcc should has the GPLv3 with Runtime Exception
license, but the evidences say something else. My research shows that
libgcc uses different licenses, for example: GPLv2, LGPLv2.1 and GPLv3
*without* Runtime Exception.

I did the following in my research:
1) list which object files are included in libgcc.a
2) repeat all the compilation commands related to the previous list in
the proper environment. The only thing which I have added to the
compilation command is an extra "-E" option to preprocess every sources.
3) create a unique list of all source and header files from the
preprocessed files.
4) at final all source, header and generated files are checked for their

So, at the end I found several files do not have the GPLv3 with Runtime
Exception license.

For example:
1) fixed-bit.c is used in several objects creation.
  - this file includes tm.h
  - tm.h includes options.h
  - and options.h includes flag-types.h which has GPLv3 license
*without* Runtime Exceptions

2) from fixed-bit.c again
  - tm.h includes newlib-stdint.h which has GPLv3 license *without*
Runtime Exceptions as well.

3) from fixed-bit.c
  - tconfig.h includes ansidecl.h with GPLv2 license.

I saw similar issues for filenames.h, longlong.h files as well. It looks
like all the files contain meaningful information for libgcc. So, they
cannot be skipped from the build process.

In additional this issue can be confirmed on different targets. I tried
x86, ARM and PPC with different environment. So, I assume this should be
more or less a general issue, independent from configs, libraries and
environment. BTW, there are several target specific files which has the
same issue (do not have GPLv3 w RE). For example: some parts of the
arm.h file are included in almost all object files for libgcc.a, and
arm.h has GPLv3 *without* RE.

I suppose all of the header files should have the GPLv3 with GCC Runtime
Exception license, because libgcc should have GPLv3 w RE. Am I right?

If so, how this change should be done? I know changing licenses is not
an easy task. The copyright/license holders should agree to this change,
shouldn't they?

So, what is your opinion about this? Is it possible to have such a
libgcc.a which has only the GPLv3 with GCC Runtime Exception license?

Thanks for any help you can give me on this topic!


Gábor Lóki
research assistant

Department of Software Engineering, University of Szeged
Dugonics tér 13., H-6720 Szeged, Hungary
Phone: +36-62-546726
Fax: +36-62-546723

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]