summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authormarino <marino>2013-01-31 20:07:17 +0000
committermarino <marino>2013-01-31 20:07:17 +0000
commit59435336dca2167937c15387ee03cb540870100b (patch)
tree57ca80d8849075fd2dd2e48efa3af266f6b73d06 /lang
parent726e9a367b106437c01ab44bb57884b53ba071ab (diff)
downloadpkgsrc-59435336dca2167937c15387ee03cb540870100b.tar.gz
lang/gcc47: Fix DragonFly c++ iostream bug
Diffstat (limited to 'lang')
-rw-r--r--lang/gcc47-libs/Makefile4
-rw-r--r--lang/gcc47/Makefile4
-rw-r--r--lang/gcc47/distinfo6
-rw-r--r--lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__base.h4
-rw-r--r--lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__inline.h52
5 files changed, 52 insertions, 18 deletions
diff --git a/lang/gcc47-libs/Makefile b/lang/gcc47-libs/Makefile
index 8dbf2bd5c0f..beb9ea8a6b9 100644
--- a/lang/gcc47-libs/Makefile
+++ b/lang/gcc47-libs/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.7 2012/12/01 02:29:32 sbd Exp $
+# $NetBSD: Makefile,v 1.8 2013/01/31 20:07:17 marino Exp $
GCC_PKGNAME= gcc47
.include "../../lang/${GCC_PKGNAME}/version.mk"
@@ -8,7 +8,7 @@ PKGNAME= ${GCC_PKGNAME}-libs-${GCC_DIST_VERSION}
## The PKGREVISION of this package needs to be at least 1 more than the
## PKGREVISION of the lang/gcc47 package so that with the dependence pattern
## '{gcc47,gcc47-libs}>=4.7.*' pkg_all will choose gcc47-libs over gcc47.
-PKGREVISION= 1
+PKGREVISION= 2
CATEGORIES= lang
MASTER_SITES= # empty
DISTFILES= # empty
diff --git a/lang/gcc47/Makefile b/lang/gcc47/Makefile
index acde5671cde..c7cbf6039ac 100644
--- a/lang/gcc47/Makefile
+++ b/lang/gcc47/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.12 2012/12/01 02:29:32 sbd Exp $
+# $NetBSD: Makefile,v 1.13 2013/01/31 20:07:17 marino Exp $
GCC_PKGNAME= gcc47
.include "version.mk"
@@ -8,7 +8,7 @@ PKGNAME= ${GCC_PKGNAME}-${GCC_DIST_VERSION}
## When bumping the PKGREVISION of this package the PKGREVISION of
## lang/gcc47-libs needs to be bump to be at least 1 more than the
## PKGREVISION of this package!
-PKGREVISION=
+PKGREVISION= 1
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC_DIST_VERSION}/}
EXTRACT_SUFX= .tar.bz2
diff --git a/lang/gcc47/distinfo b/lang/gcc47/distinfo
index a9f772d551a..5fc2fad6ec6 100644
--- a/lang/gcc47/distinfo
+++ b/lang/gcc47/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.12 2012/12/01 02:29:32 sbd Exp $
+$NetBSD: distinfo,v 1.13 2013/01/31 20:07:17 marino Exp $
SHA1 (ecj-4.5.jar) = 58c1d79c64c8cd718550f32a932ccfde8d1e6449
RMD160 (ecj-4.5.jar) = d3f4da657f086b6423f74e93f001132f4855368a
@@ -30,9 +30,9 @@ SHA1 (patch-libjava_configure) = 48ea2baffe87e09dda8133d286bd9b1bfe4c3f8a
SHA1 (patch-libjava_contrib_rebuild-gcj-db.in) = bb01d738fc7db05046ae37e8ade32574de1d8297
SHA1 (patch-libstdc++-v3_config_locale_dragonfly_c__locale.cc) = 5c0ccc6b90e3508b03ed399e8e9e300a6aa9cbb7
SHA1 (patch-libstdc++-v3_config_locale_dragonfly_ctype__members.cc) = 876a754c7fcb1c4a362ca7b2655da6cdbb784ccc
-SHA1 (patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__base.h) = 1c8ee3ea80bd8869222dcb7beb050bf33ff4d3b6
+SHA1 (patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__base.h) = 12b8e3b998ae1c4b6641d8f9e26e7430c58bb7bc
SHA1 (patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__configure__char.cc) = d5649f42b61ff3c27d60e813cc844b820525aee4
-SHA1 (patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__inline.h) = fecd20146d8e0bdebb073c8d64886e36293416fd
+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_configure) = 7aa0c5fea3b446657aa27f603d99ea50ed1e44c1
SHA1 (patch-libstdc++-v3_configure.host) = 7426ea4a9735e5f886f4a3ffb4a9ba62734178c4
diff --git a/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__base.h b/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__base.h
index 02bc029bd28..6861c74e930 100644
--- a/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__base.h
+++ b/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__base.h
@@ -1,4 +1,4 @@
-$NetBSD: patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__base.h,v 1.1 2012/06/23 22:13:02 marino Exp $
+$NetBSD: patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__base.h,v 1.2 2013/01/31 20:07:17 marino Exp $
--- libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h.orig 2012-06-22 10:35:30.000000000 +0000
+++ libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h
@@ -43,7 +43,7 @@ $NetBSD: patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__base.h,v 1.1 2012/06/
+ struct ctype_base
+ {
+ // Non-standard typedefs.
-+ typedef const unsigned char* __to_type;
++ typedef const int* __to_type;
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
diff --git a/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__inline.h b/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__inline.h
index c0d6ebf406f..9bacb4f344d 100644
--- a/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__inline.h
+++ b/lang/gcc47/patches/patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__inline.h
@@ -1,8 +1,8 @@
-$NetBSD: patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__inline.h,v 1.1 2012/06/23 22:13:02 marino Exp $
+$NetBSD: patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__inline.h,v 1.2 2013/01/31 20:07:17 marino Exp $
--- libstdc++-v3/config/os/bsd/dragonfly/ctype_inline.h.orig 2012-06-22 10:35:30.000000000 +0000
+++ libstdc++-v3/config/os/bsd/dragonfly/ctype_inline.h
-@@ -0,0 +1,127 @@
+@@ -0,0 +1,161 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000, 2003, 2004, 2005, 2009, 2010
@@ -47,14 +47,38 @@ $NetBSD: patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__inline.h,v 1.1 2012/0
+ bool
+ ctype<char>::
+ is(mask __m, char __c) const
-+ { return _M_table[(unsigned char)(__c)] & __m; }
++ {
++ if (_M_table)
++ return _M_table[static_cast<unsigned char>(__c)] & __m;
++ else
++ return __libc_ctype_ [__c + 1] & __m;
++ }
+
+ const char*
+ ctype<char>::
+ is(const char* __low, const char* __high, mask* __vec) const
+ {
-+ while (__low < __high)
-+ *__vec++ = _M_table[*__low++];
++ if (_M_table)
++ while (__low < __high)
++ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
++ else
++ for (;__low < __high; ++__vec, ++__low)
++ {
++ mask __m = 0;
++ if (this->is(upper, *__low)) __m |= upper;
++ if (this->is(lower, *__low)) __m |= lower;
++ if (this->is(alpha, *__low)) __m |= alpha;
++ if (this->is(digit, *__low)) __m |= digit;
++ if (this->is(xdigit, *__low)) __m |= xdigit;
++ if (this->is(space, *__low)) __m |= space;
++ if (this->is(print, *__low)) __m |= print;
++ if (this->is(graph, *__low)) __m |= graph;
++ if (this->is(cntrl, *__low)) __m |= cntrl;
++ if (this->is(punct, *__low)) __m |= punct;
++ // Do not include explicit line for alnum mask since it is a
++ // pure composite of masks on DragonFly.
++ *__vec = __m;
++ }
+ return __high;
+ }
+
@@ -62,8 +86,13 @@ $NetBSD: patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__inline.h,v 1.1 2012/0
+ ctype<char>::
+ scan_is(mask __m, const char* __low, const char* __high) const
+ {
-+ while (__low < __high && !this->is(__m, *__low))
-+ ++__low;
++ if (_M_table)
++ while (__low < __high
++ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
++ ++__low;
++ else
++ while (__low < __high && !this->is(__m, *__low))
++ ++__low;
+ return __low;
+ }
+
@@ -71,8 +100,13 @@ $NetBSD: patch-libstdc++-v3_config_os_bsd_dragonfly_ctype__inline.h,v 1.1 2012/0
+ ctype<char>::
+ scan_not(mask __m, const char* __low, const char* __high) const
+ {
-+ while (__low < __high && this->is(__m, *__low) != 0)
-+ ++__low;
++ if (_M_table)
++ while (__low < __high
++ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
++ ++__low;
++ else
++ while (__low < __high && this->is(__m, *__low) != 0)
++ ++__low;
+ return __low;
+ }
+