certain crypto-layers encode required information in the
filename hence crippling NAME_MAX from 255 down to about 143
ascii chars.
Since the dependency files of libgcc_eh and libsupc encode the full
path to the corresponding libraries, the names of the dep files can
get quite large. Shorten them by some (arbitrary, short) hash.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
C++11 makes long long available. It is no longer a GNU extension.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
When compiling with uClibc-ng, these functions get defined as macros and
become unavailable for std.
Fixes programs that use the std versions of these functions.
This matches libstdcpp behavior.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Throws -Wundef warning in modern compilers.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Everywhere else in the file floats and doubles use an f variable.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Many programs like gptfdisk or powertop try to use 64-bit integers with
streams. This adds support for them.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
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>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
GCC added a configure check for tmpnam() in
e1150b06d0409baf4b71121be0cafeab180f2858 (a.k.a svn r207009)
POSIX.1-2008 (SUSv4) marks tmpnam() as obsolescent. As such it is not
available in uClibc unless SUSv4 legacy stuff is enabled.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
std::string a.assign(10, '+');
did not work (now checkAssignFillChar).
assign(iterator::begin(), iterator::end()) relied on permissive
(checkAssignIterator).
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
include/ostream:298:50: error: default argument for template parameter for class enclosing ‘class std::basic_ostream<charT, traits>::sentry’
include/istream:343:107: error: default argument for template parameter for class enclosing ‘class std::basic_istream<charT, traits>::sentry’
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Print reduced precision for long double tests to avoid noise imposed by
different math implementations in libc's.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
include/string:85:3: warning: ordered comparison of pointer with integer
zero [-Wextra]
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Restructure the buildsys in order to add proper dependencies.
- no superfluous re-linking with 'make;make;'
- proper relinking with 'make CXX=g++-4.8.mine;make CXX=g++-4.7'
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
uClibc uses WARNINGS too so use UCLIBCXX_WARNINGS here to avoid
redefinition warnings on setups using both libs.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
uClibc++ current does not build using an ARM EABI toolchain with the
following build failure:
eh_alloc.cpp
In file included from ../include/basic_definitions:21:0,
from ../include/cstdlib:20,
from eh_alloc.cpp:20:
../include/system_configuration.h:17:0: warning: "__WARNINGS__" redefined [enabled by default]
/opt/toolchains/armeabi-uclibc-std-0.9.30.2-gcc-4.6.0-binutils-2.20.1/arm-linux-uclibcgnueabi/sysroot/usr/include/bits/uClibc_config.h:223:0: note: this is the location of the previous definition
In file included from eh_alloc.cpp:25:0:
../include/unwind-cxx.h:176:36: error: ISO C++ forbids casting to an array type '_Unwind_Exception_Class'
../include/unwind-cxx.h:177:36: error: ISO C++ forbids casting to an array type '_Unwind_Exception_Class'
../include/unwind-cxx.h:178:35: error: ISO C++ forbids casting to an array type '_Unwind_Exception_Class'
../include/unwind-cxx.h:179:41: error: ISO C++ forbids casting to an array type '_Unwind_Exception_Class'
../include/unwind-cxx.h:180:40: error: ISO C++ forbids casting to an array type '_Unwind_Exception_Class'
../include/unwind-cxx.h:181:39: error: ISO C++ forbids casting to an array type '_Unwind_Exception_Class'
../include/unwind-cxx.h:182:38: error: ISO C++ forbids casting to an array type '_Unwind_Exception_Class'
../include/unwind-cxx.h:183:37: error: ISO C++ forbids casting to an array type '_Unwind_Exception_Class'
make[1]: *** [eh_alloc.o] Error 1
make[1]: Leaving directory `/home/florian/dev/uclibcxx/uClibc++/src'
Workaround this by direclty using the string "GNUCC++".
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>