diff options
author | joerg <joerg@pkgsrc.org> | 2013-04-29 21:34:48 +0000 |
---|---|---|
committer | joerg <joerg@pkgsrc.org> | 2013-04-29 21:34:48 +0000 |
commit | db6c9d7688356c2c2fc98800ed8e017b696afcd7 (patch) | |
tree | 980ece62f3d3b172d93c350faa5687d0c0431f24 /lang/gcc-aux | |
parent | 8ab298d6e578f0235deeacb43a4858bff6856202 (diff) | |
download | pkgsrc-db6c9d7688356c2c2fc98800ed8e017b696afcd7.tar.gz |
Deal with the 16bit ctype table move in NetBSD/current. Fix some cases
of ctype.h argument range errors.
Diffstat (limited to 'lang/gcc-aux')
4 files changed, 143 insertions, 1 deletions
diff --git a/lang/gcc-aux/distinfo b/lang/gcc-aux/distinfo index c5cc8b3ab94..3a5726da7df 100644 --- a/lang/gcc-aux/distinfo +++ b/lang/gcc-aux/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.3 2013/04/12 15:40:54 marino Exp $ +$NetBSD: distinfo,v 1.4 2013/04/29 21:34:48 joerg Exp $ SHA1 (gcc-4.7.3.tar.bz2) = 69e02737bd6e1a7c6047d801600d39c32b9427ca RMD160 (gcc-4.7.3.tar.bz2) = b4ba153b098cad726ecd28195ee445aa542d37ae @@ -18,3 +18,6 @@ Size (gnat-bootstrap.x86_64.netbsd.tar.bz2) = 30572187 bytes SHA1 (gnat-bootstrap.i386.solaris.tar.bz2) = 4962657bfc894a20ad3102c1f6fe8e566b47cb51 RMD160 (gnat-bootstrap.i386.solaris.tar.bz2) = ae72e76d0aba94451d99b9a70a3c049c9258cc82 Size (gnat-bootstrap.i386.solaris.tar.bz2) = 43247034 bytes +SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h) = cfc0898f37eda462fa27e87ee9e06e5334daedec +SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc) = 80154157d9e0ceefe078f1d05b08a9a17bec8503 +SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h) = e1215dd90c32d7eabfbf82f3f45b91994a61ecc4 diff --git a/lang/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h b/lang/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h new file mode 100644 index 00000000000..2c4fb48cf80 --- /dev/null +++ b/lang/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h @@ -0,0 +1,70 @@ +$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h,v 1.1 2013/04/29 21:34:48 joerg Exp $ + +--- libstdc++-v3/config/os/bsd/netbsd/ctype_base.h.orig 2013-04-28 19:33:29.000000000 +0000 ++++ libstdc++-v3/config/os/bsd/netbsd/ctype_base.h +@@ -30,7 +30,7 @@ + // Full details can be found from the CVS files at: + // anoncvs@anoncvs.netbsd.org:/cvsroot/basesrc/include/ctype.h + // See www.netbsd.org for details of access. +- ++ + namespace std _GLIBCXX_VISIBILITY(default) + { + _GLIBCXX_BEGIN_NAMESPACE_VERSION +@@ -43,21 +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 +- static const mask upper = _U; +- static const mask lower = _L; +- static const mask alpha = _U | _L; +- static const mask digit = _N; +- static const mask xdigit = _N | _X; +- static const mask space = _S; +- static const mask print = _P | _U | _L | _N | _B; +- static const mask graph = _P | _U | _L | _N; +- static const mask cntrl = _C; +- static const mask punct = _P; +- static const mask alnum = _U | _L | _N; +-#else ++#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 = _CTYPE_U; + static const mask lower = _CTYPE_L; + static const mask alpha = _CTYPE_U | _CTYPE_L; +@@ -69,6 +70,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + static const mask cntrl = _CTYPE_C; + static const mask punct = _CTYPE_P; + static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_N; ++#else ++ typedef unsigned char mask; ++ static const mask upper = _U; ++ static const mask lower = _L; ++ static const mask alpha = _U | _L; ++ static const mask digit = _N; ++ static const mask xdigit = _N | _X; ++ static const mask space = _S; ++ static const mask print = _P | _U | _L | _N | _B; ++ static const mask graph = _P | _U | _L | _N; ++ static const mask cntrl = _C; ++ static const mask punct = _P; ++ static const mask alnum = _U | _L | _N; + #endif + }; + diff --git a/lang/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc b/lang/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc new file mode 100644 index 00000000000..deb9b72fb27 --- /dev/null +++ b/lang/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc @@ -0,0 +1,56 @@ +$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc,v 1.1 2013/04/29 21:34:48 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() ++#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/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h b/lang/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h new file mode 100644 index 00000000000..1592cfdd948 --- /dev/null +++ b/lang/gcc-aux/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/04/29 21:34:48 joerg Exp $ + +--- libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h.orig 2013-04-28 19:47:14.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; + } + |