pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

gcc8snapshot: new GCC release, new GCC snapshot



Module Name:	pkgsrc-wip
Committed By:	coypu <coypu%sdf.org@localhost>
Pushed By:	coypu
Date:		Mon May 8 23:16:23 2017 +0300
Changeset:	3cf913c239ec7b53a111ed51124434858a054a63

Added Files:
	gcc8snapshot/DESCR
	gcc8snapshot/Makefile
	gcc8snapshot/buildlink3.mk
	gcc8snapshot/distinfo
	gcc8snapshot/options.mk
	gcc8snapshot/patches/patch-contrib_download__prerequisites
	gcc8snapshot/patches/patch-gcc_Makefile.in
	gcc8snapshot/patches/patch-gcc_config.gcc
	gcc8snapshot/patches/patch-gcc_config_arm_arm.h
	gcc8snapshot/patches/patch-gcc_config_netbsd-protos.h
	gcc8snapshot/patches/patch-gcc_config_netbsd.c
	gcc8snapshot/patches/patch-gcc_config_netbsd.h
	gcc8snapshot/patches/patch-gcc_config_t-netbsd
	gcc8snapshot/patches/patch-gcc_config_x-netbsd
	gcc8snapshot/patches/patch-gcc_configure
	gcc8snapshot/patches/patch-gcc_ggc-common.c
	gcc8snapshot/patches/patch-gcc_lto_lto.c
	gcc8snapshot/patches/patch-gcc_system.h
	gcc8snapshot/patches/patch-isl_configure
	gcc8snapshot/patches/patch-libcilkrts_configure
	gcc8snapshot/patches/patch-libcilkrts_runtime_os-unix.c
	gcc8snapshot/patches/patch-libdecnumber_decNumber.c
	gcc8snapshot/patches/patch-libffi_configure
	gcc8snapshot/patches/patch-libffi_testsuite_libffi.call_float2.c
	gcc8snapshot/patches/patch-libgcc_config.host
	gcc8snapshot/patches/patch-libgcc_config_i386_cpuinfo.h
	gcc8snapshot/patches/patch-libgcc_crtstuff.c
	gcc8snapshot/patches/patch-libgfortran_configure
	gcc8snapshot/patches/patch-libgo_Makefile.in
	gcc8snapshot/patches/patch-libsanitizer_configure.tgt
	gcc8snapshot/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h
	gcc8snapshot/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc
	gcc8snapshot/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h
	gcc8snapshot/patches/patch-libstdc++-v3_libsupc++_unwind-cxx.h
	gcc8snapshot/version.mk

Log Message:
gcc8snapshot: new GCC release, new GCC snapshot

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=3cf913c239ec7b53a111ed51124434858a054a63

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 gcc8snapshot/DESCR                                 |   4 +
 gcc8snapshot/Makefile                              | 179 +++++++++++++++++++++
 gcc8snapshot/buildlink3.mk                         |  31 ++++
 gcc8snapshot/distinfo                              |  39 +++++
 gcc8snapshot/options.mk                            | 131 +++++++++++++++
 .../patches/patch-contrib_download__prerequisites  |  15 ++
 gcc8snapshot/patches/patch-gcc_Makefile.in         |  15 ++
 gcc8snapshot/patches/patch-gcc_config.gcc          |  34 ++++
 gcc8snapshot/patches/patch-gcc_config_arm_arm.h    |  20 +++
 .../patches/patch-gcc_config_netbsd-protos.h       |  34 ++++
 gcc8snapshot/patches/patch-gcc_config_netbsd.c     | 104 ++++++++++++
 gcc8snapshot/patches/patch-gcc_config_netbsd.h     |  43 +++++
 gcc8snapshot/patches/patch-gcc_config_t-netbsd     |  28 ++++
 gcc8snapshot/patches/patch-gcc_config_x-netbsd     |  12 ++
 gcc8snapshot/patches/patch-gcc_configure           |  13 ++
 gcc8snapshot/patches/patch-gcc_ggc-common.c        |  71 ++++++++
 gcc8snapshot/patches/patch-gcc_lto_lto.c           |  19 +++
 gcc8snapshot/patches/patch-gcc_system.h            |  27 ++++
 gcc8snapshot/patches/patch-isl_configure           |  24 +++
 gcc8snapshot/patches/patch-libcilkrts_configure    |  13 ++
 .../patches/patch-libcilkrts_runtime_os-unix.c     |  40 +++++
 .../patches/patch-libdecnumber_decNumber.c         |  13 ++
 gcc8snapshot/patches/patch-libffi_configure        |  13 ++
 .../patch-libffi_testsuite_libffi.call_float2.c    |  13 ++
 gcc8snapshot/patches/patch-libgcc_config.host      |  19 +++
 .../patches/patch-libgcc_config_i386_cpuinfo.h     |  15 ++
 gcc8snapshot/patches/patch-libgcc_crtstuff.c       |  13 ++
 gcc8snapshot/patches/patch-libgfortran_configure   |  13 ++
 gcc8snapshot/patches/patch-libgo_Makefile.in       |  17 ++
 .../patches/patch-libsanitizer_configure.tgt       |  13 ++
 ...libstdc++-v3_config_os_bsd_netbsd_ctype__base.h |  37 +++++
 ..._config_os_bsd_netbsd_ctype__configure__char.cc |  58 +++++++
 ...bstdc++-v3_config_os_bsd_netbsd_ctype__inline.h |  13 ++
 .../patch-libstdc++-v3_libsupc++_unwind-cxx.h      |  12 ++
 gcc8snapshot/version.mk                            |   2 +
 35 files changed, 1147 insertions(+)

