diff options
Diffstat (limited to 'recipes')
-rw-r--r-- | recipes/gcc/gcc-4.4.1/gcc-uclibc-locale-ctype_touplow_t.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/recipes/gcc/gcc-4.4.1/gcc-uclibc-locale-ctype_touplow_t.patch b/recipes/gcc/gcc-4.4.1/gcc-uclibc-locale-ctype_touplow_t.patch new file mode 100644 index 0000000000..ffb37d2976 --- /dev/null +++ b/recipes/gcc/gcc-4.4.1/gcc-uclibc-locale-ctype_touplow_t.patch @@ -0,0 +1,52 @@ +Index: gcc-4.4.1/libstdc++-v3/config/locale/generic/c_locale.h +=================================================================== +--- gcc-4.4.1.orig/libstdc++-v3/config/locale/generic/c_locale.h 2009-08-06 23:38:32.398265633 -0700 ++++ gcc-4.4.1/libstdc++-v3/config/locale/generic/c_locale.h 2009-08-06 23:41:09.778242281 -0700 +@@ -41,12 +41,17 @@ + + #include <clocale> + #include <cstddef> ++#include <features.h> ++#include <ctype.h> + + #define _GLIBCXX_NUM_CATEGORIES 0 + + _GLIBCXX_BEGIN_NAMESPACE(std) +- +- typedef int* __c_locale; ++#ifdef __UCLIBC__ ++ typedef __ctype_touplow_t* __c_locale; ++#else ++ typedef int* __c_locale; ++#endif + + // Convert numeric value of type double and long double to string and + // return length of string. If vsnprintf is available use it, otherwise +Index: gcc-4.4.1/libstdc++-v3/config/os/gnu-linux/ctype_base.h +=================================================================== +--- gcc-4.4.1.orig/libstdc++-v3/config/os/gnu-linux/ctype_base.h 2009-08-06 23:42:27.402242608 -0700 ++++ gcc-4.4.1/libstdc++-v3/config/os/gnu-linux/ctype_base.h 2009-08-06 23:43:44.842241959 -0700 +@@ -33,14 +33,21 @@ + */ + + // Information as gleaned from /usr/include/ctype.h +- ++ ++#include <features.h> ++#include <ctype.h> ++ + _GLIBCXX_BEGIN_NAMESPACE(std) + + /// @brief Base class for ctype. + struct ctype_base + { + // Non-standard typedefs. +- typedef const int* __to_type; ++#ifdef __UCLIBC__ ++ typedef const __ctype_touplow_t* __to_type; ++#else ++ typedef const int* __to_type; ++#endif + + // NB: Offsets into ctype<char>::_M_table force a particular size + // on the mask type. Because of this, we don't use an enum. |