Re: [PATCH v2 00/13] Add aarch64-w64-mingw32 target

2024-03-20 Thread Radek Barton
Hello, everyone.

I've re-run the `x86_64-w64-mingw32` target tests with all the languages 
enabled, except of Ada and JIT, which are harder to bootstrap, and Go, which is 
not supported by MinGW. The summarized results are:

536176 of expected passes
13859 of unexpected failures
188 of unexpected successes
4537 of expected failures
8271 of unresolved testcases
20958 of unsupported tests
97.40% of tests completes in expected way

and, again, zero regressions were detected.

The detailed results can be reviewed at 
https://github.com/Windows-on-ARM-Experiments/mingw-woarm64-build/actions/runs/8349019387

Best regards,

Radek Bartoň


From: Radek Barton 
Sent: Monday, March 18, 2024 10:05 PM
To: Evgeny Karpov; gcc-patches@gcc.gnu.org
Cc: richard.sandif...@arm.com; Richard Earnshaw (lists); Andrew Pinski (QUIC); 
Maxim Kuvyrkov
Subject: Re: [PATCH v2 00/13] Add aarch64-w64-mingw32 target

Hello, everyone.

Currently, we are able to provide results of regression testing for 
`x86_64-w64-mingw32` target with `--enable-languages=c,lto,c++,fortran` running 
in WSL only.

The summarized results, both for the branch with patch set applied and its 
corresponding base branch, show:

517501 expected passes
4537 of expected failures
10828 unexpected failures
180 of unexpected successes
5934 of unresolved testcases
19113 of unsupported tests

which means that 98% of the tests ends in an expected way and we haven't 
detected a single regression between the branches.

The detailed results can be downloaded and reviewed at 
https://github.com/Windows-on-ARM-Experiments/mingw-woarm64-build/actions/runs/8327889403

Best regards,

Radek Bartoň


Re: [PATCH v2 00/13] Add aarch64-w64-mingw32 target

2024-03-18 Thread Radek Barton
Hello, everyone.

Currently, we are able to provide results of regression testing for 
`x86_64-w64-mingw32` target with `--enable-languages=c,lto,c++,fortran` running 
in WSL only.

The summarized results, both for the branch with patch set applied and its 
corresponding base branch, show:

517501 expected passes
4537 of expected failures
10828 unexpected failures
180 of unexpected successes
5934 of unresolved testcases
19113 of unsupported tests

which means that 98% of the tests ends in an expected way and we haven't 
detected a single regression between the branches.

The detailed results can be downloaded and reviewed at 
https://github.com/Windows-on-ARM-Experiments/mingw-woarm64-build/actions/runs/8327889403

Best regards,

Radek Bartoň


Re: [RFC] Either fix or disable SME feature for `aarch64-w64-mingw32` target?

2024-01-18 Thread Radek Barton
Are there any further comments or suggestions, please? What needs to be done to 
merge this change? (Note we don't have merge rights).

Thank you.

Radek


Re: [RFC] Either fix or disable SME feature for `aarch64-w64-mingw32` target?

2024-01-15 Thread Radek Barton
Wrong attachment, sorry.


v4-0001-Ifdef-.hidden-.type-and-.size-pseudo-ops-for-aarc.patch
Description: v4-0001-Ifdef-.hidden-.type-and-.size-pseudo-ops-for-aarc.patch


Re: [RFC] Either fix or disable SME feature for `aarch64-w64-mingw32` target?

2024-01-15 Thread Radek Barton
Hello Richard.

Thank you for your suggestion. I am sending a patch update according to it.

> How about avoiding the clash by using the names HIDDEN, SYMBOL_TYPE and
> SYMBOL_SIZE, with SYMBOL_TYPE taking the symbol type as argument?

Yes, unless the symbol is explicitly exported using `__declspec(dllexport)`, it 
will be effectively hidden.

> What's the practical effect of not marking the symbols as hidden on
> mingw32?  Will they still be local to the DLL/EXE, since they haven't
>been explicitly exported?  (Sorry for the probably dumb question.)

Best regards,

Radek Bartoň

v4-0001-Ifdef-.hidden-.type-and-.size-pseudo-ops-for-aarc.patch
Description: v4-0001-Ifdef-.hidden-.type-and-.size-pseudo-ops-for-aarc.patch


Re: [EXTERNAL] Re: [RFC] Either fix or disable SME feature for `aarch64-w64-mingw32` target?

2024-01-10 Thread Radek Barton
Originally we've used `!__MINGW64__` but changed it to `__ELF__` upon feedback 
received. Should I change it back to `!__MINGW64__`? Or introduce '__COFF__' 
and then use `!__COFF__`? What would be the minimal acceptable change? we are 
currently probably not able to provide that generic solution as has Iain Sandoe 
implied. Note that we have moved the pseudo-ops wrapper macros to the 
`libgcc/config/aarch64/aarch64-asm.h` file already.

Thank you all for your valuable feedback.

Radek


Re: [RFC] Either fix or disable SME feature for `aarch64-w64-mingw32` target?

2024-01-09 Thread Radek Barton
Hello.

I forgot to add the target maintainers to the CC. My apologies for that.

Furthermore, I am adding also relevant changes in `libgcc/config/aarch64/lse.S` 
file to the patch. Originally we wanted to submit those changes separately but 
after the feedback from Andrew Pinski, it makes sense to add them here. I 
needed to rename `HIDDEN`, `TYPE`, and `SIZE` macros to `HIDDEN_PO`, `TYPE_PO`, 
and `SIZE_PO` (pseudo-op) because there is a collision with other macro named 
`SIZE` in the `lse.S` file.

Best regards,

Radek


v3-0001-Ifdef-.hidden-.type-and-.size-pseudo-ops-for-aarc.patch
Description: v3-0001-Ifdef-.hidden-.type-and-.size-pseudo-ops-for-aarc.patch


Re: [EXTERNAL] Re: Fw: [RFC] Either fix or disable SME feature for `aarch64-w64-mingw32` target?

2024-01-05 Thread Radek Barton
Hello, Andrew.

Thank you for your input. I've updated the "fixing" patch according to your 
feedback. Please let me know if I understood it correctly.

Radek


From: Andrew Pinski 
Sent: Thursday, January 4, 2024 8:11 PM
To: Radek Barton ; Andrew Pinski (QUIC) 

Cc: gcc-patches@gcc.gnu.org 
Subject: [EXTERNAL] Re: Fw: [RFC] Either fix or disable SME feature for 
`aarch64-w64-mingw32` target?

[You don't often get email from pins...@gmail.com. Learn why this is important 
at https://aka.ms/LearnAboutSenderIdentification ]

On Thu, Jan 4, 2024 at 5:51 AM Radek Barton  wrote:
>
> Hello, everyone.
>
>
> Our "Arm64 on Windows Ecosystem" team is currently working on adding 
> aarch64-w64-mingw32 target and we've noticed that recent commit adding SME 
> support 
> (https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgcc.gnu.org%2Fpipermail%2Fgcc-cvs%2F2023-December%2F394915.html&data=05%7C02%7Cradek.barton%40microsoft.com%7C51df4d9506014407bc8908dc0d58eeac%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638399922842775482%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5%2FK9lrqVSFn35cxjmhyEnKpiArJEMcOp5BQbAr%2F3r1s%3D&reserved=0<https://gcc.gnu.org/pipermail/gcc-cvs/2023-December/394915.html>)
>  is using .hidden and .size pseudo-ops that are not supported by this target 
> yet. We'd like to hear your opinion what would be the most acceptable fix for 
> the community:
>
> Wrap the unsupported pseudo-ops using macros and #ifdef them for the target. 
> The attached 0001-Ifdef-.hidden-and-.size-pseudo-ops-for-aarch64-w64-m.patch 
> is demonstrating this option.
> Move SME related sources to a separate config, t-sme, that won't be included 
> by the aarch64-w64-mingw32 target config. The attached 
> 0001-Exclude-SME-feature-from-libgcc-for-aarch64-w64-ming.patch  by Evgeny 
> Karpov is a proposal of this change.
> Do you have any other proposal?

For the .type issue you should use the following define instead:
```
#ifdef __ELF__
#define TYPE(x) .type x,function
#else
#define TYPE(x)
#endif
```
Which comes directly from config/aarch64/crti.S .
HIDDEN should be handled similarly.

We really should still have SME support for GCC for windows.

Thanks,
Andrew Pinski

>
>
> Best regards,
>
> Radek Bartoň


0001-Ifdef-.hidden-.type-and-.size-pseudo-ops-for-aarch64.patch
Description: 0001-Ifdef-.hidden-.type-and-.size-pseudo-ops-for-aarch64.patch


Fw: [RFC] Either fix or disable SME feature for `aarch64-w64-mingw32` target?

2024-01-04 Thread Radek Barton
Hello, everyone.


Our "Arm64 on Windows Ecosystem" team is currently working on adding 
aarch64-w64-mingw32​ target and we've noticed that recent commit adding SME 
support (https://gcc.gnu.org/pipermail/gcc-cvs/2023-December/394915.html) is 
using .hidden​​ and .size​​ pseudo-ops that are not supported by this target 
yet. We'd like to hear your opinion what would be the most acceptable fix for 
the community:

  1.
Wrap the unsupported pseudo-ops using macros and #ifdef​ them for the​ target. 
The attached 0001-Ifdef-.hidden-and-.size-pseudo-ops-for-aarch64-w64-m.patch​​ 
is demonstrating this option.
  2.
Move SME related sources to a separate config, t-sme​, that won't be included 
by the aarch64-w64-mingw32​ target config. The attached 
0001-Exclude-SME-feature-from-libgcc-for-aarch64-w64-ming.patch  by Evgeny 
Karpov is a proposal of this change.
  3.
Do you have any other proposal?

Best regards,

Radek Bartoň


0001-Exclude-SME-feature-from-libgcc-for-aarch64-w64-ming.patch
Description: 0001-Exclude-SME-feature-from-libgcc-for-aarch64-w64-ming.patch


0001-Ifdef-.hidden-and-.size-pseudo-ops-for-aarch64-w64-m.patch
Description: 0001-Ifdef-.hidden-and-.size-pseudo-ops-for-aarch64-w64-m.patch