6c29aaa1c7
This will make things as std::to_string() and other C++ features work with a modern and supported C++ library. We package up libc++_shared.so and bump the revision of every C++ using package to make it rebuild against it. Users who have built C++ using libraries or programs will probably need to rebuild them if they are linked against Termux-supplied libraries, as user code was previously linked against gnustl while the system libraries are now using libc++, and it's not a good idea to mix C++ standard libraries in a program.
22 lines
1005 B
Bash
22 lines
1005 B
Bash
TERMUX_PKG_HOMEPAGE=http://gcc.gnu.org/onlinedocs/libstdc++/
|
|
TERMUX_PKG_DESCRIPTION="The GNU Standard C++ Library (a.k.a. libstdc++-v3), necessary on android since the system libstdc++.so is stripped down"
|
|
TERMUX_PKG_VERSION=$TERMUX_NDK_VERSION
|
|
TERMUX_PKG_REVISION=1
|
|
|
|
termux_step_extract_into_massagedir() {
|
|
if [ "$TERMUX_ARCH" = arm ]; then
|
|
local _STL_LIBFILE=$NDK/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/libgnustl_shared.so
|
|
elif [ "$TERMUX_ARCH" = i686 ]; then
|
|
local _STL_LIBFILE=$NDK/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/libgnustl_shared.so
|
|
elif [ "$TERMUX_ARCH" = aarch64 ]; then
|
|
local _STL_LIBFILE=$NDK/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_shared.so
|
|
elif [ "$TERMUX_ARCH" = x86_64 ]; then
|
|
local _STL_LIBFILE=$NDK/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_shared.so
|
|
else
|
|
termux_error_exit "Unsupported arch"
|
|
fi
|
|
|
|
mkdir -p "$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib"
|
|
cp "$_STL_LIBFILE" "$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib"
|
|
}
|