diff options
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; - } - |