Fix configure error on android NDK r25 (#3200)

* Fix configure error on android NDK r25

* Pass libc++_shared.so path to Makefile (java/csharp)

* Only pass the STD Cpp lib and env var rename
This commit is contained in:
Riza Sulistyo 2022-08-05 14:49:15 +07:00 committed by GitHub
parent 122a2ce343
commit 86b6711777
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 18 additions and 7 deletions

View File

@ -739,6 +739,7 @@ ac_no_pjsua2
ac_shared_libraries
ac_linux_poll
ac_os_objs
ac_std_cpp_lib
ac_target_arch
ac_cross_compile
ac_shlib_suffix
@ -4870,8 +4871,6 @@ if test "$CC_CFLAGS" = ""; then CC_CFLAGS="-Wall"; fi
case $host in
*mingw* | *cygw* | *win32* | *w32* )
if pwd -W 2&> /dev/null; then
@ -5689,11 +5688,13 @@ else
fi
case $target in
*android*)
printf "%s\n" "#define PJ_ANDROID 1" >>confdefs.h
ac_target_arch=$TARGET_ABI
ac_std_cpp_lib=$STD_CPP_LIB
;;
*mingw* | *cygw* | *win32* | *w32* )
printf "%s\n" "#define PJ_WIN32 1" >>confdefs.h

View File

@ -67,8 +67,6 @@ AC_SUBST(CC_OPTIMIZE)
if test "$CC_CFLAGS" = ""; then CC_CFLAGS="-Wall"; fi
AC_SUBST(CC_CFLAGS)
AC_SUBST(ac_pjdir)
AC_SUBST(ac_build_mak_vars)
AC_SUBST(ac_cflags)
@ -155,10 +153,12 @@ dnl
dnl Legacy macros
dnl
AC_SUBST(ac_target_arch)
AC_SUBST(ac_std_cpp_lib)
case $target in
*android*)
AC_DEFINE(PJ_ANDROID,1)
ac_target_arch=$TARGET_ABI
ac_std_cpp_lib=$STD_CPP_LIB
;;
*mingw* | *cygw* | *win32* | *w32* )
AC_DEFINE(PJ_WIN32,1)

View File

@ -8,6 +8,7 @@ export OS_NAME := auto
export HOST_NAME := unix
export CC_NAME := gcc
export TARGET_ARCH := @ac_target_arch@
export STD_CPP_LIB := @ac_std_cpp_lib@
export TARGET_NAME := @target@
export CROSS_COMPILE := @ac_cross_compile@
export LINUX_POLL := @ac_linux_poll@

View File

@ -219,6 +219,12 @@ if test "$1" = "--use-ndk-cflags" || [ "${NDK_VER}" -ge "17" ]; then
#echo "--- found RANLIB=${NDK_RANLIB}"
#fi
fi
# Get STD C++ lib path
if test "x${STD_CPP_LIB}" = "x"; then
if test "x`echo $i | grep '/libc++_shared.so'`" != "x"; then
STD_CPP_LIB=$i
fi
fi
done
# Get target host from NDK toolchain dir name
@ -326,7 +332,8 @@ if test "${IS_USING_LLVM}" = "1"; then
STDCPP_TC="${ANDROID_NDK_ROOT}/sources/cxx-stl/llvm-libc++"
#STDCPP_CFLAGS="-I${STDCPP_TC}/include"
#STDCPP_LIBS="-lc++_static -lc++abi"
STDCPP_LIBS="${STDCPP_TC}/libs/${TARGET_ABI}/libc++_shared.so"
#STDCPP_LIBS="${STDCPP_TC}/libs/${TARGET_ABI}/libc++_shared.so"
STDCPP_LIBS="${STD_CPP_LIB}"
#STDCPP_LDFLAGS="-L${STDCPP_TC}/libs/${TARGET_ABI}/"
else
# gnustl
@ -346,6 +353,7 @@ export LIBS="${LIBS} ${STDCPP_LIBS}"
export LDFLAGS="${LDFLAGS} ${STDCPP_LDFLAGS}"
export CPPFLAGS="${CPPFLAGS}"
export CXXFLAGS="${CXXFLAGS} ${STDCPP_CFLAGS}"
export STD_CPP_LIB="${STD_CPP_LIB}"
# Print settings
if test "1" = "1"; then
@ -355,6 +363,7 @@ if test "1" = "1"; then
echo " CXX = ${CXX}"
echo " CFLAGS = ${CFLAGS}"
echo " CXXFLAGS = ${CXXFLAGS}"
echo " STD_CPP_LIB = ${STD_CPP_LIB}"
echo " LDFLAGS = ${LDFLAGS}"
echo " LIBS = ${LIBS}"
echo " AR = ${AR}"

View File

@ -50,7 +50,7 @@ ifeq ($(OS),android)
$(PJ_CXX) -shared -o $(LIBPJSUA2) $(OUT_DIR)/pjsua2_wrap.o \
$(MY_CFLAGS) $(MY_LDFLAGS)
# copy libc++_shared.so manually
cp -f ${ANDROID_NDK_ROOT}/sources/cxx-stl/llvm-libc++/libs/${TARGET_ARCH}/libc++_shared.so $(LIBPJSUA2_DIR)
cp -f ${STD_CPP_LIB} $(LIBPJSUA2_DIR)
else
$(AR) $(LIBPJSUA2) $(AR_FLAGS) $(OUT_DIR)/pjsua2_wrap.o $(PJ_LIBXX_FILES)
endif

View File

@ -173,7 +173,7 @@ $(LIBPJSUA2_SO): $(OUT_DIR)/pjsua2_wrap.o
ifeq ($(OS),android)
mkdir -p android/pjsua2/src/main/jniLibs/$(TARGET_ARCH)
# copy libc++_shared.so manually
cp -f ${ANDROID_NDK_ROOT}/sources/cxx-stl/llvm-libc++/libs/${TARGET_ARCH}/libc++_shared.so android/pjsua2/src/main/jniLibs/$(TARGET_ARCH)
cp -f ${STD_CPP_LIB} android/pjsua2/src/main/jniLibs/$(TARGET_ARCH)
endif
$(PJ_CXX) -shared -o $(LIBPJSUA2_SO) $(OUT_DIR)/pjsua2_wrap.o \
$(MY_LDFLAGS)