FMOD arm64-v8a support

Hi, i have installed FMOD and its Libraries (armeabi-v7a, arm64-v8a, x86) in my android project and it works fine with armeabi-v7a but when I compile for arm64-v8a i get an error that goes

ld: error: found local symbol '__bss_start' in global part of symbol table in file ../../../../../../cocos2d/external/fmod/prebuilt/android/arm64-v8a/libfmod.so

Cocos2dx v4

Android SDK Build Tools: 31.0.0-rc5
NDK Version: 22.1.7171670
CMake: 3.18.1

I Would Love to support arm64-v8a but im currently setting on armeabi-v7a only because of this bug

Thank You~

Try the suggestions here: https://github.com/android/ndk/issues/927, and more specifically for CMake, this.

1 Like

Unfortunately nothing helped there :frowning: i guess its a common bug i cant do nothing about with the NDK but hope it gets a fix on the upcoming NDK Versions, its okay ill set on armeabi-v7a, thanks for the response <3

Are you 100% sure that the -fuse-ld=lld was set correctly? Double check the CMake output log to ensure it picked up that setting, because that should work.

i have put it in the cppFlags and also the arguments i look though the output and it does pick it up but still shows the same error

Try ndk-r21e version just to see if works, since apparently it doesn’t have this issue. If it does work, then it’s likely an issue with the latest NDK releases. If it doesn’t work, then perhaps something else is going on with your build.

If you haven’t already done so, you should ask the FMOD developers about this issue as well.

1 Like

i used the version you said above (21.4.7075529 to be specific) it builds successfully and produces the arm64-v8a library fine but when i come to launch the app on my phone it plain out crashes when i click the app icon

my phone specifications are:

SAMSUNG Galaxy A31
Android Version: 11
API Level: 30
Kernel Arch: aarch64

So it’s likely to be an NDK issue causing the linker problem.

As for the crash, I’m afraid that’s not something I can help you with. You should be able to track it down pretty easily with the use of the debugger and crash logs.

Problem is if i want to track it down i’d use the emulator right? but then the library has no problems working with x86 how do i debug and emulate in pure arm64-v8a library?

For arm64, you should use the actual device. The phone specs you listed above indicate it is a 64bit device, so is there something stopping you from remote debugging the application while it’s running directly on the device?

If you’re not sure how to turn on developer mode on the device, then this should help.

1 Like

the ndk-r21e actually worked i just put an old version of libfmod.so in the arm64-v8a folder before switching to ndk-r21e hoping it works and forgot to put the old one back and now it works :smiley: its just the new ndk that has this weird bug, also forgot about debugging through adb, Thanks for the help <3

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.