uclibc++: remove No package here depends on it. Furthermore, uClibc++ is a fairly buggy C++ library and seems to be relatively inactive upstream. It also lacks proper support for modern C++11 features. The main benefit of it is size: 66.6 KB vs 287.3 KB on mips24kc. Static linking and LTO can help bring the size down of packages that need it. Added warning message to uclibc++.mk Signed-off-by: Rosen Penev <rosenp@gmail.com> Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
uclibc++: make verbosity affect uClibc++ build Before this change, setting the verbosity to anything with V=blah would cause uclibc++ build to print errors to the screen. Now, it the clibc++ build verbosity will be altered in the following manners: * V=s will set V=1 in the uclibc++ build * V=sc will set V=2 in the uclibc++ build Signed-off-by: Wren Turkal <wt@penguintechs.org>
uClibc++: Fix three bugs The first allows usage of several functions in the std namespace, which broke compilation of gddrescue specifically with uClibc-ng and uClibc++. The second allows usage of long long with normal C++11, which is part of the standard. Before, std=gnu++11 needed to be passsed to work around it. As a result of the second patch, the pedantic patch can safely be removed. Both patches are upstream backports. Added -std=c++11 to CFLAGS to guarentee proper inclusion of long long. Added another patch that fixes a typo with the long long support. Sent to upstream. Fixed up license information according to SPDX. Small cleanups for consistency. Signed-off-by: Rosen Penev <rosenp@gmail.com>
uClibc++: Remove faulty patch This patch was originally added to fix compilation with v4l2rtspserver. Turns out it was v4l2rtspserver that was broken, not uClibc++. This now causes issues with a different package where the arguments are being split. Note that with this patch, shellcheck throws an error: SC2068: Double quote array expansions to avoid re-splitting elements. More: https://github.com/openwrt/packages/pull/9972#discussion_r324878373 Signed-off-by: Rosen Penev <rosenp@gmail.com>
uClibc++: Update to 0.2.5 Switched to xz archives for smaller size. Removed upstreamed patches. Reorganized Makefile a little bit for clarity. Build/Prepare is not useful anymore. Upstream converted the file to LF. Refreshed config. Removed -ansi option from the original CFLAGS as this was causing long long support to be missing. Removed fPIC. We have the macro $(FPIC) already used. No point in setting fpic and fPIC together. Removed pedantic -Wlong-long warnings as they are not useful. Removed -std=gnu++98. Not only is it unnecessary (it compiles against all standards), it actually results in a size increase. 75843 vs. 75222 (gcc in OpenWrt defaults to g++14). Added --gc-sections to linker flags to reduce size: 72653 vs 75222. Removed warn linker options. They have been upstreamed. Tested on Archer C7v2 and GnuBee PC1. Signed-off-by: Rosen Penev <rosenp@gmail.com>
uclibc++: patch bugfix erase() on derived __base_associative When calling erase() on a containers derived from __base_associative (e.g. multimap) and providing a pair of iterators a segfault will occur. Example code to reproduce: typedef std::multimap<int, int> testmap; testmap t; t.insert(std::pair<int, int>(1, 1)); t.insert(std::pair<int, int>(2, 1)); t.insert(std::pair<int, int>(3, 1)); t.erase(t.begin(), t.end()); Signed-off-by: Ben Kelly <ben@benjii.net>
uclibc++: add hack to fix failing patch One of the patched files, include/unwind-cxx.h, contains windows newlines which lead to the following failure: Applying ./patches/006-eabi_fix.patch using plaintext: patching file include/typeinfo patching file include/unwind-cxx.h Hunk #1 FAILED at 173 (different line endings). Hunk #2 FAILED at 181 (different line endings). Add a fixup command to the prepare phase which normalizes the line endings before applying source patches. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
uclibc++: make g++-uc* wrappers relocatable The g++-uc wrapper hardcodes $(STAGING_DIR) and $(TOOLCHAIN_DIR) paths which will not work outside of the original build environment. Replace the hardcoded staging_dir occurences with paths relative to the $STAGING_DIR environment variable to make the g++-uc* wrappers usable in an SDK environment. Fixes the libdb47 build failure reported at https://lists.openwrt.org/pipermail/openwrt-devel/2015-April/032455.html Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 46162
Add more license tags with SPDX identifiers Note, that licensing stuff is a nightmare: many packages does not clearly state their licenses, and often multiple source files are simply copied together - each with different licensing information in the file headers. I tried hard to ensure, that the license information extracted into the OpenWRT's makefiles fit the "spirit" of the packages, e.g. such small packages which come without a dedicated source archive "inherites" the OpenWRT's own license in my opinion. However, I can not garantee that I always picked the correct information and/or did not miss license information. Signed-off-by: Michael Heimpold <mhei@heimpold.de> SVN-Revision: 43155