-
-
Notifications
You must be signed in to change notification settings - Fork 259
Description
I updated to macOS 12.6 on 3 of my Macs: 2 of them Intel, and one of them Apple Silicon (M1 MacBook Air, 2020).
I am able to install Ruby 2.7.6 and 3.1.2 with ruby-install on the Intel machines, but I can't anymore on the M1 Air. It fails with ld: symbol(s) not found for architecture arm64. Here is an excerpt from the end:
linking shared-object -test-/arith_seq/extract.bundle
Undefined symbols for architecture arm64:
"_rb_arithmetic_sequence_extract", referenced from:
_arith_seq_s_extract in extract.o
"_rb_ary_new_capa", referenced from:
_arith_seq_s_extract in extract.o
"_rb_ary_store", referenced from:
_arith_seq_s_extract in extract.o
"_rb_define_singleton_method", referenced from:
_Init_extract in extract.o
"_rb_path2class", referenced from:
_Init_extract in extract.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../../../../.ext/arm64-darwin21/-test-/arith_seq/extract.bundle] Error 1
make[1]: *** [ext/-test-/arith_seq/extract/all] Error 2
make: *** [build-ext] Error 2
!!! Compiling ruby 3.1.2 failed!
I've also attached the full log.
So then I tried compiling Ruby manually, and it failed after the first make with the same error:
brew install wget
cd ~/src
wget https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.2.tar.xz
tar -xzvf ruby-3.1.2.tar.xz
cd ruby-3.1.2
./configure --with-opt-dir="$(brew --prefix openssl@1.1):$(brew --prefix readline):$(brew --prefix libyaml):$(brew --prefix gdbm)"
make
I even reset my entire dev setup (uninstalled Homebrew, removed the command line tools, removed all Ruby-related folders, etc.), and reinstalled everything from scratch.
So then I tried rbenv, and it worked just fine. Any ideas what rbenv/ruby-build might be doing differently?
Could it be something with the ./configure options?
So then I tried installing 2.6.10 on my Intel machines, and it failed on my iMac with ruby-install, but it worked with rbenv. However, it failed with rbenv on Apple Silicon. To make things more confusing, it worked on my Intel MacBook Air with both ruby-install and rbenv! The difference is that the iMac used to be on macOS 12.5.1, and the Intel Air was upgraded to Monterey from Big Sur.
I know this used to work before, so something must have changed with macOS 12.6.
Interestingly, 2.6.9 works on the Intel iMac (the one where 2.6.10 failed) with ruby-install.
Any ideas?