From: Felix Fietkau Date: Tue, 27 Jan 2009 22:43:41 +0000 (+0000) Subject: fix uclibc++ for gcc 4.3 and uclibc 0.9.30 (thx to Alexandros C. Couloumbis) X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;hb=b68b70775ca3181ec631e111a2087da66dfb3420 fix uclibc++ for gcc 4.3 and uclibc 0.9.30 (thx to Alexandros C. Couloumbis) SVN-Revision: 14231 --- diff --git a/libs/uclibc++/patches/009-compile_fixes.patch b/libs/uclibc++/patches/009-compile_fixes.patch new file mode 100644 index 0000000000..d2093be39a --- /dev/null +++ b/libs/uclibc++/patches/009-compile_fixes.patch @@ -0,0 +1,79 @@ +--- a/include/associative_base ++++ b/include/associative_base +@@ -74,7 +74,7 @@ public: + typedef typename std::reverse_iterator const_reverse_iterator; + + +- explicit __base_associative(const Compare& comp, const Allocator& A, const key_type (*v_to_k)(const value_type)) ++ explicit __base_associative(const Compare& comp, const Allocator& A, key_type (*v_to_k)(const value_type)) + : c(comp), value_to_key(v_to_k) { } + protected: + __base_associative(const associative_type& x) +@@ -318,7 +318,7 @@ protected: + typedef std::list listtype; + + typename listtype::iterator base_iter; +- typedef _associative_citer _associative_citer; ++ typedef _associative_citer __associative_citer; + + + public: +@@ -347,13 +347,13 @@ public: + bool operator==(const _associative_iter & m) const{ + return m.base_iter == base_iter; + } +- bool operator==(const _associative_citer & m) const{ ++ bool operator==(const __associative_citer & m) const{ + return m.base_iter == base_iter; + } + bool operator!=(const _associative_iter & m) const{ + return m.base_iter != base_iter; + } +- bool operator!=(const _associative_citer & m) const{ ++ bool operator!=(const __associative_citer & m) const{ + return m.base_iter != base_iter; + } + _associative_iter & operator++(){ +@@ -378,8 +378,8 @@ public: + --base_iter; + return temp; + } +- operator _associative_citer() const{ +- return _associative_citer(base_iter); ++ operator __associative_citer() const{ ++ return __associative_citer(base_iter); + } + typename listtype::iterator base_iterator(){ + return base_iter; +--- a/include/string ++++ b/include/string +@@ -1017,11 +1017,11 @@ template _UCXXEXPORT bool operator==(const string & lhs, const string & rhs); + template <> _UCXXEXPORT bool operator==(const char * lhs, const string & rhs); +-template <> _UCXXEXPORT bool operator==(const string & rhs, const char * rhs); ++template <> _UCXXEXPORT bool operator==(const string & lhs, const char * rhs); + + template <> _UCXXEXPORT bool operator!=(const string & lhs, const string & rhs); + template <> _UCXXEXPORT bool operator!=(const char * lhs, const string & rhs); +-template <> _UCXXEXPORT bool operator!=(const string & rhs, const char * rhs); ++template <> _UCXXEXPORT bool operator!=(const string & lhs, const char * rhs); + + template <> _UCXXEXPORT string operator+(const string & lhs, const char* rhs); + template <> _UCXXEXPORT string operator+(const char* lhs, const string & rhs); +--- a/src/string.cpp ++++ b/src/string.cpp +@@ -76,11 +76,11 @@ namespace std{ + + template _UCXXEXPORT bool operator==(const string & lhs, const string & rhs); + template _UCXXEXPORT bool operator==(const char * lhs, const string & rhs); +- template _UCXXEXPORT bool operator==(const string & rhs, const char * rhs); ++ template _UCXXEXPORT bool operator==(const string & lhs, const char * rhs); + + template _UCXXEXPORT bool operator!=(const string & lhs, const string & rhs); + template _UCXXEXPORT bool operator!=(const char * lhs, const string & rhs); +- template _UCXXEXPORT bool operator!=(const string & rhs, const char * rhs); ++ template _UCXXEXPORT bool operator!=(const string & lhs, const char * rhs); + + template _UCXXEXPORT string operator+(const string & lhs, const char* rhs); + template _UCXXEXPORT string operator+(const char* lhs, const string & rhs);