Re: [pjsip] pjsip Digest, Vol 141, Issue 6

AM
Aleksandar Milenkovic
Thu, May 9, 2019 5:23 PM

Hi Li Bing

you might wanna try using android-ndk-r13b instead of android-ndk-r19c and
it will probably work out alright.

The source builds fine for "armeabi" for for "armeabi-v7a" and v8, it
doesn't work on newer NDKs. i think 13b is the magic number you're looking
for.

On Thu, May 9, 2019 at 6:01 PM pjsip-request@lists.pjsip.org wrote:

Send pjsip mailing list submissions to
pjsip@lists.pjsip.org

To subscribe or unsubscribe via the World Wide Web, visit
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
or, via email, send a message with subject or body 'help' to
pjsip-request@lists.pjsip.org

You can reach the person managing the list at
pjsip-owner@lists.pjsip.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of pjsip digest..."

Today's Topics:

1. Android swig "undefined reference to
   'pjsua_vid_conf_enum_ports'" (Li, Bing)

Message: 1
Date: Wed, 8 May 2019 17:35:40 -0400
From: "Li, Bing" bingli1000@gmail.com
To: pjsip@lists.pjsip.org
Subject: [pjsip] Android swig "undefined reference to
'pjsua_vid_conf_enum_ports'"
Message-ID:
<CAP9o=2=_
8BUxUm33Qd5ss_8qHvg10vPKHqjjE5H0zDZTN0kGdg@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Hi,

I'm trying to git/master (316c315) for our Android app.

#TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags
This command built successfully.

But it failed when I run "make" in pjsip-apps/src/swig.

Any idea about the error "undefined reference to
'pjsua_vid_conf_enum_ports'" ?

root@Ubuntu1604-server-x8664:/opt/pjproject/pjsip-apps/src/swig# make
for dir in java csharp; do
if make  -C $dir all; then
true;
else
exit 1;
fi;
done
make[1]: Entering directory '/opt/pjproject/pjsip-apps/src/swig/java'
mkdir -p android/app/src/main/jniLibs/armeabi-v7a
/opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
-shared -o android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so
output/pjsua2_wrap.o
-shared -lgcc -Wl,--exclude-libs,libgcc.a -latomic
-Wl,--exclude-libs,libatomic.a -target armv7-none-linux-androideabi19
-no-canonical-prefixes -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack
-Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lc
-lm -fexceptions -frtti -DPJ_AUTOCONF=1 -target
armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections
-funwind-tables -no-canonical-prefixes --sysroot
/opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/sysroot
-Wno-invalid-command-line-argument -Wno-unused-command-line-argument
-fno-addrsig -fpic -mfpu=vfpv3-d16 -march=armv7-a -mthumb -Oz -DNDEBUG
-Ijni -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security
-I/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/include
-DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1
-I/opt/pjproject/pjlib/include -I/opt/pjproject/pjlib-util/include
-I/opt/pjproject/pjnath/include -I/opt/pjproject/pjmedia/include
-I/opt/pjproject/pjsip/include -fPIC -D__ANDROID__
-L/opt/pjproject/pjlib/lib -L/opt/pjproject/pjlib-util/lib
-L/opt/pjproject/pjnath/lib -L/opt/pjproject/pjmedia/lib
-L/opt/pjproject/pjsip/lib -L/opt/pjproject/third_party/lib
--sysroot=
-L/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/
-lpjsua2-armv7-unknown-linux-android -lstdc++
-lpjsua-armv7-unknown-linux-android -lpjsip-ua-armv7-unknown-linux-android
-lpjsip-simple-armv7-unknown-linux-android
-lpjsip-armv7-unknown-linux-android
-lpjmedia-codec-armv7-unknown-linux-android
-lpjmedia-armv7-unknown-linux-android
-lpjmedia-videodev-armv7-unknown-linux-android
-lpjmedia-audiodev-armv7-unknown-linux-android
-lpjmedia-armv7-unknown-linux-android -lpjnath-armv7-unknown-linux-android
-lpjlib-util-armv7-unknown-linux-android
-lsrtp-armv7-unknown-linux-android -lresample-armv7-unknown-linux-android
-lgsmcodec-armv7-unknown-linux-android -lspeex-armv7-unknown-linux-android
-lilbccodec-armv7-unknown-linux-android
-lg7221codec-armv7-unknown-linux-android -lyuv-armv7-unknown-linux-android
-lwebrtc-armv7-unknown-linux-android  -lpj-armv7-unknown-linux-android -lm
-lc++_static -lc++abi  -lc -lgcc -ldl -lOpenSLES -llog -lGLESv2 -lEGL
-landroid -Wl,-soname,libpjsua2.so

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(endpoint.o):endpoint.cpp:function
pj::Endpoint::mediaEnumVidPorts() const: error: undefined reference to
'pjsua_vid_conf_enum_ports'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::registerMediaPort(void*, pj_pool_t*): error: undefined
reference to 'pjsua_vid_conf_add_port'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::unregisterMediaPort(): error: undefined reference to
'pjsua_vid_conf_remove_port'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::getPortInfoFromId(int): error: undefined reference to
'pjsua_vid_conf_get_port_info'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::startTransmit(pj::VideoMedia const&,
pj::VideoMediaTransmitParam const&) const: error: undefined reference to
'pjsua_vid_conf_connect'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::stopTransmit(pj::VideoMedia const&) const: error: undefined
reference to 'pjsua_vid_conf_disconnect'
clang++: error: linker command failed with exit code 1 (use -v to see
invocation)
Makefile:165: recipe for target
'android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so' failed
make[1]: *** [android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so] Error
1
make[1]: Leaving directory '/opt/pjproject/pjsip-apps/src/swig/java'
Makefile:27: recipe for target 'all' failed
make: *** [all] Error 1

Thanks,
Bing

Hi Li Bing you might wanna try using android-ndk-r13b instead of android-ndk-r19c and it will probably work out alright. The source builds fine for "armeabi" for for "armeabi-v7a" and v8, it doesn't work on newer NDKs. i think 13b is the magic number you're looking for. On Thu, May 9, 2019 at 6:01 PM <pjsip-request@lists.pjsip.org> wrote: > Send pjsip mailing list submissions to > pjsip@lists.pjsip.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > or, via email, send a message with subject or body 'help' to > pjsip-request@lists.pjsip.org > > You can reach the person managing the list at > pjsip-owner@lists.pjsip.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of pjsip digest..." > > > Today's Topics: > > 1. Android swig "undefined reference to > 'pjsua_vid_conf_enum_ports'" (Li, Bing) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Wed, 8 May 2019 17:35:40 -0400 > From: "Li, Bing" <bingli1000@gmail.com> > To: pjsip@lists.pjsip.org > Subject: [pjsip] Android swig "undefined reference to > 'pjsua_vid_conf_enum_ports'" > Message-ID: > <CAP9o=2=_ > 8BUxUm33Qd5ss_8qHvg10vPKHqjjE5H0zDZTN0kGdg@mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > Hi, > > I'm trying to git/master (316c315) for our Android app. > > #TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags > This command built successfully. > > But it failed when I run "make" in pjsip-apps/src/swig. > > Any idea about the error "undefined reference to > 'pjsua_vid_conf_enum_ports'" ? > > root@Ubuntu1604-server-x8664:/opt/pjproject/pjsip-apps/src/swig# make > for dir in java csharp; do \ > if make -C $dir all; then \ > true; \ > else \ > exit 1; \ > fi; \ > done > make[1]: Entering directory '/opt/pjproject/pjsip-apps/src/swig/java' > mkdir -p android/app/src/main/jniLibs/armeabi-v7a > /opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ > -shared -o android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so > output/pjsua2_wrap.o \ > -shared -lgcc -Wl,--exclude-libs,libgcc.a -latomic > -Wl,--exclude-libs,libatomic.a -target armv7-none-linux-androideabi19 > -no-canonical-prefixes -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack > -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lc > -lm -fexceptions -frtti -DPJ_AUTOCONF=1 -target > armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections > -funwind-tables -no-canonical-prefixes --sysroot > /opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/sysroot > -Wno-invalid-command-line-argument -Wno-unused-command-line-argument > -fno-addrsig -fpic -mfpu=vfpv3-d16 -march=armv7-a -mthumb -Oz -DNDEBUG > -Ijni -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security > -I/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/include > -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 > -I/opt/pjproject/pjlib/include -I/opt/pjproject/pjlib-util/include > -I/opt/pjproject/pjnath/include -I/opt/pjproject/pjmedia/include > -I/opt/pjproject/pjsip/include -fPIC -D__ANDROID__ > -L/opt/pjproject/pjlib/lib -L/opt/pjproject/pjlib-util/lib > -L/opt/pjproject/pjnath/lib -L/opt/pjproject/pjmedia/lib > -L/opt/pjproject/pjsip/lib -L/opt/pjproject/third_party/lib > --sysroot= > -L/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/ > -lpjsua2-armv7-unknown-linux-android -lstdc++ > -lpjsua-armv7-unknown-linux-android -lpjsip-ua-armv7-unknown-linux-android > -lpjsip-simple-armv7-unknown-linux-android > -lpjsip-armv7-unknown-linux-android > -lpjmedia-codec-armv7-unknown-linux-android > -lpjmedia-armv7-unknown-linux-android > -lpjmedia-videodev-armv7-unknown-linux-android > -lpjmedia-audiodev-armv7-unknown-linux-android > -lpjmedia-armv7-unknown-linux-android -lpjnath-armv7-unknown-linux-android > -lpjlib-util-armv7-unknown-linux-android > -lsrtp-armv7-unknown-linux-android -lresample-armv7-unknown-linux-android > -lgsmcodec-armv7-unknown-linux-android -lspeex-armv7-unknown-linux-android > -lilbccodec-armv7-unknown-linux-android > -lg7221codec-armv7-unknown-linux-android -lyuv-armv7-unknown-linux-android > -lwebrtc-armv7-unknown-linux-android -lpj-armv7-unknown-linux-android -lm > -lc++_static -lc++abi -lc -lgcc -ldl -lOpenSLES -llog -lGLESv2 -lEGL > -landroid -Wl,-soname,libpjsua2.so > > /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(endpoint.o):endpoint.cpp:function > pj::Endpoint::mediaEnumVidPorts() const: error: undefined reference to > 'pjsua_vid_conf_enum_ports' > > /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function > pj::VideoMedia::registerMediaPort(void*, pj_pool_t*): error: undefined > reference to 'pjsua_vid_conf_add_port' > > /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function > pj::VideoMedia::unregisterMediaPort(): error: undefined reference to > 'pjsua_vid_conf_remove_port' > > /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function > pj::VideoMedia::getPortInfoFromId(int): error: undefined reference to > 'pjsua_vid_conf_get_port_info' > > /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function > pj::VideoMedia::startTransmit(pj::VideoMedia const&, > pj::VideoMediaTransmitParam const&) const: error: undefined reference to > 'pjsua_vid_conf_connect' > > /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function > pj::VideoMedia::stopTransmit(pj::VideoMedia const&) const: error: undefined > reference to 'pjsua_vid_conf_disconnect' > clang++: error: linker command failed with exit code 1 (use -v to see > invocation) > Makefile:165: recipe for target > 'android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so' failed > make[1]: *** [android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so] Error > 1 > make[1]: Leaving directory '/opt/pjproject/pjsip-apps/src/swig/java' > Makefile:27: recipe for target 'all' failed > make: *** [all] Error 1 > > > Thanks, > Bing >
LB
Li, Bing
Thu, May 9, 2019 6:57 PM

