diff options
author | joerg <joerg> | 2013-05-22 13:14:19 +0000 |
---|---|---|
committer | joerg <joerg> | 2013-05-22 13:14:19 +0000 |
commit | 7aeed67e95465ea9b2eefd0b3929961938a7fa29 (patch) | |
tree | dc48645abb6e7c966eba4436ae039bee6f7d3285 /lang | |
parent | 7aebb6d30bd04cfb2735b6681b04ad40274324a8 (diff) | |
download | pkgsrc-7aeed67e95465ea9b2eefd0b3929961938a7fa29.tar.gz |
Apply _CTYPE_BL fixes to gcc47 and gcc48.
Diffstat (limited to 'lang')
8 files changed, 222 insertions, 2 deletions
diff --git a/lang/gcc47/distinfo b/lang/gcc47/distinfo index f890e3b6c9c..fb98f1e1453 100644 --- a/lang/gcc47/distinfo +++ b/lang/gcc47/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.18 2013/04/25 10:54:40 wiz Exp $ +$NetBSD: distinfo,v 1.19 2013/05/22 13:14:19 joerg Exp $ SHA1 (ecj-4.5.jar) = 58c1d79c64c8cd718550f32a932ccfde8d1e6449 RMD160 (ecj-4.5.jar) = d3f4da657f086b6423f74e93f001132f4855368a @@ -35,5 +35,8 @@ SHA1 (patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__base.h) = 12b8e3b998ae1c SHA1 (patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__configure__char.cc) = d5649f42b61ff3c27d60e813cc844b820525aee4 SHA1 (patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__inline.h) = 3e8cbedb167fc623f184a59b1f4b330544b08939 SHA1 (patch-libstdc++-v3_config_os_bsd_dragonfly_os__defines.h) = 9a45ecb4309c50ca90008b2fc7d3b44d002698b4 +SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h) = ee1566dba7497043106e0549e6a78042c0c338cd +SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc) = 5a7c497babd00f7b906234d40e7dc48471cbe759 +SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h) = 830038744cbbb713ecc3f960a9509bef16176db9 SHA1 (patch-libstdc++-v3_configure) = 7aa0c5fea3b446657aa27f603d99ea50ed1e44c1 SHA1 (patch-libstdc++-v3_configure.host) = 7426ea4a9735e5f886f4a3ffb4a9ba62734178c4 diff --git a/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h b/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h new file mode 100644 index 00000000000..786c2180d05 --- /dev/null +++ b/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h @@ -0,0 +1,37 @@ +$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h,v 1.3 2013/05/22 13:14:19 joerg Exp $ + +--- libstdc++-v3/config/os/bsd/netbsd/ctype_base.h.orig 2012-08-06 14:34:27.000000000 +0000 ++++ libstdc++-v3/config/os/bsd/netbsd/ctype_base.h +@@ -43,9 +43,22 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + // NB: Offsets into ctype<char>::_M_table force a particular size + // on the mask type. Because of this, we don't use an enum. +- typedef unsigned char mask; + +-#ifndef _CTYPE_U ++#if defined(_CTYPE_BL) ++ typedef unsigned short mask; ++ static const mask upper = _CTYPE_U; ++ static const mask lower = _CTYPE_L; ++ static const mask alpha = _CTYPE_A; ++ static const mask digit = _CTYPE_D; ++ static const mask xdigit = _CTYPE_X; ++ static const mask space = _CTYPE_S; ++ static const mask print = _CTYPE_R; ++ static const mask graph = _CTYPE_G; ++ static const mask cntrl = _CTYPE_C; ++ static const mask punct = _CTYPE_P; ++ static const mask alnum = _CTYPE_A | _CTYPE_D; ++#elif !defined(_CTYPE_U) ++ typedef unsigned char mask; + static const mask upper = _U; + static const mask lower = _L; + static const mask alpha = _U | _L; +@@ -58,6 +71,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + static const mask punct = _P; + static const mask alnum = _U | _L | _N; + #else ++ typedef unsigned char mask; + static const mask upper = _CTYPE_U; + static const mask lower = _CTYPE_L; + static const mask alpha = _CTYPE_U | _CTYPE_L; diff --git a/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc b/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc new file mode 100644 index 00000000000..f7c0320fba7 --- /dev/null +++ b/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc @@ -0,0 +1,57 @@ +$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc,v 1.1 2013/05/22 13:14:19 joerg Exp $ + +--- libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc.orig 2011-03-31 16:06:12.000000000 +0000 ++++ libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc +@@ -38,11 +38,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + // Information as gleaned from /usr/include/ctype.h + ++#ifndef _CTYPE_BL + extern "C" const u_int8_t _C_ctype_[]; ++#endif + + const ctype_base::mask* + ctype<char>::classic_table() throw() +- { return _C_ctype_ + 1; } ++#ifdef _CTYPE_BL ++ { return _C_ctype_tab_ + 1; } ++#else ++ { return _C_ctype_ + 1; } ++#endif + + ctype<char>::ctype(__c_locale, const mask* __table, bool __del, + size_t __refs) +@@ -69,14 +75,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + char + ctype<char>::do_toupper(char __c) const +- { return ::toupper((int) __c); } ++ { return ::toupper((int)(unsigned char) __c); } + + const char* + ctype<char>::do_toupper(char* __low, const char* __high) const + { + while (__low < __high) + { +- *__low = ::toupper((int) *__low); ++ *__low = ::toupper((int)(unsigned char) *__low); + ++__low; + } + return __high; +@@ -84,14 +90,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + char + ctype<char>::do_tolower(char __c) const +- { return ::tolower((int) __c); } ++ { return ::tolower((int)(unsigned char) __c); } + + const char* + ctype<char>::do_tolower(char* __low, const char* __high) const + { + while (__low < __high) + { +- *__low = ::tolower((int) *__low); ++ *__low = ::tolower((int)(unsigned char) *__low); + ++__low; + } + return __high; diff --git a/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h b/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h new file mode 100644 index 00000000000..5b2bba66180 --- /dev/null +++ b/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h @@ -0,0 +1,13 @@ +$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h,v 1.1 2013/05/22 13:14:19 joerg Exp $ + +--- libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h.orig 2011-01-30 22:39:36.000000000 +0000 ++++ libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h +@@ -48,7 +48,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + is(const char* __low, const char* __high, mask* __vec) const + { + while (__low < __high) +- *__vec++ = _M_table[*__low++]; ++ *__vec++ = _M_table[(unsigned char)*__low++]; + return __high; + } + diff --git a/lang/gcc48/distinfo b/lang/gcc48/distinfo index 1b0f2a717f8..dce84247683 100644 --- a/lang/gcc48/distinfo +++ b/lang/gcc48/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.4 2013/04/29 21:34:11 joerg Exp $ +$NetBSD: distinfo,v 1.5 2013/05/22 13:14:19 joerg Exp $ SHA1 (ecj-4.5.jar) = 58c1d79c64c8cd718550f32a932ccfde8d1e6449 RMD160 (ecj-4.5.jar) = d3f4da657f086b6423f74e93f001132f4855368a @@ -33,6 +33,9 @@ SHA1 (patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__base.h) = 12b8e3b998ae1c SHA1 (patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__configure__char.cc) = d5649f42b61ff3c27d60e813cc844b820525aee4 SHA1 (patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__inline.h) = 3e8cbedb167fc623f184a59b1f4b330544b08939 SHA1 (patch-libstdc++-v3_config_os_bsd_dragonfly_os__defines.h) = 9a45ecb4309c50ca90008b2fc7d3b44d002698b4 +SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h) = 014d442c885b9c51d1a4af05205279c274a9559d +SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc) = b63c2682336c9b6f0e0d7b900d6f40ad6e7a5ec4 +SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h) = 626fc1f9c035ac5cef30a92d525af4e778835ebf SHA1 (patch-libstdc++-v3_configure) = 3821275fa698221d7665ea3c98b0a24f33954a5a SHA1 (patch-libstdc++-v3_configure.host) = 7426ea4a9735e5f886f4a3ffb4a9ba62734178c4 SHA1 (patch-libstdc++-v3_libsupc++_unwind-cxx.h) = 9784bfa4323f8498b36565d0fea28fce69ffdbb1 diff --git a/lang/gcc48/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h b/lang/gcc48/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h new file mode 100644 index 00000000000..43eb58ec7bf --- /dev/null +++ b/lang/gcc48/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h @@ -0,0 +1,37 @@ +$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h,v 1.1 2013/05/22 13:14:19 joerg Exp $ + +--- libstdc++-v3/config/os/bsd/netbsd/ctype_base.h.orig 2013-02-03 17:54:05.000000000 +0000 ++++ libstdc++-v3/config/os/bsd/netbsd/ctype_base.h +@@ -43,9 +43,22 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + // NB: Offsets into ctype<char>::_M_table force a particular size + // on the mask type. Because of this, we don't use an enum. +- typedef unsigned char mask; + +-#ifndef _CTYPE_U ++#if defined(_CTYPE_BL) ++ typedef unsigned short mask; ++ static const mask upper = _CTYPE_U; ++ static const mask lower = _CTYPE_L; ++ static const mask alpha = _CTYPE_A; ++ static const mask digit = _CTYPE_D; ++ static const mask xdigit = _CTYPE_X; ++ static const mask space = _CTYPE_S; ++ static const mask print = _CTYPE_R; ++ static const mask graph = _CTYPE_G; ++ static const mask cntrl = _CTYPE_C; ++ static const mask punct = _CTYPE_P; ++ static const mask alnum = _CTYPE_A | _CTYPE_D; ++#elif !defined(_CTYPE_U) ++ typedef unsigned char mask; + static const mask upper = _U; + static const mask lower = _L; + static const mask alpha = _U | _L; +@@ -58,6 +71,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + static const mask punct = _P; + static const mask alnum = _U | _L | _N; + #else ++ typedef unsigned char mask; + static const mask upper = _CTYPE_U; + static const mask lower = _CTYPE_L; + static const mask alpha = _CTYPE_U | _CTYPE_L; diff --git a/lang/gcc48/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc b/lang/gcc48/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc new file mode 100644 index 00000000000..65c22f59030 --- /dev/null +++ b/lang/gcc48/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc @@ -0,0 +1,57 @@ +$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc,v 1.1 2013/05/22 13:14:19 joerg Exp $ + +--- libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc.orig 2013-02-03 17:54:05.000000000 +0000 ++++ libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc +@@ -38,11 +38,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + // Information as gleaned from /usr/include/ctype.h + ++#ifndef _CTYPE_BL + extern "C" const u_int8_t _C_ctype_[]; ++#endif + + const ctype_base::mask* + ctype<char>::classic_table() throw() +- { return _C_ctype_ + 1; } ++#ifdef _CTYPE_BL ++ { return _C_ctype_tab_ + 1; } ++#else ++ { return _C_ctype_ + 1; } ++#endif + + ctype<char>::ctype(__c_locale, const mask* __table, bool __del, + size_t __refs) +@@ -69,14 +75,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + char + ctype<char>::do_toupper(char __c) const +- { return ::toupper((int) __c); } ++ { return ::toupper((int)(unsigned char) __c); } + + const char* + ctype<char>::do_toupper(char* __low, const char* __high) const + { + while (__low < __high) + { +- *__low = ::toupper((int) *__low); ++ *__low = ::toupper((int)(unsigned char) *__low); + ++__low; + } + return __high; +@@ -84,14 +90,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + char + ctype<char>::do_tolower(char __c) const +- { return ::tolower((int) __c); } ++ { return ::tolower((int)(unsigned char) __c); } + + const char* + ctype<char>::do_tolower(char* __low, const char* __high) const + { + while (__low < __high) + { +- *__low = ::tolower((int) *__low); ++ *__low = ::tolower((int)(unsigned char) *__low); + ++__low; + } + return __high; diff --git a/lang/gcc48/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h b/lang/gcc48/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h new file mode 100644 index 00000000000..0b5ed2759f2 --- /dev/null +++ b/lang/gcc48/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h @@ -0,0 +1,13 @@ +$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h,v 1.1 2013/05/22 13:14:19 joerg Exp $ + +--- libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h.orig 2013-02-03 17:54:05.000000000 +0000 ++++ libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h +@@ -48,7 +48,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + is(const char* __low, const char* __high, mask* __vec) const + { + while (__low < __high) +- *__vec++ = _M_table[*__low++]; ++ *__vec++ = _M_table[(unsigned char)*__low++]; + return __high; + } + |