Freescale / gstreamer-imx

GStreamer 1.0 plugins for i.MX platforms
Other
184 stars 127 forks source link

mp3 encoder library is not eabi v5 / hardfp and cannot be resolved on modern distros #240

Closed Josua-SR closed 3 years ago

Josua-SR commented 5 years ago

It appears that once libgstimxaudio.so has been linked to lib_mp3_enc_arm12_elinux.so.2, at runtime this library can not be resolved by the dynamic linker - resulting in failure of loading the plugin: Failed to load plugin '/usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstimxaudio.so': lib_mp3_enc_arm12_elinux.so.2: cannot open shared object file: No such file or directory

By using strace it can be verified that the shared library is found, opened, it's elf header parsed, and finally closed.

I haven't finished researching the root cause of this, but it appears that the dynamic linker (glibc) checks the elf header against a set of expected values, including VALID_FLOAT_ABI (ehdr->e_flags) which is defined as eabi v5 and either soft or hard fp convention.

Quick testing has shown that dlopening the library is possible though, and might be the required method for using this mp3 decoder, at least on Debian Buster where I tested this.

dv1 commented 3 years ago

Sorry for the late reply. What distro did you use for this? And can you check if the current state in the v2 branch fixes this for you?