ruby: add arm64 darwin support#25992
Conversation
|
This issue/PR has been automatically marked as stale because it has not had any update (including commits, comments, labels, milestones, etc) for 30 days. It will be closed automatically if no further update occurs in 7 day. Thank you for your contributions! |
|
This PR is blocked on #25794, please don't close. |
465b452 to
4729652
Compare
|
I've rebased this onto latest |
|
I've kicked off a package build in https://fusion2.corp.google.com/invocations/06b5347f-0977-4949-a26f-aaaefd0650f3/targets. Using those packages, I'll need to find a way to test these |
|
@flavorjones we'd also be interested in having an arm64 ruby gem for linux (see tracking issue - #26391). AFAIK this should now be possible with rake-compiler-dock. |
|
@jtattermusch Yes, it's possible, but there hasn't been an official release of rake-compiler-dock with rake-compiler/rake-compiler-dock#54 yet. I'll take the responsibility of submitting a PR once that's happened. |
|
Looks like CI failed with unrelated timeouts. Can someone kick it again? |
|
What's holding this? |
|
CI failure now is the same issue previously seen at #25794 (comment) I'll try to find some time to git-bisect this and figure out why it's popped up for this changeset. @sobrinho If you want to help figure this out, I'd be happy to have your help. Thanks for your patience. |
Related to: - grpc#25755 - grpc#25794
4729652 to
ddb8c51
Compare
|
@jtattermusch I'm not able to reproduce this in my dev environment, so I rebased onto master. Would you mind kicking CI once more? |
|
The Python Windows test failure is not related to this PR, and reads: Otherwise, the previously-failing "Artifact Build" jobs seem to be green, so 🤞 |
|
The arm64 gem from the adhoc build is here: Can someone try that gem on an arm64 mac (I don't have one) and report back whether it works fine? Also, the distribtests have passed: |
|
Marvelous! Worked perfectly! |
jtattermusch
left a comment
There was a problem hiding this comment.
LGTM.
@apolcyn do you wanna approve as well and merge?
More details on what exactly you tried and what was the result is welcome. |
|
@jtattermusch I created one ruby app connected to the pub sub emulator pushing messages to a few topics and another ruby application listening to those topics. I ran the apps I have in production and checked if they worked locally on M1 and they did 👍 |
|
@jtattermusch @flavorjones thanks for this fix! This will solve a major pain point - new hires with new laptops can't install When do you think this will be released in a new gem as 1.42.0? |
|
@jtattermusch @apolcyn I've gotten a few reports from folks within Shopify that the 1.42.0.pre1 arm64-darwin gem isn't working correctly. (The x86_64-darwin gem seems OK.) You may want to hold off on releasing the arm64-darwin gem in the 1.42.0 final release. I don't have a good repro yet but the evidence is that, within a running Rails server, we see: and the crash report includes this stack walkback: We'll keep working on finding an easier repro, and if I get one we'll open a new issue. |
Do we know what was the missing symbol? |
|
I don't have more information yet, My employer is shipping me an M1 to reproduce and diagnose, but it hasn't arrived yet. (Hopefully it will arrive this week.) |
|
+1 for this! I can't figure a workaround for ruby 2.6.6 on M1. 2.6.6 won't install with x64 arch. |
|
See #28271 (comment) please |
|
Does anyone know what happened with this? Seems the arm64-darwin gems were never shipped/published after the challenge in 1.42.0-pre so just wondering if the effort was abandoned. I note #28271 (comment) but it looks like all the problems were resolved. Still, no precompiled arm64-darwin gems on rubygems with 1.57.0 :( |
|
@chadlwilson Yes, I have an update -- was working on this last month in my spare time. The current issue with arm64-darwin gem support is that stripping the shared object also invalidates the ad-hoc code signature in the file. I've created a PR to rake-compiler dock at rake-compiler/rake-compiler-dock#104 that fixes this. That PR is nearly ready to merge, I just need to spend another hour or so adding test coverage. So the order of operations should be, I think:
Make sense? |
|
Interesting - good to hear @flavorjones - thanks for the clarification! Curiously, in the context of a similar endeavor for But perhaps required ignoring the signature checks if I understand the issue above. I haven't yet tried myself. |
|
Looks like the strip was removed in #33641 according to #33079 (comment) so the extra work here may no longer be required for grpc @flavorjones ? |
|
@chadlwilson 🤷 Yup, looks like that's the case. |
Add support for
arm64-darwinplatform gems, to be built by therake-compiler-dockfunctionality introduced in #25794.cc @apolcyn