Failing to Compile SampleAnalyzer in M1 macOS

I get below error while compiling SampleAnalyzer for M1 based macOS
[100%] Linking CXX shared module Analyzers/libDCSAnalyzer.so
ld: warning: ignoring file _deps/analyzersdk-src/lib/libAnalyzer.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
Undefined symbols for architecture arm64:
“SimpleArchive::GetString()”, referenced from:
DCSAnalyzerSettings::SaveSettings() in DCSAnalyzerSettings.cpp.o
“SimpleArchive::SetString(char const*)”, referenced from:

It seems to be AnalyzerSDK/lib at master · saleae/AnalyzerSDK · GitHub doesn’t has .dylib for M1 macOS.

Any suggestions or workaround for this issue?
Thank you.

@raji.grc Sorry for the trouble with that, and thanks for letting us know. Our offices were closed over the weekend, so apologies for the late reply.

Let me get this on the backlog to test and review and we’ll get back to you with our findings.

@raji.grc Apologies we still don’t have a workaround for you at the moment. We’ll likely need to provide a .dylib specifically built for Apple’s M1 processors, though there could be several other updates to our software required as well. This is still on our backlog to review, and I’ll continue to keep you updated.

Can you confirm if you are able to get the build process working on another computer running an x86-64 processor? Sorry for the trouble with this in the meantime, and I hope this issue isn’t causing a major roadblock for you.

@timreyes thank you for the update. I am building the library .dylib on Intel based Mac and testing library on M1, its a inconvenient but I am not blocked at the moment. I will be waiting for new .dylib

Thank you.

We’ve made a lot of progress on native M1/M2 software support, but we’re not ready to release it yet unfortunately.

In the meantime though, assuming you’re using the build system we provide, you should be able to compile for x86_64 from your M1 mac by adding this cmake command near the top of the CMakeLists.txt we provide:

@markgarrison thank you for the suggestion, adding set(CMAKE_OSX_ARCHITECTURES “x86_64”) on top of the CMakeLists.txt didn’t work.

but I was able to cross compile the library by adding the env variable after
add_definitions( -DLOGIC2 )
set(CMAKE_OSX_ARCHITECTURES “x86_64”)

Hello, I’ve just started my first low level protocol analyzer project, and ran into the same problem developing on an M1 mac, the libAnalyzer.dylib is not a universal library, it only support x86-64 and not arm64. I’m using the Xcode development path (not cmake). I’m wondering if you have a timeline for releasing either a universal library or a unique arm64 library?

Hi @srossi,

We don’t have a public timeline, unfortunately. What I can say is that we we’ll release the analyzer dylib the same time we release M1 support for the software.

I can also say that internally, we did manage to get the Logic 2 software mostly running on Apple M1. Unfortunately, we’ve had to temporarily pause the project, which is why I can’t provide a release date now.

In the meantime, I don’t know if XCode can be configured to compile x86_64 only, and not a universal binary. However, you can still use XCode as a code editor, but build the analyzer using CMake from the command line. I also suspect that debugging will still probably work, although I haven’t checked. As long as XCode supports debugging x86_64 processes on M1, then it should have no trouble debugging Logic 2 protocol analyzer plugins.

@markgarrison Thanks for your response. It is always preferable to have native support (M1/M2). However I did find that it is relatively easy in Xcode to select the build target as ‘My Mac (Rosetta)’ which targets x86-64 build. With this setting I was able to build and link with the x86-64 dynlib. As a newbie I can now move on to the next step of trying to actually run and debug my LLA. I appreciate that the web resources have lots of relevant information to help me along with that.