complexlogic/rsgain

MacOS build will not open files - lazy symbol binding failed

Closed this issue · 1 comments

Thanks for adding macOS files to your latest release.

Alas the rsgain 3.5 macOS build downloaded from here today fails on my Mojave (macOS 10.14.6) i7 MacBook Pro with this diagnostic:

_dyld: lazy symbol binding failed: Symbol not found: __ZNSt3__14__fs10filesystem8__statusERKNS1_4pathEPNS_10error_codeE
Referenced from: /usr/local/bin/rsgain (which was built for Mac OS X 12.7)
Expected in: /usr/lib/libc++.1.dylib

dyld: Symbol not found: _ZNSt3__14__fs10filesystem8__statusERKNS1_4pathEPNS_10error_codeE
Referenced from: /usr/local/bin/rsgain (which was built for Mac OS X 12.7)
Expected in: /usr/lib/libc++.1.dylib

This happens whenever an input file is specified in both easy and custom modes, but -h (help) works normally as I guess it doesn't attempt late binding.

The following version information is reported:

_Simons-MacBook-Pro:~ simon$ rsgain -v
rsgain 3.5 - using:
libebur128 1.2.6
libavformat 60.16.100
libavcodec 60.31.102
libavutil 58.29.100
libswresample 4.12.100
TagLib 2.0

Compiler: Apple Clang 14.0.0
Build Date: 2024-02-25_

The directory created in downloads is called rsgain-3.5-macOS-x86_64

I am running the file from /usr/local/bin where the reported size is 4368096 bytes

I have looked at previous releases but they don't seem to include any macOS binaries.

The comment 'Provide static builds for macOS and Linux' in the 3.5 release notes seems incorrect given this dynamic library dependency.

You're not the only person to have run into this issue; there are various reports of the missing symbol online but the only recommendation to fix such a build I have seen, at https://trac.macports.org/ticket/68871 , refers hopefully to adding 'legacysupport.use_mp_libcxx' but the context, like macports, is opaque to me.

The macOS binaries were built on macOS 12, and most likely won't work on earlier versions. When I described the builds as "static" in the release notes, I was not referring to the system libraries. Those are still dynamic dependencies.