Re: [PATCH v2 00/13] Add aarch64-w64-mingw32 target
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
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?
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?
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?
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?
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?
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?
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?
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