Re: GCC documentation: porting to Sphinx

2021-06-01 Thread Martin Liška

On 5/31/21 5:49 PM, Michael Matz wrote:

Hello Martin,

On Mon, 31 May 2021, Martin Liška wrote:


I've made quite some progress with the porting of the documentation and
I would like to present it to the community now:
https://splichal.eu/scripts/sphinx/
  
Note the documentation is automatically ([1]) generated from texinfo with a

GitHub workflow ([2]).


One other thing I was recently thinking about, in the Spinx vs. texinfo
discussion: locally available documentation browsable/searchable in
terminal with info(1) (or equivalents).


Yes, that's handy.


I think the above (i.e.
generating .rst from the texinfo file) would immediately nullify all my
worries.  So, just to be extra sure: your proposal now is to generate the
.rst files, and that .texinfo remains the maintained sources, right?


No, .texinfo files will be gone. However, Sphinx can output to info format:
https://www.sphinx-doc.org/en/master/man/sphinx-build.html#cmdoption-sphinx-build-M

And I've just added the generated Info pages here:
https://splichal.eu/scripts/sphinx/

Hope it helps?
Martin




Ciao,
Michael.





Re: [PATCH] Try LTO partial linking. (Was: Speed of compiling gimple-match.c)

2021-06-01 Thread Martin Liška

PING^1

On 5/21/21 10:29 AM, Martin Liška wrote:

On 5/20/21 5:55 PM, Jan Hubicka wrote:

Quick solution is to also modify partitioner to use the local symbol
names when doing incremental linking (those mixing in source code and
random seeds) to avoid clashes.


Good hint. I added hash based on object file name (I don't want to handle
proper string escaping) and -frandom-seed.

What do you think about the patch?
Thanks,
Martin




Re: [PATCH] Try LTO partial linking. (Was: Speed of compiling gimple-match.c)

2021-06-01 Thread Martin Liška

@Richi: Can you please reply to this email?

On 5/21/21 10:43 AM, Martin Liška wrote:

On 5/20/21 2:54 PM, Richard Biener wrote:

On Thu, May 20, 2021 at 2:34 PM Martin Liška  wrote:


Hello.

I've got a patch candidate that leverages partial linking for a couple of 
selected object files.

I'm sending make all-host- jX results for my machine:

before: 3m18s (user 32m52s)
https://gist.githubusercontent.com/marxin/223890df4d8d8e490b6b2918b77dacad/raw/1dd5eae5001295ba0230a689f7edc67284c9b742/gcc-all-host.svg

after: 2m57m (user 35m)
https://gist.githubusercontent.com/marxin/223890df4d8d8e490b6b2918b77dacad/raw/d659b2187cf622167841efbbe6bc93cb33855fa9/gcc-all-host-partial-lto.svg

One can utilize it with:
make -j16 all-host PARTIAL_LTO=1

@Segher, Andrew: Can you please measure time improvement for your slow 
bootstrap?
One can also tweak --param=lto-partitions=16 param value.

Thoughts?


You're LTO linking multiple objects here - that's almost as if you
were doing this
for the whole of libbackend.a ... so $(OBJS)_CLFAGS += -flto and in the
libbackend.a rule do a similar partial link trick.


Yeah, apart from that one can't likely do partial linking for an archive:

$ g++ -no-pie -flto=auto --param=lto-partitions=16 -flinker-output=nolto-rel -r 
libbackend.a
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core 
dumped
compilation terminated.

while ld.bfd immediately finishes.



That gets you half of a LTO bootstrap then.

So why did you go from applying this per-file to multiple files?  Does $(LINKER)
have a proper rule to pick up a jobserver?

When upstreaming in any form you probably have to gate it on bootstrap-lto
being not active.


Sure, that's reasonable, we can likely detect a -flto option in $(COMPILE), 
right?

One more thing I face is broken dependency:
$ make clean && make -j32 PARTIAL_LTO=1

g++ -fcf-protection -fno-PIE -c   -g   -DIN_GCC -fPIC    -fno-exceptions 
-fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings 
-Wcast-qual -Wno-error=format-diag -Wmissing-format-attribute 
-Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros 
-Wno-overlength-strings -fno-common -Wno-unused -DHAVE_CONFIG_H -I. -I. 
-I/home/marxin/Programming/gcc/gcc -I/home/marxin/Programming/gcc/gcc/. 
-I/home/marxin/Programming/gcc/gcc/../include 
-I/home/marxin/Programming/gcc/gcc/../libcpp/include 
-I/home/marxin/Programming/gcc/gcc/../libcody  
-I/home/marxin/Programming/gcc/gcc/../libdecnumber 
-I/home/marxin/Programming/gcc/gcc/../libdecnumber/bid -I../libdecnumber 
-I/home/marxin/Programming/gcc/gcc/../libbacktrace   -o gimple-match-lto.o -MT 
gimple-match-lto.o -MMD -MP -MF ./.deps/gimple-match-lto.TPo gimple-match.c 
-flto
g++ -fcf-protection -fno-PIE -c   -g   -DIN_GCC -fPIC    -fno-exceptions 
-fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings 
-Wcast-qual -Wno-error=format-diag -Wmissing-format-attribute 
-Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros 
-Wno-overlength-strings -fno-common -Wno-unused -DHAVE_CONFIG_H -I. -I. 
-I/home/marxin/Programming/gcc/gcc -I/home/marxin/Programming/gcc/gcc/. 
-I/home/marxin/Programming/gcc/gcc/../include 
-I/home/marxin/Programming/gcc/gcc/../libcpp/include 
-I/home/marxin/Programming/gcc/gcc/../libcody  
-I/home/marxin/Programming/gcc/gcc/../libdecnumber 
-I/home/marxin/Programming/gcc/gcc/../libdecnumber/bid -I../libdecnumber 
-I/home/marxin/Programming/gcc/gcc/../libbacktrace   -o generic-match-lto.o -MT 
generic-match-lto.o -MMD -MP -MF ./.deps/generic-match-lto.TPo generic-match.c 
-flto

In file included from ./tm.h:26,
  from /home/marxin/Programming/gcc/gcc/backend.h:28,
  from /home/marxin/Programming/gcc/gcc/generic-match-head.c:23,
  from generic-match.c:4:
/home/marxin/Programming/gcc/gcc/config/i386/i386.h:2286:10: fatal error: 
insn-attr-common.h: No such file or directory
  2286 | #include "insn-attr-common.h"
   |  ^~~~
compilation terminated.
make: *** [Makefile:2678: generic-match-lto.o] Error 1
make: *** Waiting for unfinished jobs

In file included from ./tm.h:26,
  from /home/marxin/Programming/gcc/gcc/backend.h:28,
  from /home/marxin/Programming/gcc/gcc/gimple-match-head.c:23,
  from gimple-match.c:4:
/home/marxin/Programming/gcc/gcc/config/i386/i386.h:2286:10: fatal error: 
insn-attr-common.h: No such file or directory
  2286 | #include "insn-attr-common.h"
   |  ^~~~

I explicitly added:
gimple-match.o: gimple-match.c $(generated_files)
generic-match.o: generic-match.c $(generated_files)

But it's not obeyed.

Martin



Richard.


Thanks,
Martin






Re: [PATCH] Try LTO partial linking. (Was: Speed of compiling gimple-match.c)

2021-06-01 Thread Richard Biener via Gcc
On Tue, Jun 1, 2021 at 9:33 AM Martin Liška  wrote:
>
> @Richi: Can you please reply to this email?

Not sure what I should add here?  Honza suggested to mangle the
promoted symbol names.  I don't
really like the idea to compile multiple TUs into one object.  Also

+LTO_LINKER_FLAGS = -flto=auto --param=lto-partitions=16
-flinker-output=nolto-rel -r

why hard-code to 16 partitions?  You're side-stepping the driver
diagnostic by doing
compile & link separately, but in the end we're going to want sth like Giulianos
-fparallel-compile that works transparently from within the driver, so
the "manual"
operation should try to follow that or alternatively a driver-only
wrapper around the
"manual" processing could be added whose implementation can be optimized later.

Why do you use -flto=auto?  There should be a jobserver active.

> On 5/21/21 10:43 AM, Martin Liška wrote:
> > On 5/20/21 2:54 PM, Richard Biener wrote:
> >> On Thu, May 20, 2021 at 2:34 PM Martin Liška  wrote:
> >>>
> >>> Hello.
> >>>
> >>> I've got a patch candidate that leverages partial linking for a couple of 
> >>> selected object files.
> >>>
> >>> I'm sending make all-host- jX results for my machine:
> >>>
> >>> before: 3m18s (user 32m52s)
> >>> https://gist.githubusercontent.com/marxin/223890df4d8d8e490b6b2918b77dacad/raw/1dd5eae5001295ba0230a689f7edc67284c9b742/gcc-all-host.svg
> >>>
> >>> after: 2m57m (user 35m)
> >>> https://gist.githubusercontent.com/marxin/223890df4d8d8e490b6b2918b77dacad/raw/d659b2187cf622167841efbbe6bc93cb33855fa9/gcc-all-host-partial-lto.svg
> >>>
> >>> One can utilize it with:
> >>> make -j16 all-host PARTIAL_LTO=1
> >>>
> >>> @Segher, Andrew: Can you please measure time improvement for your slow 
> >>> bootstrap?
> >>> One can also tweak --param=lto-partitions=16 param value.
> >>>
> >>> Thoughts?
> >>
> >> You're LTO linking multiple objects here - that's almost as if you
> >> were doing this
> >> for the whole of libbackend.a ... so $(OBJS)_CLFAGS += -flto and in the
> >> libbackend.a rule do a similar partial link trick.
> >
> > Yeah, apart from that one can't likely do partial linking for an archive:
> >
> > $ g++ -no-pie -flto=auto --param=lto-partitions=16 
> > -flinker-output=nolto-rel -r libbackend.a
> > collect2: fatal error: ld terminated with signal 11 [Segmentation fault], 
> > core dumped
> > compilation terminated.
> >
> > while ld.bfd immediately finishes.
> >
> >>
> >> That gets you half of a LTO bootstrap then.
> >>
> >> So why did you go from applying this per-file to multiple files?  Does 
> >> $(LINKER)
> >> have a proper rule to pick up a jobserver?
> >>
> >> When upstreaming in any form you probably have to gate it on bootstrap-lto
> >> being not active.
> >
> > Sure, that's reasonable, we can likely detect a -flto option in $(COMPILE), 
> > right?
> >
> > One more thing I face is broken dependency:
> > $ make clean && make -j32 PARTIAL_LTO=1
> >
> > g++ -fcf-protection -fno-PIE -c   -g   -DIN_GCC -fPIC-fno-exceptions 
> > -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing 
> > -Wwrite-strings -Wcast-qual -Wno-error=format-diag 
> > -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long 
> > -Wno-variadic-macros -Wno-overlength-strings -fno-common -Wno-unused 
> > -DHAVE_CONFIG_H -I. -I. -I/home/marxin/Programming/gcc/gcc 
> > -I/home/marxin/Programming/gcc/gcc/. 
> > -I/home/marxin/Programming/gcc/gcc/../include 
> > -I/home/marxin/Programming/gcc/gcc/../libcpp/include 
> > -I/home/marxin/Programming/gcc/gcc/../libcody  
> > -I/home/marxin/Programming/gcc/gcc/../libdecnumber 
> > -I/home/marxin/Programming/gcc/gcc/../libdecnumber/bid -I../libdecnumber 
> > -I/home/marxin/Programming/gcc/gcc/../libbacktrace   -o gimple-match-lto.o 
> > -MT gimple-match-lto.o -MMD -MP -MF ./.deps/gimple-match-lto.TPo 
> > gimple-match.c -flto
> > g++ -fcf-protection -fno-PIE -c   -g   -DIN_GCC -fPIC-fno-exceptions 
> > -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing 
> > -Wwrite-strings -Wcast-qual -Wno-error=format-diag 
> > -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long 
> > -Wno-variadic-macros -Wno-overlength-strings -fno-common -Wno-unused 
> > -DHAVE_CONFIG_H -I. -I. -I/home/marxin/Programming/gcc/gcc 
> > -I/home/marxin/Programming/gcc/gcc/. 
> > -I/home/marxin/Programming/gcc/gcc/../include 
> > -I/home/marxin/Programming/gcc/gcc/../libcpp/include 
> > -I/home/marxin/Programming/gcc/gcc/../libcody  
> > -I/home/marxin/Programming/gcc/gcc/../libdecnumber 
> > -I/home/marxin/Programming/gcc/gcc/../libdecnumber/bid -I../libdecnumber 
> > -I/home/marxin/Programming/gcc/gcc/../libbacktrace   -o generic-match-lto.o 
> > -MT generic-match-lto.o -MMD -MP -MF ./.deps/generic-match-lto.TPo 
> > generic-match.c -flto
> >
> > In file included from ./tm.h:26,
> >   from /home/marxin/Programming/gcc/gcc/backend.h:28,
> >   from 
> > /home/marxin/Programming/gcc/gcc/generic-match-head.c:23,
> >   

GCC 9.4.1 Status Report (2021-06-01)

2021-06-01 Thread Richard Biener


Status
==

The GCC 9 branch is again open for regression and documentation fixes.


Quality Data


Priority  #   Change from last report
---   ---
P1  
P2  304
P3   26   +   3
P4  173   -   1
P5   23
---   ---
Total P1-P3 331   +   3
Total   527   +   2


Previous Report
===

https://gcc.gnu.org/pipermail/gcc/2021-May/236084.html


GCC 9.4 Released

2021-06-01 Thread Richard Biener


The GNU Compiler Collection version 9.4 has been released.

GCC 9.4 is a bug-fix release from the GCC 9 branch containing important 
fixes for regressions and serious bugs in GCC 9.3 with more than 190 bugs 
fixed since the previous release.

This release is available from the WWW and FTP servers listed here:

 https://sourceware.org/pub/gcc/releases/gcc-9.4.0/
 https://gcc.gnu.org/mirrors.html


Please do not contact me directly regarding questions or comments
about this release.  Instead, use the resources available from
http://gcc.gnu.org.

As always, a vast number of people contributed to this GCC release
-- far too many to thank them individually!


Re: [PATCH] Try LTO partial linking. (Was: Speed of compiling gimple-match.c)

2021-06-01 Thread Richard Biener via Gcc
On Tue, Jun 1, 2021 at 1:25 PM Martin Liška  wrote:
>
> On 6/1/21 9:42 AM, Richard Biener wrote:
> > On Tue, Jun 1, 2021 at 9:33 AM Martin Liška  wrote:
> >>
> >> @Richi: Can you please reply to this email?
> >
> > Not sure what I should add here?  Honza suggested to mangle the
> > promoted symbol names.
>
> Sure and I sent a patch for that.
>
> > I don't
> > really like the idea to compile multiple TUs into one object.  Also
>
> What's problematic is that we'll have to wait for one another release to make 
> it useful
> (if you don't want to build the current master with a snapshot compiler).

IMHO it's a bugfix.  Note that I'm not sure what the intent of the change is.
If it is to speedup bootstrap then using LTO bootstrap would do the trick
as well (and better) if we'd simply process all of libbackend.a this way
(and thus avoid re-linking that once for each frontend).  If it is to speedup
dev (re-)builds then dragging in more files will make it build longer since
for example insn-recog.c may be unchanged but gimple-match.c not.

> > +LTO_LINKER_FLAGS = -flto=auto --param=lto-partitions=16
> > -flinker-output=nolto-rel -r
> >
> > why hard-code to 16 partitions?  You're side-stepping the driver
> > diagnostic by doing
> > compile & link separately, but in the end we're going to want sth like 
> > Giulianos
> > -fparallel-compile that works transparently from within the driver, so
> > the "manual"
> > operation should try to follow that or alternatively a driver-only
> > wrapper around the
> > "manual" processing could be added whose implementation can be optimized 
> > later.
>
> All right. Do you want me refreshing his -fparallel-compile option 
> introduction?

I'm not sure if we've arrived at mergeable state - but if it's
reasonably possible
to hide s/-fparallel-compile/-flto -r -flinker-output=nolto-rel/ split
into compile & link
parts (avoiding the diagnostic on -flinker-output) in the driver then
I think that's
a very reasonable first step (after fixing the symbol privatization issue).  The
GSOC project then was to elide the IL streaming from the high-level operation.

Richard,

> >
> > Why do you use -flto=auto?  There should be a jobserver active.
>
> Yes, that should not be needed.
>
> Martin
>
> >
> >> On 5/21/21 10:43 AM, Martin Liška wrote:
> >>> On 5/20/21 2:54 PM, Richard Biener wrote:
>  On Thu, May 20, 2021 at 2:34 PM Martin Liška  wrote:
> >
> > Hello.
> >
> > I've got a patch candidate that leverages partial linking for a couple 
> > of selected object files.
> >
> > I'm sending make all-host- jX results for my machine:
> >
> > before: 3m18s (user 32m52s)
> > https://gist.githubusercontent.com/marxin/223890df4d8d8e490b6b2918b77dacad/raw/1dd5eae5001295ba0230a689f7edc67284c9b742/gcc-all-host.svg
> >
> > after: 2m57m (user 35m)
> > https://gist.githubusercontent.com/marxin/223890df4d8d8e490b6b2918b77dacad/raw/d659b2187cf622167841efbbe6bc93cb33855fa9/gcc-all-host-partial-lto.svg
> >
> > One can utilize it with:
> > make -j16 all-host PARTIAL_LTO=1
> >
> > @Segher, Andrew: Can you please measure time improvement for your slow 
> > bootstrap?
> > One can also tweak --param=lto-partitions=16 param value.
> >
> > Thoughts?
> 
>  You're LTO linking multiple objects here - that's almost as if you
>  were doing this
>  for the whole of libbackend.a ... so $(OBJS)_CLFAGS += -flto and in the
>  libbackend.a rule do a similar partial link trick.
> >>>
> >>> Yeah, apart from that one can't likely do partial linking for an archive:
> >>>
> >>> $ g++ -no-pie -flto=auto --param=lto-partitions=16 
> >>> -flinker-output=nolto-rel -r libbackend.a
> >>> collect2: fatal error: ld terminated with signal 11 [Segmentation fault], 
> >>> core dumped
> >>> compilation terminated.
> >>>
> >>> while ld.bfd immediately finishes.
> >>>
> 
>  That gets you half of a LTO bootstrap then.
> 
>  So why did you go from applying this per-file to multiple files?  Does 
>  $(LINKER)
>  have a proper rule to pick up a jobserver?
> 
>  When upstreaming in any form you probably have to gate it on 
>  bootstrap-lto
>  being not active.
> >>>
> >>> Sure, that's reasonable, we can likely detect a -flto option in 
> >>> $(COMPILE), right?
> >>>
> >>> One more thing I face is broken dependency:
> >>> $ make clean && make -j32 PARTIAL_LTO=1
> >>>
> >>> g++ -fcf-protection -fno-PIE -c   -g   -DIN_GCC -fPIC-fno-exceptions 
> >>> -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing 
> >>> -Wwrite-strings -Wcast-qual -Wno-error=format-diag 
> >>> -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long 
> >>> -Wno-variadic-macros -Wno-overlength-strings -fno-common -Wno-unused 
> >>> -DHAVE_CONFIG_H -I. -I. -I/home/marxin/Programming/gcc/gcc 
> >>> -I/home/marxin/Programming/gcc/gcc/. 
> >>> -I/home/marxin/Programming/gcc/gcc/../include 
> >>> -I/home/marxin/Pro

Re: [PATCH] Try LTO partial linking. (Was: Speed of compiling gimple-match.c)

2021-06-01 Thread Martin Liška

On 6/1/21 9:42 AM, Richard Biener wrote:

On Tue, Jun 1, 2021 at 9:33 AM Martin Liška  wrote:


@Richi: Can you please reply to this email?


Not sure what I should add here?  Honza suggested to mangle the
promoted symbol names.


Sure and I sent a patch for that.


I don't
really like the idea to compile multiple TUs into one object.  Also


What's problematic is that we'll have to wait for one another release to make 
it useful
(if you don't want to build the current master with a snapshot compiler).



+LTO_LINKER_FLAGS = -flto=auto --param=lto-partitions=16
-flinker-output=nolto-rel -r

why hard-code to 16 partitions?  You're side-stepping the driver
diagnostic by doing
compile & link separately, but in the end we're going to want sth like Giulianos
-fparallel-compile that works transparently from within the driver, so
the "manual"
operation should try to follow that or alternatively a driver-only
wrapper around the
"manual" processing could be added whose implementation can be optimized later.


All right. Do you want me refreshing his -fparallel-compile option introduction?



Why do you use -flto=auto?  There should be a jobserver active.


Yes, that should not be needed.

Martin




On 5/21/21 10:43 AM, Martin Liška wrote:

On 5/20/21 2:54 PM, Richard Biener wrote:

On Thu, May 20, 2021 at 2:34 PM Martin Liška  wrote:


Hello.

I've got a patch candidate that leverages partial linking for a couple of 
selected object files.

I'm sending make all-host- jX results for my machine:

before: 3m18s (user 32m52s)
https://gist.githubusercontent.com/marxin/223890df4d8d8e490b6b2918b77dacad/raw/1dd5eae5001295ba0230a689f7edc67284c9b742/gcc-all-host.svg

after: 2m57m (user 35m)
https://gist.githubusercontent.com/marxin/223890df4d8d8e490b6b2918b77dacad/raw/d659b2187cf622167841efbbe6bc93cb33855fa9/gcc-all-host-partial-lto.svg

One can utilize it with:
make -j16 all-host PARTIAL_LTO=1

@Segher, Andrew: Can you please measure time improvement for your slow 
bootstrap?
One can also tweak --param=lto-partitions=16 param value.

Thoughts?


You're LTO linking multiple objects here - that's almost as if you
were doing this
for the whole of libbackend.a ... so $(OBJS)_CLFAGS += -flto and in the
libbackend.a rule do a similar partial link trick.


Yeah, apart from that one can't likely do partial linking for an archive:

$ g++ -no-pie -flto=auto --param=lto-partitions=16 -flinker-output=nolto-rel -r 
libbackend.a
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core 
dumped
compilation terminated.

while ld.bfd immediately finishes.



That gets you half of a LTO bootstrap then.

So why did you go from applying this per-file to multiple files?  Does $(LINKER)
have a proper rule to pick up a jobserver?

When upstreaming in any form you probably have to gate it on bootstrap-lto
being not active.


Sure, that's reasonable, we can likely detect a -flto option in $(COMPILE), 
right?

One more thing I face is broken dependency:
$ make clean && make -j32 PARTIAL_LTO=1

g++ -fcf-protection -fno-PIE -c   -g   -DIN_GCC -fPIC-fno-exceptions 
-fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings 
-Wcast-qual -Wno-error=format-diag -Wmissing-format-attribute 
-Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros 
-Wno-overlength-strings -fno-common -Wno-unused -DHAVE_CONFIG_H -I. -I. 
-I/home/marxin/Programming/gcc/gcc -I/home/marxin/Programming/gcc/gcc/. 
-I/home/marxin/Programming/gcc/gcc/../include 
-I/home/marxin/Programming/gcc/gcc/../libcpp/include 
-I/home/marxin/Programming/gcc/gcc/../libcody  
-I/home/marxin/Programming/gcc/gcc/../libdecnumber 
-I/home/marxin/Programming/gcc/gcc/../libdecnumber/bid -I../libdecnumber 
-I/home/marxin/Programming/gcc/gcc/../libbacktrace   -o gimple-match-lto.o -MT 
gimple-match-lto.o -MMD -MP -MF ./.deps/gimple-match-lto.TPo gimple-match.c 
-flto
g++ -fcf-protection -fno-PIE -c   -g   -DIN_GCC -fPIC-fno-exceptions 
-fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings 
-Wcast-qual -Wno-error=format-diag -Wmissing-format-attribute 
-Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros 
-Wno-overlength-strings -fno-common -Wno-unused -DHAVE_CONFIG_H -I. -I. 
-I/home/marxin/Programming/gcc/gcc -I/home/marxin/Programming/gcc/gcc/. 
-I/home/marxin/Programming/gcc/gcc/../include 
-I/home/marxin/Programming/gcc/gcc/../libcpp/include 
-I/home/marxin/Programming/gcc/gcc/../libcody  
-I/home/marxin/Programming/gcc/gcc/../libdecnumber 
-I/home/marxin/Programming/gcc/gcc/../libdecnumber/bid -I../libdecnumber 
-I/home/marxin/Programming/gcc/gcc/../libbacktrace   -o generic-match-lto.o -MT 
generic-match-lto.o -MMD -MP -MF ./.deps/generic-match-lto.TPo generic-match.c 
-flto

In file included from ./tm.h:26,
   from /home/marxin/Programming/gcc/gcc/backend.h:28,
   from 
/home/marxin/Programming/gcc/gcc/generic-match-head.c:23,
   from generic-match.c:4

Re: progress update after initial GSoC virtual meetup

2021-06-01 Thread David Malcolm via Gcc
On Sun, 2021-05-30 at 20:38 +0530, Ankur Saini wrote:
> hello 

Hi Ankur, sorry about the delayed reply (it was a long weekend here in
the US)

> I was successfully able to build gcc with bootstrapping disabled and
> using xgcc directly from the build directory instead ( reducing the
> overall build time a lot, although it still takes about half an hour to
> build but it’s much faster than before ). 

Excellent.


> Also I was also able to run one single test on the built compiler.

Great.

> 
> Is there anything else I should be knowing to aid in development or
> should we start planing and preparing towards the project so that we
> can have a head start during coding phase ?

I tried brainstorming "what does a new contributor to GCC's analyzer
need to be able to do"; here's what I came up with:

- able to build the analyzer from source *quickly*, for hacking on the
code.  i.e. with --disable-bootstrap.  We want to minimize the time it
takes to, say, hack in a print statement into a single .cc file in the
analyzer subdirectory, rebuild, and rerun.   With bootstrapping
disabled, if you run "make -jsome-number-of-cores" from the build
directory's "gcc" subdirectory, it should merely rebuild the .o file
for the .cc you touched, and do some relinking (and rerun the
selftests); hopefully such an edit should take less than a minute
before you're able to run the code and see the results.

It sounds like you're close to being able to do that.

(FWIW I tend to use gdb rather than putting in print statements, I tend
to hack in gcc_unreachable into conditions that I hope are being hit,
so that execution will stop at that point in gdb if my assumptions are
correct, and then I can print things, inject calls, etc in gdb)

- able to build the analyzer with a full bootstrap (--enable-bootstrap
is the default) and running the regression test suites ("make check -
jnumber-of-cores"),  On the fastest box I have this (64 cores, 128 GB
ram) this takes about 45 minutes to do the build and about 45 minutes
to do the testsuites; it used to take up to three hours total when I
was running it on a laptop (and thus was a major pain as it's no fun to
have a hot noisy laptop for several hours).  Maybe it's best to have an
account on the GCC compile farm for this:
  https://gcc.gnu.org/wiki/CompileFarm
IIRC you already have such an account.  It might be worth trying out a
full bootstrap and testsuite run on one of the powerful machines in the
farm.   I tend to use "screen" in case my ssh connection drops during
through a build, so that losing the ssh connection doesn't kill the
build.

- able to step through the code in the debugger.  IIRC you've already
been doing that.

- copyright assignment paperwork to the FSF.  IIRC you've already done
that.

- ability to run just a single test in the testsuite, rather than the
whole lot (so that you can easily develop new tests without having to
run everything each time you make an edit to a test).  As you say
above, you've done that.

- the analyzer has testcases for C, C++ and Fortran, so you might want
to figure out the argument you need for --enable-languages= when
configuring GCC to enable those languages (but probably no others when
hacking, to speed of rebuilding GCC).  Obviously you'll need C++, as
C++ support is the point of your project.

- it might be good to create a personal branch on the gcc git
repository that you can push your work to.  I'm in two minds about
this, in that ideally you'd just commit your work to trunk once each
patch is approved, but maybe it's good to have a public place as a
backup of the "under development" stuff?  Also, at some point we want
you to be pushing changes to the trunk, so we'll want your account to
be able to do that.

I hope all the above makes sense.  Don't hesitate to ask questions;
finding things out is the whole point of this part of the GSoC
schedule.

Can anyone think of something else that's worth sorting out in this
preliminary phase?

I don't think you're meant to be spending more than an hour or so a
week in this preliminary phase until the coding period officially
starts on Monday 7th.

If you're *really* eager to start, you might want to look at 
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100546
This is a case where the analyzer "sees" a call through a function
pointer, and, despite figuring out what the function pointer actually
points to, entirely fails to properly handle the call, since the
supergraph and engine.cc code is looking at the static callgraph, and
needs work to handle such calls through function pointers.  I started
debugging this a couple of weeks ago, and realized it has a *lot* of
similarities to the vtable case, so thought I might leave it so you can
have a go at it once the project starts properly.  That said, before
the 7th you're meant to be focusing on schoolwork, I think, so we
really ought to be merely just sorting out accounts, ensuring your
coding environment is set up, etc.

Hope this is helpful

Dave



Re: GCC documentation: porting to Sphinx

2021-06-01 Thread Michael Matz
Hello,

On Tue, 1 Jun 2021, Martin Liška wrote:

> On 5/31/21 5:49 PM, Michael Matz wrote:
> > Hello Martin,
> > 
> > On Mon, 31 May 2021, Martin Liška wrote:
> > 
> >> I've made quite some progress with the porting of the documentation and
> >> I would like to present it to the community now:
> >> https://splichal.eu/scripts/sphinx/
> >>   Note the documentation is automatically ([1]) generated from texinfo with
> >> a
> >> GitHub workflow ([2]).
> > 
> > One other thing I was recently thinking about, in the Spinx vs. texinfo
> > discussion: locally available documentation browsable/searchable in
> > terminal with info(1) (or equivalents).
> 
> Yes, that's handy.
> 
> > I think the above (i.e. generating .rst from the texinfo file) would 
> > immediately nullify all my worries.  So, just to be extra sure: your 
> > proposal now is to generate the .rst files, and that .texinfo remains 
> > the maintained sources, right?
> 
> No, .texinfo files will be gone. However, Sphinx can output to info 
> format: 
> https://www.sphinx-doc.org/en/master/man/sphinx-build.html#cmdoption-sphinx-build-M

I see, that's good to hear.

> And I've just added the generated Info pages here:
> https://splichal.eu/scripts/sphinx/

Okay, but there's something amiss, just compare a local gcc.info with 
that.  The sphinx generated one seems to only contain command line 
options, but none of the other topics, in particular it seems to contain 
the "Invoking GCC" chapter (and only that) as top-level, and all other 
ones are missing (like "C implementation", "C++ implementation", "C 
extension", and so on).

Looking at gccint.info I also seem quite some confusion, it's unclear to 
me if content is missing or not.  But e.g. the top-level structure has a 
different order (a less logical one, this one is btw. shared with the 
order of the HTML generated docu, so it's probably specific to sphinx 
setup or such).

Ignoring that missing content what is there right now does seem somewhat 
acceptable for local use, though.


Ciao,
Michael.


Update to GCC copyright assignment policy

2021-06-01 Thread David Edelsohn via Gcc
GCC was created as part of the GNU Project but has grown to operate as
an autonomous project.

The GCC Steering Committee has decided to relax the requirement to
assign copyright for all changes to the Free Software Foundation.  GCC
will continue to be developed, distributed, and licensed under the GNU
General Public License v3.0. GCC will now accept contributions with or
without an FSF copyright assignment. This change is consistent with
the practices of many other major Free Software projects, such as the
Linux kernel.

Contributors who have an FSF Copyright Assignment don't need to
change anything.  Contributors who wish to utilize the Developer Certificate
of Origin[1] should add a Signed-off-by message to their commit messages.
Developers with commit access may add their name to the DCO list in the
MAINTAINERS file to certify the DCO for all future commits in lieu of individual
Signed-off-by messages for each commit.

The GCC Steering Committee continues to affirm the principles of Free
Software, and that will never change.

- The GCC Steering Committee

[1] https://developercertificate.org/


unsubscribe

2021-06-01 Thread Dubuc, Paul via Gcc



> -Original Message-
> From: gcc-announce  On Behalf Of Richard
> Biener
> Sent: Tuesday, June 01, 2021 4:42 AM
> To: gcc-annou...@gcc.gnu.org; gcc@gcc.gnu.org; info-...@gnu.org
> Subject: [EXT] GCC 9.4 Released
> 
> [Actual Sender is gcc-announce-boun...@gcc.gnu.org]
> 
> The GNU Compiler Collection version 9.4 has been released.
> 
> GCC 9.4 is a bug-fix release from the GCC 9 branch containing important
> fixes for regressions and serious bugs in GCC 9.3 with more than 190 bugs
> fixed since the previous release.
> 
> This release is available from the WWW and FTP servers listed here:
> 
>  https://sourceware.org/pub/gcc/releases/gcc-9.4.0/
>  https://gcc.gnu.org/mirrors.html
> 
> 
> Please do not contact me directly regarding questions or comments
> about this release.  Instead, use the resources available from
> http://gcc.gnu.org.
> 
> As always, a vast number of people contributed to this GCC release
> -- far too many to thank them individually!

Confidentiality Notice: This electronic message transmission, including any 
attachment(s), may contain confidential, proprietary, or privileged information 
from CAS, a division of the American Chemical Society ("ACS"). If you have 
received this transmission in error, be advised that any disclosure, copying, 
distribution, or use of the contents of this information is strictly 
prohibited. Please destroy all copies of the message and contact the sender 
immediately by either replying to this message or calling 614-447-3600.



Re: Update to GCC copyright assignment policy

2021-06-01 Thread Jakub Jelinek via Gcc
On Tue, Jun 01, 2021 at 10:00:06AM -0400, David Edelsohn via Gcc wrote:
> GCC was created as part of the GNU Project but has grown to operate as
> an autonomous project.
> 
> The GCC Steering Committee has decided to relax the requirement to
> assign copyright for all changes to the Free Software Foundation.  GCC
> will continue to be developed, distributed, and licensed under the GNU
> General Public License v3.0. GCC will now accept contributions with or
> without an FSF copyright assignment. This change is consistent with
> the practices of many other major Free Software projects, such as the
> Linux kernel.
> 
> Contributors who have an FSF Copyright Assignment don't need to
> change anything.  Contributors who wish to utilize the Developer Certificate
> of Origin[1] should add a Signed-off-by message to their commit messages.
> Developers with commit access may add their name to the DCO list in the
> MAINTAINERS file to certify the DCO for all future commits in lieu of 
> individual
> Signed-off-by messages for each commit.
> 
> The GCC Steering Committee continues to affirm the principles of Free
> Software, and that will never change.

What does this mean for the source file comments?

Do we continue using contrib/update-copyright.py --this-year to update
the FSF copyright notices?

When a new source file (that has copyright boilerplate, not say some small
testcase) is added by somebody submitting their work under FSF copyright
assignment, shall the
  Copyright (C) 2021 Free Software Foundation, Inc.
be added?

What about when such a new source file is added by somebody submitting their
work under DCO?  Shall they list
  Copyright (C) 2021 John Doe
or something else (note, update-copyright.py would need all such copyright
lines in it).  If yes and later on somebody with FSF copyright assignment
modifies that, shall the
  Copyright (C) 2021 Free Software Foundation, Inc.
line be added?

Can contributors with FSF Copyright Assignment on file (or those working
for companies with company wide ones) assign all their further work or
just selected commits under DCO?

Jakub



Re: Update to GCC copyright assignment policy

2021-06-01 Thread Florian Weimer via Gcc
* David Edelsohn via Gcc:

> GCC was created as part of the GNU Project but has grown to operate as
> an autonomous project.
>
> The GCC Steering Committee has decided to relax the requirement to
> assign copyright for all changes to the Free Software Foundation.  GCC
> will continue to be developed, distributed, and licensed under the GNU
> General Public License v3.0. GCC will now accept contributions with or
> without an FSF copyright assignment. This change is consistent with
> the practices of many other major Free Software projects, such as the
> Linux kernel.

What about the parts of GCC with FSF copyrights that are not covered by
the GPL, but the GPL with exceptions?  How is it possible to move code
between the parts if a contributor previously used DCO and thus gave
only permission to license under the open source license “indicated in
the file”?

Thanks,
Florian



Re: Update to GCC copyright assignment policy

2021-06-01 Thread Mark Wielaard
Hi David,

On Tue, 2021-06-01 at 10:00 -0400, David Edelsohn via Gcc wrote:
> The GCC Steering Committee has decided to relax the requirement to
> assign copyright for all changes to the Free Software Foundation.  GCC
> will continue to be developed, distributed, and licensed under the GNU
> General Public License v3.0. GCC will now accept contributions with or
> without an FSF copyright assignment. This change is consistent with
> the practices of many other major Free Software projects, such as the
> Linux kernel.
> 
> Contributors who have an FSF Copyright Assignment don't need to
> change anything.  Contributors who wish to utilize the Developer Certificate
> of Origin[1] should add a Signed-off-by message to their commit messages.
> Developers with commit access may add their name to the DCO list in the
> MAINTAINERS file to certify the DCO for all future commits in lieu of 
> individual
> Signed-off-by messages for each commit.

This seems a pretty bad policy to be honest.
Why was there no public discussion on this?

I certainly understand not wanting to assign copyright to the FSF
anymore given the recent board decisions. But changing GCC from having
a shared copyright pool to having lots of individual (or company?)
copyright holders seems like a regression for a strong copyleft
project.

With individual copyright holders companies no longer have clear way to
know whether they are in compliance unless they talk to each and every
individual copyright holder (see also the linux kernel, where there are
some individuals who randomly sue companies just to get some money to
drop the lawsuit). And for users it will be harder to get compliant
sources if they can no longer simply ask the shared copyright holder,
but instead will have to get enough individual copyright holders to get
a distributor into compliance.

If we no longer want the FSF to be the legal guardian and copyright
holder for GCC could we please find another legal entity that performs
that role and helps us as a project with copyleft compliance?

I would be happy to setup a shared copyright pool under the Conservancy
Copyleft Compliance project for example:
https://sfconservancy.org/copyleft-compliance/

Thanks,

Mark


Re: Update to GCC copyright assignment policy

2021-06-01 Thread David Edelsohn via Gcc
On Tue, Jun 1, 2021 at 10:15 AM Jakub Jelinek  wrote:
>
> On Tue, Jun 01, 2021 at 10:00:06AM -0400, David Edelsohn via Gcc wrote:
> > GCC was created as part of the GNU Project but has grown to operate as
> > an autonomous project.
> >
> > The GCC Steering Committee has decided to relax the requirement to
> > assign copyright for all changes to the Free Software Foundation.  GCC
> > will continue to be developed, distributed, and licensed under the GNU
> > General Public License v3.0. GCC will now accept contributions with or
> > without an FSF copyright assignment. This change is consistent with
> > the practices of many other major Free Software projects, such as the
> > Linux kernel.
> >
> > Contributors who have an FSF Copyright Assignment don't need to
> > change anything.  Contributors who wish to utilize the Developer Certificate
> > of Origin[1] should add a Signed-off-by message to their commit messages.
> > Developers with commit access may add their name to the DCO list in the
> > MAINTAINERS file to certify the DCO for all future commits in lieu of 
> > individual
> > Signed-off-by messages for each commit.
> >
> > The GCC Steering Committee continues to affirm the principles of Free
> > Software, and that will never change.
>
> What does this mean for the source file comments?
>
> Do we continue using contrib/update-copyright.py --this-year to update
> the FSF copyright notices?
>
> When a new source file (that has copyright boilerplate, not say some small
> testcase) is added by somebody submitting their work under FSF copyright
> assignment, shall the
>   Copyright (C) 2021 Free Software Foundation, Inc.
> be added?
>
> What about when such a new source file is added by somebody submitting their
> work under DCO?  Shall they list
>   Copyright (C) 2021 John Doe
> or something else (note, update-copyright.py would need all such copyright
> lines in it).  If yes and later on somebody with FSF copyright assignment
> modifies that, shall the
>   Copyright (C) 2021 Free Software Foundation, Inc.
> line be added?

The copyright author will be listed as "Free Software Foundation,
Inc." and/or "The GNU Toolchain Authors", as appropriate.

>
> Can contributors with FSF Copyright Assignment on file (or those working
> for companies with company wide ones) assign all their further work or
> just selected commits under DCO?

The update to the policy does not negate any existing or future FSF
copyright assignments -- it solely expands the options available.
Individuals may add a Signed-off-by line or add their name to the DCO
list in the MAINTAINERS file, but it doesn't change the legal
framework for a contribution by an individual or company with a
copyright assignment.  Individuals and companies can choose how to
proceed with their existing FSF copyright assignments.  Individuals
and companies may continue to establish new copyright assignments with
the FSF.

Thanks, David


Re: Update to GCC copyright assignment policy

2021-06-01 Thread Paul Koning via Gcc



> On Jun 1, 2021, at 10:31 AM, David Edelsohn via Gcc  wrote:
> 
> The copyright author will be listed as "Free Software Foundation,
> Inc." and/or "The GNU Toolchain Authors", as appropriate.

What does that mean?  FSF is a well defined organization.  "The GNU Toolchain 
Authors" sounds like one, but is it?  Or is it just a label for "the set of 
contributors who have contributed without assigning to FSF"?  In other words, 
who is the owner of such a work, the GTA, or the submitter?  I'm guessing the 
latter.

That seems to create a possible future complication.  Prior to this change, the 
FSF (as owner of the copyright) could make changes such as replacing the GPL 2 
license by GPL 3.  With the policy change, that would no longer be possible, 
unless you get the approval of all the copyright holders.  This may not be 
considered a problem, but it does seem like a change.

I looked at gcc.gnu.org to find the updated policy.  I don't think it's there; 
the "contribute" page wording still feels like the old policy.  Given the 
change, it would seem rather important to have the implications spelled out in 
full, and the new rules clearly expressed.

paul



Re: Update to GCC copyright assignment policy

2021-06-01 Thread Mark Wielaard
On Tue, 2021-06-01 at 16:24 +0200, Florian Weimer via Gcc wrote:
> * David Edelsohn via Gcc:
> 
> > GCC was created as part of the GNU Project but has grown to operate as
> > an autonomous project.
> > 
> > The GCC Steering Committee has decided to relax the requirement to
> > assign copyright for all changes to the Free Software Foundation.  GCC
> > will continue to be developed, distributed, and licensed under the GNU
> > General Public License v3.0. GCC will now accept contributions with or
> > without an FSF copyright assignment. This change is consistent with
> > the practices of many other major Free Software projects, such as the
> > Linux kernel.
> 
> What about the parts of GCC with FSF copyrights that are not covered by
> the GPL, but the GPL with exceptions?  How is it possible to move code
> between the parts if a contributor previously used DCO and thus gave
> only permission to license under the open source license “indicated in
> the file”?

Depends on which DCO you uses. Various project use the following DCO,
which makes clear you assign permissions under all applicable licenses
(this helps if the project uses more than one, possibly incompatible,
license and/or is dual licensed):

Developer's Certificate of Origin

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me,
and I have the right to submit the contribution under each
license indicated in, or otherwise designated as being
applicable to, the file.

(b) The contribution was provided directly to me by some other
person who certified (a), and I have not modified it.

(c) I understand and agree that the project and the
contribution are public and that a record of the
contribution (including all personal information I submit
with it, including my sign-off) is maintained indefinitely
and may be redistributed.

Cheers,

Mark 


Re: Update to GCC copyright assignment policy

2021-06-01 Thread Alfred M. Szmidt via Gcc
   GCC was created as part of the GNU Project but has grown to operate as
   an autonomous project.

That is true for all GNU project.

   The GCC Steering Committee has decided to relax the requirement to
   assign copyright for all changes to the Free Software Foundation.  GCC
   will continue to be developed, distributed, and licensed under the GNU
   General Public License v3.0. GCC will now accept contributions with or
   without an FSF copyright assignment. This change is consistent with
   the practices of many other major Free Software projects, such as the
   Linux kernel.

The GCC steering committee is not in a position to make such a
decision that is up to the GNU project head and the FSF legal counsel,
it also fly against the mission statement.  Not to mention that this
was not discussed with anyone, including people in the GNU project.


Re: Update to GCC copyright assignment policy

2021-06-01 Thread D. Hugh Redelmeier
| From: Mark Wielaard 

| This seems a pretty bad policy to be honest.
| Why was there no public discussion on this?

Agreed.  I also agree with the rest of Mark's message.

(Note: I haven't contributed to GCC but I have contributed to other
copylefted code bases.)

It is important that the pool be trustable.  A tall order, but
solvable, I think.

Two pools (FSF for old stuff, something else, for new stuff if the
contributor prefers) should be quite managable.

This would allow, for example, moving to an updated copyleft if the
two pools agreed.  It is important that the governance of the pool be
trustable.

We've trusted the FSF and now some have qualms.  A second pool would
be a check on the power of the first pool.

Individual unassigned copyright pretty much guarantees that the
copyright terms can never be changed.  I don't think that that is
optimal.


Update to GCC copyright assignment policy

2021-06-01 Thread Christopher Dimech via Gcc
I am pleased to see a change based on my recommendation.  The FSF should not 
refrain
from accepting contributions based on modified versions of software in instances
where the developer of the modified work is unable to get a copyright assignment
of the code, but are legally allowed to use a compatible license without 
requiring
copyright.

- Christopher Dimech

Society has became too quick to pass judgement and declare someone Persona 
Non-Grata,
the most extreme form of censure a country can bestow.

In a new era of destructive authoritarianism, I support Richard Stallman.  
Times of great
crisis are also times of great opportunity. I call upon you to make this 
struggle yours as well !

https://stallmansupport.org/ https://www.fsf.org/ https://www.gnu.org/


> Sent: Wednesday, June 02, 2021 at 2:28 AM
> From: "Mark Wielaard" 
> To: "David Edelsohn" , "GCC Development" 
> Subject: Re: Update to GCC copyright assignment policy
>
> Hi David,
>
> On Tue, 2021-06-01 at 10:00 -0400, David Edelsohn via Gcc wrote:
> > The GCC Steering Committee has decided to relax the requirement to
> > assign copyright for all changes to the Free Software Foundation.  GCC
> > will continue to be developed, distributed, and licensed under the GNU
> > General Public License v3.0. GCC will now accept contributions with or
> > without an FSF copyright assignment. This change is consistent with
> > the practices of many other major Free Software projects, such as the
> > Linux kernel.
> >
> > Contributors who have an FSF Copyright Assignment don't need to
> > change anything.  Contributors who wish to utilize the Developer Certificate
> > of Origin[1] should add a Signed-off-by message to their commit messages.
> > Developers with commit access may add their name to the DCO list in the
> > MAINTAINERS file to certify the DCO for all future commits in lieu of 
> > individual
> > Signed-off-by messages for each commit.
>
> This seems a pretty bad policy to be honest.
> Why was there no public discussion on this?
>
> I certainly understand not wanting to assign copyright to the FSF
> anymore given the recent board decisions. But changing GCC from having
> a shared copyright pool to having lots of individual (or company?)
> copyright holders seems like a regression for a strong copyleft
> project.
>
> With individual copyright holders companies no longer have clear way to
> know whether they are in compliance unless they talk to each and every
> individual copyright holder (see also the linux kernel, where there are
> some individuals who randomly sue companies just to get some money to
> drop the lawsuit). And for users it will be harder to get compliant
> sources if they can no longer simply ask the shared copyright holder,
> but instead will have to get enough individual copyright holders to get
> a distributor into compliance.
>
> If we no longer want the FSF to be the legal guardian and copyright
> holder for GCC could we please find another legal entity that performs
> that role and helps us as a project with copyleft compliance?
>
> I would be happy to setup a shared copyright pool under the Conservancy
> Copyleft Compliance project for example:
> https://sfconservancy.org/copyleft-compliance/
>
> Thanks,
>
> Mark
>


Re: Update to GCC copyright assignment policy

2021-06-01 Thread Richard Kenner via Gcc
> > What about the parts of GCC with FSF copyrights that are not covered by
> > the GPL, but the GPL with exceptions?  How is it possible to move code
> > between the parts if a contributor previously used DCO and thus gave
> > only permission to license under the open source license "indicated in
> > the file"?
> 
> Depends on which DCO you uses. Various project use the following DCO,
> which makes clear you assign permissions under all applicable licenses
> (this helps if the project uses more than one, possibly incompatible,
> license and/or is dual licensed):

See above.  The issue is if the project wants to change the status of
a file from GPL to GPL plus exception.  It can't do that if there
was a change to the file made by somebody who did't assign the copyright.
What's said in the DCO you cite doesn't help.



Re: Update to GCC copyright assignment policy

2021-06-01 Thread Jason Merrill via Gcc
On Tue, Jun 1, 2021 at 10:52 AM D. Hugh Redelmeier  wrote:

> | From: Mark Wielaard 
>
> | This seems a pretty bad policy to be honest.
> | Why was there no public discussion on this?
>
> Agreed.  I also agree with the rest of Mark's message.
>
> (Note: I haven't contributed to GCC but I have contributed to other
> copylefted code bases.)
>
> It is important that the pool be trustable.  A tall order, but
> solvable, I think.
>
> Two pools (FSF for old stuff, something else, for new stuff if the
> contributor prefers) should be quite managable.
>
> This would allow, for example, moving to an updated copyleft if the
> two pools agreed.  It is important that the governance of the pool be
> trustable.
>
> We've trusted the FSF and now some have qualms.  A second pool would
> be a check on the power of the first pool.
>
> Individual unassigned copyright pretty much guarantees that the
> copyright terms can never be changed.  I don't think that that is
> optimal.
>

GCC's license is "GPL version 3 or later", so if there ever needed to be a
GPL v4, we could move to it without needing permission from anyone.

But GPL3 has been a good license for GCC; giving up the theoretical ability
to change the license (other than to a later GPL) does not seem like a
significant loss.

Jason


Re: Update to GCC copyright assignment policy

2021-06-01 Thread Jose E. Marchesi via Gcc


> GCC was created as part of the GNU Project but has grown to operate as
> an autonomous project.
>
> The GCC Steering Committee has decided to relax the requirement to
> assign copyright for all changes to the Free Software Foundation.  GCC
> will continue to be developed, distributed, and licensed under the GNU
> General Public License v3.0. GCC will now accept contributions with or
> without an FSF copyright assignment. This change is consistent with
> the practices of many other major Free Software projects, such as the
> Linux kernel.
>
> Contributors who have an FSF Copyright Assignment don't need to
> change anything.  Contributors who wish to utilize the Developer Certificate
> of Origin[1] should add a Signed-off-by message to their commit messages.
> Developers with commit access may add their name to the DCO list in the
> MAINTAINERS file to certify the DCO for all future commits in lieu of 
> individual
> Signed-off-by messages for each commit.
>
> The GCC Steering Committee continues to affirm the principles of Free
> Software, and that will never change.
>
> - The GCC Steering Committee
>
> [1] https://developercertificate.org/

Eer, so you are changing the license of GCC from GPLv3+ to GPLv3 only??

Why current contributors (individuals and corporations) have not been
consulted before making and implementing such important decisions?
Corporations like my employer contribute to GCC under a certain legal
setup.  Changing the conditions under which the contributions happen is
not something to be done unilaterally without a very good reason. The
mere fact you have sent this email to a public mailing list means I have
to get my management involved, and most probably lawyers too.

What is the rationale after these changes anyway?

I respectfully ask the GCC Steering Committee to suspend the
implementation of these changes until the rationale and the practical
consequences of changing the GCC contribution model and its license have
been carefully thought, discussed and preferably consensuated among the
GCC contributors and maintainers.


Re: Update to GCC copyright assignment policy

2021-06-01 Thread Paul Koning via Gcc



> On Jun 1, 2021, at 11:08 AM, Jason Merrill via Gcc  wrote:
> 
> On Tue, Jun 1, 2021 at 10:52 AM D. Hugh Redelmeier  wrote:
> 
>> | From: Mark Wielaard 
>> 
>> | This seems a pretty bad policy to be honest.
>> | Why was there no public discussion on this?
>> 
>> Agreed.  I also agree with the rest of Mark's message.
>> 
>> (Note: I haven't contributed to GCC but I have contributed to other
>> copylefted code bases.)
>> 
>> It is important that the pool be trustable.  A tall order, but
>> solvable, I think.
>> 
>> Two pools (FSF for old stuff, something else, for new stuff if the
>> contributor prefers) should be quite managable.
>> 
>> This would allow, for example, moving to an updated copyleft if the
>> two pools agreed.  It is important that the governance of the pool be
>> trustable.
>> 
>> We've trusted the FSF and now some have qualms.  A second pool would
>> be a check on the power of the first pool.
>> 
>> Individual unassigned copyright pretty much guarantees that the
>> copyright terms can never be changed.  I don't think that that is
>> optimal.
>> 
> 
> GCC's license is "GPL version 3 or later", so if there ever needed to be a
> GPL v4, we could move to it without needing permission from anyone.

I don't think that is what the license says.  It says:

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

To me that means the recipient of the software can relicense it under a later 
license.  It doesn't say to me that the original distribution can do so.

paul



Re: Update to GCC copyright assignment policy

2021-06-01 Thread Jakub Jelinek via Gcc
On Tue, Jun 01, 2021 at 11:25:16AM -0400, Paul Koning via Gcc wrote:
> GCC is free software; you can redistribute it and/or modify
> it under the terms of the GNU General Public License as published by
> the Free Software Foundation; either version 3, or (at your option)
> any later version.
> 
> To me that means the recipient of the software can relicense it under a later 
> license.  It doesn't say to me that the original distribution can do so.

IMHO that can be easily done by changing anything in the file
under GPLv4+ license (if/when it exists).
Because the user can then choose GPLv3+ for most of the source lines,
but only GPLv4+ for those that changed, which implies GPLv4+ for the whole.

Jakub



Re: Update to GCC copyright assignment policy

2021-06-01 Thread Jonathan Wakely via Gcc
> What is the rationale after these changes anyway?

Development of new features for libstdc++ has already moved away from
gcc.gnu.org to avoid the copyright assignment. Other contributors have
expressed a desire to do the same.




Re: Update to GCC copyright assignment policy

2021-06-01 Thread Andrea Corallo via Gcc
"Jose E. Marchesi via Gcc"  writes:

>> GCC was created as part of the GNU Project but has grown to operate as
>> an autonomous project.
>>
>> The GCC Steering Committee has decided to relax the requirement to
>> assign copyright for all changes to the Free Software Foundation.  GCC
>> will continue to be developed, distributed, and licensed under the GNU
>> General Public License v3.0. GCC will now accept contributions with or
>> without an FSF copyright assignment. This change is consistent with
>> the practices of many other major Free Software projects, such as the
>> Linux kernel.
>>
>> Contributors who have an FSF Copyright Assignment don't need to
>> change anything.  Contributors who wish to utilize the Developer Certificate
>> of Origin[1] should add a Signed-off-by message to their commit messages.
>> Developers with commit access may add their name to the DCO list in the
>> MAINTAINERS file to certify the DCO for all future commits in lieu of 
>> individual
>> Signed-off-by messages for each commit.
>>
>> The GCC Steering Committee continues to affirm the principles of Free
>> Software, and that will never change.
>>
>> - The GCC Steering Committee
>>
>> [1] https://developercertificate.org/
>
> Eer, so you are changing the license of GCC from GPLv3+ to GPLv3 only??
>
> Why current contributors (individuals and corporations) have not been
> consulted before making and implementing such important decisions?

Can't agree more.  Critiquing FSF for lack of process transparency and
at the same time implementing such a drastic change with zero
involvement of the community sounds bizzarre to me to say the least.

[...]

> I respectfully ask the GCC Steering Committee to suspend the
> implementation of these changes until the rationale and the practical
> consequences of changing the GCC contribution model and its license have
> been carefully thought, discussed and preferably consensuated among the
> GCC contributors and maintainers.

Quote.

Best Regards.

  Andrea


Re: Update to GCC copyright assignment policy

2021-06-01 Thread DJ Delorie via Gcc
Paul Koning via Gcc  writes:
>> GCC's license is "GPL version 3 or later", so if there ever needed to be a
>> GPL v4, we could move to it without needing permission from anyone.
>
> I don't think that is what the license says.  It says:
>
> GCC is free software; you can redistribute it and/or modify
> it under the terms of the GNU General Public License as published by
> the Free Software Foundation; either version 3, or (at your option)
> any later version.
>
> To me that means the recipient of the software can relicense it under
> a later license.  It doesn't say to me that the original distribution
> can do so.

I've never read it that way.  To me it says "a recipient may
redistribute it under terms of a newer license, but the license remains
v3+ even if they do" - we're giving the recipient a choice of actions,
but not power to relicense.

I.e. a recipient is not permitted to relicense the code, ever.  However,
they may act as if it's licensed under a newer license.  If they share
the code, *that* recipient gets to make the same choice - v3 or newer.

So if the original copyright holder can't change the license, nobody
can.



Re: Update to GCC copyright assignment policy

2021-06-01 Thread David Edelsohn via Gcc
On Tue, Jun 1, 2021 at 11:14 AM Jose E. Marchesi
 wrote:
>
>
> > GCC was created as part of the GNU Project but has grown to operate as
> > an autonomous project.
> >
> > The GCC Steering Committee has decided to relax the requirement to
> > assign copyright for all changes to the Free Software Foundation.  GCC
> > will continue to be developed, distributed, and licensed under the GNU
> > General Public License v3.0. GCC will now accept contributions with or
> > without an FSF copyright assignment. This change is consistent with
> > the practices of many other major Free Software projects, such as the
> > Linux kernel.
> >
> > Contributors who have an FSF Copyright Assignment don't need to
> > change anything.  Contributors who wish to utilize the Developer Certificate
> > of Origin[1] should add a Signed-off-by message to their commit messages.
> > Developers with commit access may add their name to the DCO list in the
> > MAINTAINERS file to certify the DCO for all future commits in lieu of 
> > individual
> > Signed-off-by messages for each commit.
> >
> > The GCC Steering Committee continues to affirm the principles of Free
> > Software, and that will never change.
> >
> > - The GCC Steering Committee
> >
> > [1] https://developercertificate.org/
>
> Eer, so you are changing the license of GCC from GPLv3+ to GPLv3 only??

The current, active license in GPL v3.0.  This is not an announcement
of any change in license.

Quoting Jason Merrill:

"GCC's license is "GPL version 3 or later", so if there ever needed to be a
GPL v4, we could move to it without needing permission from anyone."

Thanks, David


Re: Update to GCC copyright assignment policy

2021-06-01 Thread Maciej W. Rozycki
On Tue, 1 Jun 2021, Paul Koning via Gcc wrote:

> That seems to create a possible future complication.  Prior to this 
> change, the FSF (as owner of the copyright) could make changes such as 
> replacing the GPL 2 license by GPL 3.  With the policy change, that 
> would no longer be possible, unless you get the approval of all the 
> copyright holders.  This may not be considered a problem, but it does 
> seem like a change.

 It is a real problem.  As I recall a while ago parts of QEMU had to be 
removed and reimplemented from scratch when the project switched licences, 
because a contributor and therefore a copyright holder (whom I knew in 
person and who I am sure would make no fuss about it) has since passed 
away.

  Maciej


Re: Update to GCC copyright assignment policy

2021-06-01 Thread Alfred M. Szmidt via Gcc


   > What is the rationale after these changes anyway?

   Development of new features for libstdc++ has already moved away from
   gcc.gnu.org to avoid the copyright assignment. Other contributors have
   expressed a desire to do the same.

>From the GCC mission statement:

  - Other components (runtime libraries, testsuites, etc) will be
available under various free licenses with copyrights being held
by individual authors or the FSF.

So that cannot be the rationale for this.


Re: Update to GCC copyright assignment policy

2021-06-01 Thread Jason Merrill via Gcc
On Tue, Jun 1, 2021 at 11:15 AM Jose E. Marchesi via Gcc 
wrote:

>
> > GCC was created as part of the GNU Project but has grown to operate as
> > an autonomous project.
> >
> > The GCC Steering Committee has decided to relax the requirement to
> > assign copyright for all changes to the Free Software Foundation.  GCC
> > will continue to be developed, distributed, and licensed under the GNU
> > General Public License v3.0. GCC will now accept contributions with or
> > without an FSF copyright assignment. This change is consistent with
> > the practices of many other major Free Software projects, such as the
> > Linux kernel.
> >
> > Contributors who have an FSF Copyright Assignment don't need to
> > change anything.  Contributors who wish to utilize the Developer
> Certificate
> > of Origin[1] should add a Signed-off-by message to their commit messages.
> > Developers with commit access may add their name to the DCO list in the
> > MAINTAINERS file to certify the DCO for all future commits in lieu of
> individual
> > Signed-off-by messages for each commit.
> >
> > The GCC Steering Committee continues to affirm the principles of Free
> > Software, and that will never change.
> >
> > - The GCC Steering Committee
> >
> > [1] https://developercertificate.org/
>
> Eer, so you are changing the license of GCC from GPLv3+ to GPLv3 only??
>

No, there is no change in the license.


> Why current contributors (individuals and corporations) have not been
> consulted before making and implementing such important decisions?
>
Corporations like my employer contribute to GCC under a certain legal
> setup.

Changing the conditions under which the contributions happen is
> not something to be done unilaterally without a very good reason. The
> mere fact you have sent this email to a public mailing list means I have
> to get my management involved, and most probably lawyers too.
>

Your employer is very welcome to continue to contribute under the same
legal setup.

Derived versions of GCC could already include code that was not assigned to
the FSF; even the official GCC distribution itself has long included
non-FSF-assigned code in various runtime libraries.
The change is that now we will also be able to incorporate such code into
the source code repository for the compiler.

Jason


Re: Update to GCC copyright assignment policy

2021-06-01 Thread Jose E. Marchesi via Gcc


>> > GCC was created as part of the GNU Project but has grown to operate as
>> > an autonomous project.
>> >
>> > The GCC Steering Committee has decided to relax the requirement to
>> > assign copyright for all changes to the Free Software Foundation.  GCC
>> > will continue to be developed, distributed, and licensed under the GNU
>> > General Public License v3.0. GCC will now accept contributions with or
>> > without an FSF copyright assignment. This change is consistent with
>> > the practices of many other major Free Software projects, such as the
>> > Linux kernel.
>> >
>> > Contributors who have an FSF Copyright Assignment don't need to
>> > change anything.  Contributors who wish to utilize the Developer 
>> > Certificate
>> > of Origin[1] should add a Signed-off-by message to their commit messages.
>> > Developers with commit access may add their name to the DCO list in the
>> > MAINTAINERS file to certify the DCO for all future commits in lieu of 
>> > individual
>> > Signed-off-by messages for each commit.
>> >
>> > The GCC Steering Committee continues to affirm the principles of Free
>> > Software, and that will never change.
>> >
>> > - The GCC Steering Committee
>> >
>> > [1] https://developercertificate.org/
>>
>> Eer, so you are changing the license of GCC from GPLv3+ to GPLv3 only??
>
> The current, active license in GPL v3.0.  This is not an announcement
> of any change in license.

Thanks for confirming.


Re: Update to GCC copyright assignment policy

2021-06-01 Thread David Edelsohn via Gcc
On Tue, Jun 1, 2021 at 10:40 AM Paul Koning  wrote:
>
> > On Jun 1, 2021, at 10:31 AM, David Edelsohn via Gcc  wrote:
> >
> > The copyright author will be listed as "Free Software Foundation,
> > Inc." and/or "The GNU Toolchain Authors", as appropriate.
>
> What does that mean?  FSF is a well defined organization.  "The GNU Toolchain 
> Authors" sounds like one, but is it?  Or is it just a label for "the set of 
> contributors who have contributed without assigning to FSF"?  In other words, 
> who is the owner of such a work, the GTA, or the submitter?  I'm guessing the 
> latter.
>
> That seems to create a possible future complication.  Prior to this change, 
> the FSF (as owner of the copyright) could make changes such as replacing the 
> GPL 2 license by GPL 3.  With the policy change, that would no longer be 
> possible, unless you get the approval of all the copyright holders.  This may 
> not be considered a problem, but it does seem like a change.
>
> I looked at gcc.gnu.org to find the updated policy.  I don't think it's 
> there; the "contribute" page wording still feels like the old policy.  Given 
> the change, it would seem rather important to have the implications spelled 
> out in full, and the new rules clearly expressed.

The GNU Toolchain Authors are all of the authors, including those with
FSF Copyright.  All of the authors agree to the existing license,
which is "...either version 3, or (at your option) any later version."
 If the project chooses to adopt a future update to the GPL, all of
the authors have given permission through the existing copyright
assignment or through certification of the DCO to utilize the newer
license.

Thanks, David


Update to GCC copyright assignment policy

2021-06-01 Thread Christopher Dimech via Gcc
> Sent: Wednesday, June 02, 2021 at 4:01 AM
> From: "Maciej W. Rozycki" 
> To: "Paul Koning" 
> Cc: "Jakub Jelinek" , "GCC Development" 
> Subject: Re: Update to GCC copyright assignment policy
>
> On Tue, 1 Jun 2021, Paul Koning via Gcc wrote:
>
> > That seems to create a possible future complication.  Prior to this
> > change, the FSF (as owner of the copyright) could make changes such as
> > replacing the GPL 2 license by GPL 3.  With the policy change, that
> > would no longer be possible, unless you get the approval of all the
> > copyright holders.  This may not be considered a problem, but it does
> > seem like a change.
>
>  It is a real problem.  As I recall a while ago parts of QEMU had to be
> removed and reimplemented from scratch when the project switched licences,
> because a contributor and therefore a copyright holder (whom I knew in
> person and who I am sure would make no fuss about it) has since passed
> away.
>
>   Maciej

That assumes that one wants to use the original developer version.  But if a 
maintainer
wants to include and support that piece of code for some particular reason, he 
should be
able to do it.  A free software license should not stop us from using the code, 
whether he
died or not.  Indeed the licensing is there to avoid such problems.  It is also 
legally
enforceable.  It was one of wy arguments in favour.


- Christopher Dimech

Society has became too quick to pass judgement and declare someone Persona 
Non-Grata,
the most extreme form of censure a country can bestow.

In a new era of destructive authoritarianism, I support Richard Stallman.  
Times of great
crisis are also times of great opportunity. I call upon you to make this 
struggle yours as well !

https://stallmansupport.org/ https://www.fsf.org/ https://www.gnu.org/




Re: Update to GCC copyright assignment policy

2021-06-01 Thread Paul Smith
On Tue, 2021-06-01 at 11:50 -0400, David Edelsohn via Gcc wrote:
> The current, active license in GPL v3.0.  This is not an announcement
> of any change in license.
> 
> Quoting Jason Merrill:
> 
> "GCC's license is "GPL version 3 or later", so if there ever needed
> to be a GPL v4, we could move to it without needing permission from
> anyone."

It depends on what you mean by "move to it".

It's true that anyone could redistribute it under GPLv4.

What's not true is that you can *change the license*.  For example you
can't change the current wording of the license from "GPL version 3 or
later" to "GPL version 4 or later".  Or make any other changes to the
license, without collecting approval from all copyright holders.

So, if there should be some issue with GPLv3 so that you really want to
stop using it (maybe a court case is decided which negates a
significant element of GPLv3 and GPLv4 is released to address the
issue), it won't be possible to do that easily.

Someone else mentioned that new code could be released only under that
license so that in effect the entirety of the codebase becomes GPLv4+.

I'm not sure about that.  Doing that for brand new files that were
created solely by one person who wanted to use GPLv4 or later only
would work I suppose.  But adding changes to an existing file that was
GPLv3+ and saying that these new changes are GPLv4+ would be pretty
gross.  You might have to list both licenses in these files, since you
can't change the previously-in-use license unless you get agreement
from the FSF, who currently holds the license, plus anyone else who
changed the file since the assignment was relaxed.

Personally I think that while assignment is a PITA and I wish it were
easier, it is extremely valuable and provides a lot of flexibility, and
shouldn't be abandoned without very, VERY careful consideration.

And, that decision and those considerations should be documented and
the responses to the issues raised here published for everyone to see.



Re: Update to GCC copyright assignment policy

2021-06-01 Thread Jose E. Marchesi via Gcc


>> > GCC was created as part of the GNU Project but has grown to operate as
>> > an autonomous project.
>> >
>> > The GCC Steering Committee has decided to relax the requirement to
>> > assign copyright for all changes to the Free Software Foundation.  GCC
>> > will continue to be developed, distributed, and licensed under the GNU
>> > General Public License v3.0. GCC will now accept contributions with or
>> > without an FSF copyright assignment. This change is consistent with
>> > the practices of many other major Free Software projects, such as the
>> > Linux kernel.
>> >
>> > Contributors who have an FSF Copyright Assignment don't need to
>> > change anything.  Contributors who wish to utilize the Developer
>> Certificate
>> > of Origin[1] should add a Signed-off-by message to their commit messages.
>> > Developers with commit access may add their name to the DCO list in the
>> > MAINTAINERS file to certify the DCO for all future commits in lieu of
>> individual
>> > Signed-off-by messages for each commit.
>> >
>> > The GCC Steering Committee continues to affirm the principles of Free
>> > Software, and that will never change.
>> >
>> > - The GCC Steering Committee
>> >
>> > [1] https://developercertificate.org/
>>
>> Eer, so you are changing the license of GCC from GPLv3+ to GPLv3 only??
>>
>
> No, there is no change in the license.

Ok, then please consider changing

  "GCC will continue to be developed, distributed, and licensed under
   the GNU General Public License v3.0"

to

  "GCC will continue to be developed, distributed, and licensed under
   the GNU General Public License v3.0 or any later version as published
   by the Free Software Foundation."

in your announcement (in case you are publishing it somewhere else) to
avoid misunderstandings.


Re: Update to GCC copyright assignment policy

2021-06-01 Thread Maciej W. Rozycki
On Tue, 1 Jun 2021, DJ Delorie via Gcc wrote:

> > GCC is free software; you can redistribute it and/or modify
> > it under the terms of the GNU General Public License as published by
> > the Free Software Foundation; either version 3, or (at your option)
> > any later version.
> >
> > To me that means the recipient of the software can relicense it under
> > a later license.  It doesn't say to me that the original distribution
> > can do so.
> 
> I've never read it that way.  To me it says "a recipient may
> redistribute it under terms of a newer license, but the license remains
> v3+ even if they do" - we're giving the recipient a choice of actions,
> but not power to relicense.

 My interpretation of this would be for modifications rather than original 
sources, so v3+ applies to unmodified sources (for obvious reasons, given 
that the recipient of the sources is not a copyright holder), however as a 
copyright holder I can release my modifications say under v4 or v4+.  It 
is unclear to me if the newer licence will then "stick" to the rest of the 
sources, but I suspect it will.  A copyright assignment made to FSF (or 
another legal entity) prevents this complication from happening.

  Maciej


Re: Update to GCC copyright assignment policy

2021-06-01 Thread Maciej W. Rozycki
On Tue, 1 Jun 2021, Christopher Dimech wrote:

> >  It is a real problem.  As I recall a while ago parts of QEMU had to be
> > removed and reimplemented from scratch when the project switched licences,
> > because a contributor and therefore a copyright holder (whom I knew in
> > person and who I am sure would make no fuss about it) has since passed
> > away.
> 
> That assumes that one wants to use the original developer version.  But if a 
> maintainer
> wants to include and support that piece of code for some particular reason, 
> he should be
> able to do it.  A free software license should not stop us from using the 
> code, whether he
> died or not.  Indeed the licensing is there to avoid such problems.  It is 
> also legally
> enforceable.  It was one of wy arguments in favour.

 You can use and modify original code under the terms of the original 
licence (provided it permitted it), but you cannot change the licence, 
because you are not a copyright holder for that piece of code.

  Maciej


Update to GCC copyright assignment policy

2021-06-01 Thread Christopher Dimech via Gcc




> Sent: Wednesday, June 02, 2021 at 4:09 AM
> From: "Paul Smith" 
> To: gcc@gcc.gnu.org
> Subject: Re: Update to GCC copyright assignment policy
>
> On Tue, 2021-06-01 at 11:50 -0400, David Edelsohn via Gcc wrote:
> > The current, active license in GPL v3.0.  This is not an announcement
> > of any change in license.
> >
> > Quoting Jason Merrill:
> >
> > "GCC's license is "GPL version 3 or later", so if there ever needed
> > to be a GPL v4, we could move to it without needing permission from
> > anyone."
>
> It depends on what you mean by "move to it".
>
> It's true that anyone could redistribute it under GPLv4.
>
> What's not true is that you can *change the license*.  For example you
> can't change the current wording of the license from "GPL version 3 or
> later" to "GPL version 4 or later".  Or make any other changes to the
> license, without collecting approval from all copyright holders.
>
> So, if there should be some issue with GPLv3 so that you really want to
> stop using it (maybe a court case is decided which negates a
> significant element of GPLv3 and GPLv4 is released to address the
> issue), it won't be possible to do that easily.
>
> Someone else mentioned that new code could be released only under that
> license so that in effect the entirety of the codebase becomes GPLv4+.
>
> I'm not sure about that.  Doing that for brand new files that were
> created solely by one person who wanted to use GPLv4 or later only
> would work I suppose.  But adding changes to an existing file that was
> GPLv3+ and saying that these new changes are GPLv4+ would be pretty
> gross.  You might have to list both licenses in these files, since you
> can't change the previously-in-use license unless you get agreement
> from the FSF, who currently holds the license, plus anyone else who
> changed the file since the assignment was relaxed.

You can actually re-license with another compatible license.
GPLv3+ would allow you to re-license the code as GPLv4+

You do not have to keep all the previous licenses because the intention of the
gpl is to give back to users those rights which copyright would otherwise 
withold.

> Personally I think that while assignment is a PITA and I wish it were
> easier, it is extremely valuable and provides a lot of flexibility, and
> shouldn't be abandoned without very, VERY careful consideration.
>
> And, that decision and those considerations should be documented and
> the responses to the issues raised here published for everyone to see.
>


- Christopher Dimech

Society has became too quick to pass judgement and declare someone Persona 
Non-Grata,
the most extreme form of censure a country can bestow.

In a new era of destructive authoritarianism, I support Richard Stallman.  
Times of great
crisis are also times of great opportunity. I call upon you to make this 
struggle yours as well !

https://stallmansupport.org/ https://www.fsf.org/ https://www.gnu.org/




Re: Update to GCC copyright assignment policy

2021-06-01 Thread Jonathan Wakely via Gcc
> So that cannot be the rationale for this.

I do not want to contribute my work to a project that requires FSF
copyright assignment to the rest of the project, even if it wouldn't
be required for (some of) my own contributions. In any case,
historically libstdc++ *does* require an assignment. If you were even
slightly familiar with the project you might know that.





Re: Update to GCC copyright assignment policy

2021-06-01 Thread Alfred M. Szmidt via Gcc
   But GPL3 has been a good license for GCC; giving up the theoretical ability
   to change the license (other than to a later GPL) does not seem like a
   significant loss.

That will cause trouble incorperating code or documentation snippets
from the code base into the GCC manual; which is not under the GNU
GPL.  As it is, the FSF can and does give such permission to relicense
bits and bobs -- now you've entierly lost that ability.

The other loss is that parts cannot be relicensed under say the Lesser
GPL for whatever reasons, incase a library might be more useful
outside of GCC.  The FSF has always been open to create special
exemptions to the copyright assignment process.

This is just all ill thought, and clearly shown by the lack of any
discussion with anyone.


Re: Update to GCC copyright assignment policy

2021-06-01 Thread DJ Delorie via Gcc
"Maciej W. Rozycki"  writes:
>  My interpretation of this would be for modifications rather than original 
> sources, so v3+ applies to unmodified sources (for obvious reasons, given 
> that the recipient of the sources is not a copyright holder), however as a 
> copyright holder I can release my modifications say under v4 or v4+.  It 
> is unclear to me if the newer licence will then "stick" to the rest of the 
> sources, but I suspect it will.  A copyright assignment made to FSF (or 
> another legal entity) prevents this complication from happening.

I see two cases here:

1. You release a modified copy of gcc, your parts can be whatever you
   want, sure, as long as it's GPLv3 compatible.

2. You're contributing *to* gcc, in which case, I'd hope that any
   attempts to impose a different license would be rejected at the patch
   review step.



Re: Update to GCC copyright assignment policy

2021-06-01 Thread Paul Koning via Gcc



> On Jun 1, 2021, at 12:09 PM, David Edelsohn via Gcc  wrote:
> 
> On Tue, Jun 1, 2021 at 10:40 AM Paul Koning  wrote:
>> 
>>> On Jun 1, 2021, at 10:31 AM, David Edelsohn via Gcc  wrote:
>>> 
>>> The copyright author will be listed as "Free Software Foundation,
>>> Inc." and/or "The GNU Toolchain Authors", as appropriate.
>> 
>> What does that mean?  FSF is a well defined organization.  "The GNU 
>> Toolchain Authors" sounds like one, but is it?  Or is it just a label for 
>> "the set of contributors who have contributed without assigning to FSF"?  In 
>> other words, who is the owner of such a work, the GTA, or the submitter?  
>> I'm guessing the latter.
>> 
>> That seems to create a possible future complication.  Prior to this change, 
>> the FSF (as owner of the copyright) could make changes such as replacing the 
>> GPL 2 license by GPL 3.  With the policy change, that would no longer be 
>> possible, unless you get the approval of all the copyright holders.  This 
>> may not be considered a problem, but it does seem like a change.
>> 
>> I looked at gcc.gnu.org to find the updated policy.  I don't think it's 
>> there; the "contribute" page wording still feels like the old policy.  Given 
>> the change, it would seem rather important to have the implications spelled 
>> out in full, and the new rules clearly expressed.
> 
> The GNU Toolchain Authors are all of the authors, including those with
> FSF Copyright.  All of the authors agree to the existing license,
> which is "...either version 3, or (at your option) any later version."
> If the project chooses to adopt a future update to the GPL, all of
> the authors have given permission through the existing copyright
> assignment or through certification of the DCO to utilize the newer
> license.
> 
> Thanks, David

By DCO do you mean the document you linked in your original annoucement?  If 
yes, could you point out which of the words in that document give the GCC 
project permission from the copyright holder to relicense the contributed work? 
 I do not see those words in the document you linked.

I get the feeling that the current change was rushed and not well considered.  
It certainly has that feel.  I do not remember discussion of it, I do not see 
updated policy documents on the gcc.gnu.org website.  The discussion just now 
is raising a pile of questions which are being answered with a whole bunch of 
different answers, not all consistent with each other.  If the change had been 
carefully made this would not be happening; there would instead be a known 
answer (the outcome of prior discussion) and there would be published policies 
that could be pointed to where those answers are explicitly stated.

It's not that I object to the spirit of the change, and I have contributed to a 
number of open source projects where there is no copyright assignment so that 
isn't a strange thing to me.  What concerns me is a disruptive change made with 
what seems to me to be inadequate care.

paul



Re: Update to GCC copyright assignment policy

2021-06-01 Thread Joseph Myers
On Tue, 1 Jun 2021, David Edelsohn via Gcc wrote:

> The copyright author will be listed as "Free Software Foundation,
> Inc." and/or "The GNU Toolchain Authors", as appropriate.

And copyright notices naming "The GNU Toolchain Authors" should not 
include a date - that's following the recommendations at 
https://www.linuxfoundation.org/en/blog/copyright-notices-in-open-source-software-projects/
 
for the form of copyright notices in projects with many copyright holders.

-- 
Joseph S. Myers
jos...@codesourcery.com


Re: Update to GCC copyright assignment policy

2021-06-01 Thread Paul Koning via Gcc



> On Jun 1, 2021, at 12:44 PM, Joseph Myers  wrote:
> 
> On Tue, 1 Jun 2021, David Edelsohn via Gcc wrote:
> 
>> The copyright author will be listed as "Free Software Foundation,
>> Inc." and/or "The GNU Toolchain Authors", as appropriate.
> 
> And copyright notices naming "The GNU Toolchain Authors" should not 
> include a date - that's following the recommendations at 
> https://www.linuxfoundation.org/en/blog/copyright-notices-in-open-source-software-projects/
>  
> for the form of copyright notices in projects with many copyright holders.
> 
> -- 
> Joseph S. Myers
> jos...@codesourcery.com

That's a nice document, but it makes clear that a collective designation of a 
group of authors in a copyright notice is just a convenient shorthand.  It 
mentions that the copyright notice is just a notice that doesn't actually 
affect the copyright (which remains with the individual authors or their 
employers, unless assigned).  So "GNU Toolchain Authors" is a description 
referring to a set of individual owners, one that changes over time.  It 
doesn't describe a legal body, and it isn't an owner of anything.

paul



Update to GCC copyright assignment policy

2021-06-01 Thread Christopher Dimech via Gcc


> Sent: Wednesday, June 02, 2021 at 4:24 AM
> From: "Maciej W. Rozycki" 
> To: "Christopher Dimech" 
> Cc: "Paul Koning" , "Jakub Jelinek" 
> , "GCC Development" 
> Subject: Re: Update to GCC copyright assignment policy
>
> On Tue, 1 Jun 2021, Christopher Dimech wrote:
>
> > >  It is a real problem.  As I recall a while ago parts of QEMU had to be
> > > removed and reimplemented from scratch when the project switched licences,
> > > because a contributor and therefore a copyright holder (whom I knew in
> > > person and who I am sure would make no fuss about it) has since passed
> > > away.
> >
> > That assumes that one wants to use the original developer version.  But if 
> > a maintainer
> > wants to include and support that piece of code for some particular reason, 
> > he should be
> > able to do it.  A free software license should not stop us from using the 
> > code, whether he
> > died or not.  Indeed the licensing is there to avoid such problems.  It is 
> > also legally
> > enforceable.  It was one of wy arguments in favour.
>
>  You can use and modify original code under the terms of the original
> licence (provided it permitted it), but you cannot change the licence,
> because you are not a copyright holder for that piece of code.
>
>   Maciej


You can change it as much as the license allows you.  The gpl is intended to 
give you
back all the rights taken from you by copyright.  Thusly, you are not restricted
by anyone because they have the copyright of the original work.  It's important 
that
you understand this.




Update to GCC copyright assignment policy

2021-06-01 Thread Christopher Dimech via Gcc
A file should be kept with the author name, date and changes done by each 
contributor.

Including this is the source code would make the history too long.  Otherwise, 
such information
can be put at the end of the file.

- Christopher Dimech

Society has became too quick to pass judgement and declare someone Persona 
Non-Grata,
the most extreme form of censure a country can bestow.

In a new era of destructive authoritarianism, I support Richard Stallman.  
Times of great
crisis are also times of great opportunity. I call upon you to make this 
struggle yours as well !

https://stallmansupport.org/ https://www.fsf.org/ https://www.gnu.org/


> Sent: Wednesday, June 02, 2021 at 4:44 AM
> From: "Joseph Myers" 
> To: "David Edelsohn" 
> Cc: "Jakub Jelinek" , "GCC Development" 
> Subject: Re: Update to GCC copyright assignment policy
>
> On Tue, 1 Jun 2021, David Edelsohn via Gcc wrote:
>
> > The copyright author will be listed as "Free Software Foundation,
> > Inc." and/or "The GNU Toolchain Authors", as appropriate.
>
> And copyright notices naming "The GNU Toolchain Authors" should not
> include a date - that's following the recommendations at
> https://www.linuxfoundation.org/en/blog/copyright-notices-in-open-source-software-projects/
> for the form of copyright notices in projects with many copyright holders.
>
> --
> Joseph S. Myers
> jos...@codesourcery.com
>


[PATCH] MAINTAINERS: create DCO section; add myself to it

2021-06-01 Thread David Malcolm via Gcc
On Tue, 2021-06-01 at 10:00 -0400, David Edelsohn via Gcc wrote:
> GCC was created as part of the GNU Project but has grown to operate
> as
> an autonomous project.
> 
> The GCC Steering Committee has decided to relax the requirement to
> assign copyright for all changes to the Free Software Foundation. 
> GCC
> will continue to be developed, distributed, and licensed under the
> GNU
> General Public License v3.0. GCC will now accept contributions with
> or
> without an FSF copyright assignment. This change is consistent with
> the practices of many other major Free Software projects, such as the
> Linux kernel.
> 
> Contributors who have an FSF Copyright Assignment don't need to
> change anything.  Contributors who wish to utilize the Developer
> Certificate
> of Origin[1] should add a Signed-off-by message to their commit
> messages.
> Developers with commit access may add their name to the DCO list in
> the
> MAINTAINERS file to certify the DCO for all future commits in lieu of
> individual
> Signed-off-by messages for each commit.
> 
> The GCC Steering Committee continues to affirm the principles of Free
> Software, and that will never change.
> 
> - The GCC Steering Committee
> 
> [1] https://developercertificate.org/
> 

The MAINTAINERS file doesn't seem to have such a "DCO list"
yet; does the following patch look like what you had in mind?

ChangeLog

* MAINTAINERS: Create DCO section; add myself to it.
---
 MAINTAINERS | 12 
 1 file changed, 12 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index db25583b37b..1148e0915cf 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -685,3 +685,15 @@ Josef Zlomek   

 James Dennett  
 Christian Ehrhardt 
 Dara Hazeghi   
+
+
+DCO
+===
+
+Developers with commit access may add their name to the following list
+to certify the DCO (https://developercertificate.org/) for all
+future commits in lieu of individual Signed-off-by messages for each commit.
+
+   DCO list(last name alphabetical order)
+
+David Malcolm  
-- 
2.26.3



Update to GCC copyright assignment policy

2021-06-01 Thread Christopher Dimech via Gcc



> Sent: Wednesday, June 02, 2021 at 4:20 AM
> From: "Maciej W. Rozycki" 
> To: "DJ Delorie" 
> Cc: "Paul Koning" , gcc@gcc.gnu.org
> Subject: Re: Update to GCC copyright assignment policy
>
> On Tue, 1 Jun 2021, DJ Delorie via Gcc wrote:
>
> > > GCC is free software; you can redistribute it and/or modify
> > > it under the terms of the GNU General Public License as published by
> > > the Free Software Foundation; either version 3, or (at your option)
> > > any later version.
> > >
> > > To me that means the recipient of the software can relicense it under
> > > a later license.  It doesn't say to me that the original distribution
> > > can do so.
> >
> > I've never read it that way.  To me it says "a recipient may
> > redistribute it under terms of a newer license, but the license remains
> > v3+ even if they do" - we're giving the recipient a choice of actions,
> > but not power to relicense.
>
>  My interpretation of this would be for modifications rather than original
> sources, so v3+ applies to unmodified sources (for obvious reasons, given
> that the recipient of the sources is not a copyright holder), however as a
> copyright holder I can release my modifications say under v4 or v4+.  It
> is unclear to me if the newer licence will then "stick" to the rest of the
> sources, but I suspect it will.  A copyright assignment made to FSF (or
> another legal entity) prevents this complication from happening.
>
>   Maciej

No.  What the copyright holder can do is the re-license by any other license
he wants (even proprietary).  But you can't !!!  That's the basic difference.


- Christopher Dimech

Society has became too quick to pass judgement and declare someone Persona 
Non-Grata,
the most extreme form of censure a country can bestow.

In a new era of destructive authoritarianism, I support Richard Stallman.  
Times of great
crisis are also times of great opportunity. I call upon you to make this 
struggle yours as well !

https://stallmansupport.org/ https://www.fsf.org/ https://www.gnu.org/




Re: [PATCH] MAINTAINERS: create DCO section; add myself to it

2021-06-01 Thread Richard Biener via Gcc
On June 1, 2021 7:30:54 PM GMT+02:00, David Malcolm via Gcc  
wrote:
>On Tue, 2021-06-01 at 10:00 -0400, David Edelsohn via Gcc wrote:
>> GCC was created as part of the GNU Project but has grown to operate
>> as
>> an autonomous project.
>> 
>> The GCC Steering Committee has decided to relax the requirement to
>> assign copyright for all changes to the Free Software Foundation. 
>> GCC
>> will continue to be developed, distributed, and licensed under the
>> GNU
>> General Public License v3.0. GCC will now accept contributions with
>> or
>> without an FSF copyright assignment. This change is consistent with
>> the practices of many other major Free Software projects, such as the
>> Linux kernel.
>> 
>> Contributors who have an FSF Copyright Assignment don't need to
>> change anything.  Contributors who wish to utilize the Developer
>> Certificate
>> of Origin[1] should add a Signed-off-by message to their commit
>> messages.
>> Developers with commit access may add their name to the DCO list in
>> the
>> MAINTAINERS file to certify the DCO for all future commits in lieu of
>> individual
>> Signed-off-by messages for each commit.
>> 
>> The GCC Steering Committee continues to affirm the principles of Free
>> Software, and that will never change.
>> 
>> - The GCC Steering Committee
>> 
>> [1] https://developercertificate.org/
>> 
>
>The MAINTAINERS file doesn't seem to have such a "DCO list"
>yet; does the following patch look like what you had in mind?
>
>ChangeLog
>
>   * MAINTAINERS: Create DCO section; add myself to it.
>---
> MAINTAINERS | 12 
> 1 file changed, 12 insertions(+)
>
>diff --git a/MAINTAINERS b/MAINTAINERS
>index db25583b37b..1148e0915cf 100644
>--- a/MAINTAINERS
>+++ b/MAINTAINERS
>@@ -685,3 +685,15 @@ Josef Zlomek  
>
> James Dennett 
> Christian Ehrhardt
> Dara Hazeghi  
>+
>+
>+DCO
>+===
>+
>+Developers with commit access may add their name to the following list
>+to certify the DCO (https://developercertificate.org/) for all

There should be a verbatim copy of the DCO in this file or the repository. 

>+future commits in lieu of individual Signed-off-by messages for each
>commit.
>+
>+  DCO list(last name alphabetical order)
>+
>+David Malcolm 



Re: Update to GCC copyright assignment policy

2021-06-01 Thread Thomas Rodgers

On 2021-06-01 07:28, Mark Wielaard wrote:


Hi David,

On Tue, 2021-06-01 at 10:00 -0400, David Edelsohn via Gcc wrote:


The GCC Steering Committee has decided to relax the requirement to
assign copyright for all changes to the Free Software Foundation.  GCC
will continue to be developed, distributed, and licensed under the GNU
General Public License v3.0. GCC will now accept contributions with or
without an FSF copyright assignment. This change is consistent with
the practices of many other major Free Software projects, such as the
Linux kernel.

Contributors who have an FSF Copyright Assignment don't need to
change anything.  Contributors who wish to utilize the Developer 
Certificate
of Origin[1] should add a Signed-off-by message to their commit 
messages.
Developers with commit access may add their name to the DCO list in 
the
MAINTAINERS file to certify the DCO for all future commits in lieu of 
individual

Signed-off-by messages for each commit.


This seems a pretty bad policy to be honest.
Why was there no public discussion on this?

I certainly understand not wanting to assign copyright to the FSF
anymore given the recent board decisions. But changing GCC from having
a shared copyright pool to having lots of individual (or company?)
copyright holders seems like a regression for a strong copyleft
project.

With individual copyright holders companies no longer have clear way to
know whether they are in compliance unless they talk to each and every
individual copyright holder (see also the linux kernel, where there are
some individuals who randomly sue companies just to get some money to
drop the lawsuit). And for users it will be harder to get compliant
sources if they can no longer simply ask the shared copyright holder,
but instead will have to get enough individual copyright holders to get
a distributor into compliance.

If we no longer want the FSF to be the legal guardian and copyright
holder for GCC could we please find another legal entity that performs
that role and helps us as a project with copyleft compliance?


Personally, this would have been my preference.


I would be happy to setup a shared copyright pool under the Conservancy
Copyleft Compliance project for example:
https://sfconservancy.org/copyleft-compliance/

Thanks,

Mark


Update to GCC copyright assignment policy

2021-06-01 Thread Christopher Dimech via Gcc



> Sent: Wednesday, June 02, 2021 at 7:58 AM
> From: "Thomas Rodgers" 
> To: "Mark Wielaard" 
> Cc: "GCC Development" 
> Subject: Re: Update to GCC copyright assignment policy
>
> On 2021-06-01 07:28, Mark Wielaard wrote:
>
> > Hi David,
> >
> > On Tue, 2021-06-01 at 10:00 -0400, David Edelsohn via Gcc wrote:
> >
> >> The GCC Steering Committee has decided to relax the requirement to
> >> assign copyright for all changes to the Free Software Foundation.  GCC
> >> will continue to be developed, distributed, and licensed under the GNU
> >> General Public License v3.0. GCC will now accept contributions with or
> >> without an FSF copyright assignment. This change is consistent with
> >> the practices of many other major Free Software projects, such as the
> >> Linux kernel.
> >>
> >> Contributors who have an FSF Copyright Assignment don't need to
> >> change anything.  Contributors who wish to utilize the Developer
> >> Certificate
> >> of Origin[1] should add a Signed-off-by message to their commit
> >> messages.
> >> Developers with commit access may add their name to the DCO list in
> >> the
> >> MAINTAINERS file to certify the DCO for all future commits in lieu of
> >> individual
> >> Signed-off-by messages for each commit.
> >
> > This seems a pretty bad policy to be honest.
> > Why was there no public discussion on this?
> >
> > I certainly understand not wanting to assign copyright to the FSF
> > anymore given the recent board decisions. But changing GCC from having
> > a shared copyright pool to having lots of individual (or company?)
> > copyright holders seems like a regression for a strong copyleft
> > project.
> >
> > With individual copyright holders companies no longer have clear way to
> > know whether they are in compliance unless they talk to each and every
> > individual copyright holder (see also the linux kernel, where there are
> > some individuals who randomly sue companies just to get some money to
> > drop the lawsuit). And for users it will be harder to get compliant
> > sources if they can no longer simply ask the shared copyright holder,
> > but instead will have to get enough individual copyright holders to get
> > a distributor into compliance.
> >
> > If we no longer want the FSF to be the legal guardian and copyright
> > holder for GCC could we please find another legal entity that performs
> > that role and helps us as a project with copyleft compliance?
>
> Personally, this would have been my preference.

One thing to consider is whether there exists any legal expertise for this.
This obsession of GCC to disassociate from the FSF is unskilled and unnecessary.
Much effort should rather be put upon doing real work, opposing the European 
Union
Directive on Copyright in the Digital Single Market that came into force on 7 
June
2019.

> > I would be happy to setup a shared copyright pool under the Conservancy
> > Copyleft Compliance project for example:
> > https://sfconservancy.org/copyleft-compliance/
> >
> > Thanks,
> >
> > Mark

- Christopher Dimech

Society has became too quick to pass judgement and declare someone Persona 
Non-Grata,
the most extreme form of censure a country can bestow.

In a new era of destructive authoritarianism, I support Richard Stallman.  
Times of great
crisis are also times of great opportunity. I call upon you to make this 
struggle yours as well !

https://stallmansupport.org/ https://www.fsf.org/ https://www.gnu.org/






Re: Update to GCC copyright assignment policy

2021-06-01 Thread Eric Gallager via Gcc
On Tue, Jun 1, 2021 at 10:02 AM David Edelsohn via Gcc  wrote:
>
> GCC was created as part of the GNU Project but has grown to operate as
> an autonomous project.
>
> The GCC Steering Committee has decided to relax the requirement to
> assign copyright for all changes to the Free Software Foundation.  GCC
> will continue to be developed, distributed, and licensed under the GNU
> General Public License v3.0. GCC will now accept contributions with or
> without an FSF copyright assignment. This change is consistent with
> the practices of many other major Free Software projects, such as the
> Linux kernel.
>
> Contributors who have an FSF Copyright Assignment don't need to
> change anything.  Contributors who wish to utilize the Developer Certificate
> of Origin[1] should add a Signed-off-by message to their commit messages.
> Developers with commit access may add their name to the DCO list in the
> MAINTAINERS file to certify the DCO for all future commits in lieu of 
> individual
> Signed-off-by messages for each commit.
>
> The GCC Steering Committee continues to affirm the principles of Free
> Software, and that will never change.
>
> - The GCC Steering Committee
>
> [1] https://developercertificate.org/

One thing I'm wondering about this change is if it allows certain old
changes that previously couldn't be upstreamed to now be upstreamed?
For example, when I have asked about trying to forward-port certain
changes from Apple's old gcc-4.2 branch, I was told that one reason
this couldn't happen was because Apple hadn't assigned copyright for
those changes. Of course, there are still the technical difficulties
of the fact that 4.2 has bitrotted considerably in the years since its
last release, but regardless of those, are the legal difficulties at
least now out of the way?
Thanks,
Eric Gallager


Re: Update to GCC copyright assignment policy

2021-06-01 Thread Jeff Law via Gcc




On 6/1/2021 5:22 PM, Eric Gallager via Gcc wrote:

On Tue, Jun 1, 2021 at 10:02 AM David Edelsohn via Gcc  wrote:

GCC was created as part of the GNU Project but has grown to operate as
an autonomous project.

The GCC Steering Committee has decided to relax the requirement to
assign copyright for all changes to the Free Software Foundation.  GCC
will continue to be developed, distributed, and licensed under the GNU
General Public License v3.0. GCC will now accept contributions with or
without an FSF copyright assignment. This change is consistent with
the practices of many other major Free Software projects, such as the
Linux kernel.

Contributors who have an FSF Copyright Assignment don't need to
change anything.  Contributors who wish to utilize the Developer Certificate
of Origin[1] should add a Signed-off-by message to their commit messages.
Developers with commit access may add their name to the DCO list in the
MAINTAINERS file to certify the DCO for all future commits in lieu of individual
Signed-off-by messages for each commit.

The GCC Steering Committee continues to affirm the principles of Free
Software, and that will never change.

- The GCC Steering Committee

[1] https://developercertificate.org/

One thing I'm wondering about this change is if it allows certain old
changes that previously couldn't be upstreamed to now be upstreamed?
For example, when I have asked about trying to forward-port certain
changes from Apple's old gcc-4.2 branch, I was told that one reason
this couldn't happen was because Apple hadn't assigned copyright for
those changes. Of course, there are still the technical difficulties
of the fact that 4.2 has bitrotted considerably in the years since its
last release, but regardless of those, are the legal difficulties at
least now out of the way?
Read the DCO.   If you can satisfy the terms of the DCO, then yes it 
would help.  But DCO still has requirements that may not be easily met 
unless you are the author or know the author and can communicate with them.


jeff