Hi Aleksandar,

Thanks for your reply.

Google recently announced that 64 bit has to be supported. I'm trying to
build arm64.
Of course, armv7 needs to be supported anyway. :)

I've downloaded r13b but it failed when I was trying to build pjproject
itself.

#export ANDROID_NDK_ROOT=/opt/android-ndk-r13b
#TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags
#make dep && make clean && make

mkdir -p output/libyuv-armv7-unknown-linux-android/
/opt/android-ndk-r13b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -c
-fomit-frame-pointer -Wall -DPJ_AUTOCONF=1  -gcc-toolchain
/opt/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
-fpic -ffunction-sections -funwind-tables
-Wno-invalid-command-line-argument -Wno-unused-command-line-argument
-no-canonical-prefixes -fno-integrated-as -target
armv7-none-linux-androideabi -march=armv7-a -mfloat-abi=softfp
-mfpu=vfpv3-d16 -mthumb -Os -DNDEBUG -Ijni -DANDROID -Wa,--noexecstack
-Wformat -Werror=format-security -isystem
/opt/android-ndk-r13b/platforms/android-19/arch-arm/usr/include
-I/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include
-DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1    -I. -I../../yuv/include
-I../../../pjlib/include
-o output/libyuv-armv7-unknown-linux-android/compare.o
../../yuv/source/compare.cc
In file included from ../../yuv/source/compare.cc:14:
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:661:91:
error: use of undeclared identifier 'acosl'
inline _LIBCPP_INLINE_VISIBILITY long double acos(long double __lcpp_x)
_NOEXCEPT {return acosl(__lcpp_x);}

          ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:673:91:
error: use of undeclared identifier 'asinl'
inline _LIBCPP_INLINE_VISIBILITY long double asin(long double __lcpp_x)
_NOEXCEPT {return asinl(__lcpp_x);}

          ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:685:91:
error: use of undeclared identifier 'atanl'
inline _LIBCPP_INLINE_VISIBILITY long double atan(long double __lcpp_x)
_NOEXCEPT {return atanl(__lcpp_x);}

          ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:697:114:
error: use of undeclared identifier 'atan2l'
inline _LIBCPP_INLINE_VISIBILITY long double atan2(long double __lcpp_y,
long double __lcpp_x) _NOEXCEPT {return atan2l(__lcpp_y, __lcpp_x);}

                                 ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:732:90:
error: use of undeclared identifier 'cosl'
inline _LIBCPP_INLINE_VISIBILITY long double cos(long double __lcpp_x)
_NOEXCEPT {return cosl(__lcpp_x);}

         ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:744:91:
error: use of undeclared identifier 'coshl'
inline _LIBCPP_INLINE_VISIBILITY long double cosh(long double __lcpp_x)
_NOEXCEPT {return coshl(__lcpp_x);}

          ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:756:90:
error: use of undeclared identifier 'expl'
inline _LIBCPP_INLINE_VISIBILITY long double exp(long double __lcpp_x)
_NOEXCEPT {return expl(__lcpp_x);}

         ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:792:113:
error: use of undeclared identifier 'fmodl'
inline _LIBCPP_INLINE_VISIBILITY long double fmod(long double __lcpp_x,
long double __lcpp_y) _NOEXCEPT {return fmodl(__lcpp_x, __lcpp_y);}

                                ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:839:90:
error: use of undeclared identifier 'logl'
inline _LIBCPP_INLINE_VISIBILITY long double log(long double __lcpp_x)
_NOEXCEPT {return logl(__lcpp_x);}

         ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:851:92:
error: use of undeclared identifier 'log10l'
inline _LIBCPP_INLINE_VISIBILITY long double log10(long double __lcpp_x)
_NOEXCEPT {return log10l(__lcpp_x);}

           ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:863:114:
error: use of undeclared identifier 'modfl'
inline _LIBCPP_INLINE_VISIBILITY long double modf(long double __lcpp_x,
long double* __lcpp_y) _NOEXCEPT {return modfl(__lcpp_x, __lcpp_y);}

                                 ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:870:112:
error: use of undeclared identifier 'powl'
inline _LIBCPP_INLINE_VISIBILITY long double pow(long double __lcpp_x, long
double __lcpp_y) _NOEXCEPT {return powl(__lcpp_x, __lcpp_y);}

                               ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:893:90:
error: use of undeclared identifier 'sinl'
inline _LIBCPP_INLINE_VISIBILITY long double sin(long double __lcpp_x)
_NOEXCEPT {return sinl(__lcpp_x);}

         ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:905:91:
error: use of undeclared identifier 'sinhl'
inline _LIBCPP_INLINE_VISIBILITY long double sinh(long double __lcpp_x)
_NOEXCEPT {return sinhl(__lcpp_x);}

          ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:917:91:
error: use of undeclared identifier 'sqrtl'
inline _LIBCPP_INLINE_VISIBILITY long double sqrt(long double __lcpp_x)
_NOEXCEPT {return sqrtl(__lcpp_x);}

          ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:931:90:
error: use of undeclared identifier 'tanl'
inline _LIBCPP_INLINE_VISIBILITY long double tan(long double __lcpp_x)
_NOEXCEPT {return tanl(__lcpp_x);}

         ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:943:91:
error: use of undeclared identifier 'tanhl'
inline _LIBCPP_INLINE_VISIBILITY long double tanh(long double __lcpp_x)
_NOEXCEPT {return tanhl(__lcpp_x);}

          ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:955:92:
error: use of undeclared identifier 'acoshl'
inline _LIBCPP_INLINE_VISIBILITY long double acosh(long double __lcpp_x)
_NOEXCEPT {return acoshl(__lcpp_x);}

           ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:967:92:
error: use of undeclared identifier 'asinhl'
inline _LIBCPP_INLINE_VISIBILITY long double asinh(long double __lcpp_x)
_NOEXCEPT {return asinhl(__lcpp_x);}

           ^

fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
/opt/pjproject/build/rules.mak:178: recipe for target
'output/libyuv-armv7-unknown-linux-android/compare.o' failed
make[3]: *** [output/libyuv-armv7-unknown-linux-android/compare.o] Error 1
make[3]: Leaving directory '/opt/pjproject/third_party/build/yuv'
Makefile:100: recipe for target 'libyuv-armv7-unknown-linux-android.a'
failed
make[2]: *** [libyuv-armv7-unknown-linux-android.a] Error 2
make[2]: Leaving directory '/opt/pjproject/third_party/build/yuv'
Makefile:7: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/opt/pjproject/third_party/build'
Makefile:14: recipe for target 'all' failed
make: *** [all] Error 1

On Thu, May 9, 2019 at 1:24 PM Aleksandar Milenkovic shark@lotusflare.com
wrote:

Hi Li Bing

you might wanna try using android-ndk-r13b instead of android-ndk-r19c and
it will probably work out alright.

The source builds fine for "armeabi" for for "armeabi-v7a" and v8, it
doesn't work on newer NDKs. i think 13b is the magic number you're looking
for.

On Thu, May 9, 2019 at 6:01 PM pjsip-request@lists.pjsip.org wrote:

Send pjsip mailing list submissions to
pjsip@lists.pjsip.org

To subscribe or unsubscribe via the World Wide Web, visit
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
or, via email, send a message with subject or body 'help' to
pjsip-request@lists.pjsip.org

You can reach the person managing the list at
pjsip-owner@lists.pjsip.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of pjsip digest..."

Today's Topics:

1. Android swig "undefined reference to
   'pjsua_vid_conf_enum_ports'" (Li, Bing)

Message: 1
Date: Wed, 8 May 2019 17:35:40 -0400
From: "Li, Bing" bingli1000@gmail.com
To: pjsip@lists.pjsip.org
Subject: [pjsip] Android swig "undefined reference to
'pjsua_vid_conf_enum_ports'"
Message-ID:
<CAP9o=2=_
8BUxUm33Qd5ss_8qHvg10vPKHqjjE5H0zDZTN0kGdg@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Hi,

I'm trying to git/master (316c315) for our Android app.

#TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags
This command built successfully.

But it failed when I run "make" in pjsip-apps/src/swig.

Any idea about the error "undefined reference to
'pjsua_vid_conf_enum_ports'" ?

root@Ubuntu1604-server-x8664:/opt/pjproject/pjsip-apps/src/swig# make
for dir in java csharp; do
if make  -C $dir all; then
true;
else
exit 1;
fi;
done
make[1]: Entering directory '/opt/pjproject/pjsip-apps/src/swig/java'
mkdir -p android/app/src/main/jniLibs/armeabi-v7a
/opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
-shared -o android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so
output/pjsua2_wrap.o
-shared -lgcc -Wl,--exclude-libs,libgcc.a -latomic
-Wl,--exclude-libs,libatomic.a -target armv7-none-linux-androideabi19
-no-canonical-prefixes -Wl,--build-id -Wl,--no-undefined
-Wl,-z,noexecstack
-Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lc
-lm -fexceptions -frtti -DPJ_AUTOCONF=1 -target
armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections
-funwind-tables -no-canonical-prefixes --sysroot
/opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/sysroot
-Wno-invalid-command-line-argument -Wno-unused-command-line-argument
-fno-addrsig -fpic -mfpu=vfpv3-d16 -march=armv7-a -mthumb -Oz -DNDEBUG
-Ijni -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security
-I/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/include
-DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1
-I/opt/pjproject/pjlib/include -I/opt/pjproject/pjlib-util/include
-I/opt/pjproject/pjnath/include -I/opt/pjproject/pjmedia/include
-I/opt/pjproject/pjsip/include -fPIC -D__ANDROID__
-L/opt/pjproject/pjlib/lib -L/opt/pjproject/pjlib-util/lib
-L/opt/pjproject/pjnath/lib -L/opt/pjproject/pjmedia/lib
-L/opt/pjproject/pjsip/lib -L/opt/pjproject/third_party/lib
--sysroot=
-L/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/
-lpjsua2-armv7-unknown-linux-android -lstdc++
-lpjsua-armv7-unknown-linux-android -lpjsip-ua-armv7-unknown-linux-android
-lpjsip-simple-armv7-unknown-linux-android
-lpjsip-armv7-unknown-linux-android
-lpjmedia-codec-armv7-unknown-linux-android
-lpjmedia-armv7-unknown-linux-android
-lpjmedia-videodev-armv7-unknown-linux-android
-lpjmedia-audiodev-armv7-unknown-linux-android
-lpjmedia-armv7-unknown-linux-android -lpjnath-armv7-unknown-linux-android
-lpjlib-util-armv7-unknown-linux-android
-lsrtp-armv7-unknown-linux-android -lresample-armv7-unknown-linux-android
-lgsmcodec-armv7-unknown-linux-android -lspeex-armv7-unknown-linux-android
-lilbccodec-armv7-unknown-linux-android
-lg7221codec-armv7-unknown-linux-android -lyuv-armv7-unknown-linux-android
-lwebrtc-armv7-unknown-linux-android  -lpj-armv7-unknown-linux-android -lm
-lc++_static -lc++abi  -lc -lgcc -ldl -lOpenSLES -llog -lGLESv2 -lEGL
-landroid -Wl,-soname,libpjsua2.so

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(endpoint.o):endpoint.cpp:function
pj::Endpoint::mediaEnumVidPorts() const: error: undefined reference to
'pjsua_vid_conf_enum_ports'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::registerMediaPort(void*, pj_pool_t*): error: undefined
reference to 'pjsua_vid_conf_add_port'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::unregisterMediaPort(): error: undefined reference to
'pjsua_vid_conf_remove_port'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::getPortInfoFromId(int): error: undefined reference to
'pjsua_vid_conf_get_port_info'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::startTransmit(pj::VideoMedia const&,
pj::VideoMediaTransmitParam const&) const: error: undefined reference to
'pjsua_vid_conf_connect'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::stopTransmit(pj::VideoMedia const&) const: error:
undefined
reference to 'pjsua_vid_conf_disconnect'
clang++: error: linker command failed with exit code 1 (use -v to see
invocation)
Makefile:165: recipe for target
'android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so' failed
make[1]: *** [android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so]
Error 1
make[1]: Leaving directory '/opt/pjproject/pjsip-apps/src/swig/java'
Makefile:27: recipe for target 'all' failed
make: *** [all] Error 1

Thanks,
Bing

Hi Aleksandar, Thanks for your reply. Google recently announced that 64 bit has to be supported. I'm trying to build arm64. Of course, armv7 needs to be supported anyway. :) I've downloaded r13b but it failed when I was trying to build pjproject itself. #export ANDROID_NDK_ROOT=/opt/*android-ndk-r13b* #TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags #make dep && make clean && make mkdir -p output/libyuv-armv7-unknown-linux-android/ /opt/android-ndk-r13b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -c -fomit-frame-pointer -Wall -DPJ_AUTOCONF=1 -gcc-toolchain /opt/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 -fpic -ffunction-sections -funwind-tables -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -fno-integrated-as -target armv7-none-linux-androideabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Os -DNDEBUG -Ijni -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -isystem /opt/android-ndk-r13b/platforms/android-19/arch-arm/usr/include -I/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 -I. -I../../yuv/include -I../../../pjlib/include \ -o output/libyuv-armv7-unknown-linux-android/compare.o \ ../../yuv/source/compare.cc In file included from ../../yuv/source/compare.cc:14: /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:661:91: error: use of undeclared identifier 'acosl' inline _LIBCPP_INLINE_VISIBILITY long double acos(long double __lcpp_x) _NOEXCEPT {return acosl(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:673:91: error: use of undeclared identifier 'asinl' inline _LIBCPP_INLINE_VISIBILITY long double asin(long double __lcpp_x) _NOEXCEPT {return asinl(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:685:91: error: use of undeclared identifier 'atanl' inline _LIBCPP_INLINE_VISIBILITY long double atan(long double __lcpp_x) _NOEXCEPT {return atanl(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:697:114: error: use of undeclared identifier 'atan2l' inline _LIBCPP_INLINE_VISIBILITY long double atan2(long double __lcpp_y, long double __lcpp_x) _NOEXCEPT {return atan2l(__lcpp_y, __lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:732:90: error: use of undeclared identifier 'cosl' inline _LIBCPP_INLINE_VISIBILITY long double cos(long double __lcpp_x) _NOEXCEPT {return cosl(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:744:91: error: use of undeclared identifier 'coshl' inline _LIBCPP_INLINE_VISIBILITY long double cosh(long double __lcpp_x) _NOEXCEPT {return coshl(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:756:90: error: use of undeclared identifier 'expl' inline _LIBCPP_INLINE_VISIBILITY long double exp(long double __lcpp_x) _NOEXCEPT {return expl(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:792:113: error: use of undeclared identifier 'fmodl' inline _LIBCPP_INLINE_VISIBILITY long double fmod(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return fmodl(__lcpp_x, __lcpp_y);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:839:90: error: use of undeclared identifier 'logl' inline _LIBCPP_INLINE_VISIBILITY long double log(long double __lcpp_x) _NOEXCEPT {return logl(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:851:92: error: use of undeclared identifier 'log10l' inline _LIBCPP_INLINE_VISIBILITY long double log10(long double __lcpp_x) _NOEXCEPT {return log10l(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:863:114: error: use of undeclared identifier 'modfl' inline _LIBCPP_INLINE_VISIBILITY long double modf(long double __lcpp_x, long double* __lcpp_y) _NOEXCEPT {return modfl(__lcpp_x, __lcpp_y);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:870:112: error: use of undeclared identifier 'powl' inline _LIBCPP_INLINE_VISIBILITY long double pow(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return powl(__lcpp_x, __lcpp_y);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:893:90: error: use of undeclared identifier 'sinl' inline _LIBCPP_INLINE_VISIBILITY long double sin(long double __lcpp_x) _NOEXCEPT {return sinl(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:905:91: error: use of undeclared identifier 'sinhl' inline _LIBCPP_INLINE_VISIBILITY long double sinh(long double __lcpp_x) _NOEXCEPT {return sinhl(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:917:91: error: use of undeclared identifier 'sqrtl' inline _LIBCPP_INLINE_VISIBILITY long double sqrt(long double __lcpp_x) _NOEXCEPT {return sqrtl(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:931:90: error: use of undeclared identifier 'tanl' inline _LIBCPP_INLINE_VISIBILITY long double tan(long double __lcpp_x) _NOEXCEPT {return tanl(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:943:91: error: use of undeclared identifier 'tanhl' inline _LIBCPP_INLINE_VISIBILITY long double tanh(long double __lcpp_x) _NOEXCEPT {return tanhl(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:955:92: error: use of undeclared identifier 'acoshl' inline _LIBCPP_INLINE_VISIBILITY long double acosh(long double __lcpp_x) _NOEXCEPT {return acoshl(__lcpp_x);} ^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:967:92: error: use of undeclared identifier 'asinhl' inline _LIBCPP_INLINE_VISIBILITY long double asinh(long double __lcpp_x) _NOEXCEPT {return asinhl(__lcpp_x);} ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. /opt/pjproject/build/rules.mak:178: recipe for target 'output/libyuv-armv7-unknown-linux-android/compare.o' failed make[3]: *** [output/libyuv-armv7-unknown-linux-android/compare.o] Error 1 make[3]: Leaving directory '/opt/pjproject/third_party/build/yuv' Makefile:100: recipe for target 'libyuv-armv7-unknown-linux-android.a' failed make[2]: *** [libyuv-armv7-unknown-linux-android.a] Error 2 make[2]: Leaving directory '/opt/pjproject/third_party/build/yuv' Makefile:7: recipe for target 'all' failed make[1]: *** [all] Error 1 make[1]: Leaving directory '/opt/pjproject/third_party/build' Makefile:14: recipe for target 'all' failed make: *** [all] Error 1 On Thu, May 9, 2019 at 1:24 PM Aleksandar Milenkovic <shark@lotusflare.com> wrote: > Hi Li Bing > > you might wanna try using android-ndk-r13b instead of android-ndk-r19c and > it will probably work out alright. > > The source builds fine for "armeabi" for for "armeabi-v7a" and v8, it > doesn't work on newer NDKs. i think 13b is the magic number you're looking > for. > > On Thu, May 9, 2019 at 6:01 PM <pjsip-request@lists.pjsip.org> wrote: > >> Send pjsip mailing list submissions to >> pjsip@lists.pjsip.org >> >> To subscribe or unsubscribe via the World Wide Web, visit >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >> or, via email, send a message with subject or body 'help' to >> pjsip-request@lists.pjsip.org >> >> You can reach the person managing the list at >> pjsip-owner@lists.pjsip.org >> >> When replying, please edit your Subject line so it is more specific >> than "Re: Contents of pjsip digest..." >> >> >> Today's Topics: >> >> 1. Android swig "undefined reference to >> 'pjsua_vid_conf_enum_ports'" (Li, Bing) >> >> >> ---------------------------------------------------------------------- >> >> Message: 1 >> Date: Wed, 8 May 2019 17:35:40 -0400 >> From: "Li, Bing" <bingli1000@gmail.com> >> To: pjsip@lists.pjsip.org >> Subject: [pjsip] Android swig "undefined reference to >> 'pjsua_vid_conf_enum_ports'" >> Message-ID: >> <CAP9o=2=_ >> 8BUxUm33Qd5ss_8qHvg10vPKHqjjE5H0zDZTN0kGdg@mail.gmail.com> >> Content-Type: text/plain; charset="utf-8" >> >> Hi, >> >> I'm trying to git/master (316c315) for our Android app. >> >> #TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags >> This command built successfully. >> >> But it failed when I run "make" in pjsip-apps/src/swig. >> >> Any idea about the error "undefined reference to >> 'pjsua_vid_conf_enum_ports'" ? >> >> root@Ubuntu1604-server-x8664:/opt/pjproject/pjsip-apps/src/swig# make >> for dir in java csharp; do \ >> if make -C $dir all; then \ >> true; \ >> else \ >> exit 1; \ >> fi; \ >> done >> make[1]: Entering directory '/opt/pjproject/pjsip-apps/src/swig/java' >> mkdir -p android/app/src/main/jniLibs/armeabi-v7a >> /opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ >> -shared -o android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so >> output/pjsua2_wrap.o \ >> -shared -lgcc -Wl,--exclude-libs,libgcc.a -latomic >> -Wl,--exclude-libs,libatomic.a -target armv7-none-linux-androideabi19 >> -no-canonical-prefixes -Wl,--build-id -Wl,--no-undefined >> -Wl,-z,noexecstack >> -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lc >> -lm -fexceptions -frtti -DPJ_AUTOCONF=1 -target >> armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections >> -funwind-tables -no-canonical-prefixes --sysroot >> /opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/sysroot >> -Wno-invalid-command-line-argument -Wno-unused-command-line-argument >> -fno-addrsig -fpic -mfpu=vfpv3-d16 -march=armv7-a -mthumb -Oz -DNDEBUG >> -Ijni -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security >> -I/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/include >> -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 >> -I/opt/pjproject/pjlib/include -I/opt/pjproject/pjlib-util/include >> -I/opt/pjproject/pjnath/include -I/opt/pjproject/pjmedia/include >> -I/opt/pjproject/pjsip/include -fPIC -D__ANDROID__ >> -L/opt/pjproject/pjlib/lib -L/opt/pjproject/pjlib-util/lib >> -L/opt/pjproject/pjnath/lib -L/opt/pjproject/pjmedia/lib >> -L/opt/pjproject/pjsip/lib -L/opt/pjproject/third_party/lib >> --sysroot= >> -L/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/ >> -lpjsua2-armv7-unknown-linux-android -lstdc++ >> -lpjsua-armv7-unknown-linux-android -lpjsip-ua-armv7-unknown-linux-android >> -lpjsip-simple-armv7-unknown-linux-android >> -lpjsip-armv7-unknown-linux-android >> -lpjmedia-codec-armv7-unknown-linux-android >> -lpjmedia-armv7-unknown-linux-android >> -lpjmedia-videodev-armv7-unknown-linux-android >> -lpjmedia-audiodev-armv7-unknown-linux-android >> -lpjmedia-armv7-unknown-linux-android -lpjnath-armv7-unknown-linux-android >> -lpjlib-util-armv7-unknown-linux-android >> -lsrtp-armv7-unknown-linux-android -lresample-armv7-unknown-linux-android >> -lgsmcodec-armv7-unknown-linux-android -lspeex-armv7-unknown-linux-android >> -lilbccodec-armv7-unknown-linux-android >> -lg7221codec-armv7-unknown-linux-android -lyuv-armv7-unknown-linux-android >> -lwebrtc-armv7-unknown-linux-android -lpj-armv7-unknown-linux-android -lm >> -lc++_static -lc++abi -lc -lgcc -ldl -lOpenSLES -llog -lGLESv2 -lEGL >> -landroid -Wl,-soname,libpjsua2.so >> >> /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(endpoint.o):endpoint.cpp:function >> pj::Endpoint::mediaEnumVidPorts() const: error: undefined reference to >> 'pjsua_vid_conf_enum_ports' >> >> /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function >> pj::VideoMedia::registerMediaPort(void*, pj_pool_t*): error: undefined >> reference to 'pjsua_vid_conf_add_port' >> >> /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function >> pj::VideoMedia::unregisterMediaPort(): error: undefined reference to >> 'pjsua_vid_conf_remove_port' >> >> /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function >> pj::VideoMedia::getPortInfoFromId(int): error: undefined reference to >> 'pjsua_vid_conf_get_port_info' >> >> /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function >> pj::VideoMedia::startTransmit(pj::VideoMedia const&, >> pj::VideoMediaTransmitParam const&) const: error: undefined reference to >> 'pjsua_vid_conf_connect' >> >> /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function >> pj::VideoMedia::stopTransmit(pj::VideoMedia const&) const: error: >> undefined >> reference to 'pjsua_vid_conf_disconnect' >> clang++: error: linker command failed with exit code 1 (use -v to see >> invocation) >> Makefile:165: recipe for target >> 'android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so' failed >> make[1]: *** [android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so] >> Error 1 >> make[1]: Leaving directory '/opt/pjproject/pjsip-apps/src/swig/java' >> Makefile:27: recipe for target 'all' failed >> make: *** [all] Error 1 >> >> >> Thanks, >> Bing >>
LB
Li, Bing
Thu, May 9, 2019 7:15 PM

The error in the last message was caused by yuv.
I've disabled video.

Got the following errors when I trying to build by r13b.

mkdir -p output/pjsua2-lib-armv7-unknown-linux-android/
/opt/android-ndk-r13b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -c
-Wall -DPJ_AUTOCONF=1  -gcc-toolchain
/opt/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
-fpic -ffunction-sections -funwind-tables
-Wno-invalid-command-line-argument -Wno-unused-command-line-argument
-no-canonical-prefixes -fno-integrated-as -target
armv7-none-linux-androideabi -march=armv7-a -mfloat-abi=softfp
-mfpu=vfpv3-d16 -mthumb -Os -DNDEBUG -Ijni -DANDROID -Wa,--noexecstack
-Wformat -Werror=format-security -isystem
/opt/android-ndk-r13b/platforms/android-19/arch-arm/usr/include
-I/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include
-DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1    -I../include
-I../../pjlib/include -I../../pjlib-util/include -I../../pjnath/include
-I../../pjmedia/include  -DPJ_AUTOCONF=1  -shared
--sysroot=/opt/android-ndk-r13b/platforms/android-19/arch-arm -lgcc
-gcc-toolchain
/opt/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
-no-canonical-prefixes -target armv7-none-linux-androideabi
-Wl,--fix-cortex-a8 -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack
-Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lc
-lm -fexceptions -frtti    -Wall -DPJ_AUTOCONF=1  -gcc-toolchain
/opt/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
-fpic -ffunction-sections -funwind-tables
-Wno-invalid-command-line-argument -Wno-unused-command-line-argument
-no-canonical-prefixes -fno-integrated-as -target
armv7-none-linux-androideabi -march=armv7-a -mfloat-abi=softfp
-mfpu=vfpv3-d16 -mthumb -Os -DNDEBUG -Ijni -DANDROID -Wa,--noexecstack
-Wformat -Werror=format-security -isystem
/opt/android-ndk-r13b/platforms/android-19/arch-arm/usr/include
-I/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include
-DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1    -I../include
-I../../pjlib/include -I../../pjlib-util/include -I../../pjnath/include
-I../../pjmedia/include             
-o output/pjsua2-lib-armv7-unknown-linux-android/account.o
../src/pjsua2/account.cpp
In file included from ../src/pjsua2/account.cpp:19:
In file included from ../include/pjsua2/account.hpp:27:
In file included from ../include/pjsua2/persistent.hpp:26:
In file included from ../include/pjsua2/types.hpp:33:
In file included from
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/string:441:
In file included from
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:107:
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwctype:68:9:
error: no member named 'iswblank' in the global namespace; did you mean
'isblank'?
using ::iswblank;
~~^
/opt/android-ndk-r13b/platforms/android-19/arch-arm/usr/include/ctype.h:173:20:
note: 'isblank' declared here
__CTYPE_INLINE int isblank(int c)
^
In file included from ../src/pjsua2/account.cpp:19:
In file included from ../include/pjsua2/account.hpp:27:
In file included from ../include/pjsua2/persistent.hpp:26:
In file included from ../include/pjsua2/types.hpp:33:
In file included from
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/string:441:
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:128:9:
error: no member named 'vfwscanf' in the global namespace
using ::vfwscanf;
~~^
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:129:9:
error: no member named 'vswscanf' in the global namespace
using ::vswscanf;
~~^
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:141:9:
error: no member named 'wcstof' in the global namespace
using ::wcstof;
~~^
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:142:9:
error: no member named 'wcstold' in the global namespace
using ::wcstold;
~~^
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:146:9:
error: no member named 'wcstoll' in the global namespace
using ::wcstoll;
~~^
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:150:9:
error: no member named 'wcstoull' in the global namespace; did you mean
'wcstoul'?
using ::wcstoull;
~~^
/opt/android-ndk-r13b/platforms/android-19/arch-arm/usr/include/wchar.h:128:26:
note: 'wcstoul' declared here
extern unsigned long int wcstoul(const wchar_t *, wchar_t **, int);
^
In file included from ../src/pjsua2/account.cpp:19:
In file included from ../include/pjsua2/account.hpp:27:
In file included from ../include/pjsua2/persistent.hpp:26:
In file included from ../include/pjsua2/types.hpp:33:
In file included from
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/string:441:
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:186:9:
error: no member named 'vwscanf' in the global namespace
using ::vwscanf;
~~^
8 errors generated.

On Thu, May 9, 2019 at 2:57 PM Li, Bing bingli1000@gmail.com wrote:

Hi Aleksandar,

Thanks for your reply.

Google recently announced that 64 bit has to be supported. I'm trying to
build arm64.
Of course, armv7 needs to be supported anyway. :)

I've downloaded r13b but it failed when I was trying to build pjproject
itself.

#export ANDROID_NDK_ROOT=/opt/android-ndk-r13b
#TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags
#make dep && make clean && make

mkdir -p output/libyuv-armv7-unknown-linux-android/
/opt/android-ndk-r13b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -c
-fomit-frame-pointer -Wall -DPJ_AUTOCONF=1  -gcc-toolchain
/opt/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
-fpic -ffunction-sections -funwind-tables
-Wno-invalid-command-line-argument -Wno-unused-command-line-argument
-no-canonical-prefixes -fno-integrated-as -target
armv7-none-linux-androideabi -march=armv7-a -mfloat-abi=softfp
-mfpu=vfpv3-d16 -mthumb -Os -DNDEBUG -Ijni -DANDROID -Wa,--noexecstack
-Wformat -Werror=format-security -isystem
/opt/android-ndk-r13b/platforms/android-19/arch-arm/usr/include
-I/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include
-DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1    -I. -I../../yuv/include
-I../../../pjlib/include
-o output/libyuv-armv7-unknown-linux-android/compare.o
../../yuv/source/compare.cc
In file included from ../../yuv/source/compare.cc:14:
/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:661:91:
error: use of undeclared identifier 'acosl'
inline _LIBCPP_INLINE_VISIBILITY long double acos(long double __lcpp_x)
_NOEXCEPT {return acosl(__lcpp_x);}

             ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:673:91:
error: use of undeclared identifier 'asinl'
inline _LIBCPP_INLINE_VISIBILITY long double asin(long double __lcpp_x)
_NOEXCEPT {return asinl(__lcpp_x);}

             ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:685:91:
error: use of undeclared identifier 'atanl'
inline _LIBCPP_INLINE_VISIBILITY long double atan(long double __lcpp_x)
_NOEXCEPT {return atanl(__lcpp_x);}

             ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:697:114:
error: use of undeclared identifier 'atan2l'
inline _LIBCPP_INLINE_VISIBILITY long double atan2(long double __lcpp_y,
long double __lcpp_x) _NOEXCEPT {return atan2l(__lcpp_y, __lcpp_x);}

                                    ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:732:90:
error: use of undeclared identifier 'cosl'
inline _LIBCPP_INLINE_VISIBILITY long double cos(long double __lcpp_x)
_NOEXCEPT {return cosl(__lcpp_x);}

            ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:744:91:
error: use of undeclared identifier 'coshl'
inline _LIBCPP_INLINE_VISIBILITY long double cosh(long double __lcpp_x)
_NOEXCEPT {return coshl(__lcpp_x);}

             ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:756:90:
error: use of undeclared identifier 'expl'
inline _LIBCPP_INLINE_VISIBILITY long double exp(long double __lcpp_x)
_NOEXCEPT {return expl(__lcpp_x);}

            ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:792:113:
error: use of undeclared identifier 'fmodl'
inline _LIBCPP_INLINE_VISIBILITY long double fmod(long double __lcpp_x,
long double __lcpp_y) _NOEXCEPT {return fmodl(__lcpp_x, __lcpp_y);}

                                   ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:839:90:
