Closed i30817 closed 2 years ago
I think it's the wrong version of gcc installed which pulls in the c++ files? Man...
I have gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)
This was fixed in the build bot meanwhile (i've been without internet and checked today).
@i30817 Thanks for pointing out this. I am using a GPI Case2 with an RPI CM4 and replaced scummvm_libretro.so core and scummvm files by http://build.bot.nu/nightly/linux/aarch64/latest/scummvm_libretro.so.zip and http://build.bot.nu/assets/system/ScummVM.zip using Lakka nightly for RPI4 but get "undefined symbol". Any hints or solutions?
My problem was that i was building and didn't made clean both sides (scummvm repository and this subdirectory).
I suspect you should not build scummvm first or at all, just call the make on the make file of backends/platforms/libretro dir, not the make of scummvm itself.
Build artifacts of one get used in the other and the makefiles have different defines or mangling (or something like that) and it causes 'undefined symbol' when the linker tries to reused a object file of scummvm proper in the core version.
Your problem might be different because you're building in another platform though.
Also remember to make the scummvm assets and place them in the core system subdirectory ($HOME/.config/retroarch/system/
is the extraction dir and the zip contains a 'scummvm' directory at the top level). I do something like make && ../aux-data/bundle_aux_data.bash && 7z x -y -o$HOME/.config/retroarch/system/ ../aux-data/scummvm.zip && cp scummvm_libretro.so ~/.config/retroarch/cores/
again from the libretro core build dir.
Your problem is likely unrelated to this or the buildbot is making the same mistake of reusing build artifacts somehow. It's possible the symbol might be a library that the core expects but lakka hasn't. The buildbot also has the scummvm data/assets as a zip so if you're not building try first to unzip it on the right dir (not sure what it is in lakka but for me it's $HOME/.config/retroarch/system/
with the subdir 'scummvm' coming from the zip itself, as mentioned.
I'd do what i did first and call ldd -r -v scummvm_libretro.so
and try to interpret the 'missing symbol'. In my case it was obvious it was coming from the scummvm code itself, which meant it was a makefile problem, which lead me to realize i'd called 'make' on the main scummvm code first, which lead me to the solution.
In your case it might show which .so is missing in lakka.
Also @eqikkwkp25-cyber if you're going to build the core yourself, you should probably be using the libretro-backend repository instead of this one, that's the one i'm using (follow the readme).
Anything i need to install? It isn't clear from the error if it's possible to fix that way.
although ldd only showed one, this command is supposed to show undefined symbols too, so here it is:
Supposedly,
_ZN5Audio9MixerImplC1Ej
wasAudio::MixerImpl::MixerImpl(unsigned int)
pre-mangling according to this tool. Whatever. What's more concerning is all the other undefined things, so...