Re: [RFC] MAINTAINERS: require a BZ account field

2024-06-25 Thread Andrew Stubbs

On 24/06/2024 23:34, Arsen Arsenović via Gcc wrote:

I was also proposing (and would like to re-air that here) enforcing that
the committer field of each commit is a (valid) @gcc.gnu.org email.
This can be configured repo-locally via:

   $ git config committer.email @gcc.gnu.org

Git has supported this since 39ab4d0951ba64edcfae7809740715991b44fa6d
(v2.22.0).

This makes a permanent association of each commit to its authors
Sourceware account.

This should not inhibit pushes, as the committer should be a reflection
of who /applied/ a patch, and anyone applying a patch that can also push
has a Sourceware account.  It also should not inhibit any workflow, as
it should be automatic.


This will make it hard to a) find emails from a maintainer/committer in 
the mailing list archives -- since it's not generally possible to send 
"From:" a @gcc.gnu.org address -- and b) make it hard to compile 
statistics about contributions from corporate domains (which people do do).


I do not object to having the bugzilla account also listed in 
MAINTAINERS, although I've never had trouble finding people by name.


Andrew



Re: [RFC] MAINTAINERS: require a BZ account field

2024-06-25 Thread Arsen Arsenović via Gcc
Hi,

Andrew Stubbs  writes:

> On 24/06/2024 23:34, Arsen Arsenović via Gcc wrote:
>> I was also proposing (and would like to re-air that here) enforcing that
>> the committer field of each commit is a (valid) @gcc.gnu.org email.
>> This can be configured repo-locally via:
>>$ git config committer.email @gcc.gnu.org
>> Git has supported this since 39ab4d0951ba64edcfae7809740715991b44fa6d
>> (v2.22.0).
>> This makes a permanent association of each commit to its authors
>> Sourceware account.
>> This should not inhibit pushes, as the committer should be a reflection
>> of who /applied/ a patch, and anyone applying a patch that can also push
>> has a Sourceware account.  It also should not inhibit any workflow, as
>> it should be automatic.
>
> This will make it hard to a) find emails from a maintainer/committer in the
> mailing list archives -- since it's not generally possible to send "From:" a
> @gcc.gnu.org address -- and b) make it hard to compile statistics about
> contributions from corporate domains (which people do do).

I'm not sure that is the case - the committer field is separate to the
author field, so all statistics one could do with the author field
remain unaltered.  For instance (as I've been doing that for a while),
here's what a commit of mine looks like under that scheme:

  commit 36cb7be477885a2464fe9a70467278c7debd5e79
  Author: Arsen Arsenović 
  AuthorDate: Thu Nov 16 23:50:30 2023 +0100
  Commit: Arsen Arsenović 
  CommitDate: Wed Dec 13 13:17:35 2023 +0100

  gettext: disable install, docs targets, libasprintf, threads

More often than not, the committer field is redundant with the author
field.

The email I use for correspondence is still present (and, in fact, is
the only one visible with the default git log and show formats).

It is possible that someone could be doing statistics based on the
committer field, if they also want to, say, count patches applied by
members of some company, but I'm not sure how wide-spread that is.
-- 
Arsen Arsenović


signature.asc
Description: PGP signature


Re: [RFC] MAINTAINERS: require a BZ account field

2024-06-25 Thread Andrew Stubbs

On 25/06/2024 10:05, Arsen Arsenović wrote:

Hi,

Andrew Stubbs  writes:


On 24/06/2024 23:34, Arsen Arsenović via Gcc wrote:

I was also proposing (and would like to re-air that here) enforcing that
the committer field of each commit is a (valid) @gcc.gnu.org email.
This can be configured repo-locally via:
$ git config committer.email @gcc.gnu.org
Git has supported this since 39ab4d0951ba64edcfae7809740715991b44fa6d
(v2.22.0).
This makes a permanent association of each commit to its authors
Sourceware account.
This should not inhibit pushes, as the committer should be a reflection
of who /applied/ a patch, and anyone applying a patch that can also push
has a Sourceware account.  It also should not inhibit any workflow, as
it should be automatic.


This will make it hard to a) find emails from a maintainer/committer in the
mailing list archives -- since it's not generally possible to send "From:" a
@gcc.gnu.org address -- and b) make it hard to compile statistics about
contributions from corporate domains (which people do do).


