diff options
-rw-r--r-- | lang/gcc-aux/Makefile | 9 | ||||
-rw-r--r-- | lang/gcc-aux/Makefile.common | 17 | ||||
-rw-r--r-- | lang/gcc-aux/Makefile.version | 6 | ||||
-rw-r--r-- | lang/gcc-aux/files/diff-ada | 98 | ||||
-rw-r--r-- | lang/gcc-aux/files/diff-cxx | 133 | ||||
-rw-r--r-- | lang/gcc-aux/files/diff-cxx-testsuite | 3 |
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* } } |