error: use of undeclared identifier 'logl'
inline _LIBCPP_INLINE_VISIBILITY long double log(long double __lcpp_x)
_NOEXCEPT {return logl(__lcpp_x);}

            ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:851:92:
error: use of undeclared identifier 'log10l'
inline _LIBCPP_INLINE_VISIBILITY long double log10(long double __lcpp_x)
_NOEXCEPT {return log10l(__lcpp_x);}

              ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:863:114:
error: use of undeclared identifier 'modfl'
inline _LIBCPP_INLINE_VISIBILITY long double modf(long double __lcpp_x,
long double* __lcpp_y) _NOEXCEPT {return modfl(__lcpp_x, __lcpp_y);}

                                    ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:870:112:
error: use of undeclared identifier 'powl'
inline _LIBCPP_INLINE_VISIBILITY long double pow(long double __lcpp_x,
long double __lcpp_y) _NOEXCEPT {return powl(__lcpp_x, __lcpp_y);}

                                  ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:893:90:
error: use of undeclared identifier 'sinl'
inline _LIBCPP_INLINE_VISIBILITY long double sin(long double __lcpp_x)
_NOEXCEPT {return sinl(__lcpp_x);}

            ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:905:91:
error: use of undeclared identifier 'sinhl'
inline _LIBCPP_INLINE_VISIBILITY long double sinh(long double __lcpp_x)
_NOEXCEPT {return sinhl(__lcpp_x);}

             ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:917:91:
error: use of undeclared identifier 'sqrtl'
inline _LIBCPP_INLINE_VISIBILITY long double sqrt(long double __lcpp_x)
_NOEXCEPT {return sqrtl(__lcpp_x);}

             ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:931:90:
error: use of undeclared identifier 'tanl'
inline _LIBCPP_INLINE_VISIBILITY long double tan(long double __lcpp_x)
_NOEXCEPT {return tanl(__lcpp_x);}

            ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:943:91:
error: use of undeclared identifier 'tanhl'
inline _LIBCPP_INLINE_VISIBILITY long double tanh(long double __lcpp_x)
_NOEXCEPT {return tanhl(__lcpp_x);}

             ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:955:92:
error: use of undeclared identifier 'acoshl'
inline _LIBCPP_INLINE_VISIBILITY long double acosh(long double __lcpp_x)
_NOEXCEPT {return acoshl(__lcpp_x);}

              ^

/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:967:92:
error: use of undeclared identifier 'asinhl'
inline _LIBCPP_INLINE_VISIBILITY long double asinh(long double __lcpp_x)
_NOEXCEPT {return asinhl(__lcpp_x);}

              ^

fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
/opt/pjproject/build/rules.mak:178: recipe for target
'output/libyuv-armv7-unknown-linux-android/compare.o' failed
make[3]: *** [output/libyuv-armv7-unknown-linux-android/compare.o] Error 1
make[3]: Leaving directory '/opt/pjproject/third_party/build/yuv'
Makefile:100: recipe for target 'libyuv-armv7-unknown-linux-android.a'
failed
make[2]: *** [libyuv-armv7-unknown-linux-android.a] Error 2
make[2]: Leaving directory '/opt/pjproject/third_party/build/yuv'
Makefile:7: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/opt/pjproject/third_party/build'
Makefile:14: recipe for target 'all' failed
make: *** [all] Error 1

On Thu, May 9, 2019 at 1:24 PM Aleksandar Milenkovic shark@lotusflare.com
wrote:

Hi Li Bing

you might wanna try using android-ndk-r13b instead of android-ndk-r19c
and it will probably work out alright.

The source builds fine for "armeabi" for for "armeabi-v7a" and v8, it
doesn't work on newer NDKs. i think 13b is the magic number you're looking
for.

On Thu, May 9, 2019 at 6:01 PM pjsip-request@lists.pjsip.org wrote:

Send pjsip mailing list submissions to
pjsip@lists.pjsip.org

To subscribe or unsubscribe via the World Wide Web, visit
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
or, via email, send a message with subject or body 'help' to
pjsip-request@lists.pjsip.org

You can reach the person managing the list at
pjsip-owner@lists.pjsip.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of pjsip digest..."

Today's Topics:

1. Android swig "undefined reference to
   'pjsua_vid_conf_enum_ports'" (Li, Bing)

Message: 1
Date: Wed, 8 May 2019 17:35:40 -0400
From: "Li, Bing" bingli1000@gmail.com
To: pjsip@lists.pjsip.org
Subject: [pjsip] Android swig "undefined reference to
'pjsua_vid_conf_enum_ports'"
Message-ID:
<CAP9o=2=_
8BUxUm33Qd5ss_8qHvg10vPKHqjjE5H0zDZTN0kGdg@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Hi,

I'm trying to git/master (316c315) for our Android app.

#TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags
This command built successfully.

But it failed when I run "make" in pjsip-apps/src/swig.

Any idea about the error "undefined reference to
'pjsua_vid_conf_enum_ports'" ?

root@Ubuntu1604-server-x8664:/opt/pjproject/pjsip-apps/src/swig# make
for dir in java csharp; do
if make  -C $dir all; then
true;
else
exit 1;
fi;
done
make[1]: Entering directory '/opt/pjproject/pjsip-apps/src/swig/java'
mkdir -p android/app/src/main/jniLibs/armeabi-v7a
/opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
-shared -o android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so
output/pjsua2_wrap.o
-shared -lgcc -Wl,--exclude-libs,libgcc.a -latomic
-Wl,--exclude-libs,libatomic.a -target armv7-none-linux-androideabi19
-no-canonical-prefixes -Wl,--build-id -Wl,--no-undefined
-Wl,-z,noexecstack
-Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings
-lc
-lm -fexceptions -frtti -DPJ_AUTOCONF=1 -target
armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections
-funwind-tables -no-canonical-prefixes --sysroot
/opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/sysroot
-Wno-invalid-command-line-argument -Wno-unused-command-line-argument
-fno-addrsig -fpic -mfpu=vfpv3-d16 -march=armv7-a -mthumb -Oz -DNDEBUG
-Ijni -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security
-I/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/include
-DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1
-I/opt/pjproject/pjlib/include -I/opt/pjproject/pjlib-util/include
-I/opt/pjproject/pjnath/include -I/opt/pjproject/pjmedia/include
-I/opt/pjproject/pjsip/include -fPIC -D__ANDROID__
-L/opt/pjproject/pjlib/lib -L/opt/pjproject/pjlib-util/lib
-L/opt/pjproject/pjnath/lib -L/opt/pjproject/pjmedia/lib
-L/opt/pjproject/pjsip/lib -L/opt/pjproject/third_party/lib
--sysroot=
-L/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/
-lpjsua2-armv7-unknown-linux-android -lstdc++
-lpjsua-armv7-unknown-linux-android
-lpjsip-ua-armv7-unknown-linux-android
-lpjsip-simple-armv7-unknown-linux-android
-lpjsip-armv7-unknown-linux-android
-lpjmedia-codec-armv7-unknown-linux-android
-lpjmedia-armv7-unknown-linux-android
-lpjmedia-videodev-armv7-unknown-linux-android
-lpjmedia-audiodev-armv7-unknown-linux-android
-lpjmedia-armv7-unknown-linux-android
-lpjnath-armv7-unknown-linux-android
-lpjlib-util-armv7-unknown-linux-android
-lsrtp-armv7-unknown-linux-android -lresample-armv7-unknown-linux-android
-lgsmcodec-armv7-unknown-linux-android
-lspeex-armv7-unknown-linux-android
-lilbccodec-armv7-unknown-linux-android
-lg7221codec-armv7-unknown-linux-android
-lyuv-armv7-unknown-linux-android
-lwebrtc-armv7-unknown-linux-android  -lpj-armv7-unknown-linux-android
-lm
-lc++_static -lc++abi  -lc -lgcc -ldl -lOpenSLES -llog -lGLESv2 -lEGL
-landroid -Wl,-soname,libpjsua2.so

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(endpoint.o):endpoint.cpp:function
pj::Endpoint::mediaEnumVidPorts() const: error: undefined reference to
'pjsua_vid_conf_enum_ports'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::registerMediaPort(void*, pj_pool_t*): error: undefined
reference to 'pjsua_vid_conf_add_port'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::unregisterMediaPort(): error: undefined reference to
'pjsua_vid_conf_remove_port'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::getPortInfoFromId(int): error: undefined reference to
'pjsua_vid_conf_get_port_info'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::startTransmit(pj::VideoMedia const&,
pj::VideoMediaTransmitParam const&) const: error: undefined reference to
'pjsua_vid_conf_connect'

/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::stopTransmit(pj::VideoMedia const&) const: error:
undefined
reference to 'pjsua_vid_conf_disconnect'
clang++: error: linker command failed with exit code 1 (use -v to see
invocation)
Makefile:165: recipe for target
'android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so' failed
make[1]: *** [android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so]
Error 1
make[1]: Leaving directory '/opt/pjproject/pjsip-apps/src/swig/java'
Makefile:27: recipe for target 'all' failed
make: *** [all] Error 1

Thanks,
Bing

The error in the last message was caused by yuv. I've disabled video. Got the following errors when I trying to build by r13b. mkdir -p output/pjsua2-lib-armv7-unknown-linux-android/ /opt/android-ndk-r13b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -c -Wall -DPJ_AUTOCONF=1 -gcc-toolchain /opt/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 -fpic -ffunction-sections -funwind-tables -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -fno-integrated-as -target armv7-none-linux-androideabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Os -DNDEBUG -Ijni -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -isystem /opt/android-ndk-r13b/platforms/android-19/arch-arm/usr/include -I/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 -I../include -I../../pjlib/include -I../../pjlib-util/include -I../../pjnath/include -I../../pjmedia/include -DPJ_AUTOCONF=1 -shared --sysroot=/opt/android-ndk-r13b/platforms/android-19/arch-arm -lgcc -gcc-toolchain /opt/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 -no-canonical-prefixes -target armv7-none-linux-androideabi -Wl,--fix-cortex-a8 -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lc -lm -fexceptions -frtti -Wall -DPJ_AUTOCONF=1 -gcc-toolchain /opt/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 -fpic -ffunction-sections -funwind-tables -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -fno-integrated-as -target armv7-none-linux-androideabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Os -DNDEBUG -Ijni -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -isystem /opt/android-ndk-r13b/platforms/android-19/arch-arm/usr/include -I/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 -I../include -I../../pjlib/include -I../../pjlib-util/include -I../../pjnath/include -I../../pjmedia/include \ -o output/pjsua2-lib-armv7-unknown-linux-android/account.o \ ../src/pjsua2/account.cpp In file included from ../src/pjsua2/account.cpp:19: In file included from ../include/pjsua2/account.hpp:27: In file included from ../include/pjsua2/persistent.hpp:26: In file included from ../include/pjsua2/types.hpp:33: In file included from /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/string:441: In file included from /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:107: /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwctype:68:9: error: no member named 'iswblank' in the global namespace; did you mean 'isblank'? using ::iswblank; ~~^ /opt/android-ndk-r13b/platforms/android-19/arch-arm/usr/include/ctype.h:173:20: note: 'isblank' declared here __CTYPE_INLINE int isblank(int c) ^ In file included from ../src/pjsua2/account.cpp:19: In file included from ../include/pjsua2/account.hpp:27: In file included from ../include/pjsua2/persistent.hpp:26: In file included from ../include/pjsua2/types.hpp:33: In file included from /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/string:441: /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:128:9: error: no member named 'vfwscanf' in the global namespace using ::vfwscanf; ~~^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:129:9: error: no member named 'vswscanf' in the global namespace using ::vswscanf; ~~^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:141:9: error: no member named 'wcstof' in the global namespace using ::wcstof; ~~^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:142:9: error: no member named 'wcstold' in the global namespace using ::wcstold; ~~^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:146:9: error: no member named 'wcstoll' in the global namespace using ::wcstoll; ~~^ /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:150:9: error: no member named 'wcstoull' in the global namespace; did you mean 'wcstoul'? using ::wcstoull; ~~^ /opt/android-ndk-r13b/platforms/android-19/arch-arm/usr/include/wchar.h:128:26: note: 'wcstoul' declared here extern unsigned long int wcstoul(const wchar_t *, wchar_t **, int); ^ In file included from ../src/pjsua2/account.cpp:19: In file included from ../include/pjsua2/account.hpp:27: In file included from ../include/pjsua2/persistent.hpp:26: In file included from ../include/pjsua2/types.hpp:33: In file included from /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/string:441: /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/cwchar:186:9: error: no member named 'vwscanf' in the global namespace using ::vwscanf; ~~^ 8 errors generated. On Thu, May 9, 2019 at 2:57 PM Li, Bing <bingli1000@gmail.com> wrote: > Hi Aleksandar, > > Thanks for your reply. > > Google recently announced that 64 bit has to be supported. I'm trying to > build arm64. > Of course, armv7 needs to be supported anyway. :) > > I've downloaded r13b but it failed when I was trying to build pjproject > itself. > > #export ANDROID_NDK_ROOT=/opt/*android-ndk-r13b* > #TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags > #make dep && make clean && make > > mkdir -p output/libyuv-armv7-unknown-linux-android/ > /opt/android-ndk-r13b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -c > -fomit-frame-pointer -Wall -DPJ_AUTOCONF=1 -gcc-toolchain > /opt/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 > -fpic -ffunction-sections -funwind-tables > -Wno-invalid-command-line-argument -Wno-unused-command-line-argument > -no-canonical-prefixes -fno-integrated-as -target > armv7-none-linux-androideabi -march=armv7-a -mfloat-abi=softfp > -mfpu=vfpv3-d16 -mthumb -Os -DNDEBUG -Ijni -DANDROID -Wa,--noexecstack > -Wformat -Werror=format-security -isystem > /opt/android-ndk-r13b/platforms/android-19/arch-arm/usr/include > -I/opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include > -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 -I. -I../../yuv/include > -I../../../pjlib/include \ > -o output/libyuv-armv7-unknown-linux-android/compare.o \ > ../../yuv/source/compare.cc > In file included from ../../yuv/source/compare.cc:14: > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:661:91: > error: use of undeclared identifier 'acosl' > inline _LIBCPP_INLINE_VISIBILITY long double acos(long double __lcpp_x) > _NOEXCEPT {return acosl(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:673:91: > error: use of undeclared identifier 'asinl' > inline _LIBCPP_INLINE_VISIBILITY long double asin(long double __lcpp_x) > _NOEXCEPT {return asinl(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:685:91: > error: use of undeclared identifier 'atanl' > inline _LIBCPP_INLINE_VISIBILITY long double atan(long double __lcpp_x) > _NOEXCEPT {return atanl(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:697:114: > error: use of undeclared identifier 'atan2l' > inline _LIBCPP_INLINE_VISIBILITY long double atan2(long double __lcpp_y, > long double __lcpp_x) _NOEXCEPT {return atan2l(__lcpp_y, __lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:732:90: > error: use of undeclared identifier 'cosl' > inline _LIBCPP_INLINE_VISIBILITY long double cos(long double __lcpp_x) > _NOEXCEPT {return cosl(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:744:91: > error: use of undeclared identifier 'coshl' > inline _LIBCPP_INLINE_VISIBILITY long double cosh(long double __lcpp_x) > _NOEXCEPT {return coshl(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:756:90: > error: use of undeclared identifier 'expl' > inline _LIBCPP_INLINE_VISIBILITY long double exp(long double __lcpp_x) > _NOEXCEPT {return expl(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:792:113: > error: use of undeclared identifier 'fmodl' > inline _LIBCPP_INLINE_VISIBILITY long double fmod(long double __lcpp_x, > long double __lcpp_y) _NOEXCEPT {return fmodl(__lcpp_x, __lcpp_y);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:839:90: > error: use of undeclared identifier 'logl' > inline _LIBCPP_INLINE_VISIBILITY long double log(long double __lcpp_x) > _NOEXCEPT {return logl(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:851:92: > error: use of undeclared identifier 'log10l' > inline _LIBCPP_INLINE_VISIBILITY long double log10(long double __lcpp_x) > _NOEXCEPT {return log10l(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:863:114: > error: use of undeclared identifier 'modfl' > inline _LIBCPP_INLINE_VISIBILITY long double modf(long double __lcpp_x, > long double* __lcpp_y) _NOEXCEPT {return modfl(__lcpp_x, __lcpp_y);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:870:112: > error: use of undeclared identifier 'powl' > inline _LIBCPP_INLINE_VISIBILITY long double pow(long double __lcpp_x, > long double __lcpp_y) _NOEXCEPT {return powl(__lcpp_x, __lcpp_y);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:893:90: > error: use of undeclared identifier 'sinl' > inline _LIBCPP_INLINE_VISIBILITY long double sin(long double __lcpp_x) > _NOEXCEPT {return sinl(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:905:91: > error: use of undeclared identifier 'sinhl' > inline _LIBCPP_INLINE_VISIBILITY long double sinh(long double __lcpp_x) > _NOEXCEPT {return sinhl(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:917:91: > error: use of undeclared identifier 'sqrtl' > inline _LIBCPP_INLINE_VISIBILITY long double sqrt(long double __lcpp_x) > _NOEXCEPT {return sqrtl(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:931:90: > error: use of undeclared identifier 'tanl' > inline _LIBCPP_INLINE_VISIBILITY long double tan(long double __lcpp_x) > _NOEXCEPT {return tanl(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:943:91: > error: use of undeclared identifier 'tanhl' > inline _LIBCPP_INLINE_VISIBILITY long double tanh(long double __lcpp_x) > _NOEXCEPT {return tanhl(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:955:92: > error: use of undeclared identifier 'acoshl' > inline _LIBCPP_INLINE_VISIBILITY long double acosh(long double __lcpp_x) > _NOEXCEPT {return acoshl(__lcpp_x);} > > ^ > /opt/android-ndk-r13b/sources/cxx-stl/llvm-libc++/include/math.h:967:92: > error: use of undeclared identifier 'asinhl' > inline _LIBCPP_INLINE_VISIBILITY long double asinh(long double __lcpp_x) > _NOEXCEPT {return asinhl(__lcpp_x);} > > ^ > fatal error: too many errors emitted, stopping now [-ferror-limit=] > 20 errors generated. > /opt/pjproject/build/rules.mak:178: recipe for target > 'output/libyuv-armv7-unknown-linux-android/compare.o' failed > make[3]: *** [output/libyuv-armv7-unknown-linux-android/compare.o] Error 1 > make[3]: Leaving directory '/opt/pjproject/third_party/build/yuv' > Makefile:100: recipe for target 'libyuv-armv7-unknown-linux-android.a' > failed > make[2]: *** [libyuv-armv7-unknown-linux-android.a] Error 2 > make[2]: Leaving directory '/opt/pjproject/third_party/build/yuv' > Makefile:7: recipe for target 'all' failed > make[1]: *** [all] Error 1 > make[1]: Leaving directory '/opt/pjproject/third_party/build' > Makefile:14: recipe for target 'all' failed > make: *** [all] Error 1 > > On Thu, May 9, 2019 at 1:24 PM Aleksandar Milenkovic <shark@lotusflare.com> > wrote: > >> Hi Li Bing >> >> you might wanna try using android-ndk-r13b instead of android-ndk-r19c >> and it will probably work out alright. >> >> The source builds fine for "armeabi" for for "armeabi-v7a" and v8, it >> doesn't work on newer NDKs. i think 13b is the magic number you're looking >> for. >> >> On Thu, May 9, 2019 at 6:01 PM <pjsip-request@lists.pjsip.org> wrote: >> >>> Send pjsip mailing list submissions to >>> pjsip@lists.pjsip.org >>> >>> To subscribe or unsubscribe via the World Wide Web, visit >>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >>> or, via email, send a message with subject or body 'help' to >>> pjsip-request@lists.pjsip.org >>> >>> You can reach the person managing the list at >>> pjsip-owner@lists.pjsip.org >>> >>> When replying, please edit your Subject line so it is more specific >>> than "Re: Contents of pjsip digest..." >>> >>> >>> Today's Topics: >>> >>> 1. Android swig "undefined reference to >>> 'pjsua_vid_conf_enum_ports'" (Li, Bing) >>> >>> >>> ---------------------------------------------------------------------- >>> >>> Message: 1 >>> Date: Wed, 8 May 2019 17:35:40 -0400 >>> From: "Li, Bing" <bingli1000@gmail.com> >>> To: pjsip@lists.pjsip.org >>> Subject: [pjsip] Android swig "undefined reference to >>> 'pjsua_vid_conf_enum_ports'" >>> Message-ID: >>> <CAP9o=2=_ >>> 8BUxUm33Qd5ss_8qHvg10vPKHqjjE5H0zDZTN0kGdg@mail.gmail.com> >>> Content-Type: text/plain; charset="utf-8" >>> >>> Hi, >>> >>> I'm trying to git/master (316c315) for our Android app. >>> >>> #TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags >>> This command built successfully. >>> >>> But it failed when I run "make" in pjsip-apps/src/swig. >>> >>> Any idea about the error "undefined reference to >>> 'pjsua_vid_conf_enum_ports'" ? >>> >>> root@Ubuntu1604-server-x8664:/opt/pjproject/pjsip-apps/src/swig# make >>> for dir in java csharp; do \ >>> if make -C $dir all; then \ >>> true; \ >>> else \ >>> exit 1; \ >>> fi; \ >>> done >>> make[1]: Entering directory '/opt/pjproject/pjsip-apps/src/swig/java' >>> mkdir -p android/app/src/main/jniLibs/armeabi-v7a >>> /opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ >>> -shared -o android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so >>> output/pjsua2_wrap.o \ >>> -shared -lgcc -Wl,--exclude-libs,libgcc.a -latomic >>> -Wl,--exclude-libs,libatomic.a -target armv7-none-linux-androideabi19 >>> -no-canonical-prefixes -Wl,--build-id -Wl,--no-undefined >>> -Wl,-z,noexecstack >>> -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings >>> -lc >>> -lm -fexceptions -frtti -DPJ_AUTOCONF=1 -target >>> armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections >>> -funwind-tables -no-canonical-prefixes --sysroot >>> /opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/sysroot >>> -Wno-invalid-command-line-argument -Wno-unused-command-line-argument >>> -fno-addrsig -fpic -mfpu=vfpv3-d16 -march=armv7-a -mthumb -Oz -DNDEBUG >>> -Ijni -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security >>> -I/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/include >>> -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 >>> -I/opt/pjproject/pjlib/include -I/opt/pjproject/pjlib-util/include >>> -I/opt/pjproject/pjnath/include -I/opt/pjproject/pjmedia/include >>> -I/opt/pjproject/pjsip/include -fPIC -D__ANDROID__ >>> -L/opt/pjproject/pjlib/lib -L/opt/pjproject/pjlib-util/lib >>> -L/opt/pjproject/pjnath/lib -L/opt/pjproject/pjmedia/lib >>> -L/opt/pjproject/pjsip/lib -L/opt/pjproject/third_party/lib >>> --sysroot= >>> -L/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/ >>> -lpjsua2-armv7-unknown-linux-android -lstdc++ >>> -lpjsua-armv7-unknown-linux-android >>> -lpjsip-ua-armv7-unknown-linux-android >>> -lpjsip-simple-armv7-unknown-linux-android >>> -lpjsip-armv7-unknown-linux-android >>> -lpjmedia-codec-armv7-unknown-linux-android >>> -lpjmedia-armv7-unknown-linux-android >>> -lpjmedia-videodev-armv7-unknown-linux-android >>> -lpjmedia-audiodev-armv7-unknown-linux-android >>> -lpjmedia-armv7-unknown-linux-android >>> -lpjnath-armv7-unknown-linux-android >>> -lpjlib-util-armv7-unknown-linux-android >>> -lsrtp-armv7-unknown-linux-android -lresample-armv7-unknown-linux-android >>> -lgsmcodec-armv7-unknown-linux-android >>> -lspeex-armv7-unknown-linux-android >>> -lilbccodec-armv7-unknown-linux-android >>> -lg7221codec-armv7-unknown-linux-android >>> -lyuv-armv7-unknown-linux-android >>> -lwebrtc-armv7-unknown-linux-android -lpj-armv7-unknown-linux-android >>> -lm >>> -lc++_static -lc++abi -lc -lgcc -ldl -lOpenSLES -llog -lGLESv2 -lEGL >>> -landroid -Wl,-soname,libpjsua2.so >>> >>> /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(endpoint.o):endpoint.cpp:function >>> pj::Endpoint::mediaEnumVidPorts() const: error: undefined reference to >>> 'pjsua_vid_conf_enum_ports' >>> >>> /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function >>> pj::VideoMedia::registerMediaPort(void*, pj_pool_t*): error: undefined >>> reference to 'pjsua_vid_conf_add_port' >>> >>> /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function >>> pj::VideoMedia::unregisterMediaPort(): error: undefined reference to >>> 'pjsua_vid_conf_remove_port' >>> >>> /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function >>> pj::VideoMedia::getPortInfoFromId(int): error: undefined reference to >>> 'pjsua_vid_conf_get_port_info' >>> >>> /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function >>> pj::VideoMedia::startTransmit(pj::VideoMedia const&, >>> pj::VideoMediaTransmitParam const&) const: error: undefined reference to >>> 'pjsua_vid_conf_connect' >>> >>> /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function >>> pj::VideoMedia::stopTransmit(pj::VideoMedia const&) const: error: >>> undefined >>> reference to 'pjsua_vid_conf_disconnect' >>> clang++: error: linker command failed with exit code 1 (use -v to see >>> invocation) >>> Makefile:165: recipe for target >>> 'android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so' failed >>> make[1]: *** [android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so] >>> Error 1 >>> make[1]: Leaving directory '/opt/pjproject/pjsip-apps/src/swig/java' >>> Makefile:27: recipe for target 'all' failed >>> make: *** [all] Error 1 >>> >>> >>> Thanks, >>> Bing >>>