1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-30 10:38:37 +00:00

lang/gcc-aux: bug fixes

This change covers:
  1) portlint cleanup
  2) Support for bootstrapping on DragonFly 3.5+
  3) Removal of uneeded shared library version specifications
  4) USES+= gmake
  5) Splits out version to separate makefile for Ada framework
  6) Fixes typo that caused DragonFly to use mktemp
  7) Adds aggregate array index fix from gcc 4.8
  8) NetBSD lstdc++ fixes were pulled in from diff reneration
  9) c++ testsuite diff was corrected (how it was committed wrong is unknown)

Approved by:	bapt (mentor)
This commit is contained in:
John Marino 2013-07-21 13:00:46 +00:00
parent 70d772231a
commit e753d5da3f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=323380
6 changed files with 250 additions and 16 deletions

View File

@ -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:

View File

@ -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}

View File

@ -0,0 +1,6 @@
# $FreeBSD$
GCC_BRANCH= 4.7
GCC_POINT= 3
GCC_VERSION= ${GCC_BRANCH}.${GCC_POINT}
SNAPSHOT= 20130411

View File

@ -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 @@

View File

@ -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;
}

View File

@ -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* } }