[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