[mythtv] Problem with 32-bit android version
Peter Bennett
pb.mythtv at gmail.com
Wed Oct 12 13:53:44 UTC 2022
On 10/12/22 03:43, Mark Spieth wrote:
> On 11/10/2022 12:51 am, Peter Bennett wrote:
>>
>> On 10/8/22 22:16, Mark Spieth wrote:
>>> 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
>>> _______________________________________________
>>
>> I set up a new config file firetv-4k, as follows
>>
>> export ANDROID_BUILD_TOOLS_REVISION=29.0.2
>> export ANDROID_NDK=$ANDROID_SDK_ROOT/ndk/21.0.6113669
>> export ANDROID_NATIVE_API_LEVEL=21
>> export ANDROID_NDK_ROOT=$ANDROID_NDK
>> export TARGET_SDK_VERSION=$ANDROID_NATIVE_API_LEVEL
>> export ANDROID_API_VERSION=android-$ANDROID_NATIVE_API_LEVEL
>> export ANDROID_MIN_SDK_VERSION=21
>> export ARM64=0
>> export MODE=arm
>>
>> Doing a make distclean, make libs, make apk gave me an apk that works
>> on the firetv-4k :) !!!
>>
>> looking at the libs log, this time it did not find iconv built in. In
>> fact it failed to find iconv at all.
>>
>> Performing Test Iconv_IS_BUILT_IN
>> Performing Test Iconv_IS_BUILT_IN - Failed
>> Could NOT find Iconv (missing: Iconv_LIBRARY)
>>
>> It looks like it built exiv2 without iconv support. This is probably
>> not ideal.
>>
>> Other things report iconv is missing (e.g. flac)
>>
>> I don't understand what is going on with iconv.
>>
>> I suppose I should try again with ndk 21.0.6113669 and api version
>> 25 to isolate the problem to either ndk or api version.
>
> Hi Peter
>
> I just had a look at my build and the associated output is
>
>
> -- Performing Test Iconv_IS_BUILT_IN
> -- Performing Test Iconv_IS_BUILT_IN - Success
> -- Found Iconv:
> /home/mark/android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/a
> rm-linux-androideabi/libc.a
> -- ICONV_INCLUDE_DIR :
> -- ICONV_LIBRARIES :
> /home/mark/android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/
> lib/arm-linux-androideabi/libc.a
>
> I still think its got something to do with pkgconfig.
>
> Run this and see if libiconv is present
>
> (INSTALLROOT=`pwd`/mythinstall; export PKG_CONFIG_DIR=; export
> PKG_CONFIG_LIBDIR=$INSTALLROOT/lib/pkgconfig:$INSTALLROOT/share/pkgconfig:$QTBASE/lib/pkgconfig;
> export PKG_CONFIG_SYSROOT_DIR=$INSTALLROOT; export
> PKG_CONFIG_SYSROOT_DIR=; pkg-config --list-all; )
>
> try this patch
>
> diff --git a/android/makelibs.sh b/android/makelibs.sh
> index f00d8bf67e..6da3421158 100755
> --- a/android/makelibs.sh
> +++ b/android/makelibs.sh
> @@ -954,6 +954,10 @@ cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE \
> -DCMAKE_BUILD_TYPE=Release \
> -DCMAKE_MAKE_PROGRAM=make \
> -DCMAKE_PREFIX_PATH="$INSTALLROOT" \
> + -DCMAKE_INCLUDE_PATH="$INSTALLROOT/include" \
> + -DCMAKE_LIBRARY_PATH="$INSTALLROOT/lib" \
> + -DIconv_INCLUDE_DIR="$INSTALLROOT/include" \
> + -DIconv_LIBRARY="$INSTALLROOT/lib/libiconv.a" \
> -DBUILD_SHARED_LIBS=ON \
> -DEXIV2_ENABLE_XMP=OFF \
> -DEXIV2_BUILD_SAMPLES=OFF \
>
> This will use the built version.
>
> Mark
>
>
With that patch and the config CONFIG=firetv-max, I ran distclean, built
libs and apk
It still fails with a slightly different error, instead of "iconv_open",
it now complains about "__sendto_chk"
10-12 09:43:10.402 15975 15998 I Qt : qt started
10-12 09:43:10.417 15975 15998 E AndroidRuntime: FATAL EXCEPTION:
qtMainLoopThread
10-12 09:43:10.417 15975 15998 E AndroidRuntime: Process:
org.mythtv.mythfrontend, PID: 15975
10-12 09:43:10.417 15975 15998 E AndroidRuntime:
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol
"__sendto_chk" referenced by
"/data/app/org.mythtv.mythfrontend-2/lib/arm/libexiv2.14.so"...
Output from your above command, but I think you will see the same on
your system. We already established that fire stick 4k fails with a
build that you did on your system.
(INSTALLROOT=`pwd`/mythinstall; export PKG_CONFIG_DIR=; export
PKG_CONFIG_LIBDIR=$INSTALLROOT/lib/pkgconfig:$INSTALLROOT/share/pkgconfig:$QTBASE/lib/pkgconfig;
export PKG_CONFIG_SYSROOT_DIR=$INSTALLROOT; export
PKG_CONFIG_SYSROOT_DIR=; pkg-config --list-all; )
exiv2 exiv2 - Exif and IPTC metadata library and tools
fftw3f FFTW - fast Fourier transform library
flac FLAC - Free Lossless Audio Codec Library
fontconfig Fontconfig - Font configuration and customization library
freetype2 FreeType 2 - A free, high-quality, and portable font engine.
fribidi GNU FriBidi - Unicode Bidirectional Algorithm Library
icu-i18n icu-i18n - International Components for Unicode:
Internationalization library
icu-io icu-io - International Components for Unicode: Stream and I/O
Library
icu-uc icu-uc - International Components for Unicode: Common and
Data libraries
libass libass - LibASS is an SSA/ASS subtitles rendering library
libbluray libbluray - library supporting Blu-ray playback
libcrypto OpenSSL-libcrypto - OpenSSL cryptography library
libssl OpenSSL-libssl - Secure Sockets Layer and cryptography libraries
libxml-2.0 libXML - libXML library version2.
libzip libzip - library for handling zip archives
lzo2 lzo2 - LZO - a real-time data compression library
ogg ogg - ogg is a library for manipulating ogg bitstreams
openssl OpenSSL - Secure Sockets Layer and cryptography libraries and
tools
samplerate samplerate - An audio Sample Rate Conversion library
soundtouch SoundTouch - SoundTouch is an open-source audio processing
library for changing the Tempo, Pitch and Playback Rates of audio
streams or files
taglib TagLib - Audio meta-data library
taglib_c TagLib C Bindings - Audio meta-data library (C bindings)
vorbis vorbis - vorbis is the primary Ogg Vorbis library
vorbisenc vorbisenc - vorbisenc is a library that provides a convenient
API for setting up an encoding environment using libvorbis
vorbisfile vorbisfile - vorbisfile is a library that provides a
convenient high-level API for decoding and basic manipulation of all
Vorbis I audio streams
Peter
More information about the mythtv-dev
mailing list