From: "nobu (Nobuyoshi Nakada)" Date: 2022-10-25T01:25:55+00:00 Subject: [ruby-core:110507] [Ruby master Bug#19082] Recent change in the ruby_3_1 branch prevents some gems from being installed on Apple Silicon Issue #19082 has been updated by nobu (Nobuyoshi Nakada). Status changed from Open to Feedback Backport changed from 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN to 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED By adding the dollar sign, `$flag=` just results in an error, and `-undefined dynamic_lookup` flag will be added to `DLDFLAGS`. That means the undefined reference just hidden by that flag. The real cause is not related to that commit at all. After the build error, can't you show which of the remained object files has the reference? ---------------------------------------- Bug #19082: Recent change in the ruby_3_1 branch prevents some gems from being installed on Apple Silicon https://bugs.ruby-lang.org/issues/19082#change-99829 * Author: monfresh (Moncef Belyamani) * Status: Feedback * Priority: Normal * ruby -v: 3.1.3 * Backport: 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED ---------------------------------------- About 10 days ago, this commit in the ruby_3_1 branch removed the "$" from "[$flag=]" on line 3073 of `configure.ac`: https://github.com/ruby/ruby/commit/ee6cc2502664ac46edc61868d8954b626bb48e53#r87450090 This causes the installation of the grpc gem to fail whereas before this change, the gem installed fine. If I add the dollar sign back in, the grpc gem installs successfully. Here are the steps to reproduce: 1. Clone the Ruby repo on an Apple Silicon Mac that has v14 of the command line tools 2. `git checkout -b ruby_3_1 origin/ruby_3_1` 3. Compile Ruby: ``` ./autogen.sh ./configure --with-opt-dir="$(brew --prefix openssl@3):$(brew --prefix readline):$(brew --prefix libyaml):$(brew --prefix gdbm):$(brew --prefix gmp)" --prefix=/Users/moncef/.rubies/ruby-3.1.3 --disable-install-doc make -j7 main make -j7 install ``` 4. Switch to 3.1.3 with `chruby 3.1.3` 5. `gem install grpc` With the current branch, this fails. 6. Remove ~/.rubies/ruby-3.1.3 and ~/.gem/ruby/3.1.3 7. Add the dollar sign back in `configure.ac` 8. Compile Ruby 3.1.3 again the same way as above 9. Switch to 3.1.3 10. `gem install grpc` => This works now. I attached a zip file of the "gem_make.out" file that shows the full stack trace for why grpc failed to build the gem native extension. ---Files-------------------------------- gem_make.out.zip (77 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: