Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash on launch on macOS 15.4 Beta #436

Open
R6A8kJOk opened this issue Mar 13, 2025 · 4 comments
Open

Crash on launch on macOS 15.4 Beta #436

R6A8kJOk opened this issue Mar 13, 2025 · 4 comments

Comments

@R6A8kJOk
Copy link

uv (Nightly Built 2025-03-13T08:34+00:00) crashes on launch in macOS Beta 15.4 Beta (24E5228e) on ARM (Tested on M1 and M4 Pro)

% ./uv
dyld[1208]: Library not loaded: @executable_path/../libs/libopenblasp-r0.3.29.dylib
  Referenced from: <F64DD98E-E485-3375-AD4C-4F77854B8B9C> /Users/user/Desktop/uv-qt.app/Contents/libs/libopencv_core.4.11.0.dylib
  Reason: tried: '/Users/user/Desktop/uv-qt.app/Contents/libs/libopenblasp-r0.3.29.dylib' (duplicate LC_RPATH '@executable_path/../libs/')
zsh: abort      ./uv

Also crashes instantly when using uv-qt, displays error message: "UltraGrid has crashes when invoked without arguments".

Going back through releases, this affects all ARM builds back to 1.9.0.

The 1.8.0 Intel version in Rosetta at least appears to launch correctly.

% ./uv-qt\ 1.8.app/Contents/MacOS/uv
UltraGrid 1.8 (tags/v1.8 rev 38c3c19 built Dec  9 2022 14:45:42)

Don't know what Apple has changed, but I suspect some SIP shenanigans.

@MartinPulec
Copy link
Collaborator

Hi, thanks for reporting. Can you give me more information on that?

uv (Nightly Built 2025-03-13T08:34+00:00)

can you point me to the actual build? continuous, 1.9.8 or a custom build from the sources?

crashes on launch in macOS Beta 15.4 Beta (24E5228e)

unfortunately we don't have that beta installed - if you can try, does it crash on 15.3.2 as well?

The 1.8.0 Intel version in Rosetta at least appears to launch correctly.

we still build both architectures so can you try some Intel build newer than 1.8, eg. 1.9.8?

Unfortunately I currently cannot identify what triggers the problem - if this is the beta version of macOS or something else? If this affects 15.4 version of macOS, I believe that it will be released soon so I'll be able to test there.

@R6A8kJOk
Copy link
Author

R6A8kJOk commented Mar 14, 2025

OK, on 15.3.2 I think all those build run fine. Starting in the 15.4 beta, many of the newer ones crash.

I tried these versions from the Releases page, all on the 15.4 Beta, running on ARM hardware, or Intel code running in Rosetta on that ARM hardware.

Nightlies
ARM Continuous: Crash
Intel Continuous: Crash

1.9.8
ARM: Crash
Intel: Crash

1.9.0
ARM: Crash
Intel: Crash

1.9.5
ARM: Crash
Intel: Crash

1.8.7
Intel: Crash

1.8.5
Intel: Crash

1.8.4
Intel: ok

1.8.3
Intel: ok

1.8.0
Intel: ok

So looks like the problem was introduced in 1.8.5 and now triggers in the macOS 15.4 betas.

Tried disabling SIP, same errors.

@R6A8kJOk
Copy link
Author

Digging some more:

If the error
duplicate LC_RPATH '@executable_path/../libs/'
really is the issue, then this is a intentional deprecation that Xcode has been announcing for a year now and is scheduled to be a hard error since Fall 2024.

https://github.com/apple-oss-distributions/dyld/

Filed a feedback with Apple to clarify, but don't have any hopes for a reasonable reply.

Looking at the library, it really has multiples of RPATHs

 otool -l uv-qt.app/Contents/libs/libopenblasp-r0.3.28.dylib
...
Load command 16
          cmd LC_RPATH
      cmdsize 40
         path @executable_path/../libs/ (offset 12)
Load command 17
          cmd LC_RPATH
      cmdsize 40
         path @executable_path/../libs/ (offset 12)
Load command 18
          cmd LC_RPATH
      cmdsize 40
         path @executable_path/../libs/ (offset 12)
Load command 19
          cmd LC_RPATH
      cmdsize 40
         path @executable_path/../libs/ (offset 12)

Looked at the dylibbundler, maybe this loop is an issue?

Found some more related discussion here.

@R6A8kJOk
Copy link
Author

Found a workaround with some help:

for i in {1..3}; do
  install_name_tool -delete_rpath '@executable_path/../libs/' uv-qt-nightly.app/Contents/libs/libopenblasp-r0.3.29.dylib
done

sudo codesign --remove-signature uv-qt-nightly.app
codesign --force --deep --sign - uv-qt-nightly.app

sudo xattr -rd com.apple.quarantine uv-qt-nightly.app

Remove the faulty RPATH three times, then resign the build. Don't know where the fault is introduced, but this works for me for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants