Project

General

Profile

Actions

Bug #20631

open

Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta

Added by hsbt (Hiroshi SHIBATA) 5 months ago. Updated 2 months ago.

Status:
Assigned
Target version:
-
[ruby-core:118577]

Description

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 (Yuta Saito) 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

Related issues 4 (2 open2 closed)

Related to Ruby master - Bug #19831: warning message of linker with macOS Sonoma betaOpenActions
Related to Ruby master - Bug #19794: Ruby 3.2.2 fails to build on macOS Sonoma betasAssignednobu (Nobuyoshi Nakada)Actions
Related to Ruby master - Bug #18912: Build failure with Xcode 14 and macOS 13 (Ventura) BetaClosedhsbt (Hiroshi SHIBATA)Actions
Has duplicate Ruby master - Bug #20758: Build failure with macOS Sequoia (15.0) and Xcode 16ClosedActions

Updated by hsbt (Hiroshi SHIBATA) 5 months ago

I also found build failure of oj-introspect.

https://github.com/meinac/oj-introspect/blob/master/ext/oj-introspect/extconf.rb#L17

$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.

Updated by hsbt (Hiroshi SHIBATA) 5 months ago

I skipped crashed tests at https://github.com/ruby/ruby/pull/11155

These are caused by Process.daemon and Process.kill(:SEGV, ...).

Updated by hsbt (Hiroshi SHIBATA) 5 months ago

  • Status changed from Open to Assigned
  • Assignee set to hsbt (Hiroshi SHIBATA)
Actions #4

Updated by hsbt (Hiroshi SHIBATA) 5 months ago

  • Related to Bug #19831: warning message of linker with macOS Sonoma beta added
Actions #5

Updated by hsbt (Hiroshi SHIBATA) 5 months ago

  • Related to Bug #19794: Ruby 3.2.2 fails to build on macOS Sonoma betas added
Actions #6

Updated by hsbt (Hiroshi SHIBATA) 5 months ago

  • Related to Bug #18912: Build failure with Xcode 14 and macOS 13 (Ventura) Beta added

Updated by hsbt (Hiroshi SHIBATA) 5 months ago

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

Updated by hsbt (Hiroshi SHIBATA) 3 months ago

The following case is resolved at Xcode CLI RC and macOS 15.1 beta3

pid = fork { p File.realpath "/" }
Process.waitpid(pid)

Updated by hsbt (Hiroshi SHIBATA) 3 months ago

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

Actions #10

Updated by nobu (Nobuyoshi Nakada) 3 months ago

  • Has duplicate Bug #20758: Build failure with macOS Sequoia (15.0) and Xcode 16 added

Updated by nobu (Nobuyoshi Nakada) 3 months ago

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.

Actions #12

Updated by katei (Yuta Saito) 2 months ago

  • Status changed from Assigned to Closed

Applied in changeset git|c77f0b91342935f661c6e5ba0f6f5c19427da174.


[Bug #20631] Workaround for macOS 15.0 fork crash

macOS 15.0 24A5331b seems to have a weird issue that
CFStringCreateWithBytesNoCopy does not return NSTaggedPointerString
instance for the first call. This issue is fixed in macOS 15.1 but we
need to workaround it for macOS 15.0.

Actions #13

Updated by hsbt (Hiroshi SHIBATA) 2 months ago

  • Status changed from Closed to Assigned
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0