diff options
author | Khem Raj <raj.khem@gmail.com> | 2016-06-24 08:53:09 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-07-01 16:08:46 +0100 |
commit | 42487843f846ae61f8bd1b2278d148ff37f0d667 (patch) | |
tree | b423de09d29156ddfdc7dfab862f8e88f9a45617 /meta/recipes-devtools/gcc/gcc-5.4/0003-gcc-uclibc-locale-ctype_touplow_t.patch | |
parent | 4ff37b9a55b1239e339e7d93a2ad6e0c71971345 (diff) | |
download | openembedded-core-42487843f846ae61f8bd1b2278d148ff37f0d667.tar.gz |
gcc5: Upgrade to gcc 5.4
Drop patches which has been applied to gcc5 branch
until 5.4 release
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-5.4/0003-gcc-uclibc-locale-ctype_touplow_t.patch')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-5.4/0003-gcc-uclibc-locale-ctype_touplow_t.patch | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-5.4/0003-gcc-uclibc-locale-ctype_touplow_t.patch b/meta/recipes-devtools/gcc/gcc-5.4/0003-gcc-uclibc-locale-ctype_touplow_t.patch new file mode 100644 index 0000000000..bd0326343e --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-5.4/0003-gcc-uclibc-locale-ctype_touplow_t.patch @@ -0,0 +1,87 @@ +From 9bcb3a1848ff0f8990301ca09a25b15c2cf90c6f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 29 Mar 2013 08:40:12 +0400 +Subject: [PATCH 03/46] gcc-uclibc-locale-ctype_touplow_t + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Upstream-Status: Pending +--- + libstdc++-v3/config/locale/generic/c_locale.cc | 5 +++++ + libstdc++-v3/config/locale/generic/c_locale.h | 9 +++++++++ + libstdc++-v3/config/os/gnu-linux/ctype_base.h | 9 +++++++++ + 3 files changed, 23 insertions(+) + +diff --git a/libstdc++-v3/config/locale/generic/c_locale.cc b/libstdc++-v3/config/locale/generic/c_locale.cc +index 6da5f22..2f85c2f 100644 +--- a/libstdc++-v3/config/locale/generic/c_locale.cc ++++ b/libstdc++-v3/config/locale/generic/c_locale.cc +@@ -263,5 +263,10 @@ _GLIBCXX_END_NAMESPACE_VERSION + #ifdef _GLIBCXX_LONG_DOUBLE_COMPAT + #define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \ + extern "C" void ldbl (void) __attribute__ ((alias (#dbl))) ++#ifdef __UCLIBC__ ++// This is because __c_locale is of type __ctype_touplow_t* which is short on uclibc. for glibc its int* ++_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPs, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPs); ++#else + _GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi); ++#endif + #endif // _GLIBCXX_LONG_DOUBLE_COMPAT +diff --git a/libstdc++-v3/config/locale/generic/c_locale.h b/libstdc++-v3/config/locale/generic/c_locale.h +index ee3ef86..7fd5485 100644 +--- a/libstdc++-v3/config/locale/generic/c_locale.h ++++ b/libstdc++-v3/config/locale/generic/c_locale.h +@@ -40,13 +40,22 @@ + + #include <clocale> + ++#ifdef __UCLIBC__ ++#include <features.h> ++#include <ctype.h> ++#endif ++ + #define _GLIBCXX_NUM_CATEGORIES 0 + + namespace std _GLIBCXX_VISIBILITY(default) + { + _GLIBCXX_BEGIN_NAMESPACE_VERSION + ++#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 +diff --git a/libstdc++-v3/config/os/gnu-linux/ctype_base.h b/libstdc++-v3/config/os/gnu-linux/ctype_base.h +index fd52b73..2627cf3 100644 +--- a/libstdc++-v3/config/os/gnu-linux/ctype_base.h ++++ b/libstdc++-v3/config/os/gnu-linux/ctype_base.h +@@ -33,6 +33,11 @@ + + // Information as gleaned from /usr/include/ctype.h + ++#ifdef __UCLIBC__ ++#include <features.h> ++#include <ctype.h> ++#endif ++ + namespace std _GLIBCXX_VISIBILITY(default) + { + _GLIBCXX_BEGIN_NAMESPACE_VERSION +@@ -41,7 +46,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + struct ctype_base + { + // Non-standard typedefs. ++#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. +-- +2.6.3 + |