I'm not sure that is the case - the committer field is separate to the
author field, so all statistics one could do with the author field
remain unaltered.  For instance (as I've been doing that for a while),
here's what a commit of mine looks like under that scheme:

   commit 36cb7be477885a2464fe9a70467278c7debd5e79
   Author: Arsen Arsenović 
   AuthorDate: Thu Nov 16 23:50:30 2023 +0100
   Commit: Arsen Arsenović 
   CommitDate: Wed Dec 13 13:17:35 2023 +0100

   gettext: disable install, docs targets, libasprintf, threads

More often than not, the committer field is redundant with the author
field.

The email I use for correspondence is still present (and, in fact, is
the only one visible with the default git log and show formats).

It is possible that someone could be doing statistics based on the
committer field, if they also want to, say, count patches applied by
members of some company, but I'm not sure how wide-spread that is.


OK; fair point.

Andrew


Re: [RFC] MAINTAINERS: require a BZ account field

2024-06-25 Thread Richard Biener via Gcc
On Tue, Jun 25, 2024 at 12:36 AM Arsen Arsenović via Gcc
 wrote:
>
> Hi,
>
> Sam James via Gcc  writes:
>
> > Hi!
> >
> > This comes up in #gcc on IRC every so often, so finally
> > writing an RFC.
> >
> > What?
> > ---
> >
> > I propose that MAINTAINERS be modified to be of the form,
> > adding an extra field for their GCC/sourceware account:
> >> sourceware account>
> >   Joe Bloggsjoeblo...@example.com  jblo...@gcc.gnu.org
> >
> > Further, that the field must not be blank (-> must have a BZ account;
> > there were/are some without at all)!
> >
> > Why?
> > ---
> >
> > 1) This is tied to whether or not people should use their committer email
> > on Bugzilla or a personal email. A lot of people don't seem to use their
> > committer email (-> no permissions) and end up not closing bugs, so
> > pinskia (and often myself these days) end up doing it for them.
> >
> > 2) It's standard practice to wish to CC the committer of a bisect result
> > - or to CC someone who you know wrote patches on a subject area. Doing
> > this on Bugzilla is challenging when there's no map between committer
> > <-> BZ account.
> >
> > Specifically, there are folks who have git committer+author as
> > joeblo...@example.com (or maybe even coold...@example.com) where the
> > local part of the address has *no relation* to their GCC/sw account,
> > so finding who to CC is difficult without e.g. trawling through gcc-cvs
> > mails or asking overseers for help.
>
> I was also proposing (and would like to re-air that here) enforcing that
> the committer field of each commit is a (valid) @gcc.gnu.org email.
> This can be configured repo-locally via:
>
>   $ git config committer.email @gcc.gnu.org
>
> Git has supported this since 39ab4d0951ba64edcfae7809740715991b44fa6d
> (v2.22.0).
>
> This makes a permanent association of each commit to its authors
> Sourceware account.

I'd welcome this - care to create a patch for contrib/gcc-git-customization.sh?

> This should not inhibit pushes, as the committer should be a reflection
> of who /applied/ a patch, and anyone applying a patch that can also push
> has a Sourceware account.  It also should not inhibit any workflow, as
> it should be automatic.
>
> > Summary
> > ---
> >
> > TL;DR: The proposal is:
> >
> > 1) MAINTAINERS should list a field containing either the gcc.gnu.org
> > email in full, or their gcc username (bikeshedding semi-welcome);
> >
> > 2) It should become a requirement that to be in MAINTAINERS, one must
> > possess a Bugzilla account (ideally using their gcc.gnu.org email).
>
> --
> Arsen Arsenović


Re: [RFC] MAINTAINERS: require a BZ account field

