aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lang/gcc-aux/Makefile9
-rw-r--r--lang/gcc-aux/Makefile.common17
-rw-r--r--lang/gcc-aux/Makefile.version6
-rw-r--r--lang/gcc-aux/files/diff-ada98
-rw-r--r--lang/gcc-aux/files/diff-cxx133
-rw-r--r--lang/gcc-aux/files/diff-cxx-testsuite3
6 files changed, 250 insertions, 16 deletions
diff --git a/lang/gcc-aux/Makefile b/lang/gcc-aux/Makefile
index 78a9aca085e2..de86cea54787 100644
--- a/lang/gcc-aux/Makefile
+++ b/lang/gcc-aux/Makefile
@@ -1,9 +1,9 @@
-# Created by: John Marino <marino@FreeBSD.org>
+# Created by: John Marino <marino@FreeBSD.org>
# $FreeBSD$
PORTNAME= gcc-aux
PORTVERSION= ${SNAPSHOT}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang
MASTER_SITES= http://downloads.dragonlace.net/src/:boot \
${MASTER_SITE_GCC}
@@ -96,6 +96,9 @@ INTENDED_COMPILER=BOOTSTRAP
FULL_GNATGCC=${BOOTSTRAP_PREFIX}/bin/gnatgcc
FULL_PATH=${BOOTSTRAP_PREFIX}/bin:/sbin:/bin:/usr/sbin:/usr/bin:${PREFIX}/bin
DISTFILES+= ${BOOTSTRAP_COMPILER}:boot
+.if ${OPSYS} == DragonFly && ${DFLYVERSION} > 300500
+BUILD_DEPENDS+= ${LOCALBASE}/lib/compat/libc.so.7:${PORTSDIR}/misc/compat34x
+.endif
.endif
# for port maintenance, invoke "make makesum PLUS_BOOTSTRAPS=1"
@@ -290,7 +293,7 @@ test-c:
do-install:
cd ${BUILDDIR} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} install-strip DESTDIR=${DESTINY}
- cd ${DESTINY}${PREFIX}; ${FIND} * -type d -empty -print | xargs rmdir
+ cd ${DESTINY}${PREFIX}; ${FIND} * -type d -empty -print | ${XARGS} ${RMDIR}
${CP} -pR ${DESTINY}${PREFIX}/ ${PREFIX}/
post-install:
diff --git a/lang/gcc-aux/Makefile.common b/lang/gcc-aux/Makefile.common
index 8778613bd619..5cee28f00610 100644
--- a/lang/gcc-aux/Makefile.common
+++ b/lang/gcc-aux/Makefile.common
@@ -1,21 +1,16 @@
# $FreeBSD$
-LIB_DEPENDS= gmp.10:${PORTSDIR}/math/gmp
-LIB_DEPENDS+= mpfr.4:${PORTSDIR}/math/mpfr
-LIB_DEPENDS+= mpc.2:${PORTSDIR}/math/mpc
+.include "Makefile.version"
+
+LIB_DEPENDS= gmp:${PORTSDIR}/math/gmp
+LIB_DEPENDS+= mpfr:${PORTSDIR}/math/mpfr
+LIB_DEPENDS+= mpc:${PORTSDIR}/math/mpc
ONLY_FOR_ARCHS= i386 amd64
GNU_CONFIGURE= yes
-USE_GMAKE= yes
USE_BZIP2= yes
-USES= iconv
+USES= iconv gmake
USE_PERL5_BUILD= yes
ALL_TARGET= default
MAKE_JOBS_SAFE= yes
-
-SNAPSHOT= 20130411
-GCC_BRANCH= 4.7
-GCC_POINT= 3
-GCC_VERSION= ${GCC_BRANCH}.${GCC_POINT}
-
diff --git a/lang/gcc-aux/Makefile.version b/lang/gcc-aux/Makefile.version
new file mode 100644
index 000000000000..869d7071fab7
--- /dev/null
+++ b/lang/gcc-aux/Makefile.version
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+GCC_BRANCH= 4.7
+GCC_POINT= 3
+GCC_VERSION= ${GCC_BRANCH}.${GCC_POINT}
+SNAPSHOT= 20130411
diff --git a/lang/gcc-aux/files/diff-ada b/lang/gcc-aux/files/diff-ada
index 0a5d1b41b834..f9da88c5c2b8 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 9eafda5c6028..105792caeb66 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/files/diff-cxx-testsuite b/lang/gcc-aux/files/diff-cxx-testsuite
index 53d3e42bb362..13e14ac58ef4 100644
--- a/lang/gcc-aux/files/diff-cxx-testsuite
+++ b/lang/gcc-aux/files/diff-cxx-testsuite
@@ -510,7 +510,8 @@
// { dg-require-cstdint "" }
--- libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc.orig
+++ libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc
-@@ -1,5 +1,5 @@-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* powerpc-ibm-aix* } }
+@@ -1,5 +1,5 @@
+-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* powerpc-ibm-aix* } }
-// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* powerpc-ibm-aix* } }
+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }