[mythtv] Problem with 32-bit android version

Mark Spieth mark at digivation.com.au
Sun Oct 9 02:16:04 UTC 2022



On 9 October 2022 11:10:29 am AEDT, Peter Bennett <pb.mythtv at gmail.com> wrote:
>
>On 10/8/22 19:33, Mark Spieth wrote:
>> On 9/10/2022 5:40 am, Peter Bennett wrote:
>>> 
>>> On 10/8/22 13:58, Mark Spieth wrote:
>>>> 
>>>> 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_INCLUDE_DIR :
>>>>> -- 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.
>>>> 
>>>> Mark
>>>> 
>>> Hi Mark
>>> 
>>> Thanks. I have uploaded my firetv-max build so you can try it on your fire stick, to determine if the problem lies in my build or in my fire stick.
>>> 
>>> https://dl.orangedox.com/pCBmBm   in "Trial Versions"
>> 
>> I tested the above and it works fine. DB access works too (can save bookmarks and last played pos).
>> 
>> This surprised me. I expected it to fail. firetv-max must be different enough from the firetv4k.
>> 
>> It should build the same way as always for you so I dont understand what is different now.
>> 
>> exiv2 is still the git version as before.
>> 
>> Try this one https://digivation.com.au/debian/mythfrontend-20221002-arm-v33.0~master.20220521.4e1e81967d-0ubuntu0.apk
>> 
>> 
>> Try adding this near the top of makelibs.sh after INSTALLROOT is defined of course. say line 319 or around there.
>> 
>> export PKG_CONFIG_DIR=
>> export PKG_CONFIG_LIBDIR=$INSTALLROOT/lib/pkgconfig:$INSTALLROOT/share/pkgconfig:$QTINSTALLROOT/lib/pkgconfig
>> export PKG_CONFIG_SYSROOT_DIR=$INSTALLROOT
>> export PKG_CONFIG_SYSROOT_DIR=
>> 
>> That should eliminate any PKGCONFIG leakage from your env (I hope)
>> 
>> also check your /usr/lib/pkgconfig dir to see if iconv exists there. and any other place pkgconfig might find things.
>> 
>> HTH
>> 
>> Mark
>> 
>> 
>> 
>I installed your package (after uninstalling mine). I get the same error when launching mythfrontend
>
>10-08 19:59:39.596  7187  7208 E AndroidRuntime: FATAL EXCEPTION: qtMainLoopThread
>10-08 19:59:39.596  7187  7208 E AndroidRuntime: Process: org.mythtv.mythfrontend, PID: 7187
>10-08 19:59:39.596  7187  7208 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"...
>
>I also tried it on another fire stick 4k with the same result.
>
>Very strange ...
>
I had to uninstall too. :)

Which ndk, sdk, tools did you use last time.
? 
Set up a config with all of those settings.

Yes very strange


More information about the mythtv-dev mailing list