summaryrefslogtreecommitdiff
path: root/lang/gcc-aux
diff options
context:
space:
mode:
authormarino <marino>2013-07-20 19:47:19 +0000
committermarino <marino>2013-07-20 19:47:19 +0000
commit7c14dc35ae824bc975835bee6ea48073a2fbd348 (patch)
treece3cd829490928e4e9212c26854f5ae8248738c7 /lang/gcc-aux
parentc830c65562880cc86919a98abe8917027166edbd (diff)
downloadpkgsrc-7c14dc35ae824bc975835bee6ea48073a2fbd348.tar.gz
lang/gcc-aux: bug fix
This commit achieves the following: 1) Fix specific case of falsely identified aggregate array index duplicates. Fix taken from gcc 4.8 source, it apparently will never be backported. 2) Fix typo that caused mktemp to be used in DragonFly 3) Incorporate NetBSD libstdc++ fixes into gcc-aux repository (which is a parallel fork) and regenerate diff-cxx. This enables patches to be removed.
Diffstat (limited to 'lang/gcc-aux')
-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;
- }
-