From: "wkoszek (Adam Koszek) via ruby-core" Date: 2024-08-30T06:03:19+00:00 Subject: [ruby-core:118990] [Ruby master Bug#20706] Can't build Ruby on macOS Sonoma and Sequoia due to: ignoring duplicate libraries, archive member '/' not a mach-o file in libruby.3.3-static.a Issue #20706 has been updated by wkoszek (Adam Koszek). Ok, so I did: ``` sudo rm -rf /Applications/Xcode.app # this was Xcode.app 15.4 brew update brew upgrade ``` On Sequoia I had to get Xcode_16_beta_6.xip b/c Xcode from App Store doesn't work. Unpacked, and renamed from `Xcode-beta.app` to `/Applications/Xcode.app` Downloaded all SDKS: ``` $ xcode-select --install xcode-select: note: Command line tools are already installed. Use "Software Update" in System Settings or the softwareupdate command line interface to install updates [22:34:05][wk@wkoszek_mba:~/tmp/rubyc/ruby-3.3.4]$ ``` Result: ``` $ cc --version Apple clang version 16.0.0 (clang-1600.0.26.3) Target: arm64-apple-darwin24.0.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin ``` I added -v to the LDFLAGS in Makefile. Looks like the offending command is: ``` InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch arm64 -platform_version macos 15.0.0 15.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -O3 -mllvm -enable-linkonceodr-outlining -o ruby -L. -L/usr/local/lib -pie -framework CoreFoundation main.o dmyext.o dmyenc.o -lruby.3.3-static -framework CoreFoundation -ldl -lobjc -lpthread -ldl -lobjc -lpthread -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/16/lib/darwin/libclang_rt.osx.a ld: warning: ignoring duplicate libraries: '-ldl', '-lobjc', '-lpthread' ld: archive member '/' not a mach-o file in '/Users/wk/tmp/rubyc/ruby-3.3.4/libruby.3.3-static.a' clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [ruby] Error 1 make[1]: *** [ruby] Error 2 ``` Did some reading. Homebrew's "ar" is picked instead of the Xcode's one: ``` $ which ar /opt/homebrew/bin/ar ``` Looks like ... the workaround for me is to: ``` brew uninstall binutils ``` Is this normal? [I can build Ruby now] ---------------------------------------- Bug #20706: Can't build Ruby on macOS Sonoma and Sequoia due to: ignoring duplicate libraries, archive member '/' not a mach-o file in libruby.3.3-static.a https://bugs.ruby-lang.org/issues/20706#change-109564 * Author: wkoszek (Adam Koszek) * Status: Open * ruby -v: ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23] * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- Hi, I had the same problems with macOS Sonoma and (after an upgrade) Sequoia -- something about my macOS makes it impossible to build Ruby. Upon an upgrade to Sequoia, I did Xcode upgrade, and then CommandLine tools download. Then I did "sudo xcode-select --reset" I'm trying ruby-3.3.4 and ruby-3.2.5 -- both have the same result from below. Steps: wget https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.4.tar.gz tar xzf ruby-3.3.4.tar.gz cd ruby-3.3.4 script ./configure make -j Last lines: linking shared-object -test-/scan_args.bundle linking shared-object -test-/string.bundle linking shared-object objspace.bundle linking shared-object digest/bubblebabble.bundle linking shared-object stringio.bundle linking transcoder big5.bundle linking shared-object json/ext/generator.bundle making ends make[1]: Nothing to be done for `encs'. linking shared-object nkf.bundle linking shared-object ripper.bundle file2lastrev.rb: does not seem to be under a vcs: . revision.h unchanged config.status: creating ruby-runner.h ln -sf ../../rbconfig.rb .ext/arm64-darwin24/rbconfig.rb linking ruby ld: warning: ignoring duplicate libraries: '-ldl', '-lobjc', '-lpthread' ld: archive member '/' not a mach-o file in '/Users/wk/tmp/rubyc/ruby-3.3.4/libruby.3.3-static.a' clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [ruby] Error 1 make[1]: *** [ruby] Error 2 make: *** [build-ext] Error 2 [07:35:03][wk@wkoszek_mba:~/tmp/rubyc/ruby-3.3.4]$ exit exit Script done, output file is typescript file /Users/wk/tmp/rubyc/ruby-3.3.4/libruby.3.3-static.a /Users/wk/tmp/rubyc/ruby-3.3.4/libruby.3.3-static.a: current ar archive I'm attaching the transcript. This ticket has this warning too: https://bugs.ruby-lang.org/issues/20283 But looks like it's a warning. For me it's somehow an error. ---Files-------------------------------- typescript (54.7 KB) typescript_after_alan_ask_ditched_rvm.txt (54.4 KB) -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/