diff options
author | Gerald Pfeifer <gerald@FreeBSD.org> | 2018-01-26 09:50:19 +0000 |
---|---|---|
committer | Gerald Pfeifer <gerald@FreeBSD.org> | 2018-01-26 09:50:19 +0000 |
commit | fa772845f4307f41fb789fd548759a622091b37f (patch) | |
tree | 94abb57eef8f9b125fefb850bd9df41b8d0b4846 /lang/gcc7 | |
parent | 987dde5a0857128650bc26eee8626132ab7c73bf (diff) | |
download | ports-fa772845f4307f41fb789fd548759a622091b37f.tar.gz ports-fa772845f4307f41fb789fd548759a622091b37f.zip |
Notes
Diffstat (limited to 'lang/gcc7')
-rw-r--r-- | lang/gcc7/Makefile | 3 | ||||
-rw-r--r-- | lang/gcc7/distinfo | 6 | ||||
-rw-r--r-- | lang/gcc7/files/patch-armv7-support | 21 | ||||
-rw-r--r-- | lang/gcc7/files/patch-freebsd-unwind.h | 90 |
4 files changed, 4 insertions, 116 deletions
diff --git a/lang/gcc7/Makefile b/lang/gcc7/Makefile index 067e32cf9cd2..eb7aaea05dba 100644 --- a/lang/gcc7/Makefile +++ b/lang/gcc7/Makefile @@ -2,8 +2,7 @@ # $FreeBSD$ PORTNAME= gcc -PORTVERSION= 7.2.0 -PORTREVISION= 4 +PORTVERSION= 7.3.0 CATEGORIES= lang MASTER_SITES= GCC/releases/gcc-${DISTVERSION} PKGNAMESUFFIX= ${SUFFIX} diff --git a/lang/gcc7/distinfo b/lang/gcc7/distinfo index 506ad88dbd4c..3485bd3405f5 100644 --- a/lang/gcc7/distinfo +++ b/lang/gcc7/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1502753387 -SHA256 (gcc-7.2.0.tar.xz) = 1cf7adf8ff4b5aa49041c8734bbcf1ad18cc4c94d0029aae0f4e48841088479a -SIZE (gcc-7.2.0.tar.xz) = 62312628 +TIMESTAMP = 1516953569 +SHA256 (gcc-7.3.0.tar.xz) = 832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c +SIZE (gcc-7.3.0.tar.xz) = 62462388 diff --git a/lang/gcc7/files/patch-armv7-support b/lang/gcc7/files/patch-armv7-support deleted file mode 100644 index faaec9c9d5c2..000000000000 --- a/lang/gcc7/files/patch-armv7-support +++ /dev/null @@ -1,21 +0,0 @@ ---- UTC -Index: gcc/config.gcc -=================================================================== ---- gcc/config.gcc (revision 253513) -+++ gcc/config.gcc (working copy) -@@ -1077,11 +1077,14 @@ - case $target in - armv6*-*-freebsd*) - target_cpu_cname="arm1176jzfs" -- tm_defines="${tm_defines} TARGET_FREEBSD_ARMv6=1" - if test $fbsd_major -ge 11; then - tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1" - fi - ;; -+ armv7*-*-freebsd*) -+ target_cpu_cname="genericv7a" -+ tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1" -+ ;; - *) - target_cpu_cname="arm9" - ;; diff --git a/lang/gcc7/files/patch-freebsd-unwind.h b/lang/gcc7/files/patch-freebsd-unwind.h deleted file mode 100644 index dfc68fc0191c..000000000000 --- a/lang/gcc7/files/patch-freebsd-unwind.h +++ /dev/null @@ -1,90 +0,0 @@ -2017-11-05 Andreas Tobler <andreast@gcc.gnu.org> - - Backport from mainline - 2017-11-04 Andreas Tobler <andreast@gcc.gnu.org> - - PR libgcc/82635 - * config/i386/freebsd-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Use a - sysctl to determine whether we're in a trampoline. - Keep the pattern matching method for systems without - KERN_PROC_SIGTRAMP sysctl. - ---- UTC ---- libgcc/config/i386/freebsd-unwind.h 2017/11/05 17:24:37 254430 -+++ libgcc/config/i386/freebsd-unwind.h 2017/11/05 19:30:41 254431 -@@ -28,7 +28,10 @@ - - #include <sys/types.h> - #include <signal.h> -+#include <unistd.h> -+#include <sys/sysctl.h> - #include <sys/ucontext.h> -+#include <sys/user.h> - #include <machine/sigframe.h> - - #define REG_NAME(reg) sf_uc.uc_mcontext.mc_## reg -@@ -36,6 +39,38 @@ - #ifdef __x86_64__ - #define MD_FALLBACK_FRAME_STATE_FOR x86_64_freebsd_fallback_frame_state - -+#ifdef KERN_PROC_SIGTRAMP -+/* FreeBSD past 9.3 provides a kern.proc.sigtramp.<pid> sysctl that -+ returns the location of the signal trampoline. Use this to find -+ out whether we're in a trampoline. -+*/ -+static int -+x86_64_outside_sigtramp_range (unsigned char *pc) -+{ -+ static int sigtramp_range_determined = 0; -+ static unsigned char *sigtramp_start, *sigtramp_end; -+ -+ if (sigtramp_range_determined == 0) -+ { -+ struct kinfo_sigtramp kst = {0}; -+ size_t len = sizeof (kst); -+ int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_SIGTRAMP, getpid() }; -+ -+ sigtramp_range_determined = 1; -+ if (sysctl (mib, 4, &kst, &len, NULL, 0) == 0) -+ { -+ sigtramp_range_determined = 2; -+ sigtramp_start = kst.ksigtramp_start; -+ sigtramp_end = kst.ksigtramp_end; -+ } -+ } -+ if (sigtramp_range_determined < 2) /* sysctl failed if < 2 */ -+ return 1; -+ -+ return (pc < sigtramp_start || pc >= sigtramp_end); -+} -+#endif -+ - static _Unwind_Reason_Code - x86_64_freebsd_fallback_frame_state - (struct _Unwind_Context *context, _Unwind_FrameState *fs) -@@ -43,6 +78,7 @@ - struct sigframe *sf; - long new_cfa; - -+#ifndef KERN_PROC_SIGTRAMP - /* 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 -@@ -62,12 +98,15 @@ - && *(unsigned int *)(context->ra + 8) == 0x01a1c0c7 - && *(unsigned int *)(context->ra + 12) == 0x050f0000 )) - return _URC_END_OF_STACK; -+#else -+ if (x86_64_outside_sigtramp_range(context->ra)) -+ return _URC_END_OF_STACK; -+#endif - - 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_reg = __LIBGCC_STACK_POINTER_REGNUM__; - fs->regs.cfa_offset = new_cfa - (long) context->cfa; - - /* The SVR4 register numbering macros aren't usable in libgcc. */ |