Determine library suffix by ABI.
Change-Id: I2ae5b6dcc949f0c47392b2afbe49984250ba9478
diff --git a/build/tools/build-cxx-stl.sh b/build/tools/build-cxx-stl.sh
index 919af70..811ceab 100755
--- a/build/tools/build-cxx-stl.sh
+++ b/build/tools/build-cxx-stl.sh
@@ -397,11 +397,12 @@
local TYPE="$3"
local DSTDIR="$4"
local DEFAULT_CFLAGS DEFAULT_CXXFLAGS
- local SRC OBJ OBJECTS EXTRA_CXXFLAGS
+ local SRC OBJ OBJECTS EXTRA_CXXFLAGS LIB_SUFFIX
mkdir -p "$BUILDDIR"
DSTDIR=$DSTDIR/$CXX_STL_SUBDIR/libs/$ABI
+ LIB_SUFFIX="$(get_lib_suffix_for_abi $ABI)"
if [ "$TYPE" = "static" -a -z "$VISIBLE_STATIC" ]; then
EXTRA_CXXFLAGS="$STATIC_CXXFLAGS"
@@ -447,12 +448,12 @@
log "Building $DSTDIR/${CXX_STL_LIB}_static.a"
builder_static_library ${CXX_STL_LIB}_static
else
- log "Building $DSTDIR/${CXX_STL_LIB}_shared.so"
+ log "Building $DSTDIR/${CXX_STL_LIB}_shared${LIB_SUFFIX}"
if [ "$(find_ndk_unknown_archs)" != "$ABI" ]; then
- builder_shared_library ${CXX_STL_LIB}_shared
+ builder_shared_library ${CXX_STL_LIB}_shared $LIB_SUFFIX
else
builder_ldflags "-lc -lm"
- builder_nostdlib_shared_library ${CXX_STL_LIB}_shared # Don't use libgcc
+ builder_nostdlib_shared_library ${CXX_STL_LIB}_shared $LIB_SUFFIX # Don't use libgcc
fi
fi
@@ -468,7 +469,8 @@
if [ -n "$PACKAGE_DIR" ] ; then
for ABI in $ABIS; do
FILES=""
- for LIB in ${CXX_STL_LIB}_static.a ${CXX_STL_LIB}_shared.so; do
+ LIB_SUFFIX="$(get_lib_suffix_for_abi $ABI)"
+ for LIB in ${CXX_STL_LIB}_static.a ${CXX_STL_LIB}_shared${LIB_SUFFIX}; do
FILES="$FILES $CXX_STL_SUBDIR/libs/$ABI/$LIB"
done
PACKAGE="$PACKAGE_DIR/${CXX_STL_PACKAGE}-libs-$ABI.tar.bz2"
diff --git a/build/tools/builder-funcs.sh b/build/tools/builder-funcs.sh
index 8b8402b..de69d63 100644
--- a/build/tools/builder-funcs.sh
+++ b/build/tools/builder-funcs.sh
@@ -346,10 +346,14 @@
builder_shared_library ()
{
- local lib libname
+ local lib libname suffix
libname=$1
+ suffix=$2
+ if [ -z "$suffix" ]; then
+ suffix=".so"
+ fi
lib=$_BUILD_DSTDIR/$libname
- lib=${lib%%.so}.so
+ lib=${lib%%${suffix}}${suffix}
if [ "$_BUILD_MK" ]; then
_BUILD_TARGETS=$_BUILD_TARGETS" $lib"
echo "$lib: $_BUILD_OBJECTS" >> $_BUILD_MK
@@ -377,10 +381,14 @@
# Same as builder_shared_library, but do not link the default libs
builder_nostdlib_shared_library ()
{
- local lib libname
+ local lib libname suffix
libname=$1
+ suffix=$2
+ if [ -z "$suffix" ]; then
+ suffix=".so"
+ fi
lib=$_BUILD_DSTDIR/$libname
- lib=${lib%%.so}.so
+ lib=${lib%%${suffix}}${suffix}
if [ "$_BUILD_MK" ]; then
_BUILD_TARGETS=$_BUILD_TARGETS" $lib"
echo "$lib: $_BUILD_OBJECTS" >> $_BUILD_MK
diff --git a/build/tools/prebuilt-common.sh b/build/tools/prebuilt-common.sh
index 2138372..426c6fd 100644
--- a/build/tools/prebuilt-common.sh
+++ b/build/tools/prebuilt-common.sh
@@ -1178,6 +1178,19 @@
fi
}
+# Get library suffix for given ABI
+# $1: ABI
+# Return: .so or .bc
+get_lib_suffix_for_abi ()
+{
+ local ABI=$1
+ if [ $(arch_in_unknown_archs $ABI) = "yes" ]; then
+ echo ".bc"
+ else
+ echo ".so"
+ fi
+}
+
# Convert an ABI name into an Architecture name
# $1: ABI name
# Result: Arch name