[Midnightbsd-cvs] mports [23335] trunk/lang/gcc6: add patches
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Thu May 3 09:35:54 EDT 2018
Revision: 23335
http://svnweb.midnightbsd.org/mports/?rev=23335
Author: laffer1
Date: 2018-05-03 09:35:53 -0400 (Thu, 03 May 2018)
Log Message:
-----------
add patches
Modified Paths:
--------------
trunk/lang/gcc6/Makefile
Added Paths:
-----------
trunk/lang/gcc6/files/patch-armv7-support
trunk/lang/gcc6/files/patch-freebsd-unwind.h
trunk/lang/gcc6/files/patch-spe-config
Modified: trunk/lang/gcc6/Makefile
===================================================================
--- trunk/lang/gcc6/Makefile 2018-05-03 13:32:40 UTC (rev 23334)
+++ trunk/lang/gcc6/Makefile 2018-05-03 13:35:53 UTC (rev 23335)
@@ -2,6 +2,7 @@
PORTNAME= gcc
PORTVERSION= 6.4.0
+PORTREVISION= 1
CATEGORIES= lang java
MASTER_SITES= GCC/releases/gcc-${DISTVERSION}
PKGNAMESUFFIX= ${SUFFIX}
@@ -35,10 +36,15 @@
BOOTSTRAP_DESC= Build using a full bootstrap
GRAPHITE_DESC= Support for Graphite loop optimizations
-JAVA_USES= python shebangfix
+JAVA_USES= python:build shebangfix
SHEBANG_FILES= libjava/contrib/aot-compile.in
+.if exists(/usr/lib32/libc.so)
+MULTILIB_DESC= Build support for 32-bit and 64-bit targets
+MULTILIB_CONFIGURE_ENABLE= multilib
+.else
CONFIGURE_ARGS+= --disable-multilib
+.endif
.include <bsd.port.pre.mk>
Added: trunk/lang/gcc6/files/patch-armv7-support
===================================================================
--- trunk/lang/gcc6/files/patch-armv7-support (rev 0)
+++ trunk/lang/gcc6/files/patch-armv7-support 2018-05-03 13:35:53 UTC (rev 23335)
@@ -0,0 +1,28 @@
+--- UTC
+--- gcc/config.gcc.orig 2017-01-09 22:01:26.582656000 +0100
++++ gcc/config.gcc 2017-10-07 17:27:59.564810000 +0200
+@@ -1072,6 +1072,10 @@
+ tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
+ fi
+ ;;
++ armv7*-*-freebsd*)
++ tm_defines="${tm_defines} TARGET_FREEBSD_ARMv7=1"
++ tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
++ ;;
+ esac
+ with_tls=${with_tls:-gnu}
+ ;;
+--- gcc/config/arm/freebsd.h.orig 2016-06-15 21:17:15.860618000 +0200
++++ gcc/config/arm/freebsd.h 2017-10-09 21:38:03.395632000 +0200
+@@ -112,7 +112,10 @@
+ #undef WCHAR_TYPE_SIZE
+ #define WCHAR_TYPE_SIZE BITS_PER_WORD
+
+-#if defined (TARGET_FREEBSD_ARMv6)
++#if defined (TARGET_FREEBSD_ARMv7)
++#undef SUBTARGET_CPU_DEFAULT
++#define SUBTARGET_CPU_DEFAULT TARGET_CPU_genericv7a
++#elif defined (TARGET_FREEBSD_ARMv6)
+ #undef SUBTARGET_CPU_DEFAULT
+ #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm1176jzs
+ #else
Property changes on: trunk/lang/gcc6/files/patch-armv7-support
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lang/gcc6/files/patch-freebsd-unwind.h
===================================================================
--- trunk/lang/gcc6/files/patch-freebsd-unwind.h (rev 0)
+++ trunk/lang/gcc6/files/patch-freebsd-unwind.h 2018-05-03 13:35:53 UTC (rev 23335)
@@ -0,0 +1,90 @@
+2017-11-05 Andreas Tobler <andreast at gcc.gnu.org>
+
+ Backport from mainline
+ 2017-11-04 Andreas Tobler <andreast at 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. */
Property changes on: trunk/lang/gcc6/files/patch-freebsd-unwind.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lang/gcc6/files/patch-spe-config
===================================================================
--- trunk/lang/gcc6/files/patch-spe-config (rev 0)
+++ trunk/lang/gcc6/files/patch-spe-config 2018-05-03 13:35:53 UTC (rev 23335)
@@ -0,0 +1,15 @@
+--- UTC
+Index: gcc/config.gcc
+===================================================================
+--- gcc/config.gcc.old 2017-04-05 17:48:03.045750000 -0500
++++ gcc/config.gcc 2017-04-05 17:49:22.143572000 -0500
+@@ -2285,6 +2285,9 @@
+ tmake_file="${tmake_file} rs6000/t-freebsd64"
+ extra_options="${extra_options} rs6000/linux64.opt"
+ ;;
++ powerpcspe-*)
++ tm_file="${tm_file} rs6000/freebsd.h rs6000/linuxspe.h rs6000/e500.h"
++ ;;
+ *)
+ tm_file="${tm_file} rs6000/freebsd.h"
+ ;;
Property changes on: trunk/lang/gcc6/files/patch-spe-config
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
More information about the Midnightbsd-cvs
mailing list