[ruby-core:118577] [Ruby master Bug#20631] Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta

Issue #20631 has been reported by hsbt (Hiroshi SHIBATA). ---------------------------------------- Bug #20631: Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta https://bugs.ruby-lang.org/issues/20631 * Author: hsbt (Hiroshi SHIBATA) * Status: Open * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- I found some issues with Xcode 16 beta and macOS 15 (Sequoia) Beta. `TestRubyOptions` and `TestVMDump` are failed with them. full log: https://gist.github.com/hsbt/378fe2ba47e734f2562ba9a154e1795b I'm not sure why macOS require `sudo` command for that. ---- And I and @katei also found the regression of https://bugs.ruby-lang.org/issues/18912#note-15. ```
pid = fork { p File.realpath "/" } Process.waitpid(pid) objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug. => 82573
--
https://bugs.ruby-lang.org/

Issue #20631 has been updated by hsbt (Hiroshi SHIBATA). I also found build failure of [oj-introspect](https://github.com/meinac/oj-introspect). https://github.com/meinac/oj-introspect/blob/master/ext/oj-introspect/extcon... ``` $DLDFLAGS << " -Wl,-U,#{sym.strip}" ``` This line is broken with Xcode 16 beta. ``` linking shared-object oj/introspect/introspect_ext.bundle ld: -undefined dynamic_lookup cannot be used with -U clang: error: linker command failed with exit code 1 (use -v to see invocation) ``` BTW, this is not `ruby/ruby` issue. ---------------------------------------- Bug #20631: Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta https://bugs.ruby-lang.org/issues/20631#change-109102 * Author: hsbt (Hiroshi SHIBATA) * Status: Open * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- I found some issues with Xcode 16 beta and macOS 15 (Sequoia) Beta. `TestRubyOptions` and `TestVMDump` are failed with them. full log: https://gist.github.com/hsbt/378fe2ba47e734f2562ba9a154e1795b I'm not sure why macOS require `sudo` command for that. ---- And I and @katei also found the regression of https://bugs.ruby-lang.org/issues/18912#note-15. ```
pid = fork { p File.realpath "/" } Process.waitpid(pid) objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug. => 82573
--
https://bugs.ruby-lang.org/

Issue #20631 has been updated by hsbt (Hiroshi SHIBATA). I skipped crashed tests at https://github.com/ruby/ruby/pull/11155 These are caused by `Process.daemon` and `Process.kill(:SEGV, ...)`. ---------------------------------------- Bug #20631: Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta https://bugs.ruby-lang.org/issues/20631#change-109103 * Author: hsbt (Hiroshi SHIBATA) * Status: Open * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- I found some issues with Xcode 16 beta and macOS 15 (Sequoia) Beta. `TestRubyOptions` and `TestVMDump` are failed with them. full log: https://gist.github.com/hsbt/378fe2ba47e734f2562ba9a154e1795b I'm not sure why macOS require `sudo` command for that. ---- And I and @katei also found the regression of https://bugs.ruby-lang.org/issues/18912#note-15. ```
pid = fork { p File.realpath "/" } Process.waitpid(pid) objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug. => 82573
--
https://bugs.ruby-lang.org/

Issue #20631 has been updated by hsbt (Hiroshi SHIBATA). Status changed from Open to Assigned Assignee set to hsbt (Hiroshi SHIBATA) ---------------------------------------- Bug #20631: Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta https://bugs.ruby-lang.org/issues/20631#change-109104 * Author: hsbt (Hiroshi SHIBATA) * Status: Assigned * Assignee: hsbt (Hiroshi SHIBATA) * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- I found some issues with Xcode 16 beta and macOS 15 (Sequoia) Beta. `TestRubyOptions` and `TestVMDump` are failed with them. full log: https://gist.github.com/hsbt/378fe2ba47e734f2562ba9a154e1795b I'm not sure why macOS require `sudo` command for that. ---- And I and @katei also found the regression of https://bugs.ruby-lang.org/issues/18912#note-15. ```
pid = fork { p File.realpath "/" } Process.waitpid(pid) objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug. => 82573
--
https://bugs.ruby-lang.org/

Issue #20631 has been updated by hsbt (Hiroshi SHIBATA). Xcode 16 beta 4 fixed the following issue.
This line is broken with Xcode 16 beta. linking shared-object oj/introspect/introspect_ext.bundle ld: -undefined dynamic_lookup cannot be used with -U clang: error: linker command failed with exit code 1 (use -v to see invocation)
The detailed version is here: ``` $ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables package-id: com.apple.pkg.CLTools_Executables version: 16.0.0.0.1.1721279336 volume: / location: / install-time: 1722244152 ``` ---------------------------------------- Bug #20631: Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta https://bugs.ruby-lang.org/issues/20631#change-109263 * Author: hsbt (Hiroshi SHIBATA) * Status: Assigned * Assignee: hsbt (Hiroshi SHIBATA) * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- I found some issues with Xcode 16 beta and macOS 15 (Sequoia) Beta. `TestRubyOptions` and `TestVMDump` are failed with them. full log: https://gist.github.com/hsbt/378fe2ba47e734f2562ba9a154e1795b I'm not sure why macOS require `sudo` command for that. ---- And I and @katei also found the regression of https://bugs.ruby-lang.org/issues/18912#note-15. ```
pid = fork { p File.realpath "/" } Process.waitpid(pid) objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug. => 82573
--
https://bugs.ruby-lang.org/

Issue #20631 has been updated by hsbt (Hiroshi SHIBATA). The following case is resolved at Xcode CLI RC and macOS 15.1 beta3
pid = fork { p File.realpath "/" } Process.waitpid(pid)
---------------------------------------- Bug #20631: Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta https://bugs.ruby-lang.org/issues/20631#change-109700 * Author: hsbt (Hiroshi SHIBATA) * Status: Assigned * Assignee: hsbt (Hiroshi SHIBATA) * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- I found some issues with Xcode 16 beta and macOS 15 (Sequoia) Beta. `TestRubyOptions` and `TestVMDump` are failed with them. full log: https://gist.github.com/hsbt/378fe2ba47e734f2562ba9a154e1795b I'm not sure why macOS require `sudo` command for that. ---- And I and @katei also found the regression of https://bugs.ruby-lang.org/issues/18912#note-15. ```
pid = fork { p File.realpath "/" } Process.waitpid(pid) objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug. => 82573
--
https://bugs.ruby-lang.org/

Issue #20631 has been updated by hsbt (Hiroshi SHIBATA). `Process.daemon` is working fine at macOS 15.1 beta3 and Xcode 16 RC. I enabled `TestProcess#test_daemon_noclose` again at https://github.com/ruby/ruby/commit/1ecac5d4ed620247bdb74fa2c20e1665fae75b1a ---------------------------------------- Bug #20631: Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta https://bugs.ruby-lang.org/issues/20631#change-109814 * Author: hsbt (Hiroshi SHIBATA) * Status: Assigned * Assignee: hsbt (Hiroshi SHIBATA) * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- I found some issues with Xcode 16 beta and macOS 15 (Sequoia) Beta. `TestRubyOptions` and `TestVMDump` are failed with them. full log: https://gist.github.com/hsbt/378fe2ba47e734f2562ba9a154e1795b I'm not sure why macOS require `sudo` command for that. ---- And I and @katei also found the regression of https://bugs.ruby-lang.org/issues/18912#note-15. ```
pid = fork { p File.realpath "/" } Process.waitpid(pid) objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug. => 82573
--
https://bugs.ruby-lang.org/

Issue #20631 has been updated by nobu (Nobuyoshi Nakada). The Xcode version had no effect on this. In fact, the same error appeared on macOS 15.0 for binaries built with either 16 RC or earlier versions. Upgrading to macOS 15.1 beta (24B5046f) made the error go away. ---------------------------------------- Bug #20631: Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta https://bugs.ruby-lang.org/issues/20631#change-109894 * Author: hsbt (Hiroshi SHIBATA) * Status: Assigned * Assignee: hsbt (Hiroshi SHIBATA) * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- I found some issues with Xcode 16 beta and macOS 15 (Sequoia) Beta. `TestRubyOptions` and `TestVMDump` are failed with them. full log: https://gist.github.com/hsbt/378fe2ba47e734f2562ba9a154e1795b I'm not sure why macOS require `sudo` command for that. ---- And I and @katei also found the regression of https://bugs.ruby-lang.org/issues/18912#note-15. ```
pid = fork { p File.realpath "/" } Process.waitpid(pid) objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug. => 82573
--
https://bugs.ruby-lang.org/

Issue #20631 has been updated by hsbt (Hiroshi SHIBATA). Status changed from Assigned to Closed macOS 26 beta and Xcode 26 beta is working fine with this issue. And the current macOS 15 on GitHub Actions is also working fine. I enabled ignored tests again at https://github.com/ruby/ruby/commit/255e6e619752854e5740519ad8829e4a7a4b9bea ---------------------------------------- Bug #20631: Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta https://bugs.ruby-lang.org/issues/20631#change-113735 * Author: hsbt (Hiroshi SHIBATA) * Status: Closed * Assignee: hsbt (Hiroshi SHIBATA) * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- I found some issues with Xcode 16 beta and macOS 15 (Sequoia) Beta. `TestRubyOptions` and `TestVMDump` are failed with them. full log: https://gist.github.com/hsbt/378fe2ba47e734f2562ba9a154e1795b I'm not sure why macOS require `sudo` command for that. ---- And I and @katei also found the regression of https://bugs.ruby-lang.org/issues/18912#note-15. ```
pid = fork { p File.realpath "/" } Process.waitpid(pid) objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. objc[82573]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug. => 82573
--
https://bugs.ruby-lang.org/
participants (2)
-
hsbt (Hiroshi SHIBATA)
-
nobu (Nobuyoshi Nakada)