[mythtv] Problem with 32-bit android version

Mark Spieth mark at digivation.com.au
Sat Oct 8 17:58:50 UTC 2022

On 9 October 2022 2:36:49 am AEDT, Peter Bennett <pb.mythtv at gmail.com> wrote:
>Hi Mark
>Using your new android packaging changes, I renamed the packaging directory and cloned it fresh from github to make sure nothing was left over. I also installed the 21.4.7075529 NDK, which the config files call for. I built libs and apk using the profile you set up for firetv-max
>Installing on a firetv-4k works, but running mythfrontend crashes after the splash screen shows.

I tested on my firetv max and it worked fine. Which is why I pushed. 
I also installed 64bit on my s20 which I used via Windows connect and cast and tgat worked but could not update the database which I assumed was a backend schema mismatch but not sure. Or its qt 5.15.6

>This is from logcat
>10-08 11:11:29.909 18168 18193 I Qt      : qt started
>10-08 11:11:29.924 18168 18193 E AndroidRuntime: FATAL EXCEPTION: qtMainLoopThread
>10-08 11:11:29.924 18168 18193 E AndroidRuntime: Process: org.mythtv.mythfrontend, PID: 18168
>10-08 11:11:29.924 18168 18193 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "iconv_open" referenced by "/data/app/org.mythtv.mythfrontend-1/lib/arm/libexiv2.14.so"...
>The exact same build using the shield profile runs fine on the shield.
>Looking at the libs build for libexiv shows this (for both the firetv-max and shield libs):
>-- Performing Test Iconv_IS_BUILT_IN
>-- Performing Test Iconv_IS_BUILT_IN - Success
>-- Found Iconv: /home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a 
>-- ICONV_LIBRARIES : /home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a
>If iconv is built into libc, then why is it trying to use dlopen to open a library for it?
>The apk file does include /lib/armeabi-v7a/libiconv.so (And the shield apk also contains it).
>Even if it does not want to use the built-in iconv, it should still find the libiconv.so.
>On my linux system the only iconv.so in lib are in /php/20210902 and in perl where it is capitalized as Iconv.so. This indicates that maybe it is built-in these days and we can dispense with building iconv in the libs. Would this solve the problem?
>Also there is in the exiv2 source a cmake file called FindIconv.cmake. That is what comes up with the message Iconv_IS_BUILT_IN. Perhaps some change is needed.
>Do you have any ideas?

There may be some leak of the host env into the isolated build env. Perhaps in pkgconfig. May need a pkconfig path erase but I think that is already done.

I think I should add config dump to the console on loading so you can tell in the log file though to make life easier. Config overrides anything in buildrc and setenv anyway.

My 32 bit build log does not show any BUILTIN lines for either libs or myth parts.

Ill have to think about this a bit more.


More information about the mythtv-dev mailing list