[mythtv] Android 32bit build
Mark Spieth
mark at digivation.com.au
Thu Aug 9 22:26:52 UTC 2018
On 8/10/2018 7:27 AM, Peter Bennett wrote:
>
>
>
> On 08/08/2018 08:14 PM, Mark Spieth wrote:
>> On 09/08/18 08:37, Peter Bennett wrote:
>>> I am trying to build the libraries for 32bit.
>>>
>>> liblzo fails in the configure "C compiler cannot create executables"
>>>
>>> makelibs.sh has, for 32bit, CPU="armv7-a"
>>>
>>> The configure runs this
>>>
>>> /home/peter/android/android-ndk/my-android-toolchain/bin/arm-linux-androideabi-gcc
>>> -isysroot
>>> /home/peter/android/android-ndk/my-android-toolchain/sysroot
>>> -mcpu=armv7-a conftest.c
>>>
>>> The error is
>>>
>>> arm-linux-androideabi-gcc: error: unrecognized argument in option
>>> '-mcpu=armv7-a'
>>> arm-linux-androideabi-gcc: note: valid arguments to '-mcpu=' are:
>>> arm1020e arm1020t arm1022e arm1026ej-s arm10e arm10tdmi arm1136j-s
>>> arm1136jf-s arm1156t2-s arm1156t2f-s arm1176jz-s arm1176jzf-s arm2
>>> arm250 arm3 arm6 arm60 arm600 arm610 arm620 arm7 arm70 arm700
>>> arm700i arm710 arm7100 arm710c arm710t arm720 arm720t arm740t
>>> arm7500 arm7500fe arm7d arm7di arm7dm arm7dmi arm7m arm7tdmi
>>> arm7tdmi-s arm8 arm810 arm9 arm920 arm920t arm922t arm926ej-s
>>> arm940t arm946e-s arm966e-s arm968e-s arm9e arm9tdmi cortex-a12
>>> cortex-a15 cortex-a15.cortex-a7 cortex-a5 cortex-a53 cortex-a57
>>> cortex-a57.cortex-a53 cortex-a7 cortex-a8 cortex-a9 cortex-m0
>>> cortex-m0plus cortex-m1 cortex-m3 cortex-m4 cortex-r4 cortex-r4f
>>> cortex-r5 cortex-r7 ep9312 fa526 fa606te fa626 fa626te fa726te
>>> fmp626 generic-armv7-a iwmmxt iwmmxt2 marvell-pj4 mpcore mpcorenovfp
>>> native strongarm strongarm110 strongarm1100 strongarm1110 xscale
>>>
>>> I tried changing CPU to use generic-armv7-a which is one of the
>>> "valid" arguments according to above message. That gives the same
>>> error, but this time not even displaying the list of "valid arguments".
>>>
>>> ndk is android-ndk-r13b
>>>
>>> Any suggestions?
>>>
>> try this.
>>
>> diff --git a/android/makelibs.sh b/android/makelibs.sh
>> index 9d737b2..8c54895 100755
>> --- a/android/makelibs.sh
>> +++ b/android/makelibs.sh
>> @@ -1179,17 +1179,15 @@ OPATH=$PATH
>> # ;;
>> # *)
>> #END
>> +export PATH="$PATH:$CROSSPATH"
>> ./configure \
>> - CFLAGS="-isysroot $SYSROOT -mcpu=$CPU" \
>> - CXXFLAGS="-isysroot $SYSROOT -mcpu=$CPU" \
>> - CC="$CROSSPATH/$MY_ANDROID_NDK_TOOLS_PREFIX-gcc" \
>> - CXX="$CROSSPATH/$MY_ANDROID_NDK_TOOLS_PREFIX-g++" \
>> - CPP="$CROSSPATH/$MY_ANDROID_NDK_TOOLS_PREFIX-cpp" \
>> - --host=arm-linux-androideabi \
>> + --host=$MY_ANDROID_NDK_TOOLS_PREFIX \
>> --prefix=$INSTALLROOT \
>> --enable-shared \
>> --enable-static && \
>> make clean && \
>> +CFLAGS="-isysroot $SYSROOT -mcpu=$CPU" \
>> +CXXFLAGS="-isysroot $SYSROOT -mcpu=$CPU" \
>> make -j$NCPUS src/liblzo2.la && \
>> make install-libLTLIBRARIES install-data-am
>> ERR=$?
>>
>> builds for me both 32 and 64 but untested on targets.
>>
>> Mark
>>
>>
> Thank you, it now builds and installs on my 32-bit tablet. However it
> does not run.
>
> D/dalvikvm( 6836): Trying to load lib
> /data/data/org.mythtv.mythfrontend/lib/libQt5Core.so 0x4199b580
> E/dalvikvm( 6836):
> dlopen("/data/data/org.mythtv.mythfrontend/lib/libQt5Core.so") failed:
> Cannot load library: soinfo_relocate(linker.cpp:976): cannot locate
> symbol "srand" referenced by "libQt5Core.so"...
> W/System.err( 6836): java.lang.reflect.InvocationTargetException
> ...
> W/System.err( 6836): Caused by: java.lang.UnsatisfiedLinkError: Cannot
> load library: soinfo_relocate(linker.cpp:976): cannot locate symbol
> "srand" referenced by "libQt5Core.so"...
>
> Some internet links about this -
>
> /For those stumbling onto this thread while having trouble with
> srand/atof on NDK r10c: Make sure you set your android target to 19.
> Your app should then work on Android 5 (21) as well as all lower
> versions.//
> /
> /if i use Android 19 to compile the codes that invoke srand(), because
> srand() is a static inline function, so it will invoke srand48
> instead, which means cocos2d-x depends on srand48 instead of srand.
> srand48 is defined in all Android versions, so there is not problem.//
> //i using Android 21+ to compiling the codes, srand() is defined like
> void srand(unsigned int);, so cocos2d-x depends on srand. Because
> srand is not defined below Android 21, so it will have problem if
> running on Android version below 21.//
> /
> My tablet has android 4.2.2, which should be ok with api version 21, I
> would think.
Ah 4.2.2.
I have a "special" build mode.
./makelibs.sh --oldarm all
./mythbuild --oldarm
It did work for me for 4.2.2 and 4.4 like my projector and my TV. 32 bit
only build too.
I just noticed that there may be some inconsistencies between makelibs
and mythbuild for ANDROID_NATIVE_API_LEVEL.
That may (or not) need to be resolved.
Also this is untested with newer lib additions as yet.
HTH
Mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mythtv.org/pipermail/mythtv-dev/attachments/20180810/0e7e5bc5/attachment.html>
More information about the mythtv-dev
mailing list