[mythtv] Problem with 32-bit android version
Peter Bennett
pb.mythtv at gmail.com
Sun Oct 9 00:10:29 UTC 2022
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 ...
Peter
More information about the mythtv-dev
mailing list