PJSIP Compilation is failing for MIPS as ABI with latest Android NDK toolchain

MH
Mehul Hirpara
Fri, Apr 7, 2017 5:07 AM

Hi All,

For me PJSIP compilation is failing for MIPS platform with following commands and with latest Android NDK tool-chain version 14.1.3816874.

Commands:

$export ANDROID_NDK_ROOT=/home/mehul/Android/Sdk/ndk-bundle
$export APP_PLATFORM=android-18
$NDK_TOOLCHAIN_VERSION=4.9 TARGET_ABI=mips ./configure-android --use-ndk-cflags
$make dep
$make clean
$make

Failure Log:

/home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find crtbegin_dynamic.o: No such file or directory
/home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -lm
/home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -lc
/home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -ldl
/home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -lOpenSLES
/home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -llog
/home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -lGLESv2
/home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -lEGL
/home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -landroid
/home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -lc
/home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -ldl
/home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find crtend_android.o: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [../bin/pjlib-test-mips64el-u    nknown-linux-android] Error 1
make[2]: Leaving directory /home/mehul/wo rkspace/feature/pjproject/trunk/pjlib/build' make[1]: *** [pjlib-test-mips64el-unknown-linux-android] Error 2 make[1]: Leaving directory /home/mehul/workspace/feature/pjproject/trunk/pjlib/build'
make: *** [all] Error 1

Analysis:

This failure is quit know and in most cases people suggested to provide correct system root path. In my case I found system root path is correct and is as below:

--sysroot=/home/mehul/Android/Sdk/ndk-bundle/platforms/android-18/arch-mips

crtbegin_dynamic.o and other files are present at

/home/mehul/Android/Sdk/ndk-bundle/platforms/android-18/arch-mips/usr/lib

but system is look it at

/home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/mips64el-linux-android/4.9.x/

Not sure why?

Same is working for "armeabi" platform but not for "mips"

Workaround:

I changed my tool-chain to older one "android-ndk-r9" and all goes fine.

$export ANDROID_NDK_ROOT=/home/mehul/Android/Sdk/android-ndk-r9

$export APP_PLATFORM=android-18

$NDK_TOOLCHAIN_VERSION=4.8 TARGET_ABI=mips ./configure-android --use-ndk-cflags

$make dep
$make clean
$make

I do not want to rely on workaround if any fix is available. Please let me know if any one has encountered with similar issue and any fix is available.

Thanks in advance.

Regards,

Mehul Hirpara

This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. If you are not the intended recipient you are notified that disclosing, copying, distributing or taking any action in reliance on the contents of this information is strictly prohibited.

Hi All, For me PJSIP compilation is failing for MIPS platform with following commands and with latest Android NDK tool-chain version 14.1.3816874. Commands: $export ANDROID_NDK_ROOT=/home/mehul/Android/Sdk/ndk-bundle $export APP_PLATFORM=android-18 $NDK_TOOLCHAIN_VERSION=4.9 TARGET_ABI=mips ./configure-android --use-ndk-cflags $make dep $make clean $make Failure Log: /home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find crtbegin_dynamic.o: No such file or directory /home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -lm /home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -lc /home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -ldl /home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -lOpenSLES /home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -llog /home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -lGLESv2 /home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -lEGL /home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -landroid /home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -lc /home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find -ldl /home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/mips64el-linux-android/4.9.x/../../../../ mips64el-linux-android/bin/ld: cannot find crtend_android.o: No such file or directory collect2: error: ld returned 1 exit status make[2]: *** [../bin/pjlib-test-mips64el-u nknown-linux-android] Error 1 make[2]: Leaving directory `/home/mehul/wo rkspace/feature/pjproject/trunk/pjlib/build' make[1]: *** [pjlib-test-mips64el-unknown-linux-android] Error 2 make[1]: Leaving directory `/home/mehul/workspace/feature/pjproject/trunk/pjlib/build' make: *** [all] Error 1 Analysis: This failure is quit know and in most cases people suggested to provide correct system root path. In my case I found system root path is correct and is as below: --sysroot=/home/mehul/Android/Sdk/ndk-bundle/platforms/android-18/arch-mips crtbegin_dynamic.o and other files are present at /home/mehul/Android/Sdk/ndk-bundle/platforms/android-18/arch-mips/usr/lib but system is look it at /home/mehul/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/mips64el-linux-android/4.9.x/ Not sure why? Same is working for "armeabi" platform but not for "mips" Workaround: I changed my tool-chain to older one "android-ndk-r9" and all goes fine. $export ANDROID_NDK_ROOT=/home/mehul/Android/Sdk/android-ndk-r9 $export APP_PLATFORM=android-18 $NDK_TOOLCHAIN_VERSION=4.8 TARGET_ABI=mips ./configure-android --use-ndk-cflags $make dep $make clean $make I do not want to rely on workaround if any fix is available. Please let me know if any one has encountered with similar issue and any fix is available. Thanks in advance. Regards, Mehul Hirpara This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. If you are not the intended recipient you are notified that disclosing, copying, distributing or taking any action in reliance on the contents of this information is strictly prohibited.