2024-06-25 Thread Jonathan Wakely via Gcc
On Tue, 25 Jun 2024 at 10:06, Arsen Arsenović via Gcc  wrote:
>
> Hi,
>
> Andrew Stubbs  writes:
>
> > On 24/06/2024 23:34, Arsen Arsenović via Gcc wrote:
> >> I was also proposing (and would like to re-air that here) enforcing that
> >> the committer field of each commit is a (valid) @gcc.gnu.org email.
> >> This can be configured repo-locally via:
> >>$ git config committer.email @gcc.gnu.org
> >> Git has supported this since 39ab4d0951ba64edcfae7809740715991b44fa6d
> >> (v2.22.0).
> >> This makes a permanent association of each commit to its authors
> >> Sourceware account.
> >> This should not inhibit pushes, as the committer should be a reflection
> >> of who /applied/ a patch, and anyone applying a patch that can also push
> >> has a Sourceware account.  It also should not inhibit any workflow, as
> >> it should be automatic.
> >
> > This will make it hard to a) find emails from a maintainer/committer in the
> > mailing list archives -- since it's not generally possible to send "From:" a
> > @gcc.gnu.org address -- and b) make it hard to compile statistics about
> > contributions from corporate domains (which people do do).
>
> I'm not sure that is the case - the committer field is separate to the
> author field, so all statistics one could do with the author field
> remain unaltered.  For instance (as I've been doing that for a while),
> here's what a commit of mine looks like under that scheme:
>
>   commit 36cb7be477885a2464fe9a70467278c7debd5e79
>   Author: Arsen Arsenović 
>   AuthorDate: Thu Nov 16 23:50:30 2023 +0100
>   Commit: Arsen Arsenović 
>   CommitDate: Wed Dec 13 13:17:35 2023 +0100
>
>   gettext: disable install, docs targets, libasprintf, threads
>
> More often than not, the committer field is redundant with the author
> field.
>
> The email I use for correspondence is still present (and, in fact, is
> the only one visible with the default git log and show formats).

Right, and this is of course no different to when I push a commit on
behalf of somebody who doesn't have a sourceware account. The Author
field is the person who wrote the code, and the Committer field is the
person who pushed it (me).

As soon as Arsen suggested this on IRC I updated my git config. I
think it is quote logical for the committer to be the @gcc.gnu.org
account name, because that is literally who pushed it - you're using
your SSH key to push as usern...@gcc.gnu.org. And this is how all
commits looked in the Subversion days, when a commit was associated
with a username, and there was no separate Author (except as noted in
the ChangeLog file). With Git we can correctly track the Author and
Committer separately, and I like the suggestion to use different
"identities" for those two roles.

I write most of my patches as part of my dayjob, so the author is
jwakely@redhat, but I push them using my sourceware account which
existed long before I joined Red Hat, so for my future commits the
committer is going to be r...@gcc.gnu.org.


Re: gnatlink vs. -mthumb -march=armv7-a+simd -mfloat-abi=hard

2024-06-25 Thread Sebastian Huber

On 24.06.24 16:06, Sebastian Huber wrote:

On 28.04.22 10:16, Sebastian Huber wrote:

Hello,

I test currently the Ada support for RTEMS in GCC 12. We have a 
-mthumb -march=armv7-a+simd -mfloat-abi=hard multilib for which the 
Ada RTS is built like this:


make[4]: Entering directory 
'/tmp/sh/b-gcc-arm-rtems6/arm-rtems6/thumb/armv7-a+simd/hard/libada'
make -C ../../../../.././gcc/ada "MAKEOVERRIDES=" "LDFLAGS=-mthumb 
-march=armv7-a+simd -mfloat-abi=hard" "LN_S=ln -s" "SHELL=/bin/sh" 
"GNATLIBFLAGS=-W -Wall -gnatpg -nostdinc -mthumb -march=armv7-a+simd 
-mfloat-abi=hard" "GNATLIBCFLAGS=-g -O2 -mthumb -march=armv7-a+simd 
-mfloat-abi=hard" "GNATLIBCFLAGS_FOR_C=-W -Wall -g -O2 -g -O2 
-fexceptions -DIN_RTS -DHAVE_GETIPINFO  -mthumb -march=armv7-a+simd 
-mfloat-abi=hard" "PICFLAG_FOR_TARGET=-fPIC" "THREAD_KIND=native" 
"TRACE=no" "MULTISUBDIR=/thumb/armv7-a+simd/hard" 
"libsubdir=/tmp/sh/i-arm-rtems6/lib64/gcc/arm-rtems6/12.0.1/thumb/armv7-a+simd/hard" "toolexeclibdir=/tmp/sh/i-arm-rtems6/lib64/gcc/arm-rtems6/12.0.1/thumb/armv7-a+simd/hard/adalib" "objext=.o" "prefix=/tmp/sh/i-arm-rtems6" "exeext=.exeext.should.not.be.used " 'CC=the.host.compiler.should.not.be.needed' "GCC_FOR_TARGET=/tmp/sh/b-gcc-arm-rtems6/./gcc/xgcc -B/tmp/sh/b-gcc-arm-rtems6/./gcc/ -nostdinc -B/tmp/sh/b-gcc-arm-rtems6/arm-rtems6/newlib/ -isystem /tmp/sh/b-gcc-arm-rtems6/arm-rtems6/newlib/targ-include -isystem /home/EB/sebastian_h/src/gcc/newlib/libc/include -B/tmp/sh/i-arm-rtems6/arm-rtems6/bin/ -B/tmp/sh/i-arm-rtems6/arm-rtems6/lib/ -isystem /tmp/sh/i-arm-rtems6/arm-rtems6/include -isystem /tmp/sh/i-arm-rtems6/arm-rtems6/sys-include   " "CFLAGS=-g -O2  -mthumb -march=armv7-a+simd -mfloat-abi=hard" ./bldtools/oscons/xoscons


When I try to link a test application I get this error:

arm-rtems7-gnatlink 
/tmp/sh/b-rtems/arm/realview_pbx_a9_qemu/testsuites/ada/samples/nsecs/nsecs.ali testsuites/ada/samples/nsecs/init.o -qnolinkcmds -T linkcmds.realview_pbx_a9_qemu -Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -L. -lrtemscpu -lrtemsbsp -lrtemstest -qrtems -mthumb -march=armv7-a+simd -mfloat-abi=hard -mtune=cortex-a9 -Wl,--gc-sections -L/home/EB/sebastian_h/src/rtems/bsps/arm/shared/start -L/home/EB/sebastian_h/src/rtems/bsps/arm/realview-pbx-a9/start -o /tmp/sh/b-rtems/arm/realview_pbx_a9_qemu/testsuites/ada/ada_nsecs.exe

/opt/rtems/7/lib/gcc/arm-rtems7/12.0.1/thumb/armv7-a+simd/hard/adainclude/s-secsta.ads:288:9:
 sorry, unimplemented: Thumb-1 'hard-float' VFP ABI

The s-secsta.ads seems to be from the right multilib directory 
(Thumb-2), however, I get a sorry message related to Thumb-1?


I tried it again with GCC 13, but the problem still exists. I tried to 
use strace to get some more insights (the environment variables are 
partially shown):


[pid 110912] execve("/opt/rtems-6-zynq-1/bin/arm-rtems6-gnatmake", 
["/opt/rtems-6-zynq-1/bin/arm-rtems6-gnatmake", "-D", 
"testsuites/ada/tmtests/tm20", "-bargs", "-Mgnat_main", "-margs", 
"-Icpukit/include/adainclude", 
"-I../../../../src/rtems/cpukit/include/adainclude", 
"-Itestsuites/ada/support", 
"-I../../../../src/rtems/testsuites/ada/support", "-cargs", 
"-march=armv7-a", "-mthumb", "-mfpu=neon", "-mfloat-abi=hard", 
"-mtune=cortex-a9", "-largs", "testsuites/ada/tmtests/tm20/init.o", 
"-Wl,--wrap=printf", "-Wl,--wrap=puts", "-Wl,--wrap=putchar", "-L.", 
"-lrtemscpu", "-lrtemsbsp", "-lrtemstest", "-qrtems", "-march=armv7-a", 
"-mthumb", "-mfpu=neon", "-mfloat-abi=hard", "-mtune=cortex-a9", 
"-Wl,--gc-sections", 
"-L/opt/rtems-6-zynq-1/src/rtems/bsps/arm/shared/start", 
"-L/opt/rtems-6-zynq-1/src/rtems/bsps/arm/xilinx-zynq/start", "-margs", 
"-a", 
"/opt/rtems-6-zynq-1/src/rtems/testsuites/ada/tmtests/tm20/tm20.adb", 
"-o", 
"/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zynq_zc702/testsuites/ada/ada_tm20.exe"], [] 


[pid 110913] execve("/opt/rtems-6-zynq-1//bin/arm-rtems6-gcc", 
["/opt/rtems-6-zynq-1//bin/arm-rtems6-gcc", "-march=armv7-a", "-mthumb", 
"-mfpu=neon", "-mfloat-abi=hard", "-mtune=cortex-a9", "-march=armv7-a", 
"-mthumb", "-mfpu=neon", "-mfloat-abi=hard", "-mtune=cortex-a9", 
"-print-multi-directory"], []) = 0


The above call is used to get the multi-lib directory. Which yields:

--RTS=thumb/armv7-a+simd/hard

The flags seem to be obtained by getting all "-m" flags from the 
previous "-cargs" and "-largs". So, each flags appears twice.


[pid 110914] execve("/opt/rtems-6-zynq-1//bin/arm-rtems6-gnatbind", 
["/opt/rtems-6-zynq-1//bin/arm-rtems6-gnatbind", 
"-aO/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zynq_zc702/testsuites/ada/tmtests/tm20", "-Mgnat_main", "-Icpukit/include/adainclude", "-I../../../../src/rtems/cpukit/include/adainclude", "-Itestsuites/ada/support", "-I../../../../src/rtems/testsuites/ada/support", "--RTS=thumb/armv7-a+simd/hard", "-x", "/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zynq_zc702/testsuites/ada/tmtests/tm20/tm20.ali"], []) = 0


[pid 110915] execve("/opt/rtems-6-zy

Re: gnatlink vs. -mthumb -march=armv7-a+simd -mfloat-abi=hard

2024-06-25 Thread Sebastian Huber

On 25.06.24 14:53, Sebastian Huber wrote:

On 24.06.24 16:06, Sebastian Huber wrote:

On 28.04.22 10:16, Sebastian Huber wrote:

Hello,

I test currently the Ada support for RTEMS in GCC 12. We have a 
-mthumb -march=armv7-a+simd -mfloat-abi=hard multilib for which the 
Ada RTS is built like this:


make[4]: Entering directory 
'/tmp/sh/b-gcc-arm-rtems6/arm-rtems6/thumb/armv7-a+simd/hard/libada'
make -C ../../../../.././gcc/ada "MAKEOVERRIDES=" "LDFLAGS=-mthumb 
-march=armv7-a+simd -mfloat-abi=hard" "LN_S=ln -s" "SHELL=/bin/sh" 
"GNATLIBFLAGS=-W -Wall -gnatpg -nostdinc -mthumb -march=armv7-a+simd 
-mfloat-abi=hard" "GNATLIBCFLAGS=-g -O2 -mthumb -march=armv7-a+simd 
-mfloat-abi=hard" "GNATLIBCFLAGS_FOR_C=-W -Wall -g -O2 -g -O2 
-fexceptions -DIN_RTS -DHAVE_GETIPINFO  -mthumb -march=armv7-a+simd 
-mfloat-abi=hard" "PICFLAG_FOR_TARGET=-fPIC" "THREAD_KIND=native" 
"TRACE=no" "MULTISUBDIR=/thumb/armv7-a+simd/hard" 
"libsubdir=/tmp/sh/i-arm-rtems6/lib64/gcc/arm-rtems6/12.0.1/thumb/armv7-a+simd/hard" "toolexeclibdir=/tmp/sh/i-arm-rtems6/lib64/gcc/arm-rtems6/12.0.1/thumb/armv7-a+simd/hard/adalib" "objext=.o" "prefix=/tmp/sh/i-arm-rtems6" "exeext=.exeext.should.not.be.used " 'CC=the.host.compiler.should.not.be.needed' "GCC_FOR_TARGET=/tmp/sh/b-gcc-arm-rtems6/./gcc/xgcc -B/tmp/sh/b-gcc-arm-rtems6/./gcc/ -nostdinc -B/tmp/sh/b-gcc-arm-rtems6/arm-rtems6/newlib/ -isystem /tmp/sh/b-gcc-arm-rtems6/arm-rtems6/newlib/targ-include -isystem /home/EB/sebastian_h/src/gcc/newlib/libc/include -B/tmp/sh/i-arm-rtems6/arm-rtems6/bin/ -B/tmp/sh/i-arm-rtems6/arm-rtems6/lib/ -isystem /tmp/sh/i-arm-rtems6/arm-rtems6/include -isystem /tmp/sh/i-arm-rtems6/arm-rtems6/sys-include   " "CFLAGS=-g -O2  -mthumb -march=armv7-a+simd -mfloat-abi=hard" ./bldtools/oscons/xoscons


When I try to link a test application I get this error:

arm-rtems7-gnatlink 
/tmp/sh/b-rtems/arm/realview_pbx_a9_qemu/testsuites/ada/samples/nsecs/nsecs.ali testsuites/ada/samples/nsecs/init.o -qnolinkcmds -T linkcmds.realview_pbx_a9_qemu -Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -L. -lrtemscpu -lrtemsbsp -lrtemstest -qrtems -mthumb -march=armv7-a+simd -mfloat-abi=hard -mtune=cortex-a9 -Wl,--gc-sections -L/home/EB/sebastian_h/src/rtems/bsps/arm/shared/start -L/home/EB/sebastian_h/src/rtems/bsps/arm/realview-pbx-a9/start -o /tmp/sh/b-rtems/arm/realview_pbx_a9_qemu/testsuites/ada/ada_nsecs.exe

/opt/rtems/7/lib/gcc/arm-rtems7/12.0.1/thumb/armv7-a+simd/hard/adainclude/s-secsta.ads:288:9:
 sorry, unimplemented: Thumb-1 'hard-float' VFP ABI

The s-secsta.ads seems to be from the right multilib directory 
(Thumb-2), however, I get a sorry message related to Thumb-1?


I tried it again with GCC 13, but the problem still exists. I tried to 
use strace to get some more insights (the environment variables are 
partially shown):


[pid 110912] execve("/opt/rtems-6-zynq-1/bin/arm-rtems6-gnatmake", 
["/opt/rtems-6-zynq-1/bin/arm-rtems6-gnatmake", "-D", 
"testsuites/ada/tmtests/tm20", "-bargs", "-Mgnat_main", "-margs", 
"-Icpukit/include/adainclude", 
"-I../../../../src/rtems/cpukit/include/adainclude", 
"-Itestsuites/ada/support", 
"-I../../../../src/rtems/testsuites/ada/support", "-cargs", 
"-march=armv7-a", "-mthumb", "-mfpu=neon", "-mfloat-abi=hard", 
"-mtune=cortex-a9", "-largs", "testsuites/ada/tmtests/tm20/init.o", 
"-Wl,--wrap=printf", "-Wl,--wrap=puts", "-Wl,--wrap=putchar", "-L.", 
"-lrtemscpu", "-lrtemsbsp", "-lrtemstest", "-qrtems", 
"-march=armv7-a", "-mthumb", "-mfpu=neon", "-mfloat-abi=hard", 
"-mtune=cortex-a9", "-Wl,--gc-sections", 
"-L/opt/rtems-6-zynq-1/src/rtems/bsps/arm/shared/start", 
"-L/opt/rtems-6-zynq-1/src/rtems/bsps/arm/xilinx-zynq/start", 
"-margs", "-a", 
"/opt/rtems-6-zynq-1/src/rtems/testsuites/ada/tmtests/tm20/tm20.adb", 
"-o", 
"/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zynq_zc702/testsuites/ada/ada_tm20.exe"], [] 


[pid 110913] execve("/opt/rtems-6-zynq-1//bin/arm-rtems6-gcc", 
["/opt/rtems-6-zynq-1//bin/arm-rtems6-gcc", "-march=armv7-a", 
"-mthumb", "-mfpu=neon", "-mfloat-abi=hard", "-mtune=cortex-a9", 
"-march=armv7-a", "-mthumb", "-mfpu=neon", "-mfloat-abi=hard", 
"-mtune=cortex-a9", "-print-multi-directory"], []) = 0


The above call is used to get the multi-lib directory. Which yields:

--RTS=thumb/armv7-a+simd/hard

The flags seem to be obtained by getting all "-m" flags from the 
previous "-cargs" and "-largs". So, each flags appears twice.


[pid 110914] execve("/opt/rtems-6-zynq-1//bin/arm-rtems6-gnatbind", 
["/opt/rtems-6-zynq-1//bin/arm-rtems6-gnatbind", 
"-aO/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zynq_zc702/testsuites/ada/tmtests/tm20", "-Mgnat_main", "-Icpukit/include/adainclude", "-I../../../../src/rtems/cpukit/include/adainclude", "-Itestsuites/ada/support", "-I../../../../src/rtems/testsuites/ada/support", "--RTS=thumb/armv7-a+simd/hard", "-x", "/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zynq_zc702/testsuites/ada/tmtests/tm20/tm20.ali"], [])

Re: [RFC] MAINTAINERS: require a BZ account field

2024-06-25 Thread Arsen Arsenović via Gcc
Hi,

Richard Biener  writes:

> [snip]
>> I was also proposing (and would like to re-air that here) enforcing
>> that the committer field of each commit is a (valid) @gcc.gnu.org
>> email.  This can be configured repo-locally via:
>>
>>   $ git config committer.email @gcc.gnu.org
>>
>> Git has supported this since 39ab4d0951ba64edcfae7809740715991b44fa6d
>> (v2.22.0).
>>
>> This makes a permanent association of each commit to its authors
>> Sourceware account.
>
> I'd welcome this - care to create a patch for
> contrib/gcc-git-customization.sh?

Sure - I've attached a partial patch.  I didn't find the hook which runs
on each push to check commits, so the current patch is minimal.  Is that
also in the tree?  I could try hacking it to check commits.
-- 
Arsen Arsenović
From c7ca9e26693a707a0aa9f87aeb35717f5fecdc79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= 
Date: Tue, 25 Jun 2024 20:57:34 +0200
Subject: [PATCH] git-customizations: set committer email to @gcc.gnu.org email

See discussion at
https://inbox.sourceware.org/gcc/87y16uowix@gentoo.org/

contrib/ChangeLog:

* gcc-git-customization.sh: Set committer.email to
remote...@gcc.gnu.org.
---
 contrib/gcc-git-customization.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/gcc-git-customization.sh b/contrib/gcc-git-customization.sh
index 54bd35ea1aab..9e23e71f4204 100755
--- a/contrib/gcc-git-customization.sh
+++ b/contrib/gcc-git-customization.sh
@@ -129,6 +129,7 @@ fi
 
 ask "Account name on gcc.gnu.org (for your personal branches area)" 
"$remote_id" remote_id
 git config "gcc-config.user" "$remote_id"
+git config "committer.email" "${remote_id}@gcc.gnu.org"
 
 old_pfx=$(git config --get "gcc-config.userpfx")
 if [ "x$old_pfx" = "x" ]
-- 
2.45.2



signature.asc
Description: PGP signature


Re: [RFC] MAINTAINERS: require a BZ account field

2024-06-25 Thread Thomas Koenig via Gcc

Am 25.06.24 um 21:08 schrieb Arsen Arsenović via Gcc:


Richard Biener  writes:



I'd welcome this - care to create a patch for
contrib/gcc-git-customization.sh?


Sure - I've attached a partial patch.  I didn't find the hook which runs
on each push to check commits, so the current patch is minimal.  Is that
also in the tree?  I could try hacking it to check commits.


Will this also influence commits to, for example, github?



Re: [RFC] MAINTAINERS: require a BZ account field

2024-06-25 Thread Arsen Arsenović via Gcc
Hi,

Thomas Koenig via Gcc  writes:

> Am 25.06.24 um 21:08 schrieb Arsen Arsenović via Gcc:
>
>> Richard Biener  writes:
>
>>> I'd welcome this - care to create a patch for
>>> contrib/gcc-git-customization.sh?
>> Sure - I've attached a partial patch.  I didn't find the hook which runs
>> on each push to check commits, so the current patch is minimal.  Is that
>> also in the tree?  I could try hacking it to check commits.
>
> Will this also influence commits to, for example, github?

In the sense that their contents will be changed, yes - commits are
independent of remote, so their committer field is common for all
remotes.  However, since only the committer field changes, and usually
commits are tracked by the author field, that might not be too big of an
issue.  I've been pushing to SourceHut and GitHub with a committer.email
set to arsen at gcc dot gnu dot org for a while now, here are example
commits from both:

https://git.sr.ht/~arsen/gcc/commit/0290e3ce8c017701bc5f665daf5ea438b3cd996f
https://github.com/ArsenArsen/gcc/commit/ee6cc90

Note that, in the latter, GitHub attributes the commit to a non-GitHub
account as committer, but it is still attributed to my account by
author, if that is of concern.  Note also that GH verifies GPG by
*committer* (which makes sense..).  This is why it states that my commit
is unverified - I never added my sourceware/gcc.gnu.org email to GH.
-- 
Arsen Arsenović


signature.asc
Description: PGP signature


Re: gnatlink vs. -mthumb -march=armv7-a+simd -mfloat-abi=hard

2024-06-25 Thread Eric Botcazou via Gcc
> Here, the "-march=armv7-a+simd" was moved after the "-gnatez". So this 
> option is dropped in switch-c.adb and doesn't get added to the ALI file.

This comes from the spec magic implemented in ada/gcc-interface/lang-specs.h 
and it looks like the '+' character is not matched by '*' or some such.

-- 
Eric Botcazou




Straw poll on shifts with out of range operands

2024-06-25 Thread Andrew Pinski via Gcc
I am in the middle of improving the isolation path pass for shifts
with out of range operands.
There are 3 options we could do really:
1) isolate the path to __builtin_unreachable
2) isolate the path to __builtin_trap
This is what is currently done for null pointer and divide by zero
3) isolate the path and turn the shift into zero constant
   This happens currently for explicit use in both match (in many
cases) and VRP for others.

All 3 are not hard to implement.
This comes up in the context of https://gcc.gnu.org/PR115636 where the
original requestor thinks it should be #3 but I suspect they didn't
realize it was undefined behavior then.
2 seems the best for user experience.
1 seems like the best for optimizations.
3 is more in line with how other parts of the compiler handle it.

So the question I have is which one should we go for? (is there
another option I missed besides not do anything)

Thanks,
Andrew Pinski


Re: Straw poll on shifts with out of range operands

2024-06-25 Thread Jeff Law via Gcc




On 6/25/24 8:44 PM, Andrew Pinski via Gcc wrote:

I am in the middle of improving the isolation path pass for shifts
with out of range operands.
There are 3 options we could do really:
1) isolate the path to __builtin_unreachable
2) isolate the path to __builtin_trap
 This is what is currently done for null pointer and divide by zero
