-
Notifications
You must be signed in to change notification settings - Fork 122
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
Regression when upgrading to 1.1.2 or greater: "make install" breaks gRPC native builds on certain macos CI jobs because ginstall corrupts the shared library #210
Comments
I tried to reproduce this on my (pretty vanilla) macos development machine and cannot. The command run for me is
Looking at Ruby's
and the The |
Ah, OK, I re-ran my repro attempt with Ruby 3.2 (previous run was with Ruby 3.1) and I'm also seeing:
but I can't reproduce what you're seeing with the modification of the file. Also, I looked in the configuration file for Ruby and there doesn't appear to be an option to set the install program. It chooses |
Is |
Can we close this as "no feedback"? |
@kou I think that's right. |
Let's close this. |
In grpc/grpc#32089, I'm upgrading the gRPC gem's
rake-compiler
dependency from<= 1.1.1
to~> 1.2.1
in order to add ruby 3.2 pre-compiled gems.I encountered one strange regression that only happened on certain macos CI jobs, though. This problematic job does a native build of the grpc extension binary just in order to run unit tests - it simply runs rake compile to do that.
However, unit tests were failing to load the resulting
src/ruby/lib/grpc/grpc_c.bundle
file. They were getting(not a mach-o file)
errors like the following:I added some logging and observed that the
file
command also did not recognize thegrpc_c.bundle
file as a mach-o file:I tracked the problem down to what looks like a buggy
ginstall
command:The Makefile that's generated from out
extconf.rb
contains aninstall:
target that looks like the following on these faulty jobs:^ that command is supposed to simply copy
tmp/x86_64-darwin21/grpc_c/2.7.7/grpc_c.bundle
tosrc/ruby/lib/grpc/grpc_c.bundle
. But running a diff shows that theginstall
command is somehow modifying the file:Weirdly, this bad
ginstall
modification only happens whentmp/x86_64-darwin21/grpc_c/2.7.7/grpc_c.bundle
is not stripped.I was able to work around this with an ugly hack to our
extconf.rb
that avoids usingginstall
within themake install
target:Filing this issue here to see if this is a known issue or if there are better workarounds. I think this is a bug in
ginstall
, but it's hard to be sure since I haven't been able to reproduce locally or get more debug output fromginstall
.The text was updated successfully, but these errors were encountered: