summaryrefslogtreecommitdiff
path: root/lang/gnat-aux
diff options
context:
space:
mode:
authorFrederic Culot <culot@FreeBSD.org>2012-04-09 11:28:22 +0000
committerFrederic Culot <culot@FreeBSD.org>2012-04-09 11:28:22 +0000
commit75934f90db805b44ca329eae42597f9810e2ec82 (patch)
tree26fdbede72473def761fd292530c7098776c440a /lang/gnat-aux
parent- Unbreak due to changes in 8.3-RC2 ports tree (diff)
- Update to 20120301 (corresponding to gcc 4.6.3)
- Split off Makefile.common fragment for use in lang/gnatdroid-arm* ports Maintainer note: - Ada tasking is broken on FreeBSD-9+ and has always been but a testsuite run didn't reveal this until recently. Due to a new panic assertion added to the thread library, exiting tasks now abort with the message "thread exits with resources held!". A significant attempt was made to patch GNAT to release thread resources on exiting tasks, but the code is highly complex and the attemps are not yes successful. PR: ports/166718 Submitted by: John Marino <draco@marino.st> (maintainer) Feature safe: yes
Notes
Notes: svn path=/head/; revision=294421
Diffstat (limited to 'lang/gnat-aux')
-rw-r--r--lang/gnat-aux/Makefile32
-rw-r--r--lang/gnat-aux/Makefile.common21
-rw-r--r--lang/gnat-aux/distinfo24
-rw-r--r--lang/gnat-aux/files/diff-ada14
-rw-r--r--lang/gnat-aux/files/diff-core57
5 files changed, 95 insertions, 53 deletions
diff --git a/lang/gnat-aux/Makefile b/lang/gnat-aux/Makefile
index 6dc86cd6783c..30751ad0683b 100644
--- a/lang/gnat-aux/Makefile
+++ b/lang/gnat-aux/Makefile
@@ -17,27 +17,10 @@ DISTFILES= gcc-core-${GCC_VERSION}.tar.bz2
MAINTAINER= draco@marino.st
COMMENT= GNAT Ada compiler based on GCC ${GCC_BRANCH}
-LIB_DEPENDS= gmp.10:${PORTSDIR}/math/gmp
-LIB_DEPENDS+= mpfr.4:${PORTSDIR}/math/mpfr
-LIB_DEPENDS+= mpc.2:${PORTSDIR}/math/mpc
-
-ONLY_FOR_ARCHS= i386 amd64
-
-GNU_CONFIGURE= yes
-USE_GMAKE= yes
-USE_BZIP2= yes
-USE_ICONV= yes
-USE_PERL5_BUILD= yes
-ALL_TARGET= default
-MAKE_JOBS_SAFE= yes
-
-SNAPSHOT= 20111026
-GCC_BRANCH= 4.6
-GCC_POINT= 2
-GCC_VERSION= ${GCC_BRANCH}.${GCC_POINT}
+.include "${.CURDIR}/Makefile.common"
+
LANGS= c
APPLY_DIFFS= core
-
INTENDED_COMPILER= NATIVE
BOOTSTRAP_COMPILER= NOT_REQUIRED
BOOTSTRAP_TRIPLET= NOT_SET
@@ -287,5 +270,16 @@ post-install:
${ECHO_CMD} "@unexec ${RMDIR} %D/include/c++ 2>/dev/null || true" >> ${WRKDIR}/PLIST.lib
cd ${WRKDIR}; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
+.if ${OSVERSION} > 900000
+ @${ECHO_MSG} "========================================================"
+ @${ECHO_MSG} " NOTICE REGARDING ADA TASKING ON FREEBSD 9.x:"
+ @${ECHO_MSG} " Due to a new resource check in the threading library"
+ @${ECHO_MSG} " starting with FreeBSD 9.0, an exiting task panics with"
+ @${ECHO_MSG} " the message 'thread exits with resources held!'."
+ @${ECHO_MSG} " Essentially this behavior breaks Ada tasking and 23"
+ @${ECHO_MSG} " ACATS tests fail on FreeBSD 9.x. A solution is being"
+ @${ECHO_MSG} " sought, but the necessary patches will not be trivial."
+ @${ECHO_MSG} "========================================================"
+.endif
.include <bsd.port.post.mk>
diff --git a/lang/gnat-aux/Makefile.common b/lang/gnat-aux/Makefile.common
new file mode 100644
index 000000000000..aeb9a22eaf87
--- /dev/null
+++ b/lang/gnat-aux/Makefile.common
@@ -0,0 +1,21 @@
+# $FreeBSD$
+
+LIB_DEPENDS= gmp.10:${PORTSDIR}/math/gmp
+LIB_DEPENDS+= mpfr.4:${PORTSDIR}/math/mpfr
+LIB_DEPENDS+= mpc.2:${PORTSDIR}/math/mpc
+
+ONLY_FOR_ARCHS= i386 amd64
+
+GNU_CONFIGURE= yes
+USE_GMAKE= yes
+USE_BZIP2= yes
+USE_ICONV= yes
+USE_PERL5_BUILD= yes
+ALL_TARGET= default
+MAKE_JOBS_SAFE= yes
+
+SNAPSHOT= 20120301
+GCC_BRANCH= 4.6
+GCC_POINT= 3
+GCC_VERSION= ${GCC_BRANCH}.${GCC_POINT}
+
diff --git a/lang/gnat-aux/distinfo b/lang/gnat-aux/distinfo
index cfb8c8104584..e2c10e86dd1d 100644
--- a/lang/gnat-aux/distinfo
+++ b/lang/gnat-aux/distinfo
@@ -1,15 +1,15 @@
-SHA256 (gcc-core-4.6.2.tar.bz2) = dcbf391f05277b7e09d14d54f3bdaba5515a3a8e7dd1d8af93af3f6f68455e10
-SIZE (gcc-core-4.6.2.tar.bz2) = 30258326
-SHA256 (gcc-ada-4.6.2.tar.bz2) = 9ac26821ad900d02ed251b62e6a0506ee12417b506a7bb9b02ec9f09e5d9c84f
-SIZE (gcc-ada-4.6.2.tar.bz2) = 6064757
-SHA256 (gcc-g++-4.6.2.tar.bz2) = 5470bea8093438cf5840fbbef3546b6dba7b0153ef6a16e142c1fba1fac6e598
-SIZE (gcc-g++-4.6.2.tar.bz2) = 6955594
-SHA256 (gcc-fortran-4.6.2.tar.bz2) = 492becd732662349eaa5e7c4e458ac009df0ccb8904df54ae295d277c4d6be6f
-SIZE (gcc-fortran-4.6.2.tar.bz2) = 1676539
-SHA256 (gcc-objc-4.6.2.tar.bz2) = 74cc0e46c7455f3781c740e0f49e06355d8b04a32cb6f015d2bfde39a9ad1dd4
-SIZE (gcc-objc-4.6.2.tar.bz2) = 342544
-SHA256 (gcc-testsuite-4.6.2.tar.bz2) = 146e2ec50913515989405162e8e861e17d710c3ca1d4d19073527ea24a0ef81e
-SIZE (gcc-testsuite-4.6.2.tar.bz2) = 6309400
+SHA256 (gcc-core-4.6.3.tar.bz2) = 283e00881c0de258fafc5170843e4d9b14ee2a7dc4426f0d426e6be0400251c1
+SIZE (gcc-core-4.6.3.tar.bz2) = 30305971
+SHA256 (gcc-ada-4.6.3.tar.bz2) = 7bb213ec3948646df72720580fcba3489c84aa452bd0e4238712607ef83cbdf6
+SIZE (gcc-ada-4.6.3.tar.bz2) = 6092418
+SHA256 (gcc-g++-4.6.3.tar.bz2) = b3e0c733e900e99096b0c5480f57e22e3e583ec3d83596cc2cb9986bd64b29e8
+SIZE (gcc-g++-4.6.3.tar.bz2) = 6928430
+SHA256 (gcc-fortran-4.6.3.tar.bz2) = fe1bdf3485f33e6d0a998ff7bcb42526fbf3083dbfc107c3d95a88c00739eadb
+SIZE (gcc-fortran-4.6.3.tar.bz2) = 1676490
+SHA256 (gcc-objc-4.6.3.tar.bz2) = 4c193397ce0b8b7b3a6b090078f7228e22999edb14a53480ac709f7f165a4ca3
+SIZE (gcc-objc-4.6.3.tar.bz2) = 342441
+SHA256 (gcc-testsuite-4.6.3.tar.bz2) = a3448d09e5e8ce6baee4080981efc85e6af1621b66a68258dd645c04ae381bed
+SIZE (gcc-testsuite-4.6.3.tar.bz2) = 6354781
SHA256 (gnat-bootstrap.i386.freebsd.tar.bz2) = c38e1c960f651c3f248c1ef540b1df724058fa71c1d046af93ce975483abb645
SIZE (gnat-bootstrap.i386.freebsd.tar.bz2) = 27973176
SHA256 (gnat-bootstrap.x86_64.freebsd.tar.bz2) = c4abd6af1281785d47d99352e28e41b2a1455e25ff347eca0de5791cdede9ed8
diff --git a/lang/gnat-aux/files/diff-ada b/lang/gnat-aux/files/diff-ada
index 406aebd62fd7..9d4a8cf5f6f5 100644
--- a/lang/gnat-aux/files/diff-ada
+++ b/lang/gnat-aux/files/diff-ada
@@ -782,9 +782,9 @@
+ * will be copied. Always NUL terminates (unless siz == 0).
+ * Returns strlen(src); if retval >= siz, truncation occurred.
+ *
-+ * $OpenBSD: strlcpy.c,v 1.11 2006/05/05 15:27:38 millert Exp $
-+ * $FreeBSD: /tmp/pcvs/ports/lang/gnat-aux/files/diff-ada,v 1.1 2012-01-12 14:24:37 culot Exp $
-+ * $DragonFly: src/lib/libc/string/strlcpy.c,v 1.4 2005/09/18 asmodai Exp $
++ * OpenBSD: strlcpy.c,v 1.11 2006/05/05 15:27:38 millert Exp
++ * FreeBSD: src/lib/libc/string/strlcpy.c,v 1.10 2008/10/19 delphij Exp
++ * DragonFly: src/lib/libc/string/strlcpy.c,v 1.4 2005/09/18 asmodai Exp
+ */
+
+size_t
@@ -823,9 +823,9 @@
+ * Returns strlen(src) + MIN(siz, strlen(initial dst)).
+ * If retval >= siz, truncation occurred.
+ *
-+ * $OpenBSD: strlcat.c,v 1.13 2005/08/08 08:05:37 espie Exp $
-+ * $FreeBSD: /tmp/pcvs/ports/lang/gnat-aux/files/diff-ada,v 1.1 2012-01-12 14:24:37 culot Exp $
-+ * $DragonFly: src/lib/libc/string/strlcat.c,v 1.4 2004/12/18 asmodai Exp $
++ * OpenBSD: strlcat.c,v 1.13 2005/08/08 08:05:37 espie Exp
++ * FreeBSD: src/lib/libc/string/strlcat.c,v 1.11 2009/01/12 delphij Exp
++ * DragonFly: src/lib/libc/string/strlcat.c,v 1.4 2004/12/18 asmodai Exp
+ */
+
+size_t
@@ -2439,7 +2439,7 @@
/* VxWorks Section */
/*******************/
-@@ -2320,6 +2392,7 @@
+@@ -2341,6 +2413,7 @@
#if defined (_WIN32) || defined (__INTERIX) \
|| defined (__Lynx__) || defined(__NetBSD__) || defined(__FreeBSD__) \
diff --git a/lang/gnat-aux/files/diff-core b/lang/gnat-aux/files/diff-core
index d6392393d3c2..9cb95cdd664f 100644
--- a/lang/gnat-aux/files/diff-core
+++ b/lang/gnat-aux/files/diff-core
@@ -290,7 +290,7 @@
+#define UINTPTR_TYPE (LONG_TYPE_SIZE == 64 ? UINT64_TYPE : UINT32_TYPE)
--- /dev/null
+++ gcc/config/dragonfly.h
-@@ -0,0 +1,141 @@
+@@ -0,0 +1,139 @@
+/* Base configuration file for all DragonFly targets.
+ Copyright (C) 1999, 2000, 2001, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2010-2012 John R. Marino <www.dragonlace.net>
@@ -388,12 +388,10 @@
+#undef LINK_SPEC
+#define LINK_SPEC DFBSD_LINK_SPEC
+
-+#define DFBSD_DYNAMIC_LINKER \
-+ "/usr/libexec/ld-elf.so.2"
++#define DFBSD_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.2"
+
+#if defined(HAVE_LD_EH_FRAME_HDR)
-+#define LINK_EH_SPEC \
-+ "%{!static:--eh-frame-hdr}"
++#define LINK_EH_SPEC "--eh-frame-hdr"
+#endif
+
+/* Use --as-needed -lgcc_s for eh support. */
@@ -1157,11 +1155,11 @@
/* Put all *tf routines in libgcc. */
#undef LIBGCC2_HAS_TF_MODE
-@@ -147,3 +148,39 @@
- #if FBSD_MAJOR >= 6
+@@ -148,5 +149,38 @@
#define SUBTARGET32_DEFAULT_CPU "i486"
#endif
-+
+
+-#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
+/* Define location of OS-specific unwind support configuration. */
+#define MD_UNWIND_SUPPORT "config/i386/freebsd-unwind.h"
+
@@ -1196,7 +1194,7 @@
+ (void) mprotect (page, ends - page, perms); \
+}
+
-+
+
--- gcc/config/i386/netbsd-elf.h.orig
+++ gcc/config/i386/netbsd-elf.h
@@ -2,6 +2,7 @@
@@ -1787,7 +1785,7 @@
#This file is part of GCC.
-@@ -166,6 +167,8 @@
+@@ -157,6 +158,8 @@
;;
*-*-openbsd*)
;;
@@ -1796,7 +1794,7 @@
*-*-rtems*)
;;
*-*-vxworks*)
-@@ -287,6 +290,14 @@
+@@ -278,6 +281,14 @@
x86_64-*-freebsd*)
tmake_file="${tmake_file} i386/t-freebsd"
;;
@@ -1811,7 +1809,7 @@
i[34567]86-*-netbsdelf*)
;;
i[34567]86-*-netbsd*)
-@@ -297,6 +308,8 @@
+@@ -288,6 +299,8 @@
;;
i[34567]86-*-openbsd*)
;;
@@ -1820,7 +1818,7 @@
i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu*)
extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm"
-@@ -628,6 +641,9 @@
+@@ -619,6 +632,9 @@
tmake_file="${tmake_file} t-softfp i386/${host_address}/t-fprules-softfp"
fi
;;
@@ -1837,7 +1835,7 @@
+SHLIB_MAPFILES += $(srcdir)/config/i386/libgcc-bsd.ver
--- gcc/configure.orig
+++ gcc/configure
-@@ -25843,6 +25843,20 @@
+@@ -25833,6 +25833,20 @@
gcc_cv_target_dl_iterate_phdr=no
fi
;;
@@ -1890,9 +1888,38 @@
$(DESTDIR)$(man7dir)/%$(man7ext): doc/%.7 installdirs
-rm -f $@
+--- libiberty/getpagesize.c.orig
++++ libiberty/getpagesize.c
+@@ -20,6 +20,7 @@
+
+ */
+
++#ifndef __ANDROID__
+ #ifndef VMS
+
+ #include "config.h"
+@@ -88,3 +89,4 @@
+ }
+
+ #endif /* VMS */
++#endif /* __ANDROID__ */
+--- libiberty/setproctitle.c.orig
++++ libiberty/setproctitle.c
+@@ -40,9 +40,11 @@
+ void
+ setproctitle (const char *name ATTRIBUTE_UNUSED, ...)
+ {
++#ifndef __ANDROID__
+ #ifdef PR_SET_NAME
+ /* On Linux this sets the top visible "comm", but not necessarily
+ the name visible in ps. */
+ prctl (PR_SET_NAME, name);
+ #endif
++#endif
+ }
--- configure.orig
+++ configure
-@@ -14200,7 +14200,7 @@
+@@ -14196,7 +14196,7 @@
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5