3) isolate the path and turn the shift into zero constant
This happens currently for explicit use in both match (in many
cases) and VRP for others.

All 3 are not hard to implement.
This comes up in the context of https://gcc.gnu.org/PR115636 where the
original requestor thinks it should be #3 but I suspect they didn't
realize it was undefined behavior then.
2 seems the best for user experience.
1 seems like the best for optimizations.
3 is more in line with how other parts of the compiler handle it.

So the question I have is which one should we go for? (is there
another option I missed besides not do anything)
There was a time when we were thinking about having a knob that would 
allow one to select which of the 3 approaches makes the most sense given 
the expected execution environment.


While I prefer #2, some have (reasonably) argued that it's not 
appropriate behavior for code in a library.


I'm not a fan of #1 because it allows unpredictable code execution. 
Essentially you just fall into whatever code was after the bogus shift 
in the executable and hope for the best.  One day this is going to bite 
us hard from a security standpoint.


#3 isn't great, but it's not terrible either.

Jeff


Re: gnatlink vs. -mthumb -march=armv7-a+simd -mfloat-abi=hard

2024-06-25 Thread Sebastian Huber

Hello Eric,

On 26.06.24 01:35, Eric Botcazou wrote:

Here, the "-march=armv7-a+simd" was moved after the "-gnatez". So this
option is dropped in switch-c.adb and doesn't get added to the ALI file.


