summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/gcc-aux/Makefile4
-rw-r--r--lang/gcc-aux/files/diff-ada98
-rw-r--r--lang/gcc-aux/files/diff-cxx133
-rw-r--r--lang/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h70
-rw-r--r--lang/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc56
-rw-r--r--lang/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h13
6 files changed, 232 insertions, 142 deletions
diff --git a/lang/gcc-aux/Makefile b/lang/gcc-aux/Makefile
index e8010ea8e1a..24a311bb30c 100644
--- a/lang/gcc-aux/Makefile
+++ b/lang/gcc-aux/Makefile
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile,v 1.10 2013/07/07 08:57:03 marino Exp $
+# $NetBSD: Makefile,v 1.11 2013/07/20 19:47:19 marino Exp $
#
PKGNAME= gcc-aux-${SNAPSHOT}
DISTNAME= gcc-${GCC_VERSION}
-PKGREVISION= 1
+PKGREVISION= 2
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC_VERSION}/}
DISTFILES= ${DISTNAME}.tar.bz2
diff --git a/lang/gcc-aux/files/diff-ada b/lang/gcc-aux/files/diff-ada
index 0a5d1b41b83..f9da88c5c2b 100644
--- a/lang/gcc-aux/files/diff-ada
+++ b/lang/gcc-aux/files/diff-ada
@@ -449,7 +449,7 @@
strcpy (path, "GNAT-XXXXXX");
#if (defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) \
-+ || defined (DragonFly) \
++ || defined (__DragonFly__) \
|| defined (linux) || defined(__GLIBC__)) && !defined (__vxworks)
return mkstemp (path);
#elif defined (__Lynx__)
@@ -7900,6 +7900,102 @@
begin
Mantissa := Random (Gen) / 2**Extra_Bits;
+--- gcc/ada/sem_aggr.adb.orig
++++ gcc/ada/sem_aggr.adb
+@@ -1726,6 +1726,9 @@
+ Discard : Node_Id;
+ pragma Warnings (Off, Discard);
+
++ Delete_Choice : Boolean;
++ -- Used when replacing a subtype choice with predicate by a list
++
+ Aggr_Low : Node_Id := Empty;
+ Aggr_High : Node_Id := Empty;
+ -- The actual low and high bounds of this sub-aggregate
+@@ -1766,6 +1769,8 @@
+ Assoc := First (Component_Associations (N));
+ while Present (Assoc) loop
+ Choice := First (Choices (Assoc));
++ Delete_Choice := False;
++
+ while Present (Choice) loop
+ if Nkind (Choice) = N_Others_Choice then
+ Others_Present := True;
+@@ -1792,10 +1797,56 @@
+ Error_Msg_N
+ ("(Ada 83) illegal context for OTHERS choice", N);
+ end if;
++
++ elsif Is_Entity_Name (Choice) then
++ Analyze (Choice);
++
++ declare
++ E : constant Entity_Id := Entity (Choice);
++ New_Cs : List_Id;
++ P : Node_Id;
++ C : Node_Id;
++
++ begin
++ if Is_Type (E) and then Has_Predicates (E) then
++ Freeze_Before (N, E);
++
++ -- If the subtype has a static predicate, replace the
++ -- original choice with the list of individual values
++ -- covered by the predicate.
++
++ if Present (Static_Predicate (E)) then
++ Delete_Choice := True;
++
++ New_Cs := New_List;
++ P := First (Static_Predicate (E));
++ while Present (P) loop
++ C := New_Copy (P);
++ Set_Sloc (C, Sloc (Choice));
++ Append_To (New_Cs, C);
++ Next (P);
++ end loop;
++
++ Insert_List_After (Choice, New_Cs);
++ end if;
++ end if;
++ end;
+ end if;
+
+ Nb_Choices := Nb_Choices + 1;
+- Next (Choice);
++
++ declare
++ C : constant Node_Id := Choice;
++
++ begin
++ Next (Choice);
++
++ if Delete_Choice then
++ Remove (C);
++ Nb_Choices := Nb_Choices - 1;
++ Delete_Choice := False;
++ end if;
++ end;
+ end loop;
+
+ Next (Assoc);
+@@ -1998,6 +2049,7 @@
+ Nb_Discrete_Choices := Nb_Discrete_Choices + 1;
+ Table (Nb_Discrete_Choices).Choice_Lo := Low;
+ Table (Nb_Discrete_Choices).Choice_Hi := High;
++ Table (Nb_Discrete_Choices).Choice_Node := Choice;
+
+ Next (Choice);
+
+@@ -2115,7 +2167,7 @@
+ then
+ Error_Msg_N
+ ("duplicate choice values in array aggregate",
+- Table (J).Choice_Hi);
++ Table (J).Choice_Node);
+ return Failure;
+
+ elsif not Others_Present then
--- /dev/null
+++ gcc/ada/signal_android.c
@@ -0,0 +1,77 @@
diff --git a/lang/gcc-aux/files/diff-cxx b/lang/gcc-aux/files/diff-cxx
index 9eafda5c602..105792caeb6 100644
--- a/lang/gcc-aux/files/diff-cxx
+++ b/lang/gcc-aux/files/diff-cxx
@@ -952,3 +952,136 @@
+*/
+
+#endif
+--- libstdc++-v3/config/os/bsd/netbsd/ctype_base.h.orig
++++ 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 @@
+
+ // 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 @@
+ 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
+ };
+
+--- libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc.orig
++++ libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
+@@ -38,11 +38,17 @@
+
+ // 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 @@
+
+ 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 @@
+
+ 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;
+--- libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h.orig
++++ libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
+@@ -48,7 +48,7 @@
+ 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/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
deleted file mode 100644
index 2c4fb48cf80..00000000000
--- a/lang/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h
+++ /dev/null
@@ -1,70 +0,0 @@
-$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
deleted file mode 100644
index deb9b72fb27..00000000000
--- a/lang/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc
+++ /dev/null
@@ -1,56 +0,0 @@
-$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
deleted file mode 100644
index 1592cfdd948..00000000000
--- a/lang/gcc-aux/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$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;
- }
-