Actions
Bug #18758
closedRuby fails to build on M1 Mac when x86 Homebrew is installed
Description
If you install x86 homebrew on an M1 mac, then install libyaml in the x86 version of homebrew, Ruby will fail to build on ARM.
Steps to reproduce:
- Install x86 homebrew:
$ arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
- Install x86 libyaml:
$ arch -x86_64 /usr/local/bin/brew install libyaml
- Configure and compile Ruby with ARM architecture
I expected Ruby to compile, but Psych fails with the following output:
/Users/aaron/git/ruby/tool/extlibs.rb:6:in `require': cannot load such file -- digest (LoadError)
from /Users/aaron/git/ruby/tool/extlibs.rb:6:in `<top (required)>'
from /Users/aaron/git/ruby/ext/psych/extconf.rb:24:in `require_relative'
from /Users/aaron/git/ruby/ext/psych/extconf.rb:24:in `<top (required)>'
from ./ext/extmk.rb:217:in `load'
from ./ext/extmk.rb:217:in `block in extmake'
from /Users/aaron/git/ruby/lib/mkmf.rb:324:in `open'
from ./ext/extmk.rb:213:in `extmake'
from ./ext/extmk.rb:577:in `block in <main>'
from ./ext/extmk.rb:573:in `each'
from ./ext/extmk.rb:573:in `<main>'
mkmf.log
from Psych says:
ld: warning: ignoring file /usr/local/lib/libyaml.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
I believe the problem is the default LDFLAGS set by configure. The output of configure is:
* LDFLAGS: -L. -fstack-protector-strong -L/usr/local/lib
I don't think /usr/local/lib
should be in LDFLAGS
by default.
I've attached a patch that fixes the problem for me, and I sent the same patch as a PR on GitHub: https://github.com/ruby/ruby/pull/5855
Thanks!
Actions
Like0
Like0Like0Like0Like0Like0Like0