diff options
-rw-r--r-- | lang/gcc5-aux/Makefile | 8 | ||||
-rw-r--r-- | lang/gcc5-aux/Makefile.version | 10 | ||||
-rw-r--r-- | lang/gcc5-aux/distinfo | 4 | ||||
-rw-r--r-- | lang/gcc5-aux/files/diff-ada | 36 | ||||
-rw-r--r-- | lang/gcc5-aux/files/diff-core | 217 | ||||
-rw-r--r-- | lang/gcc5-aux/files/diff-cxx | 14 |
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" ;; |