diffs:
diff --git a/gcc8snapshot/DESCR b/gcc8snapshot/DESCR
new file mode 100644
index 0000000000..e1291cbc05
--- /dev/null
+++ b/gcc8snapshot/DESCR
@@ -0,0 +1,4 @@
+The GNU Compiler Collection (GCC) includes front ends for C, C++, Objective-C,
+Fortran, and Go.
+
+This package provides the development version of version 8.x.
diff --git a/gcc8snapshot/Makefile b/gcc8snapshot/Makefile
new file mode 100644
index 0000000000..29ce4c9ffd
--- /dev/null
+++ b/gcc8snapshot/Makefile
@@ -0,0 +1,179 @@
+# $NetBSD: Makefile,v 1.3 2014/12/10 06:10:46 keckhardt Exp $
+
+GCC_PKGNAME=		gcc8snapshot
+.include		"version.mk"
+
+DISTNAME=	gcc-${GCC8S_DIST_VERSION}
+PKGNAME=	${GCC_PKGNAME}-${GCC8S_DIST_VERSION}
+## When bumping the PKGREVISION of this package the PKGREVISION of
+## lang/gcc7-libs needs to be bump to be at least 1 more than the
+## PKGREVISION of this package!
+#PKGREVISION=	1
+CATEGORIES=	lang
+#MASTER_SITES=	${MASTER_SITE_GNU:=gcc/snapshots/${GCC8S_DIST_VERSION}/}
+MASTER_SITES+=	ftp://ftp.fu-berlin.de/unix/languages/gcc/snapshots/${GCC8S_DIST_VERSION}/
+EXTRACT_SUFX=	.tar.bz2
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	http://gcc.gnu.org/
+COMMENT=	The GNU Compiler Collection (GCC) - 7.0 Release Series
+LICENSE=	gnu-gpl-v2 AND gnu-gpl-v3 AND gnu-lgpl-v2 AND gnu-lgpl-v3
+
+DISTFILES=		${DEFAULT_DISTFILES}
+EXTRACT_ONLY=		${DEFAULT_DISTFILES}
+
+NOT_FOR_PLATFORM=	Interix-*-*
+
+USE_LANGUAGES=	c c++
+USE_TOOLS+=		gmake makeinfo sed:run tar:build
+
+GNU_CONFIGURE=		yes
+## Build outside ${WRKSRC}
+OBJDIR=			../build
+CONFIGURE_DIRS=		${OBJDIR}
+CONFIGURE_SCRIPT=	../${DISTNAME}/configure
+GCC_SUBPREFIX=		${GCC_PKGNAME}
+GCC_PREFIX=		${PREFIX}/${GCC_SUBPREFIX}
+GNU_CONFIGURE_PREFIX=	${GCC_PREFIX}
+INFO_FILES=		yes
+
+UNLIMIT_RESOURCES+=	datasize
+UNLIMIT_RESOURCES+=	stacksize
+
+SUBST_CLASSES+=		vars
+SUBST_MESSAGE.vars=	Setting target machine name path in ${SUBST_FILES.vars}
+SUBST_STAGE.vars=	pre-configure
+SUBST_FILES.vars=	gcc/Makefile.in
+SUBST_VARS.vars=	GCC_TARGET_MACHINE
+
+
+.include "../../mk/bsd.prefs.mk"
+
+LANGS=			c
+
+# In some cases LINKER_RPATH_FLAG needs a trailing space.
+LINKER_RPATH_FLAG:=	${LINKER_RPATH_FLAG:S/-rpath/& /}
+
+## The Library rpath to use in end programs.
+LDFLAGS_FOR_TARGET=	${LDFLAGS:M${COMPILER_RPATH_FLAG}*:N*/usr/lib*}
+
+# The "-static-libstdc++ -static-libgcc" flags are normally added to the
+# boot-ldflags by configure but because we are supply the boot-ldflags
+# we mash supply them.
+BOOT_LDFLAGS=		-static-libstdc++ -static-libgcc ${LDFLAGS_FOR_TARGET}
+# Needed on Darwin when LDFLAGS point to a SDK
+BOOT_LDFLAGS+=		${LDFLAGS:M-Wl,-syslibroot*}
+# GCC does not understand this option; remove it, or stage build will fail
+BUILDLINK_TRANSFORM+=	rm:-stdlib=libc++
+
+.include "options.mk"
+
+## For graphite support.
+.if !empty(PKG_OPTIONS:Mgcc-graphite)
+
+post-extract:
+	${TAR} -jxf ${DISTDIR}/${ISL16}.tar.bz2 -C ${WRKSRC}
+	${MV} ${WRKSRC}/${ISL16} ${WRKSRC}/isl
+.endif
+
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-*)
+# on NetBSD, use the native SSP code in libc
+CONFIGURE_ARGS+=	--disable-libssp
+.else
+CONFIGURE_ARGS+=	--enable-libssp
+.endif
+
+## For target librarys and libjava programs.
+CONFIGURE_ENV+=		LDFLAGS_FOR_TARGET=${LDFLAGS_FOR_TARGET:Q}
+
+CONFIGURE_ARGS+=	--enable-languages=${LANGS:Q}
+CONFIGURE_ARGS+=	--enable-shared
+CONFIGURE_ARGS+=	--enable-long-long
+CONFIGURE_ARGS+=	--with-local-prefix=${GCC_PREFIX:Q}
+CONFIGURE_ARGS+=	--enable-threads=posix
+CONFIGURE_ARGS+=	--with-boot-ldflags=${BOOT_LDFLAGS:Q}
+.if ${OPSYS} == "NetBSD"
+CONFIGURE_ARGS+=	--with-gnu-ld --with-ld=/usr/bin/ld
+CONFIGURE_ARGS+=	--with-gnu-as --with-as=/usr/bin/as
+MAKE_ENV+=		ac_cv_func_clock_gettime=yes
+MAKE_ENV+=		ac_cv_func_gethostbyname_r=no
+MAKE_ENV+=		ac_cv_func_freelocale=no
+MAKE_ENV+=		ac_cv_func_newlocale=no
+MAKE_ENV+=		ac_cv_func_uselocale=no
+.endif
+.if ${OPSYS} == "DragonFly"
+CONFIGURE_ARGS+=	--disable-bootstrap
+.endif
+
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-i386) || !empty(MACHINE_PLATFORM:MLinux-*-i386)
+CONFIGURE_ARGS+=	--with-arch=i486 --with-tune=i486
+.endif
+
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-x86_64) || !empty(MACHINE_PLATFORM:MLinux-*-x86_64)
+CONFIGURE_ARGS+=	--with-arch=nocona --with-tune=nocona --with-fpmath=sse
+.endif
+
+.if !empty(MACHINE_PLATFORM:MDarwin-[0-8].*-*)
+CONFIGURE_ARGS+=	--with-dwarf2
+.endif
+
+
+# ${WRKSRC}/fixincludes/ looks for sed and compiles the path to sed into
+# a binary so we need to make sure we give it the installed sed and not
+# the tool wrapped one.
+MAKE_ENV+=		ac_cv_path_SED=${TOOLS_SED}
+MAKE_ENV+=		lt_cv_path_SED=${TOOLS_SED}
+
+# Determine whether to use binutils
+.if ${OPSYS} == "SunOS"
+.  if exists(/usr/sfw/bin/gobjdump)
+CONFIGURE_ENV+=		OBJDUMP=/usr/sfw/bin/gobjdump
+.  endif
+.  if exists(/usr/bin/ld)
+CONFIGURE_ARGS+=	--without-gnu-ld --with-ld=/usr/bin/ld
+.  else
+CONFIGURE_ARGS+=	--without-gnu-ld --with-ld=/usr/ccs/bin/ld
+.  endif
+.  if exists(/usr/sfw/bin/gas)
+CONFIGURE_ARGS+=	--with-gnu-as --with-as=/usr/sfw/bin/gas
+.  elif exists(/usr/ccs/bin/as)
+CONFIGURE_ARGS+=	--without-gnu-as --with-as=/usr/ccs/bin/as
+.  else
+BUILDLINK_DEPMETHOD.binutils=	full
+.    include "../../devel/binutils/buildlink3.mk"
+CONFIGURE_ARGS+=	--with-gnu-as --with-as=${PREFIX}/bin/gas
+.  endif
+.endif
+
+pre-configure:
+	${RUN} cd ${WRKSRC} && ${MKDIR} ${OBJDIR}
+
+TEST_TARGET=	-k check || ${TRUE}
+pre-test:
+	${RUN} 							\
+	if runtest --version >/dev/null 2>/dev/null ; then	\
+		: ;						\
+	else							\
+	  ${ECHO} "ERROR: Please install devel/dejagnu in order to run the test suite." ; \
+	  exit 1 ;						\
+	fi
+post-test:
+	${RUN} cd ${WRKSRC} && cd ${OBJDIR} &&		\
+	${SHELL} ${WRKSRC}/contrib/test_summary >${WRKDIR}/test_summary.log
+	@${INFO_MSG} "Test summary are available in ${WRKDIR}/test_summary.log"
+
+post-install:
+	${TEST} -f ${DESTDIR}${GCC_PREFIX}/bin/cc || \
+		( cd ${DESTDIR}${GCC_PREFIX}/bin ; ${LN} -f gcc cc )
+.if !empty(MACHINE_PLATFORM:MSunOS-*-*86*) && ${OS_VERSION} != "5.11"
+	${SH} files/values.c ${DESTDIR}${GCC_PREFIX}/bin/gcc -m32 || ${TRUE}
+	${SH} files/values.c ${DESTDIR}${GCC_PREFIX}/bin/gcc -m64 || ${TRUE}
+.endif
+
+GENERATE_PLIST+= \
+	cd ${DESTDIR}${PREFIX} && 					\
+	${FIND} ${GCC_SUBPREFIX} \( -type f -o -type l \) -print | ${SORT} ;
+
+.include "../../mk/dlopen.buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/gcc8snapshot/buildlink3.mk b/gcc8snapshot/buildlink3.mk
new file mode 100644
index 0000000000..bc93ca3864
--- /dev/null
+++ b/gcc8snapshot/buildlink3.mk
@@ -0,0 +1,31 @@
+# $NetBSD: buildlink3.mk,v 1.1 2014/10/19 10:6:56 keckhardt Exp $
+
+BUILDLINK_TREE+=	gcc7snapshot
+
+.if !defined(GCC7_BUILDLINK3_MK)
+GCC6SNAPSHOT_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.gcc7snapshot+=	gcc6>=${_GCC_REQD}
+BUILDLINK_ABI_DEPENDS.gcc7snapshot+=	gcc6>=7.0
+BUILDLINK_PKGSRCDIR.gcc7snapshot=	../../wip/gcc7snapshot
+BUILDLINK_DEPMETHOD.gcc7snapshot?=	build
+
+BUILDLINK_FILES.gcc7snapshot=		#empty
+BUILDLINK_AUTO_VARS.gcc7snapshot=	no
+
+# Packages that link against shared libraries need a full dependency.
+#.if defined(_USE_GCC_SHLIB)
+#DEPENDS+=	{gcc7, gcc7-libs}>=${_GCC_REQD}:../../lang/gcc7-libs
+#ABI_DEPENDS+=	{gcc7,gcc7-libs}>=7.0:../../lang/gcc7-libs
+#.endif
+
+pkgbase := gcc7snapshot
+.include "../../mk/pkg-build-options.mk"
+.if !empty(PKG_BUILD_OPTIONS.gcc7snapshot:Mgcc-java)
+.include "../../devel/zlib/buildlink3.mk"
+.endif
+
+.include "../../mk/dlopen.buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.endif # GCC7SNAPSHOT_BUILDLINK3_MK
+BUILDLINK_TREE+=	-gcc7snapshot
diff --git a/gcc8snapshot/distinfo b/gcc8snapshot/distinfo
new file mode 100644
index 0000000000..b9f30a5eef
--- /dev/null
+++ b/gcc8snapshot/distinfo
@@ -0,0 +1,39 @@
+$NetBSD: distinfo,v 1.23 2015/05/06 05:25:00 keckhardt Exp $
+
+SHA1 (gcc-8-20170507.tar.bz2) = 4925b1a60c659d6e19f0b08ca64c00cdedf4e798
+RMD160 (gcc-8-20170507.tar.bz2) = 07c7c03fc228da6e124921ad64a853eee61443d9
+SHA512 (gcc-8-20170507.tar.bz2) = b77a0c4b1b8734e959ae9fb588885c3bd7e8864072d1b920ef5bf8de05cc346367659e7972fdc34761956d8c73b178ebed17abbc410df4db0b313970a0e1e0de
+Size (gcc-8-20170507.tar.bz2) = 79924346 bytes
+SHA1 (isl-0.16.1.tar.bz2) = c5a2b201bf05229647e73203c0bf2d9679d4d21f
+RMD160 (isl-0.16.1.tar.bz2) = 5a99db3fe0d0a1f6bbac1ed4448f2403495c55b2
+SHA512 (isl-0.16.1.tar.bz2) = c188667a84dc5bdddb4ab7c35f89c91bf15a8171f4fcaf41301cf285fb7328846d9a367c096012fec4cc69d244f0bc9e95d84c09ec097394cd4093076f2a041b
+Size (isl-0.16.1.tar.bz2) = 1626446 bytes
+SHA1 (patch-contrib_download__prerequisites) = 86c6c16e0e3e3a0bcb38579a8b4004f603fac1ca
+SHA1 (patch-gcc_Makefile.in) = c0f97c75ba1d37eae894141edd58bb36b734f651
+SHA1 (patch-gcc_config.gcc) = fea8288c22bb2c4dd44a5e77c8f92dee8f8f6b18
+SHA1 (patch-gcc_config_arm_arm.h) = 92c8bff1063e153fec4454e6dea5334a42b0dad6
+SHA1 (patch-gcc_config_netbsd-protos.h) = 6d28864b4ccc8c1a63fe28e43601b84b63a00633
+SHA1 (patch-gcc_config_netbsd.c) = 85f786bce881ef2fc348f98ef81fdbc001076183
+SHA1 (patch-gcc_config_netbsd.h) = 81891a83bb17b99fdb2c9381b8e8a1767391c695
+SHA1 (patch-gcc_config_t-netbsd) = 802ad5706aa7ca9629f8e237f08fbb1569d28846
+SHA1 (patch-gcc_config_x-netbsd) = 6dc3d78e26df62054ea29f98ca51592858e671e3
+SHA1 (patch-gcc_configure) = 15fb7af267b79965f83bc64ce8aad1279b0ea52d
+SHA1 (patch-gcc_ggc-common.c) = a5d2dba635859f5d680c3f80d7c30b42461c752b
+SHA1 (patch-gcc_lto_lto.c) = 825b632e2a7ff5777d4fbfdcf6f0ea3f64c4742b
+SHA1 (patch-gcc_system.h) = 4c959a6b1c4d524cbdf44cfb80f0e5758ec20783
+SHA1 (patch-isl_configure) = 36b37778ee13c0b364fb24d5864d6a9e65b29b7d
+SHA1 (patch-libcilkrts_configure) = 6c2d0f897c4a451d5b4b4fb5b3415d04704c0b0d
+SHA1 (patch-libcilkrts_runtime_os-unix.c) = b25632587d9fbe8ff38377fe34cb16225355b521
+SHA1 (patch-libdecnumber_decNumber.c) = cec90e49c829bfc6ba1ec605d2fac7daaad62762
+SHA1 (patch-libffi_configure) = bcfbfe8abddc378e2de4a39ad0669583b37e0292
+SHA1 (patch-libffi_testsuite_libffi.call_float2.c) = 6321dde308579448c27c2b6e1e30633699dd145f
+SHA1 (patch-libgcc_config.host) = bdd4cd27249c8b62793204428d95c977d58f06fb
+SHA1 (patch-libgcc_config_i386_cpuinfo.h) = 2c55385a9440d4991eb265f24e98ba68eef266e1
+SHA1 (patch-libgcc_crtstuff.c) = e3a3b02a26229992851f195b5701cb1b86c29efe
+SHA1 (patch-libgfortran_configure) = 869a60fd08edecf18a42732dcbf226bad1309394
+SHA1 (patch-libgo_Makefile.in) = 612987541f745c7be6835ce7fb7119884db294c3
+SHA1 (patch-libsanitizer_configure.tgt) = 0aff54104734b2cb21090e33f9304738946ea5a0
+SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h) = 014d442c885b9c51d1a4af05205279c274a9559d
+SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc) = 06bba6da02344f76c26eed765a7cb022c035994e
+SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h) = 626fc1f9c035ac5cef30a92d525af4e778835ebf
+SHA1 (patch-libstdc++-v3_libsupc++_unwind-cxx.h) = 9784bfa4323f8498b36565d0fea28fce69ffdbb1
diff --git a/gcc8snapshot/options.mk b/gcc8snapshot/options.mk
new file mode 100644
index 0000000000..25fda10308
--- /dev/null
+++ b/gcc8snapshot/options.mk
@@ -0,0 +1,131 @@
+# $NetBSD: options.mk,v 1.2 2014/12/10 06:10:46 keckhardt Exp $
+
+PKG_OPTIONS_VAR=	PKG_OPTIONS.${GCC_PKGNAME}
+PKG_SUPPORTED_OPTIONS=	nls gcc-inplace-math gcc-c++ gcc-fortran \
+			gcc-go gcc-objc gcc-objc++ gcc-graphite
+PKG_SUGGESTED_OPTIONS=	gcc-c++ gcc-fortran gcc-objc gcc-objc++ \
+			gcc-graphite gcc-inplace-math
+
+.if ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+=	nls
+.elif ${OPSYS} == "Linux"
+PKG_SUGGESTED_OPTIONS+=	nls
+.elif ${OPSYS} == "DragonFly"
+PKG_SUGGESTED_OPTIONS+= nls
+.elif ${OPSYS} == "SunOS"
+PKG_SUGGESTED_OPTIONS+=	gcc-inplace-math
+.else
+.endif
+
+###
+### Determine if multilib is avalible.
+###
+MULTILIB_SUPPORTED?=	unknown
+.if !empty(MACHINE_PLATFORM:MLinux-*-x86_64)
+.  if exists(/usr/include/gnu/stubs-64.h) && \
+     !exists(/usr/include/gnu/stubs-32.h)
+MULTILIB_SUPPORTED=No
+.  else
+MULTILIB_SUPPORTED=Yes
+.  endif
+.endif
+.if !empty(MULTILIB_SUPPORTED:M[Yy][Ee][Ss])
+PKG_SUPPORTED_OPTIONS+=	gcc-multilib
+PKG_SUGGESTED_OPTIONS+=	gcc-multilib
+.endif
+
+.include "../../mk/bsd.options.mk"
+
+###
+### Native Language Support
+###
+.if !empty(PKG_OPTIONS:Mnls)
+USE_TOOLS+=		msgfmt
+CONFIGURE_ARGS+=	--enable-nls
+CONFIGURE_ARGS+=	--with-libiconv-prefix=${BUILDLINK_PREFIX.iconv}
+MAKE_ENV+=		ICONVPREFIX=${BUILDLINK_PREFIX.iconv}
+.include "../../converters/libiconv/buildlink3.mk"
+.include "../../devel/gettext-lib/buildlink3.mk"
+.else
+CONFIGURE_ARGS+=	--disable-nls
+.endif
+
+###
+### Multilib Support
+###
+.if (!empty(MULTILIB_SUPPORTED:M[Yy][Ee][Ss]) && \
+      empty(PKG_OPTIONS:Mgcc-multilib) ) || \
+    !empty(MULTILIB_SUPPORTED:M[Nn][Oo])
+CONFIGURE_ARGS+=	--disable-multilib
+.endif
+
+###
+### Build math libraries in place
+###
+.if !empty(PKG_OPTIONS:Mgcc-inplace-math)
+.  include "../../devel/gmp/inplace.mk"
+.  include "../../math/mpcomplex/inplace.mk"
+.  include "../../math/mpfr/inplace.mk"
+.else
+CONFIGURE_ARGS+=	--with-gmp=${BUILDLINK_PREFIX.gmp}
+CONFIGURE_ARGS+=	--with-mpc=${BUILDLINK_PREFIX.mpcomplex}
+CONFIGURE_ARGS+=	--with-mpfr=${BUILDLINK_PREFIX.mpfr}
+LIBS.SunOS+=		-lgmp
+.  include "../../devel/gmp/buildlink3.mk"
+.  include "../../math/mpcomplex/buildlink3.mk"
+.  include "../../math/mpfr/buildlink3.mk"
+.endif
+
+
+###
+### Graphite Support
+###
+.if !empty(PKG_OPTIONS:Mgcc-graphite)
+ISL16 = isl-0.16.1
+SITES.${ISL16}.tar.bz2 = ${MASTER_SITE_GNU:=gcc/infrastructure/}
+DISTFILES += ${ISL16}.tar.bz2
+.endif
+
+###
+### Optional languages
+### Ada could be added although there is a bootstrapping issue.  See
+### ../gcc34-ada for guidance
+###
+
+.if !empty(PKG_OPTIONS:Mgcc-objc++)
+.  if empty(PKG_OPTIONS:Mgcc-c++)
+PKG_OPTIONS+=		gcc-c++
+.  endif
+.  if empty(PKG_OPTIONS:Mgcc-objc)
+PKG_OPTIONS+=		gcc-objc
+.  endif
+LANGS+=			obj-c++
+.endif
+
+.if !empty(PKG_OPTIONS:Mgcc-objc)
+LANGS+=			objc
+.endif
+
+USE_TOOLS+=		unzip zip:run gmake:run
+CONFIGURE_ARGS+=	--with-system-zlib
+
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../lang/python/application.mk"
+
+.if !empty(PKG_OPTIONS:Mgcc-go)
+LANGS+=			go
+.endif
+
+.if !empty(PKG_OPTIONS:Mgcc-fortran)
+LANGS+=			fortran
+.endif
+
+.if !empty(PKG_OPTIONS:Mgcc-c++)
+LANGS+=			c++
+USE_TOOLS+=		perl
+CONFIGURE_ARGS+=	--enable-__cxa_atexit
+CONFIGURE_ARGS+=	--with-gxx-include-dir=${GCC_PREFIX}/include/c++/
+.else
+CONFIGURE_ARGS+=	--disable-build-with-cxx
+CONFIGURE_ARGS+=	--disable-build-poststage1-with-cxx
+.endif
diff --git a/gcc8snapshot/patches/patch-contrib_download__prerequisites b/gcc8snapshot/patches/patch-contrib_download__prerequisites
new file mode 100644
index 0000000000..8caf26d142
--- /dev/null
+++ b/gcc8snapshot/patches/patch-contrib_download__prerequisites
@@ -0,0 +1,15 @@
+$NetBSD: patch-contrib_download__prerequisites,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+Non-portable test
+
+--- contrib/download_prerequisites.orig	2017-04-11 16:34:07.000000000 +0000
++++ contrib/download_prerequisites
+@@ -122,7 +122,7 @@ md5_check() {
+   md5_checksum_output=$(md5 -r "${file_to_check}")
+   # Grab the text before the first space
+   md5_checksum_detected="${md5_checksum_output%% *}"
+-  [ "${md5_checksum_expected}" == "${md5_checksum_detected}" ] \
++  [ "${md5_checksum_expected}" = "${md5_checksum_detected}" ] \
+     || die "Cannot verify integrity of possibly corrupted file ${file_to_check}"
+   echo "${file_to_check}: OK"
+ }
diff --git a/gcc8snapshot/patches/patch-gcc_Makefile.in b/gcc8snapshot/patches/patch-gcc_Makefile.in
new file mode 100644
index 0000000000..d52bcf4057
--- /dev/null
+++ b/gcc8snapshot/patches/patch-gcc_Makefile.in
@@ -0,0 +1,15 @@
+$NetBSD: patch-gcc_Makefile.in,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+Add gcc libdir to a programs rpath so that _this gcc's_ support libraries
+are found.
+
+--- gcc/Makefile.in.orig	2017-04-18 18:10:27.000000000 +0000
++++ gcc/Makefile.in
+@@ -2112,6 +2112,7 @@ prefix.o: $(BASEVER)
+ # Language-independent files.
+ 
+ DRIVER_DEFINES = \
++  -DLINK_LIBGCC_SPEC="\"%D $(LINKER_RPATH_FLAG) $(prefix)//lib/%M $(LINKER_RPATH_FLAG) $(libdir)/%M \"" \
+   -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \
+   -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
+   -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \
diff --git a/gcc8snapshot/patches/patch-gcc_config.gcc b/gcc8snapshot/patches/patch-gcc_config.gcc
new file mode 100644
index 0000000000..f1002fce55
--- /dev/null
+++ b/gcc8snapshot/patches/patch-gcc_config.gcc
@@ -0,0 +1,34 @@
+$NetBSD: patch-gcc_config.gcc,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- gcc/config.gcc.orig	2016-12-10 21:07:10.000000000 +0000
++++ gcc/config.gcc
+@@ -765,10 +765,15 @@ case ${target} in
+   target_has_targetcm=yes
+   ;;
+ *-*-netbsd*)
+-  tmake_file="t-slibgcc"
++  tmake_file="t-slibgcc t-netbsd"
+   gas=yes
+   gnu_ld=yes
+   use_gcc_stdint=wrap
++  # cabs/cabsf are renamed to __c99_cabs/cabsf
++  tm_p_file="${tm_p_file} netbsd-protos.h"
++  target_gtfiles="${target_gtfiles} \$(srcdir)/config/netbsd.c"
++  extra_objs="${extra_objs} netbsd.o"
++
+ 
+   # NetBSD 2.0 and later get POSIX threads enabled by default.
+   # Allow them to be explicitly enabled on any other version.
+@@ -1460,10 +1465,12 @@ x86_64-*-freebsd*)
+ i[34567]86-*-netbsdelf*)
+ 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-stdint.h netbsd-elf.h i386/netbsd-elf.h"
+ 	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
++	tmake_file="${tmake_file} i386/t-crtstuff"
+ 	;;
+ x86_64-*-netbsd*)
+ 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-stdint.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
+ 	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
++	tmake_file="${tmake_file} i386/t-crtstuff"
+ 	;;
+ i[34567]86-*-openbsd*)
+ 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
diff --git a/gcc8snapshot/patches/patch-gcc_config_arm_arm.h b/gcc8snapshot/patches/patch-gcc_config_arm_arm.h
new file mode 100644
index 0000000000..a4f6de50b8
--- /dev/null
+++ b/gcc8snapshot/patches/patch-gcc_config_arm_arm.h
@@ -0,0 +1,20 @@
+$NetBSD: patch-gcc_config_arm_arm.h,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+driver-arm.o is only included for freebsd/arm and linux/arm, and
+it is responsible for the definition of host_detect_local_cpu.
+
+Without it, we get an undefined reference.
+
+GCC bugzilla #77800
+
+--- gcc/config/arm/arm.h.orig	2016-12-15 17:51:46.000000000 +0000
++++ gcc/config/arm/arm.h
+@@ -2231,7 +2231,7 @@ extern const char *arm_target_thumb_only
+ 
+ /* -mcpu=native handling only makes sense with compiler running on
+    an ARM chip.  */
+-#if defined(__arm__)
++#if defined(__arm__) && (defined(__linux__) || defined(__FreeBSD__))
+ extern const char *host_detect_local_cpu (int argc, const char **argv);
+ # define EXTRA_SPEC_FUNCTIONS						\
+   { "local_cpu_detect", host_detect_local_cpu },			\
diff --git a/gcc8snapshot/patches/patch-gcc_config_netbsd-protos.h b/gcc8snapshot/patches/patch-gcc_config_netbsd-protos.h
new file mode 100644
index 0000000000..79c37d87d5
--- /dev/null
+++ b/gcc8snapshot/patches/patch-gcc_config_netbsd-protos.h
@@ -0,0 +1,34 @@
+$NetBSD: patch-gcc_config_netbsd-protos.h,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- /dev/null	2014-12-15 07:13:57.000000000 +0000
++++ gcc/config/netbsd-protos.h
+@@ -0,0 +1,29 @@
++/* Prototypes.
++   Copyright (C) 2001-2014 Free Software Foundation, Inc.
++
++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.
++
++You should have received a copy of the GNU General Public License
++along with GCC; see the file COPYING3.  If not see
++<http://www.gnu.org/licenses/>.  */
++
++#ifndef _NETBSD_PROTOS_H_
++#define _NETBSD_PROTOS_H_
++
++double __c99_cabs (double complex);
++float __c99_cabsf (float complex);
++long double __c99_cabsl (long double complex);
++
++void netbsd_patch_builtins (void);
++
++#endif /* _NETBSD_PROTOS_H_ */
diff --git a/gcc8snapshot/patches/patch-gcc_config_netbsd.c b/gcc8snapshot/patches/patch-gcc_config_netbsd.c
new file mode 100644
index 0000000000..fe64095dc4
--- /dev/null
+++ b/gcc8snapshot/patches/patch-gcc_config_netbsd.c
@@ -0,0 +1,104 @@
+$NetBSD: patch-gcc_config_netbsd.c,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- gcc/config/netbsd.c.orig	2016-11-04 16:18:21.025368203 +0000
++++ gcc/config/netbsd.c
+@@ -0,0 +1,99 @@
++/* Functions for generic NetBSD as target machine for GNU C compiler.
++   Copyright (C) 1989-2014 Free Software Foundation, Inc.
++   Contributed by Apple Computer Inc.
++
++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.
++
++You should have received a copy of the GNU General Public License
++along with GCC; see the file COPYING3.  If not see
++<http://www.gnu.org/licenses/>.  */
++
++
++#include "config.h"
++#include "system.h"
++#include "coretypes.h"
++#include "backend.h"
++#include "target.h"
++#include "cfghooks.h"
++#include "tree.h"
++#include "gimple.h"
++#include "rtl.h"
++#include "df.h"
++#include "memmodel.h"
++#include "regs.h"
++#include "insn-config.h"
++#include "conditions.h"
++#include "insn-flags.h"
++#include "output.h"
++#include "insn-attr.h"
++#include "flags.h"
++#include "alias.h"
++#include "fold-const.h"
++#include "stringpool.h"
++#include "varasm.h"
++#include "stor-layout.h"
++#include "expmed.h"
++#include "dojump.h"
++#include "explow.h"
++#include "calls.h"
++#include "emit-rtl.h"
++#include "stmt.h"
++#include "expr.h"
++#include "reload.h"
++#include "langhooks.h"
++#include "target.h"
++#include "tm_p.h"
++#include "diagnostic-core.h"
++#include "toplev.h"
++#include "cfgrtl.h"
++#include "cfganal.h"
++#include "lcm.h"
++#include "cfgbuild.h"
++#include "cfgcleanup.h"
++#include "debug.h"
++#include "internal-fn.h"
++#include "gimple-fold.h"
++#include "tree-eh.h"
++#include "gimplify.h"
++#include "cgraph.h"
++#include "alloc-pool.h"
++#include "lto-streamer.h"
++#include "lto-section-names.h"
++
++static void
++netbsd_patch_builtin (enum built_in_function fncode)
++{
++  tree fn = builtin_decl_explicit (fncode);
++  tree sym;
++  char *newname;
++
++  if (!fn)
++    return;
++
++  sym = DECL_ASSEMBLER_NAME (fn);
++  newname = ACONCAT (("__c99_", IDENTIFIER_POINTER (sym), NULL));
++
++  set_user_assembler_name (fn, newname);
++
++  fn = builtin_decl_implicit (fncode);
++  if (fn)
++    set_user_assembler_name (fn, newname);
++}
++
++void
++netbsd_patch_builtins (void)
++{
++  netbsd_patch_builtin (BUILT_IN_CABSF);
++  netbsd_patch_builtin (BUILT_IN_CABS);
++  netbsd_patch_builtin (BUILT_IN_CABSL);
++}
diff --git a/gcc8snapshot/patches/patch-gcc_config_netbsd.h b/gcc8snapshot/patches/patch-gcc_config_netbsd.h
new file mode 100644
index 0000000000..8a7b5e0108
--- /dev/null
+++ b/gcc8snapshot/patches/patch-gcc_config_netbsd.h
@@ -0,0 +1,43 @@
+$NetBSD: patch-gcc_config_netbsd.h,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+when using shared, link against libc
+another unexplained change`
+
+--- gcc/config/netbsd.h.orig	2014-01-02 22:23:26.000000000 +0000
++++ gcc/config/netbsd.h
+@@ -17,6 +17,9 @@ You should have received a copy of the G
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
++
++#include "netbsd-protos.h"
++
+ /* TARGET_OS_CPP_BUILTINS() common to all NetBSD targets.  */
+ #define NETBSD_OS_CPP_BUILTINS_COMMON()		\
+   do						\
+@@ -96,6 +99,7 @@ along with GCC; see the file COPYING3.  
+        %{!pg:-lposix}}		\
+      %{p:-lposix_p}		\
+      %{pg:-lposix_p}}		\
++   %{shared:-lc}		\
+    %{!shared:			\
+      %{!symbolic:		\
+        %{!p:			\
+@@ -109,6 +113,7 @@ along with GCC; see the file COPYING3.  
+        %{!pg:-lposix}}		\
+      %{p:-lposix_p}		\
+      %{pg:-lposix_p}}		\
++   %{shared:-lc}		\
+    %{!shared:			\
+      %{!symbolic:		\
+        %{!p:			\
+@@ -175,3 +180,9 @@ along with GCC; see the file COPYING3.  
+ 
+ #undef WINT_TYPE
+ #define WINT_TYPE "int"
++
++#undef SUBTARGET_INIT_BUILTINS
++#define SUBTARGET_INIT_BUILTINS			\
++do {						\
++  netbsd_patch_builtins ();			\
++} while(0)
diff --git a/gcc8snapshot/patches/patch-gcc_config_t-netbsd b/gcc8snapshot/patches/patch-gcc_config_t-netbsd
new file mode 100644
index 0000000000..2488b61654
--- /dev/null
+++ b/gcc8snapshot/patches/patch-gcc_config_t-netbsd
@@ -0,0 +1,28 @@
+$NetBSD: patch-gcc_config_t-netbsd,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- /dev/null	2014-12-16 20:23:05.000000000 +0000
++++ gcc/config/t-netbsd
+@@ -0,0 +1,23 @@
++# Copyright (C) 2002-2014 Free Software Foundation, Inc.
++#
++# 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.
++#
++# You should have received a copy of the GNU General Public License
++# along with GCC; see the file COPYING3.  If not see
++# <http://www.gnu.org/licenses/>.
++
++
++netbsd.o: $(srcdir)/config/netbsd.c
++	$(COMPILE) $<
++	$(POSTCOMPILE)
++
diff --git a/gcc8snapshot/patches/patch-gcc_config_x-netbsd b/gcc8snapshot/patches/patch-gcc_config_x-netbsd
new file mode 100644
index 0000000000..9b1d948685
--- /dev/null
+++ b/gcc8snapshot/patches/patch-gcc_config_x-netbsd
@@ -0,0 +1,12 @@
+$NetBSD: patch-gcc_config_x-netbsd,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+Add host hooks for NetBSD - needed for working precompiled headers.
+http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58397
+
+--- /dev/null	2013-09-11 09:12:57.000000000 +0200
++++ gcc/config/x-netbsd	2013-09-10 18:57:27.000000000 +0200
+@@ -0,0 +1,4 @@
++host-netbsd.o : $(srcdir)/config/host-netbsd.c $(CONFIG_H) $(SYSTEM_H) \
++  coretypes.h hosthooks.h hosthooks-def.h $(HOOKS_H)
++	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
++		$(srcdir)/config/host-netbsd.c
diff --git a/gcc8snapshot/patches/patch-gcc_configure b/gcc8snapshot/patches/patch-gcc_configure
new file mode 100644
index 0000000000..4d1ded0e9b
--- /dev/null
+++ b/gcc8snapshot/patches/patch-gcc_configure
@@ -0,0 +1,13 @@
+$NetBSD: patch-gcc_configure,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- gcc/configure.orig	2015-09-30 23:06:11.000000000 +0000
++++ gcc/configure
+@@ -28321,7 +28321,7 @@ case "$target" in
+       gcc_cv_target_dl_iterate_phdr=no
+     fi
+     ;;
+-  *-*-dragonfly* | *-*-freebsd*)
++  *-*-dragonfly* | *-*-freebsd* | *-*-netbsd* )
+     if grep dl_iterate_phdr $target_header_dir/sys/link_elf.h > /dev/null 2>&1; then
+       gcc_cv_target_dl_iterate_phdr=yes
+     else
diff --git a/gcc8snapshot/patches/patch-gcc_ggc-common.c b/gcc8snapshot/patches/patch-gcc_ggc-common.c
new file mode 100644
index 0000000000..f566a0e072
--- /dev/null
+++ b/gcc8snapshot/patches/patch-gcc_ggc-common.c
@@ -0,0 +1,71 @@
+$NetBSD: patch-gcc_ggc-common.c,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- gcc/ggc-common.c.orig	2014-12-10 03:45:40.000000000 +0000
++++ gcc/ggc-common.c
+@@ -603,6 +603,8 @@ gt_pch_restore (FILE *f)
+   size_t i;
+   struct mmap_info mmi;
+   int result;
++  struct line_maps * old_line_table = line_table;
++  location_t old_input_loc = input_location;
+ 
+   /* Delete any deletable objects.  This makes ggc_pch_read much
+      faster, as it can be sure that no GCable objects remain other
+@@ -616,32 +618,50 @@ gt_pch_restore (FILE *f)
+   /* Read in all the scalar variables.  */
+   for (rt = gt_pch_scalar_rtab; *rt; rt++)
+     for (rti = *rt; rti->base != NULL; rti++)
+-      if (fread (rti->base, rti->stride, 1, f) != 1)
++      if (fread (rti->base, rti->stride, 1, f) != 1) {
++        line_table = old_line_table;
++        input_location = old_input_loc;
+ 	fatal_error (input_location, "can%'t read PCH file: %m");
++      }
+ 
+   /* Read in all the global pointers, in 6 easy loops.  */
+   for (rt = gt_ggc_rtab; *rt; rt++)
+     for (rti = *rt; rti->base != NULL; rti++)
+       for (i = 0; i < rti->nelt; i++)
+ 	if (fread ((char *)rti->base + rti->stride * i,
+-		   sizeof (void *), 1, f) != 1)
++		   sizeof (void *), 1, f) != 1) {
++          line_table = old_line_table;
++          input_location = old_input_loc;
+ 	  fatal_error (input_location, "can%'t read PCH file: %m");
++        }
+ 
+-  if (fread (&mmi, sizeof (mmi), 1, f) != 1)
++  if (fread (&mmi, sizeof (mmi), 1, f) != 1) {
++    line_table = old_line_table;
++    input_location = old_input_loc;
+     fatal_error (input_location, "can%'t read PCH file: %m");
++  }
+ 
+   result = host_hooks.gt_pch_use_address (mmi.preferred_base, mmi.size,
+ 					  fileno (f), mmi.offset);
+-  if (result < 0)
++  if (result < 0) {
++    line_table = old_line_table;
++    input_location = old_input_loc;
+     fatal_error (input_location, "had to relocate PCH");
++  }
+   if (result == 0)
+     {
+       if (fseek (f, mmi.offset, SEEK_SET) != 0
+-	  || fread (mmi.preferred_base, mmi.size, 1, f) != 1)
++	  || fread (mmi.preferred_base, mmi.size, 1, f) != 1) {
++        line_table = old_line_table;
++        input_location = old_input_loc;
+ 	fatal_error (input_location, "can%'t read PCH file: %m");
++      }
+     }
+-  else if (fseek (f, mmi.offset + mmi.size, SEEK_SET) != 0)
+-    fatal_error (input_location, "can%'t read PCH file: %m");
++  else if (fseek (f, mmi.offset + mmi.size, SEEK_SET) != 0) {
++        line_table = old_line_table;
++        input_location = old_input_loc;
++        fatal_error (input_location, "can%'t read PCH file: %m");
++  }
+ 
+   ggc_pch_read (f, mmi.preferred_base);
+ 
diff --git a/gcc8snapshot/patches/patch-gcc_lto_lto.c b/gcc8snapshot/patches/patch-gcc_lto_lto.c
new file mode 100644
index 0000000000..6c98473427
--- /dev/null
+++ b/gcc8snapshot/patches/patch-gcc_lto_lto.c
@@ -0,0 +1,19 @@
+$NetBSD: patch-gcc_lto_lto.c,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- gcc/lto/lto.c.orig	2015-01-30 16:15:00.000000000 +0000
++++ gcc/lto/lto.c
+@@ -2495,7 +2495,13 @@ wait_for_child ()
+ #ifndef WCONTINUED
+ #define WCONTINUED 0
+ #endif
+-      int w = waitpid (0, &status, WUNTRACED | WCONTINUED);
++
++#if defined(__NetBSD__)
++      int w = waitpid(0, &status, WUNTRACED | WALLSIG);
++#else
++      int w = waitpid(0, &status, WUNTRACED | WCONTINUED);
++#endif
++ 
+       if (w == -1)
+ 	fatal_error (input_location, "waitpid failed");
+ 
diff --git a/gcc8snapshot/patches/patch-gcc_system.h b/gcc8snapshot/patches/patch-gcc_system.h
new file mode 100644
index 0000000000..ea416b0abb
--- /dev/null
+++ b/gcc8snapshot/patches/patch-gcc_system.h
@@ -0,0 +1,27 @@
+$NetBSD: patch-gcc_system.h,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- gcc/system.h.orig	2013-04-29 18:37:29.000000000 +0000
++++ gcc/system.h
+@@ -72,18 +72,22 @@ along with GCC; see the file COPYING3.  
+ 
+ #if defined HAVE_DECL_PUTC_UNLOCKED && HAVE_DECL_PUTC_UNLOCKED
+ 
++# if !defined(__NetBSD__)
+ # ifdef HAVE_PUTC_UNLOCKED
+ #  undef putc
+ #  define putc(C, Stream) putc_unlocked (C, Stream)
+ # endif
++# endif
+ # ifdef HAVE_PUTCHAR_UNLOCKED
+ #  undef putchar
+ #  define putchar(C) putchar_unlocked (C)
+ # endif
++# if !defined(__NetBSD__)
+ # ifdef HAVE_GETC_UNLOCKED
+ #  undef getc
+ #  define getc(Stream) getc_unlocked (Stream)
+ # endif
++# endif
+ # ifdef HAVE_GETCHAR_UNLOCKED
+ #  undef getchar
+ #  define getchar() getchar_unlocked ()
diff --git a/gcc8snapshot/patches/patch-isl_configure b/gcc8snapshot/patches/patch-isl_configure
new file mode 100644
index 0000000000..bf7b06f067
--- /dev/null
+++ b/gcc8snapshot/patches/patch-isl_configure
@@ -0,0 +1,24 @@
+$NetBSD: patch-isl_configure,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+Make test portable
+
+--- isl/configure.orig	2016-01-14 17:26:10.000000000 +0000
++++ isl/configure
+@@ -17561,7 +17561,7 @@ else
+ fi
+ 
+ 
+- if test "x$with_int" == "ximath-32"; then
++ if test "x$with_int" = "ximath-32"; then
+   SMALL_INT_OPT_TRUE=
+   SMALL_INT_OPT_FALSE='#'
+ else
+@@ -17569,7 +17569,7 @@ else
+   SMALL_INT_OPT_FALSE=
+ fi
+ 
+-if test "x$with_int" == "ximath-32"; then :
++if test "x$with_int" = "ximath-32"; then :
+ 
+ 
+ $as_echo "#define USE_SMALL_INT_OPT /**/" >>confdefs.h
diff --git a/gcc8snapshot/patches/patch-libcilkrts_configure b/gcc8snapshot/patches/patch-libcilkrts_configure
new file mode 100644
index 0000000000..a48fcaa3b6
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libcilkrts_configure
@@ -0,0 +1,13 @@
+$NetBSD: patch-libcilkrts_configure,v 1.2 2017/05/04 17:38:23 maya Exp $
+
+--- libcilkrts/configure.orig	2014-08-12 11:06:44.000000000 +0000
++++ libcilkrts/configure
+@@ -14519,7 +14519,7 @@ esac
+ CFLAGS="$save_CFLAGS"
+ 
+ if test $enable_shared = yes; then
+-  link_cilkrts="-lcilkrts %{static: $LIBS}"
++  link_cilkrts="-rpath ${PREFIX}/gcc7/lib --as-needed -lgcc_s -lcilkrts %{static $LIBS}"
+ else
+   link_cilkrts="-lcilkrts $LIBS"
+ fi
diff --git a/gcc8snapshot/patches/patch-libcilkrts_runtime_os-unix.c b/gcc8snapshot/patches/patch-libcilkrts_runtime_os-unix.c
new file mode 100644
index 0000000000..9e4d75af1c
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libcilkrts_runtime_os-unix.c
@@ -0,0 +1,40 @@
+$NetBSD: patch-libcilkrts_runtime_os-unix.c,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+NetBSD doesn't need additional include files too
+NetBSD can also obtain number of online cpus from sysconf
+NetBSD can use sched_yield for sleeping
+
+--- libcilkrts/runtime/os-unix.c.orig	2016-12-01 14:48:49.000000000 +0000
++++ libcilkrts/runtime/os-unix.c
+@@ -73,6 +73,7 @@
+ #elif defined __CYGWIN__ || \
+       defined __DragonFly__ || \
+       defined __FreeBSD__ || \
++      defined __NetBSD__ || \
+       defined __GNU__
+ // No additional include files
+ 
+@@ -397,6 +398,7 @@ COMMON_SYSDEP int __cilkrts_hardware_cpu
+     defined __CYGWIN__   || \
+     defined __DragonFly__  || \
+     defined __FreeBSD__  || \
++    defined __NetBSD__ || \
+     (defined(__sun__) && defined(__svr4__))
+     return (int)sysconf(_SC_NPROCESSORS_ONLN);
+ #elif defined __MIC__
+@@ -426,6 +428,7 @@ COMMON_SYSDEP void __cilkrts_idle(void)
+     // silencing workers that are not stealing work.
+ #if defined(__ANDROID__)  || \
+     defined(__FreeBSD__)  || \
++    defined(__NetBSD__)   || \
+     defined(__VXWORKS__)  || \
+     (defined(__sun__) && defined(__svr4__))
+     sched_yield();
+@@ -456,6 +459,7 @@ COMMON_SYSDEP void __cilkrts_yield(void)
+     defined(__APPLE__)    || \
+     defined(__CYGWIN__)   || \
+     defined(__FreeBSD__)  || \
++    defined(__NetBSD__)   || \
+     defined(__VXWORKS__)  || \
+     (defined(__sun__) && defined(__svr4__))
+     // Call sched_yield to yield quantum.  I'm not sure why we
diff --git a/gcc8snapshot/patches/patch-libdecnumber_decNumber.c b/gcc8snapshot/patches/patch-libdecnumber_decNumber.c
new file mode 100644
index 0000000000..68b17c373f
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libdecnumber_decNumber.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-libdecnumber_decNumber.c,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- libdecnumber/decNumber.c.orig	2013-08-14 08:42:04.000000000 +0000
++++ libdecnumber/decNumber.c
+@@ -770,7 +770,7 @@ decNumber * decNumberAbs(decNumber *res,
+ decNumber * decNumberAdd(decNumber *res, const decNumber *lhs,
+ 			 const decNumber *rhs, decContext *set) {
+   uInt status=0;			/* accumulator */
+-  decAddOp(res, lhs, rhs, set, 0, &status);
++  decAddOp(res, lhs, rhs, set, (uByte)0, &status);
+   if (status!=0) decStatus(res, status, set);
+   #if DECCHECK
+   decCheckInexact(res, set);
diff --git a/gcc8snapshot/patches/patch-libffi_configure b/gcc8snapshot/patches/patch-libffi_configure
new file mode 100644
index 0000000000..e6b73fc732
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libffi_configure
@@ -0,0 +1,13 @@
+$NetBSD: patch-libffi_configure,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- libffi/configure.orig	2013-06-01 17:03:49.000000000 +0000
++++ libffi/configure
+@@ -12689,7 +12689,7 @@ case "$target" in
+ $as_echo "#define FFI_EXEC_TRAMPOLINE_TABLE 1" >>confdefs.h
+ 
+      ;;
+-     *-apple-darwin1* | *-*-freebsd* | *-*-kfreebsd* | *-*-openbsd* | *-pc-solaris*)
++     *-apple-darwin1* | *-*-freebsd* | *-*-kfreebsd* | *-*-netbsd* | *-*-openbsd* | *-pc-solaris*)
+ 
+ $as_echo "#define FFI_MMAP_EXEC_WRIT 1" >>confdefs.h
+ 
diff --git a/gcc8snapshot/patches/patch-libffi_testsuite_libffi.call_float2.c b/gcc8snapshot/patches/patch-libffi_testsuite_libffi.call_float2.c
new file mode 100644
index 0000000000..8145b80c0b
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libffi_testsuite_libffi.call_float2.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-libffi_testsuite_libffi.call_float2.c,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- libffi/testsuite/libffi.call/float2.c.orig	2013-06-01 17:08:18.000000000 +0000
++++ libffi/testsuite/libffi.call/float2.c
+@@ -45,7 +45,7 @@ int main (void)
+   /* This is ifdef'd out for now. long double support under SunOS/gcc
+      is pretty much non-existent.  You'll get the odd bus error in library
+      routines like printf().  */
+-  printf ("%Lf, %Lf, %Lf, %Lf\n", ld, ldblit(f), ld - ldblit(f), LDBL_EPSILON);
++  printf ("%Lf, %Lf, %Lf, %Lf\n", (long double)ld, (long double)ldblit(f), (long double)(ld - ldblit(f)), (long double)LDBL_EPSILON);
+ #endif
+ 
+   /* These are not always the same!! Check for a reasonable delta */
diff --git a/gcc8snapshot/patches/patch-libgcc_config.host b/gcc8snapshot/patches/patch-libgcc_config.host
new file mode 100644
index 0000000000..79f3776dcf
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libgcc_config.host
@@ -0,0 +1,19 @@
+$NetBSD$
+
+Add libgcc x86 netbsd config
+
+--- libgcc/config.host.orig	2017-03-10 19:33:27.000000000 +0000
++++ libgcc/config.host
+@@ -605,10 +605,10 @@ x86_64-*-freebsd*)
+ 	md_unwind_header=i386/freebsd-unwind.h
+ 	;;
+ i[34567]86-*-netbsdelf*)
+-	tmake_file="${tmake_file} i386/t-crtstuff"
++	tmake_file="${tmake_file} i386/t-netbsd i386/t-crtstuff"
+ 	;;
+ x86_64-*-netbsd*)
+-	tmake_file="${tmake_file} i386/t-crtstuff"
++	tmake_file="${tmake_file} i386/t-netbsd i386/t-crtstuff"
+ 	;;
+ i[34567]86-*-openbsd*)
+ 	;;
diff --git a/gcc8snapshot/patches/patch-libgcc_config_i386_cpuinfo.h b/gcc8snapshot/patches/patch-libgcc_config_i386_cpuinfo.h
new file mode 100644
index 0000000000..ca52db184a
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libgcc_config_i386_cpuinfo.h
@@ -0,0 +1,15 @@
+$NetBSD: patch-libgcc_config_i386_cpuinfo.h,v 1.1 2017/05/04 17:38:23 maya Exp $
+
+Fix GCC bug #80600
+
+--- libgcc/config/i386/cpuinfo.h.orig	2017-01-10 12:55:41.000000000 +0000
++++ libgcc/config/i386/cpuinfo.h
+@@ -108,7 +108,7 @@ enum processor_features
+   FEATURE_AVX512VPOPCNTDQ
+ };
+ 
+-extern struct __processor_model
++struct __processor_model
+ {
+   unsigned int __cpu_vendor;
+   unsigned int __cpu_type;
diff --git a/gcc8snapshot/patches/patch-libgcc_crtstuff.c b/gcc8snapshot/patches/patch-libgcc_crtstuff.c
new file mode 100644
index 0000000000..aca55d4c94
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libgcc_crtstuff.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-libgcc_crtstuff.c,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- libgcc/crtstuff.c.orig	2017-01-01 12:07:43.000000000 +0000
++++ libgcc/crtstuff.c
+@@ -81,7 +81,7 @@ call_ ## FUNC (void)					\
+ #endif
+ 
+ #if defined(TARGET_DL_ITERATE_PHDR) && \
+-   (defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__))
++   (defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__))
+ #define BSD_DL_ITERATE_PHDR_AVAILABLE
+ #endif
+  
diff --git a/gcc8snapshot/patches/patch-libgfortran_configure b/gcc8snapshot/patches/patch-libgfortran_configure
new file mode 100644
index 0000000000..931e3a5997
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libgfortran_configure
@@ -0,0 +1,13 @@
+$NetBSD: patch-libgfortran_configure,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- libgfortran/configure.orig	2015-10-04 22:33:03.000000000 +0000
++++ libgfortran/configure
+@@ -25992,7 +25992,7 @@ $as_echo "#define SUPPORTS_WEAK 1" >>con
+ 
+   fi
+   case "$host" in
+-    *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* | *-*-musl* )
++    *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* | *-*-musl* | *-*-netbsd* )
+ 
+ $as_echo "#define GTHREAD_USE_WEAK 0" >>confdefs.h
+ 
diff --git a/gcc8snapshot/patches/patch-libgo_Makefile.in b/gcc8snapshot/patches/patch-libgo_Makefile.in
new file mode 100644
index 0000000000..73b3ca3222
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libgo_Makefile.in
@@ -0,0 +1,17 @@
+$NetBSD: patch-libgo_Makefile.in,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+proc.c will not compile with inline-functions (implied by -O3) 
+so add -fno-inline-functions to it's cflags.
+
+
+--- libgo/Makefile.in.orig	2012-08-06 14:34:27.000000000 +0000
++++ libgo/Makefile.in
+@@ -3051,7 +3051,7 @@ print.lo: runtime/print.c
+ @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o print.lo `test -f 'runtime/print.c' || echo '$(srcdir)/'`runtime/print.c
+ 
+ proc.lo: runtime/proc.c
+-@am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT proc.lo -MD -MP -MF $(DEPDIR)/proc.Tpo -c -o proc.lo `test -f 'runtime/proc.c' || echo '$(srcdir)/'`runtime/proc.c
++@am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) -fno-inline-functions $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT proc.lo -MD -MP -MF $(DEPDIR)/proc.Tpo -c -o proc.lo `test -f 'runtime/proc.c' || echo '$(srcdir)/'`runtime/proc.c
+ @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/proc.Tpo $(DEPDIR)/proc.Plo
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='runtime/proc.c' object='proc.lo' libtool=yes @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
diff --git a/gcc8snapshot/patches/patch-libsanitizer_configure.tgt b/gcc8snapshot/patches/patch-libsanitizer_configure.tgt
new file mode 100644
index 0000000000..de02d58048
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libsanitizer_configure.tgt
@@ -0,0 +1,13 @@
+$NetBSD: patch-libsanitizer_configure.tgt,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- libsanitizer/configure.tgt.orig	2015-11-23 09:07:18.000000000 +0000
++++ libsanitizer/configure.tgt
+@@ -41,7 +41,7 @@ case "${target}" in
+ 		TSAN_TARGET_DEPENDENT_OBJECTS=tsan_rtl_aarch64.lo
+ 	fi
+ 	;;
+-  x86_64-*-darwin[1]* | i?86-*-darwin[1]*)
++  x86_64-*-darwin[1][1-9]* | i?86-*-darwin[1][1-9]*)
+ 	TSAN_SUPPORTED=no
+ 	;;
+   *)
diff --git a/gcc8snapshot/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h b/gcc8snapshot/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h
new file mode 100644
index 0000000000..282fc34ae2
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h
@@ -0,0 +1,37 @@
+$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- libstdc++-v3/config/os/bsd/netbsd/ctype_base.h.orig	2013-02-03 17:54:05.000000000 +0000
++++ libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
+@@ -43,9 +43,22 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ 
+     // NB: Offsets into ctype<char>::_M_table force a particular size
+     // on the mask type. Because of this, we don't use an enum.
+-    typedef unsigned char      	mask;
+ 
+-#ifndef _CTYPE_U
++#if defined(_CTYPE_BL)
++    typedef unsigned short      mask;
++    static const mask upper     = _CTYPE_U;
++    static const mask lower     = _CTYPE_L;
++    static const mask alpha     = _CTYPE_A;
++    static const mask digit     = _CTYPE_D;
++    static const mask xdigit    = _CTYPE_X;
++    static const mask space     = _CTYPE_S;
++    static const mask print     = _CTYPE_R;
++    static const mask graph     = _CTYPE_G;
++    static const mask cntrl     = _CTYPE_C;
++    static const mask punct     = _CTYPE_P;
++    static const mask alnum     = _CTYPE_A | _CTYPE_D;
++#elif !defined(_CTYPE_U)
++    typedef unsigned char      	mask;
+     static const mask upper    	= _U;
+     static const mask lower 	= _L;
+     static const mask alpha 	= _U | _L;
+@@ -58,6 +71,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+     static const mask punct 	= _P;
+     static const mask alnum 	= _U | _L | _N;
+ #else
++    typedef unsigned char      	mask;
+     static const mask upper    	= _CTYPE_U;
+     static const mask lower 	= _CTYPE_L;
+     static const mask alpha 	= _CTYPE_U | _CTYPE_L;
diff --git a/gcc8snapshot/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc b/gcc8snapshot/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc
new file mode 100644
index 0000000000..f5628922f1
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc
@@ -0,0 +1,58 @@
+$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64271
+
+--- libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc.orig	2013-02-03 17:54:05.000000000 +0000
++++ libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
+@@ -38,11 +38,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ 
+ // Information as gleaned from /usr/include/ctype.h
+ 
++#ifndef _CTYPE_BL
+   extern "C" const u_int8_t _C_ctype_[];
++#endif
+ 
+   const ctype_base::mask*
+   ctype<char>::classic_table() throw()
++#ifdef _CTYPE_BL
++  { return _C_ctype_tab_ + 1; }
++#else
+   { return _C_ctype_ + 1; }
++#endif
+ 
+   ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ 		     size_t __refs)
+@@ -69,14 +75,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ 
+   char
+   ctype<char>::do_toupper(char __c) const
+-  { return ::toupper((int) __c); }
++  { return ::toupper((int)(unsigned char) __c); }
+ 
+   const char*
+   ctype<char>::do_toupper(char* __low, const char* __high) const
+   {
+     while (__low < __high)
+       {
+-	*__low = ::toupper((int) *__low);
++	*__low = ::toupper((int)(unsigned char) *__low);
+ 	++__low;
+       }
+     return __high;
+@@ -84,14 +90,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ 
+   char
+   ctype<char>::do_tolower(char __c) const
+-  { return ::tolower((int) __c); }
++  { return ::tolower((int)(unsigned char) __c); }
+ 
+   const char*
+   ctype<char>::do_tolower(char* __low, const char* __high) const
+   {
+     while (__low < __high)
+       {
+-	*__low = ::tolower((int) *__low);
++	*__low = ::tolower((int)(unsigned char) *__low);
+ 	++__low;
+       }
+     return __high;
diff --git a/gcc8snapshot/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h b/gcc8snapshot/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h
new file mode 100644
index 0000000000..6c5b5349bf
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h.orig	2013-02-03 17:54:05.000000000 +0000
++++ libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
+@@ -48,7 +48,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+   is(const char* __low, const char* __high, mask* __vec) const
+   {
+     while (__low < __high)
+-      *__vec++ = _M_table[*__low++];
++      *__vec++ = _M_table[(unsigned char)*__low++];
+     return __high;
+   }
+ 
diff --git a/gcc8snapshot/patches/patch-libstdc++-v3_libsupc++_unwind-cxx.h b/gcc8snapshot/patches/patch-libstdc++-v3_libsupc++_unwind-cxx.h
new file mode 100644
index 0000000000..904d730b55
--- /dev/null
+++ b/gcc8snapshot/patches/patch-libstdc++-v3_libsupc++_unwind-cxx.h
@@ -0,0 +1,12 @@
+$NetBSD: patch-libstdc++-v3_libsupc++_unwind-cxx.h,v 1.1 2017/05/03 00:21:03 maya Exp $
+
+--- libstdc++-v3/libsupc++/unwind-cxx.h.orig	2013-03-19 17:04:44.000000000 +0000
++++ libstdc++-v3/libsupc++/unwind-cxx.h
+@@ -38,6 +38,7 @@
+ #include <cxxabi.h>
+ 
+ #ifdef _GLIBCXX_HAVE_SYS_SDT_H
++#include <cstdlib>
+ #include <sys/sdt.h>
+ /* We only want to use stap probes starting with v3.  Earlier versions
+    added too much startup cost.  */
diff --git a/gcc8snapshot/version.mk b/gcc8snapshot/version.mk
new file mode 100644
index 0000000000..6f7f5cbf6f
--- /dev/null
+++ b/gcc8snapshot/version.mk
@@ -0,0 +1,2 @@
+# $NetBSD: version.mk,v 1.21 2015/05/06 05:25:00 keckhardt Exp $
+GCC8S_DIST_VERSION:=8-20170507


Home | Main Index | Thread Index | Old Index