Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] Recommend/Default to UCRT64 instead of MINGW64 #13371

Closed
7 tasks done
lazka opened this issue Oct 2, 2022 · 14 comments
Closed
7 tasks done

[RFC] Recommend/Default to UCRT64 instead of MINGW64 #13371

lazka opened this issue Oct 2, 2022 · 14 comments

Comments

@lazka
Copy link
Member

lazka commented Oct 2, 2022

This mainly means:

What needs to be done first:

There are 11 packages not built for ucrt64 right now: https://packages.msys2.org/repos

  • Figure out which packages
  • Try to fix them
  • ???
@MehdiChinoune
Copy link
Collaborator

MehdiChinoune commented Oct 2, 2022

For the packages not available on UCRT64, if they are unbuildable with both MINGW64 and UCRT64 just drop them especially if they are too old or abandoned.

@jeremyd2019
Copy link
Member

jeremyd2019 commented Oct 2, 2022

There are 11 packages not built for ucrt64 right now: https://packages.msys2.org/repos

  • Figure out which packages
Python script to generate
#!/usr/bin/env python

import re
import pacdb

pfxre = re.compile(r'^mingw-w64(?:-clang|-ucrt)?-(?:x86_64|i686|aarch64)-')

mingw64 = pacdb.mingw_db_by_name('mingw64')
ucrt64 = pacdb.mingw_db_by_name('ucrt64')


mingw64names = {pfxre.sub('mingw-w64-', pkg.name) for pkg in mingw64}

ucrt64names = {pfxre.sub('mingw-w64-', pkg.name) for pkg in ucrt64}

updates = mingw64names - ucrt64names


print(updates)

@Biswa96
Copy link
Member

Biswa96 commented Oct 2, 2022

One liner

grep -r mingw_arch --include PKGBUILD | grep mingw64 | grep -v ucrt64 

@stahta01
Copy link
Contributor

stahta01 commented Oct 3, 2022

I am trying to build mingw-w64-arm-none-eabi-gcc, mingw-w64-arm-none-eabi-newlib, and mingw-w64-arm-none-eabi-binutils for UCRT64.

Tim S.

@MehdiChinoune
Copy link
Collaborator

MehdiChinoune commented Oct 3, 2022

dnscrypt-proxy: source is not available anymore, don't know why. They recommend to build dnscrypt-wrapper https://www.dnscrypt.org/#dnscrypt-server, but I don't know if it could be considered as replacement or not!
globjects: Couldn't be built in all envs, maybe we should try git!
creduce: same as globjects

@stahta01
Copy link
Contributor

stahta01 commented Oct 3, 2022

I am also trying to add UCRT64 support to 'mingw-w64-riscv64-unknown-elf-gcc' and 'mingw-w64-riscv64-unknown-elf-newlib'.

Edit: After I get mingw-w64-arm-none-eabi-newlib to build I will start work on mingw-w64-riscv64-unknown-elf-newlib.

Tim S.

@wszqkzqk
Copy link
Contributor

wszqkzqk commented Oct 4, 2022

Will there be ucrt32 to take the place of mingw32?

@revelator
Copy link
Contributor

globjects has not been able to build for years im afraid, glbinding one of the dependencies made some changes that broke it and it was newer updated so might as well remove it.

@stahta01
Copy link
Contributor

stahta01 commented Oct 7, 2022

The newlib PRs are #13404 and #13403 the GCC packages take so long that the build times out.
Once the changes to mingw-w64-arm-none-eabi-newlib and mingw-w64-riscv64-unknown-elf-newlib are in the repo I hope the GCC changes will run without timeout on the CI server.

Edit: I have decide to work on mingw-w64-riscv64-unknown-elf toolchain before the Arm toolchain.
It is building faster.

Edit2: I gave up on the packages because someone else was doing an PR before I got done.

Tim S.

@lazka
Copy link
Member Author

lazka commented Oct 7, 2022

Will there be ucrt32 to take the place of mingw32?

There are no plans for a ucrt32 atm

lazka added a commit to msys2/msys2-installer that referenced this issue Oct 7, 2022
@kmilos
Copy link
Contributor

kmilos commented Oct 13, 2022

How about defaulting MINGW_ARCH=ucrt64 in makepkg-mingw as well?

@lazka
Copy link
Member Author

lazka commented Oct 13, 2022

How about defaulting MINGW_ARCH=ucrt64 in makepkg-mingw as well?

hm, good point. I'm worried that this will break things though. There is already a warning printed that calling it in a way that makes it use the default is deprecated. https://github.com/msys2/MSYS2-packages/blob/390cd56562eca024dcf2164d9444e5aa7cf7c6a8/pacman/makepkg-mingw#L94

@lazka
Copy link
Member Author

lazka commented Oct 27, 2022

I think we can leave the two remaining packages as is for now (mingw-w64-julia, mingw-w64-usbview-git), they don't even build under MINGW32/64 right now.

The next steps would be to create a new installer and merge msys2/msys2.github.io#227 and msys2/msys2.github.io#228 (feedback on those PRs welcome)

The only known issue left is #13608, but we can look at that later.

@lazka
Copy link
Member Author

lazka commented Oct 29, 2022

All done now. If any related issues come up, please let us know, or create new issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants