libcxx: Add package
authorRosen Penev <rosenp@gmail.com>
Sat, 14 Dec 2019 05:07:04 +0000 (21:07 -0800)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 22 Dec 2019 23:22:07 +0000 (00:22 +0100)
commit856ea2bad3b3eac565215c0ac79f37a4ba4cd5b7
tree04e6563e9656f70225650876f95238b9554df856
parentfd211e1677fc653feeef6b0b8b8e8659ac274b3c
libcxx: Add package

Currently in OpenWrt, there are two libc++: libstdcpp and uClibc++. The
former is huge and the latter supports only C++98 with some basic support
for C++11. Those C++ versions seem to be specific to the compiler version

libcxx supports C++11 and above while being much smaller than libstdcpp.
On mt7621, these are the sizes of the ipks that I get:

libstdcpp: 460786
libcxx: 182881
uClibc++:67720

libcxx is faster than uClibc++ and is under active development as part of
the LLVM project while uClibc++ is effectively dead.

This PR modifies uclibc++.mk to expose the make menuconfig option. Further
cleanup is beyond the scope of this PR. What that means is, this is not
used by default.

A g++-libcxx wrapper based on the uClibc++ one was added. Works the same
way.

Compile tested with all packages that use uclibc++.mk in their Makefiles
under mipsel_24kc. kismet fails compilation but that package needs to be
cleaned up and updated.

Runtime tested with gddrescue, gdisk, dcwapd, bonnie++, and aircrack-ng
on a TP-Link Archer C7v2.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
config/Config-build.in
include/uclibc++.mk
package/libs/libcxx/Makefile [new file with mode: 0644]
package/libs/libcxx/files/g++-libcxx [new file with mode: 0755]