aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs/libcxx
Commit message (Collapse)AuthorAgeFilesLines
* libcxx: Remove -flto from LDFLAGSRosen Penev2020-01-053-4/+17
| | | | | | | | | | | | | | | It seems the buildbots can't handle it. Added a cmake option to find the cxxabi files as they are part of the toolchain and not in the normal path. It doesn't seem to make a difference, just gets rid of cmake warnings. Added another small GCC warning fix. It's fairly minor. This has no change in compiled size, and most likely no change in behavior. Bumped the PKG_RELEASE anyway. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* libcxx: Add size optimizationsRosen Penev2020-01-013-1/+39
| | | | | | | | | | | | | | Changed standard to 2a. 2a (as well as 17) contain more constexpr functions, which are evaluated at compile time. This saves space. Added --gc-sections. With the CXXABI change, this now makes the package smaller. With these, size went down to 210845 on mipsel_24kc. Also fixed two small compiler warnings. No real change in behavior. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* libcxx: Build with the libsupc++ ABIRosen Penev2020-01-011-1/+2
| | | | | | | | | | | | | | | | | | | | | Allows proper exception handling. This includes removing unimplemented warnings. File size increased as a result: Before: 182874 After: 211006 On mipsel_24kc. Note that this requires libsupc++ anyway. It's specified in g++-libcxx. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* libcxx: Depenency fixesRosen Penev2019-12-231-4/+4
| | | | | | | | | | | | | Don't build with uClibc-ng. It's totally unsupported as several functions are missing. Make the musl libc support conditional. Fix hash with make check FIXUP=1. Apparently I based the Makefile off of libedit and forgot to fix the hash. Signed-off-by: Rosen Penev <rosenp@gmail.com> Fixes: 856ea2bad3b3 ("libcxx: Add package")
* libcxx: Add packageRosen Penev2019-12-232-0/+81
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>