summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lang/gcc5-aux/Makefile8
-rw-r--r--lang/gcc5-aux/Makefile.version10
-rw-r--r--lang/gcc5-aux/distinfo4
-rw-r--r--lang/gcc5-aux/files/diff-ada36
-rw-r--r--lang/gcc5-aux/files/diff-core217
-rw-r--r--lang/gcc5-aux/files/diff-cxx14
6 files changed, 50 insertions, 239 deletions
diff --git a/lang/gcc5-aux/Makefile b/lang/gcc5-aux/Makefile
index cd9af0a..6aa836f 100644
--- a/lang/gcc5-aux/Makefile
+++ b/lang/gcc5-aux/Makefile
@@ -255,22 +255,22 @@ test-ada:
test-cxx:
# libstdc++ testsuite will break every time, for TRUE to continue
cd ${BUILDDIR} && ${SETENV} ${ADA_MAKE_ENV} \
- ${MAKE_CMD} -sk check-c++ || true
+ ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -sk check-c++ || true
test-c:
cd ${BUILDDIR} && ${SETENV} ${ADA_MAKE_ENV} \
- ${MAKE_CMD} -sk check-c
+ ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -sk check-c
test-fortran:
. if ${PORT_OPTIONS:MFORT}
cd ${BUILDDIR} && ${SETENV} ${ADA_MAKE_ENV} \
- ${MAKE_CMD} -sk check-fortran
+ ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -sk check-fortran
. endif
test-objc:
. if ${PORT_OPTIONS:MOBJC}
cd ${BUILDDIR} && ${SETENV} ${ADA_MAKE_ENV} \
- ${MAKE_CMD} -sk check-objc
+ ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -sk check-objc
. endif
.endif
diff --git a/lang/gcc5-aux/Makefile.version b/lang/gcc5-aux/Makefile.version
index 199e81d..9820209 100644
--- a/lang/gcc5-aux/Makefile.version
+++ b/lang/gcc5-aux/Makefile.version
@@ -1,12 +1,12 @@
# $FreeBSD$
GCC_BRANCH= 5
-GCC_POINT= 1.1
+GCC_POINT= 2.0
GCC_VERSION= ${GCC_BRANCH}.${GCC_POINT}
-SNAPSHOT= 20150609
-BUILD_RELEASE= no
-MAIN_PR= 1
-UTIL_PR= 1
+SNAPSHOT= 20150716
+BUILD_RELEASE= yes
+MAIN_PR= 0
+UTIL_PR= 0
ARMV7_PR= 0
.if ${BUILD_RELEASE:Mno}
diff --git a/lang/gcc5-aux/distinfo b/lang/gcc5-aux/distinfo
index b213fcc..d1f3267 100644
--- a/lang/gcc5-aux/distinfo
+++ b/lang/gcc5-aux/distinfo
@@ -1,5 +1,5 @@
-SHA256 (gcc-5-20150609.tar.bz2) = 9154f0b0c4950cfb6dc802da8a35d02478029923a0c44f8ca963cd7ca9107885
-SIZE (gcc-5-20150609.tar.bz2) = 90768076
+SHA256 (gcc-5.2.0.tar.bz2) = 5f835b04b5f7dd4f4d2dc96190ec1621b8d89f2dc6f638f9f8bc1b1014ba8cad
+SIZE (gcc-5.2.0.tar.bz2) = 95221552
SHA256 (ada-bootstrap.i386.freebsd.84.tar.bz2) = b410336cb0e71c8a29dd5f831a17b4b7282e7d590f452475a94c6a625cfc8846
SIZE (ada-bootstrap.i386.freebsd.84.tar.bz2) = 39727003
SHA256 (ada-bootstrap.i386.freebsd.100B.tar.bz2) = 7231209f2600275f554f788ad1d036cf633c4339ebd25bd479a5bb1ddcddedf3
diff --git a/lang/gcc5-aux/files/diff-ada b/lang/gcc5-aux/files/diff-ada
index 1f68a37..7d8923d 100644
--- a/lang/gcc5-aux/files/diff-ada
+++ b/lang/gcc5-aux/files/diff-ada
@@ -905,6 +905,15 @@
Non_Empty_Node : constant Project_Node_Id := 1;
--- gcc/ada/s-oscons-tmplt.c.orig
+++ gcc/ada/s-oscons-tmplt.c
+@@ -402,7 +402,7 @@
+
+ /* ioctl(2) requests are "int" in UNIX, but "unsigned long" on FreeBSD */
+
+-#ifdef __FreeBSD__
++#if defined (__FreeBSD__) || defined (__DragonFly__)
+ # define CNI CNU
+ # define IOCTL_Req_T "unsigned"
+ #else
@@ -1014,7 +1014,7 @@
*/
@@ -914,23 +923,16 @@
# define PTY_Library "-lutil"
#else
# define PTY_Library ""
---- gcc/ada/s-osinte-android.ads.orig
-+++ gcc/ada/s-osinte-android.ads
-@@ -597,11 +597,11 @@
-
- type pid_t is new int;
-
-- type time_t is new long;
-+ type time_t is new Long_Long_Integer;
-
- type timespec is record
-- tv_sec : time_t;
-- tv_nsec : long;
-+ ts_sec : time_t;
-+ ts_nsec : long;
- end record;
- pragma Convention (C, timespec);
-
+@@ -1435,7 +1435,8 @@
+ #endif
+ CND(CLOCK_THREAD_CPUTIME_ID, "Thread CPU clock")
+
+-#if defined(__FreeBSD__) || (defined(_AIX) && defined(_AIXVERSION_530))
++#if defined(__FreeBSD__) || (defined(_AIX) && defined(_AIXVERSION_530)) \
++ || defined(__DragonFly__)
+ /** On these platforms use system provided monotonic clock instead of
+ ** the default CLOCK_REALTIME. We then need to set up cond var attributes
+ ** appropriately (see thread.c).
--- /dev/null
+++ gcc/ada/s-osinte-dragonfly.adb
@@ -0,0 +1,116 @@
diff --git a/lang/gcc5-aux/files/diff-core b/lang/gcc5-aux/files/diff-core
index 7ffeda6..98b2f14 100644
--- a/lang/gcc5-aux/files/diff-core
+++ b/lang/gcc5-aux/files/diff-core
@@ -11,7 +11,7 @@
#undef LINK_SPEC
--- gcc/config/i386/freebsd.h.orig
+++ gcc/config/i386/freebsd.h
-@@ -90,6 +90,14 @@
+@@ -77,6 +77,14 @@
When the -shared link option is used a final link is not being
done. */
@@ -26,7 +26,7 @@
#undef LINK_SPEC
#define LINK_SPEC "\
%{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \
-@@ -101,6 +109,7 @@
+@@ -88,6 +96,7 @@
%{rdynamic:-export-dynamic} \
-dynamic-linker %(fbsd_dynamic_linker) } \
%{static:-Bstatic}} \
@@ -42,182 +42,6 @@
%{static:-Bstatic}} \
+ %{!static:" ELF_HASH_STYLE "-rpath @PREFIX@/@GCCAUX@/lib} \
%{symbolic:-Bsymbolic}"
---- /dev/null
-+++ libgcc/config/i386/freebsd-unwind.h
-@@ -0,0 +1,173 @@
-+/* DWARF2 EH unwinding support for FreeBSD: AMD x86-64 and x86.
-+ Copyright (C) 2015 Free Software Foundation, Inc.
-+ Contributed by John Marino <gnugcc@marino.st>
-+
-+This file is part of GCC.
-+
-+GCC is free software; you can redistribute it and/or modify
-+it under the terms of the GNU General Public License as published by
-+the Free Software Foundation; either version 3, or (at your option)
-+any later version.
-+
-+GCC is distributed in the hope that it will be useful,
-+but WITHOUT ANY WARRANTY; without even the implied warranty of
-+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+GNU General Public License for more details.
-+
-+Under Section 7 of GPL version 3, you are granted additional
-+permissions described in the GCC Runtime Library Exception, version
-+3.1, as published by the Free Software Foundation.
-+
-+You should have received a copy of the GNU General Public License and
-+a copy of the GCC Runtime Library Exception along with this program;
-+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-+<http://www.gnu.org/licenses/>. */
-+
-+/* Do code reading to identify a signal frame, and set the frame
-+ state data appropriately. See unwind-dw2.c for the structs. */
-+
-+#include <sys/types.h>
-+#include <signal.h>
-+#include <sys/ucontext.h>
-+#include <machine/sigframe.h>
-+
-+#define REG_NAME(reg) sf_uc.uc_mcontext.mc_## reg
-+
-+#ifdef __x86_64__
-+#define MD_FALLBACK_FRAME_STATE_FOR x86_64_freebsd_fallback_frame_state
-+
-+static _Unwind_Reason_Code
-+x86_64_freebsd_fallback_frame_state
-+(struct _Unwind_Context *context, _Unwind_FrameState *fs)
-+{
-+ struct sigframe *sf;
-+ long new_cfa;
-+
-+ /* Prior to FreeBSD 9, the signal trampoline was located immediately
-+ before the ps_strings. To support non-executable stacks on AMD64,
-+ the sigtramp was moved to a shared page for FreeBSD 9. Unfortunately
-+ this means looking frame patterns again (sys/amd64/amd64/sigtramp.S)
-+ rather than using the robust and convenient KERN_PS_STRINGS trick.
-+
-+ <pc + 00>: lea 0x10(%rsp),%rdi
-+ <pc + 05>: pushq $0x0
-+ <pc + 17>: mov $0x1a1,%rax
-+ <pc + 14>: syscall
-+
-+ If we can't find this pattern, we're at the end of the stack.
-+ */
-+
-+ if (!( *(unsigned int *)(context->ra) == 0x247c8d48
-+ && *(unsigned int *)(context->ra + 4) == 0x48006a10
-+ && *(unsigned int *)(context->ra + 8) == 0x01a1c0c7
-+ && *(unsigned int *)(context->ra + 12) == 0x050f0000 ))
-+ return _URC_END_OF_STACK;
-+
-+ sf = (struct sigframe *) context->cfa;
-+ new_cfa = sf->REG_NAME(rsp);
-+ fs->regs.cfa_how = CFA_REG_OFFSET;
-+ /* Register 7 is rsp */
-+ fs->regs.cfa_reg = 7;
-+ fs->regs.cfa_offset = new_cfa - (long) context->cfa;
-+
-+ /* The SVR4 register numbering macros aren't usable in libgcc. */
-+ fs->regs.reg[0].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[0].loc.offset = (long)&sf->REG_NAME(rax) - new_cfa;
-+ fs->regs.reg[1].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[1].loc.offset = (long)&sf->REG_NAME(rdx) - new_cfa;
-+ fs->regs.reg[2].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[2].loc.offset = (long)&sf->REG_NAME(rcx) - new_cfa;
-+ fs->regs.reg[3].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[3].loc.offset = (long)&sf->REG_NAME(rbx) - new_cfa;
-+ fs->regs.reg[4].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[4].loc.offset = (long)&sf->REG_NAME(rsi) - new_cfa;
-+ fs->regs.reg[5].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[5].loc.offset = (long)&sf->REG_NAME(rdi) - new_cfa;
-+ fs->regs.reg[6].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[6].loc.offset = (long)&sf->REG_NAME(rbp) - new_cfa;
-+ fs->regs.reg[8].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[8].loc.offset = (long)&sf->REG_NAME(r8) - new_cfa;
-+ fs->regs.reg[9].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[9].loc.offset = (long)&sf->REG_NAME(r9) - new_cfa;
-+ fs->regs.reg[10].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[10].loc.offset = (long)&sf->REG_NAME(r10) - new_cfa;
-+ fs->regs.reg[11].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[11].loc.offset = (long)&sf->REG_NAME(r11) - new_cfa;
-+ fs->regs.reg[12].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[12].loc.offset = (long)&sf->REG_NAME(r12) - new_cfa;
-+ fs->regs.reg[13].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[13].loc.offset = (long)&sf->REG_NAME(r13) - new_cfa;
-+ fs->regs.reg[14].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[14].loc.offset = (long)&sf->REG_NAME(r14) - new_cfa;
-+ fs->regs.reg[15].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[15].loc.offset = (long)&sf->REG_NAME(r15) - new_cfa;
-+ fs->regs.reg[16].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[16].loc.offset = (long)&sf->REG_NAME(rip) - new_cfa;
-+ fs->retaddr_column = 16;
-+ fs->signal_frame = 1;
-+ return _URC_NO_REASON;
-+}
-+
-+#else /* Next section is for i386 */
-+
-+#define MD_FALLBACK_FRAME_STATE_FOR x86_freebsd_fallback_frame_state
-+
-+/*
-+ * We can't use KERN_PS_STRINGS anymore if we want to support FreeBSD32
-+ * compat on AMD64. The sigtramp is in a shared page in that case so the
-+ * x86_sigtramp_range only works on a true i386 system. We have to
-+ * search for the sigtramp frame if we want it working everywhere.
-+ */
-+
-+static _Unwind_Reason_Code
-+x86_freebsd_fallback_frame_state
-+(struct _Unwind_Context *context, _Unwind_FrameState *fs)
-+{
-+ struct sigframe *sf;
-+ long new_cfa;
-+
-+/*
-+ * i386 sigtramp frame we are looking for follows.
-+ * Apparently PSL_VM is variable, so we can't look past context->ra + 4
-+ * <sigcode>:
-+ * 0: ff 54 24 10 call *0x10(%esp) *SIGF_HANDLER
-+ * 4: 8d 44 24 20 lea 0x20(%esp),%eax SIGF_UC
-+ * 8: 50 push %eax
-+ * 9: f7 40 54 00 00 02 00 testl $0x20000,0x54(%eax) $PSL_VM
-+ * 10: 75 03 jne 15 <sigcode+0x15>
-+ * 12: 8e 68 14 mov 0x14(%eax),%gs UC_GS
-+ * 15: b8 a1 01 00 00 mov 0x1a1,%eax $SYS_sigreturn
-+ */
-+
-+ if (!( *(unsigned int *)(context->ra - 4) == 0x102454ff
-+ && *(unsigned int *)(context->ra) == 0x2024448d ))
-+ return _URC_END_OF_STACK;
-+
-+ sf = (struct sigframe *) context->cfa;
-+ new_cfa = sf->REG_NAME(esp);
-+ fs->regs.cfa_how = CFA_REG_OFFSET;
-+ fs->regs.cfa_reg = 4;
-+ fs->regs.cfa_offset = new_cfa - (long) context->cfa;
-+
-+ /* The SVR4 register numbering macros aren't usable in libgcc. */
-+ fs->regs.reg[0].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[0].loc.offset = (long)&sf->REG_NAME(eax) - new_cfa;
-+ fs->regs.reg[3].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[3].loc.offset = (long)&sf->REG_NAME(ebx) - new_cfa;
-+ fs->regs.reg[1].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[1].loc.offset = (long)&sf->REG_NAME(ecx) - new_cfa;
-+ fs->regs.reg[2].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[2].loc.offset = (long)&sf->REG_NAME(edx) - new_cfa;
-+ fs->regs.reg[6].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[6].loc.offset = (long)&sf->REG_NAME(esi) - new_cfa;
-+ fs->regs.reg[7].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[7].loc.offset = (long)&sf->REG_NAME(edi) - new_cfa;
-+ fs->regs.reg[5].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[5].loc.offset = (long)&sf->REG_NAME(ebp) - new_cfa;
-+ fs->regs.reg[8].how = REG_SAVED_OFFSET;
-+ fs->regs.reg[8].loc.offset = (long)&sf->REG_NAME(eip) - new_cfa;
-+ fs->retaddr_column = 8;
-+ fs->signal_frame = 1;
-+ return _URC_NO_REASON;
-+}
-+#endif /* ifdef __x86_64__ */
--- libiberty/getpagesize.c.orig
+++ libiberty/getpagesize.c
@@ -20,6 +20,7 @@
@@ -308,35 +132,8 @@
if [ ! -f gcc-cross$(exeext) ] \
&& [ "$(GCC_INSTALL_NAME)" != "$(GCC_TARGET_INSTALL_NAME)" ]; then \
rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-tmp$(exeext); \
---- libgcc/config.host.orig
-+++ libgcc/config.host
-@@ -240,7 +240,8 @@
- extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
- ;;
- *-*-netbsd*)
-- tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
-+ tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
-+ tmake_file="$tmake_file t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
- # NetBSD 1.7 and later are set up to use GCC's crtstuff for
- # ELF configurations. We will clear extra_parts in the
- # a.out configurations.
-@@ -567,14 +568,19 @@
- ;;
- i[34567]86-*-freebsd*)
- tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
-+ md_unwind_header=i386/freebsd-unwind.h
- ;;
- x86_64-*-freebsd*)
- tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
-+ md_unwind_header=i386/freebsd-unwind.h
- ;;
- i[34567]86-*-netbsdelf*)
-+ tmake_file="${tmake_file} i386/t-crtstuff"
-+ md_unwind_header=i386/netbsd-unwind.h
- ;;
- x86_64-*-netbsd*)
- tmake_file="${tmake_file} i386/t-crtstuff"
-+ md_unwind_header=i386/netbsd-unwind.h
- ;;
- i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
- ;;
+--- libgcc/config/i386/t-dragonfly.orig
++++ libgcc/config/i386/t-dragonfly
+@@ -0,0 +1,2 @@
++# Required for -fcilkplus support
++SHLIB_MAPFILES += $(srcdir)/config/i386/libgcc-bsd.ver
diff --git a/lang/gcc5-aux/files/diff-cxx b/lang/gcc5-aux/files/diff-cxx
index 2e52f64..23971f0 100644
--- a/lang/gcc5-aux/files/diff-cxx
+++ b/lang/gcc5-aux/files/diff-cxx
@@ -1,6 +1,18 @@
+--- libstdc++-v3/config/os/bsd/dragonfly/os_defines.h.orig
++++ libstdc++-v3/config/os/bsd/dragonfly/os_defines.h
+@@ -29,4 +29,9 @@
+ // System-specific #define, typedefs, corrections, etc, go here. This
+ // file will come before all others.
+
++#define _GLIBCXX_USE_C99_CHECK 1
++#define _GLIBCXX_USE_C99_DYNAMIC (!(__ISO_C_VISIBLE >= 1999))
++#define _GLIBCXX_USE_C99_LONG_LONG_CHECK 1
++#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC (_GLIBCXX_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED)
++
+ #endif
--- libstdc++-v3/configure.host.orig
+++ libstdc++-v3/configure.host
-@@ -267,6 +267,9 @@
+@@ -270,6 +270,9 @@
dragonfly*)
os_include_dir="os/bsd/dragonfly"
;;
OpenPOWER on IntegriCloud