This comes from the spec magic implemented in ada/gcc-interface/lang-specs.h
and it looks like the '+' character is not matched by '*' or some such.


thanks for the hint. So, maybe the problem is here:

%{gnatea:-gnatez} %{g*&m*&f*} \

From the documentation 
(https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html):


%{S*}

Substitutes all the switches specified to GCC whose names start 
with -S, but which also take an argument. This is used for switches like 
-o, -D, -I, etc. GCC considers -o foo as being one switch whose name 
starts with ‘o’. %{o*} substitutes this text, including the space. Thus 
two arguments are generated.


%{S*&T*}

Like %{S*}, but preserve order of S and T options (the order of S 
and T in the spec is not significant). There can be any number of 
ampersand-separated variables; for each the wild card is optional. 
Useful for CPP as ‘%{D*&U*&A*}’.


It looks like this is working as documented. I checked this with the 
following spec file:


*startfile:
BEGIN %{g*&m*&f*} END

On my x86_64 host GCC, this works fine:

gcc -specs=test.spec -wrapper echo main.c -mfoo=bar+blub -march=armv7-a+simd

... BEGIN -mfoo=bar+blub -march=armv7-a+simd END ...

On the arm GCC, it looks good also:

arm-rtems6-gcc -specs=test.spec -wrapper echo main.c -mfoo=bar+blub 
-march=armv7-a+simd


... BEGIN -mfoo=bar+blub -marm -mlibarch=armv7-a -march=armv7-a END ...

arm-rtems6-gcc -specs=test.spec -wrapper echo main.c -mfoo=bar+blub 
-march=armv7-a+simd -mfloat-abi=hard


... BEGIN -mfoo=bar+blub -mfloat-abi=hard -marm -mlibarch=armv7-a+simd 
-march=armv7-a+simd END ...


--
embedded brains GmbH & Co. KG
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/


Re: Straw poll on shifts with out of range operands

2024-06-25 Thread Richard Biener via Gcc
On Wed, Jun 26, 2024 at 4:59 AM Jeff Law via Gcc  wrote:
>
>
>
> On 6/25/24 8:44 PM, Andrew Pinski via Gcc wrote:
> > I am in the middle of improving the isolation path pass for shifts
> > with out of range operands.
> > There are 3 options we could do really:
> > 1) isolate the path to __builtin_unreachable
> > 2) isolate the path to __builtin_trap
> >  This is what is currently done for null pointer and divide by zero
> > 3) isolate the path and turn the shift into zero constant
> > This happens currently for explicit use in both match (in many
> > cases) and VRP for others.

How is isolation if we do 3) any useful?  IIRC the path isolation pass
would only look for literal out-of-range shifts?  Or do you plan to use
range info?  If we do 3) why not let range folding deal with this then?

> >
> > All 3 are not hard to implement.
> > This comes up in the context of https://gcc.gnu.org/PR115636 where the
> > original requestor thinks it should be #3 but I suspect they didn't
> > realize it was undefined behavior then.
> > 2 seems the best for user experience.
> > 1 seems like the best for optimizations.
> > 3 is more in line with how other parts of the compiler handle it.
> >
> > So the question I have is which one should we go for? (is there
> > another option I missed besides not do anything)
> There was a time when we were thinking about having a knob that would
> allow one to select which of the 3 approaches makes the most sense given
> the expected execution environment.

Since we do 3) already elsewhere I'd say we should do that by default and
have the other options behind a command-line switch - though we already
have UBSAN for that and that is going to be much more reliable than the late
path isolation done after folding catched most cases via 3)?

> While I prefer #2, some have (reasonably) argued that it's not
> appropriate behavior for code in a library.
>
> I'm not a fan of #1 because it allows unpredictable code execution.
> Essentially you just fall into whatever code was after the bogus shift
> in the executable and hope for the best.  One day this is going to bite
> us hard from a security standpoint.
>
> #3 isn't great, but it's not terrible either.
>
> Jeff