-
Notifications
You must be signed in to change notification settings - Fork 2
Support clangarm64 environment #21
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
Conversation
|
Actually, looking at it right now... |
| permissions: | ||
| contents: write |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GitHub now blocks user from adding new secret starting with GITHUB in name, which is a pain for me to test in my fork. Switch to custom permission + github.token allows me to run this on my fork more easily without adding a secret GITHUB_TOKEN. Also note that even if the write permission is requested, it will not be granted to PRs (similar to how secret works), so there isn't a security concern.
|
Thanks for your work on this. Currently I only have x64 locally, so this is very helpful. One thing is the renaming of some of the 7z files. I think the MSYS2 files are: Maybe we could keep JFYI, I'm looking at pulling PR's from both repos and generating the arm64 files here... |
That's definitely an option. Honestly I don't have a personal preference here, I was trying to keep the naming conversion aligned with packages in ruby-builder. |
|
I have no idea if the 7z files created here are used anywhere else (besides setup-ruby). Also, most people would hopefully know that mingw & msys2 are windows specific build tools. I've got a question that you may know the answer to. On x64, we've got both msys2/mingw based builds (mingw or ucrt) and an mswin (MSVC) build. Given that vcpkg is installed on the arm64 runner, can an arm64 Ruby be built using MSVC? |
The answer in theory is yes, but I don’t think anyone has attempted. There might be issues with build scripts that need to be fixed. |
|
Updated the PR with |
FWIW I saw https://bugs.ruby-lang.org/issues/21277 today on this topic |
|
Thanks. Certainly won't happen today, but I hope to get head builds in ruby-loco for arm64 mswin & ucrt... |
|
Again, thanks for your work on this. Now that the 7z files exist and setup-ruby works, I'm wondering about one issue. Currently, the 7z files are only replaced if there has been an update. IOW, we'd prefer to not update the files in the release if nothing has changed. I need to review the code more, things like the below. Should I'm not sure, and I may not have a lot of time for OSS this weekend... |
|
@MSP-Greg Added a new commit |
|
@MSP-Greg Looks like the downgrade gcc step is failing on clangarm64, working on a fix right now. |
|
Sorry, I didn't think that would be an issue. Do I need to add the packages to the release? |
|
"gcc" on clangarm64 is just a wrapper script that make clang to accept gcc style parameters... So you cannot "downgrade gcc" on clangarm64 to begin with. - This step should simply be skipped on clangarm64 - Or, if we want to lock the clang version, we need to upload a backup of specific version of gcc-compact and related clang packages: https://packages.msys2.org/packages/mingw-w64-clang-aarch64-gcc |
|
So we should skip the downgrade? JFYI, this is the first time we've had a gcc issue, and this code has been in existence since GitHub Actions was in beta. |
Depends on whether we prefer to lock down compiler version or to receive upgrade when available. If we prefer upgrade, then just skip the downgrade, and we can always add a locked version later if upgrade run into problem. |
|
Got a fix running in my fork... |
This PR is the prerequisite for: ruby/setup-ruby#750
The complication here is that
windows-11-armrunner does not have msys2 preinstalled, so that we have to create a full msys2 package, instead of the current partial update package.Following the naming convention of ruby-builder, the partial package is named
msys2-windows-latest, and the full package is namedmsys2-windows-11-arm64.Another tricky problem is the chicken and egg problem that this PR depends on updated setup-ruby in order to run ruby script on
windows-11-arm, while thesetup-rubyalso depends on the artifacts here. So currently this PR is pointing to my fork of setup-ruby, which download msys2 from my fork of setup-msys2-gcc. We can update this later once this is merged and a working build is available in this repo.