summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/gcc48-cc++/Makefile5
-rw-r--r--lang/gcc48-cc++/PLIST181
-rw-r--r--lang/gcc48-cc++/PLIST.NetBSD180
-rw-r--r--lang/gcc48-cc++/PLIST.OpenBSD13
-rw-r--r--lang/gcc48-cc++/PLIST.nls40
-rw-r--r--lang/gcc48-libs/Makefile11
-rw-r--r--lang/gcc48-libs/PLIST13
-rw-r--r--lang/gcc48-libs/buildlink3.mk4
-rw-r--r--lang/gcc48/Makefile144
-rw-r--r--lang/gcc48/Makefile.common35
-rw-r--r--lang/gcc48/PLIST.java42
-rw-r--r--lang/gcc48/distinfo74
-rw-r--r--lang/gcc48/files/patch-gcc_targhooks.c-openbsd.diff154
-rw-r--r--lang/gcc48/options.mk41
-rw-r--r--lang/gcc48/patches/patch-boehm-gc_configure52
-rw-r--r--lang/gcc48/patches/patch-boehm-gc_dyn__load.c51
-rw-r--r--lang/gcc48/patches/patch-boehm-gc_include_gc__config.h.in14
-rw-r--r--lang/gcc48/patches/patch-boehm-gc_include_gc__config__macros.h24
-rw-r--r--lang/gcc48/patches/patch-boehm-gc_include_gc__pthread__redirects.h26
-rw-r--r--lang/gcc48/patches/patch-boehm-gc_include_private_gcconfig.h355
-rw-r--r--lang/gcc48/patches/patch-boehm-gc_mach__dep.c22
-rw-r--r--lang/gcc48/patches/patch-boehm-gc_misc.c13
-rw-r--r--lang/gcc48/patches/patch-boehm-gc_os__dep.c177
-rw-r--r--lang/gcc48/patches/patch-boehm-gc_pthread__support.c44
-rw-r--r--lang/gcc48/patches/patch-boehm-gc_threadlibs.c14
-rw-r--r--lang/gcc48/patches/patch-fixincludes_fixincl.x18
-rw-r--r--lang/gcc48/patches/patch-fixincludes_inclhack.def16
-rw-r--r--lang/gcc48/patches/patch-gcc_builtins.c56
-rw-r--r--lang/gcc48/patches/patch-gcc_c-family_c-format.c108
-rw-r--r--lang/gcc48/patches/patch-gcc_c-family_c.opt30
-rw-r--r--lang/gcc48/patches/patch-gcc_c_c-decl.c13
-rw-r--r--lang/gcc48/patches/patch-gcc_common.opt99
-rw-r--r--lang/gcc48/patches/patch-gcc_config.gcc149
-rw-r--r--lang/gcc48/patches/patch-gcc_config_exec-stack.h45
-rw-r--r--lang/gcc48/patches/patch-gcc_config_i386_i386.c31
-rw-r--r--lang/gcc48/patches/patch-gcc_config_i386_openbsd.h27
-rw-r--r--lang/gcc48/patches/patch-gcc_config_i386_openbsdelf.h18
-rw-r--r--lang/gcc48/patches/patch-gcc_config_openbsd-libpthread.h11
-rw-r--r--lang/gcc48/patches/patch-gcc_config_openbsd.h32
-rw-r--r--lang/gcc48/patches/patch-gcc_config_openbsd.opt12
-rw-r--r--lang/gcc48/patches/patch-gcc_configure31
-rw-r--r--lang/gcc48/patches/patch-gcc_defaults.h15
-rw-r--r--lang/gcc48/patches/patch-gcc_flags.h16
-rw-r--r--lang/gcc48/patches/patch-gcc_fortran_f95-lang.c14
-rw-r--r--lang/gcc48/patches/patch-gcc_gcc.c13
-rw-r--r--lang/gcc48/patches/patch-gcc_go_go-lang.c17
-rw-r--r--lang/gcc48/patches/patch-gcc_java_lang.c15
-rw-r--r--lang/gcc48/patches/patch-gcc_lto_lto.c17
-rw-r--r--lang/gcc48/patches/patch-gcc_opts.c52
-rw-r--r--lang/gcc48/patches/patch-gcc_testsuite_gcc.dg_format_format.h19
-rw-r--r--lang/gcc48/patches/patch-gcc_toplev.c13
-rw-r--r--lang/gcc48/patches/patch-libffi_configure33
-rw-r--r--lang/gcc48/patches/patch-libffi_include_Makefile.in13
-rw-r--r--lang/gcc48/patches/patch-libgcc_Makefile.in26
-rw-r--r--lang/gcc48/patches/patch-libgcc_config.host12
-rw-r--r--lang/gcc48/patches/patch-libgcc_libgcc2.c12
-rw-r--r--lang/gcc48/patches/patch-libgfortran_configure22
-rw-r--r--lang/gcc48/patches/patch-libgo_config_libtool.m413
-rw-r--r--lang/gcc48/patches/patch-libgomp_configure22
-rw-r--r--lang/gcc48/patches/patch-libiberty_cp-demangle.c22
-rw-r--r--lang/gcc48/patches/patch-libjava_configure37
-rw-r--r--lang/gcc48/patches/patch-libjava_configure.host17
-rw-r--r--lang/gcc48/patches/patch-libjava_libltdl_configure14
-rw-r--r--lang/gcc48/patches/patch-libjava_prims.cc13
-rw-r--r--lang/gcc48/patches/patch-libmudflap_mf-runtime.h16
-rw-r--r--lang/gcc48/patches/patch-libstdc++-v3_config_os_bsd_openbsd_os__defines.h11
-rw-r--r--lang/gcc48/version.mk4
67 files changed, 2367 insertions, 536 deletions
diff --git a/lang/gcc48-cc++/Makefile b/lang/gcc48-cc++/Makefile
index 5fb9a8bcfb9..d353d8d195d 100644
--- a/lang/gcc48-cc++/Makefile
+++ b/lang/gcc48-cc++/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.1 2014/04/22 20:46:41 ryoon Exp $
+# $NetBSD: Makefile,v 1.2 2014/05/31 13:06:25 ryoon Exp $
PKGNAME= ${GCC_PKGNAME}-cc++-${GCC48_DIST_VERSION}
@@ -27,13 +27,14 @@ post-install:
rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib/libitm.la
rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib/libitm.so*
rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib/libssp.a
+ rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib/libquadmath*
rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib/libssp.la
rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib/libssp.so*
rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib/libstdc++.a
rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib/libstdc++.la
rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib/libstdc++.so
rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib/libstdc++.so.6
- rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib/libstdc++.so.6.18
+ rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib/libstdc++.so.6.19
rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib/libobjc.*
rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/libexec/gcc/${MACHINE_GNU_PLATFORM}/${GCC48_DIST_VERSION}/*lto*
rm -f ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/libexec/gcc/${MACHINE_GNU_PLATFORM}/${GCC48_DIST_VERSION}/cc1obj*
diff --git a/lang/gcc48-cc++/PLIST b/lang/gcc48-cc++/PLIST
index 66ebe30a605..67a1aceb632 100644
--- a/lang/gcc48-cc++/PLIST
+++ b/lang/gcc48-cc++/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.1 2014/04/22 20:46:41 ryoon Exp $
+@comment $NetBSD: PLIST,v 1.2 2014/05/31 13:06:25 ryoon Exp $
gcc48/bin/c++
gcc48/bin/cc
gcc48/bin/cpp
@@ -693,23 +693,6 @@ gcc48/info/gccint.info
gcc48/info/libgomp.info
gcc48/info/libitm.info
gcc48/info/libquadmath.info
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/README
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/curses.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/limits.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/math.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_compat.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_fil.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_lookup.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_nat.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_proxy.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_scan.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_state.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/stddef.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/stdio.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/stdlib.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/sys/types.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/syslimits.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/wchar.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/adxintrin.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/ammintrin.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/avx2intrin.h
@@ -721,13 +704,11 @@ gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/cpuid.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/cross-stdarg.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/emmintrin.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/f16cintrin.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/float.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/fma4intrin.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/fmaintrin.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/fxsrintrin.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/ia32intrin.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/immintrin.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/iso646.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/lwpintrin.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/lzcntintrin.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/mm3dnow.h
@@ -745,19 +726,10 @@ gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/ssp/ssp.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/ssp/stdio.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/ssp/string.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/ssp/unistd.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stdalign.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stdarg.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stdbool.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stddef.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stdfix.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stdint-gcc.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stdint.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stdnoreturn.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/tbmintrin.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/tgmath.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/tmmintrin.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/unwind.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/varargs.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/wmmintrin.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/x86intrin.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/xmmintrin.h
@@ -772,160 +744,12 @@ gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/install-tools/include/limits
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/install-tools/macro_list
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/install-tools/mkheaders.conf
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/libgcc.a
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/libgcc_eh.a
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/libgcov.a
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/gtype.state
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ada/gcc-interface/ada-tree.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/alias.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/all-tree.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/alloc-pool.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ansidecl.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/auto-host.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/b-header-vars
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/basic-block.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/bitmap.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/builtins.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/bversion.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/c-family/c-common.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/c-family/c-common.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/c-family/c-objc.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/c-family/c-pragma.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/c-family/c-pretty-print.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/c-tree.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cfg-flags.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cfghooks.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cfgloop.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cgraph.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cif-code.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/dbxelf.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/elfos.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/att.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/biarch64.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/i386-opts.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/i386-protos.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/i386.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/unix.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/x86-64.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/initfini-array.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/vxworks-dummy.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/configargs.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/coretypes.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cp/cp-tree.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cp/cp-tree.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cp/cxx-pretty-print.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cp/name-lookup.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cppdefault.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cpplib.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/debug.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/defaults.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/diagnostic-core.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/diagnostic.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/diagnostic.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/double-int.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/dumpfile.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/emit-rtl.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/except.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/filenames.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/fixed-value.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/flag-types.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/flags.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/function.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gcc-plugin.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/genrtl.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ggc.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gimple-pretty-print.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gimple.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gimple.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gsstruct.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gtm-builtins.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gtype-desc.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/hard-reg-set.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/hashtab.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/highlev-plugin-common.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/hwint.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/incpath.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/input.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/insn-constants.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/insn-flags.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/insn-modes.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/insn-notes.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/internal-fn.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/internal-fn.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/intl.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ipa-prop.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ipa-ref-inline.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ipa-ref.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ipa-reference.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ipa-utils.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/is-a.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/java/java-tree.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/langhooks.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/libiberty.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/line-map.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/machmode.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/md5.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/mode-classes.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/objc/objc-tree.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/obstack.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/omp-builtins.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/options.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/opts.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/output.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/params.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/params.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/plugin-api.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/plugin-version.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/plugin.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/plugin.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/pointer-set.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/predict.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/predict.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/prefix.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/pretty-print.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/real.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/realmpfr.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/reg-notes.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/rtl.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/rtl.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/safe-ctype.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/sanitizer.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/sbitmap.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/splay-tree.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/statistics.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/symtab.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/sync-builtins.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/system.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/target-hooks-macros.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/target.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/target.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/timevar.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/timevar.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tm-preds.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tm.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tm_p.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/toplev.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-check.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-dump.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-flow-inline.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-flow.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-inline.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-iterator.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-pass.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-pretty-print.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-ssa-alias.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-ssa-operands.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-ssa-sccvn.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/treestruct.def
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/vec.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/version.h
gcc48/lib/libgomp.spec
gcc48/lib/libiberty.a
gcc48/lib/libitm.spec
gcc48/lib/libssp_nonshared.la
-gcc48/lib/libstdc++.so.6.18-gdb.py
+gcc48/lib/libstdc++.so.6.19-gdb.py
gcc48/lib/libsupc++.la
gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/cc1
gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/cc1plus
@@ -934,7 +758,6 @@ gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/install-tools/fixinc.sh
gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/install-tools/fixincl
gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/install-tools/mkheaders
gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/install-tools/mkinstalldirs
-gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/gengtype
gcc48/man/man1/cpp.1
gcc48/man/man1/g++.1
gcc48/man/man1/gcc.1
diff --git a/lang/gcc48-cc++/PLIST.NetBSD b/lang/gcc48-cc++/PLIST.NetBSD
index 13e4730d6df..7278ac9fda2 100644
--- a/lang/gcc48-cc++/PLIST.NetBSD
+++ b/lang/gcc48-cc++/PLIST.NetBSD
@@ -1,5 +1,181 @@
-@comment $NetBSD: PLIST.NetBSD,v 1.1 2014/04/22 20:46:41 ryoon Exp $
+@comment $NetBSD: PLIST.NetBSD,v 1.2 2014/05/31 13:06:25 ryoon Exp $
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/README
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/curses.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/limits.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/math.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_compat.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_fil.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_lookup.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_nat.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_proxy.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_scan.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/netinet/ip_state.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/stddef.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/stdio.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/stdlib.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/sys/types.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/syslimits.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/wchar.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/float.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/iso646.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stdalign.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stdarg.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stdbool.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stddef.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stdfix.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/stdnoreturn.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/varargs.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/libgcc_eh.a
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/libgcc_eh.a
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/gtype.state
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ada/gcc-interface/ada-tree.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/alias.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/all-tree.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/alloc-pool.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ansidecl.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/auto-host.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/b-header-vars
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/basic-block.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/bitmap.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/builtins.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/bversion.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/c-family/c-common.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/c-family/c-common.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/c-family/c-objc.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/c-family/c-pragma.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/c-family/c-pretty-print.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/c-tree.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cfg-flags.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cfghooks.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cfgloop.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cgraph.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cif-code.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/dbxelf.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/elfos.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/att.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/biarch64.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/i386-opts.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/i386-protos.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/i386.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/netbsd64.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/unix.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/i386/x86-64.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/initfini-array.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/netbsd-elf.h
-gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/netbsd-stdint.h
gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/netbsd.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/config/vxworks-dummy.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/configargs.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/coretypes.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cp/cp-tree.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cp/cp-tree.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cp/cxx-pretty-print.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cp/name-lookup.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cppdefault.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/cpplib.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/debug.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/defaults.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/diagnostic-core.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/diagnostic.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/diagnostic.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/double-int.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/dumpfile.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/emit-rtl.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/except.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/filenames.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/fixed-value.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/flag-types.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/flags.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/function.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gcc-plugin.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/genrtl.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ggc.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gimple-pretty-print.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gimple.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gimple.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gsstruct.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gtm-builtins.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/gtype-desc.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/hard-reg-set.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/hashtab.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/highlev-plugin-common.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/hwint.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/incpath.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/input.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/insn-constants.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/insn-flags.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/insn-modes.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/insn-notes.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/internal-fn.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/internal-fn.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/intl.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ipa-prop.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ipa-ref-inline.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ipa-ref.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ipa-reference.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/ipa-utils.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/is-a.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/java/java-tree.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/langhooks.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/libiberty.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/line-map.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/machmode.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/md5.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/mode-classes.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/objc/objc-tree.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/obstack.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/omp-builtins.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/options.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/opts.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/output.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/params.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/params.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/plugin-api.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/plugin-version.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/plugin.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/plugin.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/pointer-set.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/predict.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/predict.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/prefix.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/pretty-print.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/real.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/realmpfr.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/reg-notes.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/rtl.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/rtl.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/safe-ctype.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/sanitizer.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/sbitmap.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/splay-tree.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/statistics.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/symtab.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/symtab.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/sync-builtins.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/system.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/target-hooks-macros.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/target.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/target.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/timevar.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/timevar.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tm-preds.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tm.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tm_p.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/toplev.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-check.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-dump.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-flow-inline.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-flow.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-inline.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-iterator.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-pass.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-pretty-print.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-ssa-alias.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-ssa-operands.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree-ssa-sccvn.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/tree.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/treestruct.def
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/vec.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/include/version.h
+gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/plugin/gengtype
diff --git a/lang/gcc48-cc++/PLIST.OpenBSD b/lang/gcc48-cc++/PLIST.OpenBSD
new file mode 100644
index 00000000000..50bc7d1e2ba
--- /dev/null
+++ b/lang/gcc48-cc++/PLIST.OpenBSD
@@ -0,0 +1,13 @@
+@comment $NetBSD: PLIST.OpenBSD,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/README
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/limits.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/rpc/rpc_des.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/rpc/svc.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/stddef.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/stdio.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/stdlib.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/sys/types.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/syslimits.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include-fixed/wchar.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/quadmath.h
+gcc48/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/include/quadmath_weak.h
diff --git a/lang/gcc48-cc++/PLIST.nls b/lang/gcc48-cc++/PLIST.nls
new file mode 100644
index 00000000000..cca8190c8b8
--- /dev/null
+++ b/lang/gcc48-cc++/PLIST.nls
@@ -0,0 +1,40 @@
+@comment $NetBSD: PLIST.nls,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+gcc48/share/locale/be/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/be/LC_MESSAGES/gcc.mo
+gcc48/share/locale/ca/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/da/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/da/LC_MESSAGES/gcc.mo
+gcc48/share/locale/de/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/de/LC_MESSAGES/gcc.mo
+gcc48/share/locale/el/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/el/LC_MESSAGES/gcc.mo
+gcc48/share/locale/eo/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/es/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/es/LC_MESSAGES/gcc.mo
+gcc48/share/locale/fi/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/fi/LC_MESSAGES/gcc.mo
+gcc48/share/locale/fr/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/fr/LC_MESSAGES/gcc.mo
+gcc48/share/locale/hr/LC_MESSAGES/gcc.mo
+gcc48/share/locale/id/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/id/LC_MESSAGES/gcc.mo
+gcc48/share/locale/ja/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/ja/LC_MESSAGES/gcc.mo
+gcc48/share/locale/nl/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/nl/LC_MESSAGES/gcc.mo
+gcc48/share/locale/pt_BR/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/ru/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/ru/LC_MESSAGES/gcc.mo
+gcc48/share/locale/sr/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/sr/LC_MESSAGES/gcc.mo
+gcc48/share/locale/sv/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/sv/LC_MESSAGES/gcc.mo
+gcc48/share/locale/tr/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/tr/LC_MESSAGES/gcc.mo
+gcc48/share/locale/uk/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/vi/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/vi/LC_MESSAGES/gcc.mo
+gcc48/share/locale/zh_CN/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/zh_CN/LC_MESSAGES/gcc.mo
+gcc48/share/locale/zh_TW/LC_MESSAGES/cpplib.mo
+gcc48/share/locale/zh_TW/LC_MESSAGES/gcc.mo
diff --git a/lang/gcc48-libs/Makefile b/lang/gcc48-libs/Makefile
index 1c9d3d52e42..0d21992f3bc 100644
--- a/lang/gcc48-libs/Makefile
+++ b/lang/gcc48-libs/Makefile
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.14 2014/05/20 19:12:36 adam Exp $
+# $NetBSD: Makefile,v 1.15 2014/05/31 13:06:25 ryoon Exp $
PKGNAME= ${GCC_PKGNAME}-libs-${GCC48_DIST_VERSION}
-PKGREVISION= 5
COMMENT= Runtime libraries from the GNU Compiler Collection (GCC) 4.8
@@ -24,14 +23,22 @@ INSTALLATION_DIRS+= java/${GCC_PKGNAME}/jre/lib/${MACHINE_ARCH:S/x86_64/amd64/}/
.endif
do-install:
+.if ${OPSYS} != "NetBSD"
+ ${LIBTOOL} --mode=install ${INSTALL_LIB} \
+ ${WRKSRC}/${OBJDIR}/${MACHINE_GNU_PLATFORM}/libquadmath/libquadmath.la \
+ ${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib
+.endif
+
${LIBTOOL} --mode=install ${INSTALL_LIB} \
${WRKSRC}/${OBJDIR}/${MACHINE_GNU_PLATFORM}/libatomic/libatomic.la \
${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib
+.if ${OPSYS} == "NetBSD"
# libgcc_s has no libtool la file.
${INSTALL_LIB} \
${WRKSRC}/${OBJDIR}/${MACHINE_GNU_PLATFORM}/libgcc/libgcc_s.* \
${DESTDIR}${PREFIX}/${GCC_PKGNAME}/lib
+.endif
${LIBTOOL} --mode=install ${INSTALL_LIB} \
${WRKSRC}/${OBJDIR}/${MACHINE_GNU_PLATFORM}/libgfortran/libgfortran.la \
diff --git a/lang/gcc48-libs/PLIST b/lang/gcc48-libs/PLIST
index eb3d0563446..9103627f963 100644
--- a/lang/gcc48-libs/PLIST
+++ b/lang/gcc48-libs/PLIST
@@ -1,8 +1,8 @@
-@comment $NetBSD: PLIST,v 1.2 2014/05/20 19:12:36 adam Exp $
+@comment $NetBSD: PLIST,v 1.3 2014/05/31 13:06:25 ryoon Exp $
${PLIST.java}gcc48/lib/gcj-${PKGVERSION}-14/libjvm.la
gcc48/lib/libatomic.la
-gcc48/lib/libgcc_s.so
-gcc48/lib/libgcc_s.so.1
+${PLIST.libgcc_s}gcc48/lib/libgcc_s.so
+${PLIST.libgcc_s}gcc48/lib/libgcc_s.so.1
${PLIST.java}gcc48/lib/libgcj-tools.la
${PLIST.java}gcc48/lib/libgcj.la
gcc48/lib/libgfortran.la
@@ -11,10 +11,11 @@ gcc48/lib/libgomp.la
gcc48/lib/libitm.la
${PLIST.darwin}gcc48/lib/libobjc-gnu.la
${PLIST.unix}gcc48/lib/libobjc.la
+${PLIST.nonetbsd}gcc48/lib/libquadmath.la
gcc48/lib/libssp.la
gcc48/lib/libstdc++.la
-${PLIST.unix}gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/4.8.2/liblto_plugin.la
-${PLIST.unix}gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/4.8.2/lto-wrapper
-${PLIST.unix}gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/4.8.2/lto1
+${PLIST.unix}gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION_NOREV}/liblto_plugin.la
+${PLIST.unix}gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION_NOREV}/lto-wrapper
+${PLIST.unix}gcc48/libexec/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION_NOREV}/lto1
${PLIST.java}java/gcc48/jre/lib/${JAVA_MACHINE_ARCH}/client/libjvm.so
${PLIST.java}java/gcc48/jre/lib/${JAVA_MACHINE_ARCH}/server/libjvm.so
diff --git a/lang/gcc48-libs/buildlink3.mk b/lang/gcc48-libs/buildlink3.mk
index a4c9ab82cad..768a45a829e 100644
--- a/lang/gcc48-libs/buildlink3.mk
+++ b/lang/gcc48-libs/buildlink3.mk
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink3.mk,v 1.7 2014/04/22 20:46:41 ryoon Exp $
+# $NetBSD: buildlink3.mk,v 1.8 2014/05/31 13:06:25 ryoon Exp $
BUILDLINK_TREE+= gcc48-libs
@@ -14,6 +14,7 @@ BUILDLINK_PASSTHRU_DIRS+= ${BUILDLINK_PREFIX.gcc48-libs}/gcc48
BUILDLINK_FILES.gcc48-libs= #empty
BUILDLINK_AUTO_VARS.gcc48-libs= no
+.if !empty(USE_PKGSRC_GCC_RUNTIME:M[Yy][Ee][Ss])
# Use custom specs file to ensure we link against pkgsrc libraries.
SPECS_LIBGCC= ${WRAPPER_DIR}/specs.libgcc
WRAPPER_TARGETS+= ${SPECS_LIBGCC}
@@ -30,6 +31,7 @@ ${SPECS_LIBGCC}:
_WRAP_EXTRA_ARGS.CC+= -specs=${SPECS_LIBGCC}
_WRAP_EXTRA_ARGS.CXX+= -specs=${SPECS_LIBGCC}
_WRAP_EXTRA_ARGS.FC+= -specs=${SPECS_LIBGCC}
+.endif
.include "../../mk/dlopen.buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
diff --git a/lang/gcc48/Makefile b/lang/gcc48/Makefile
index ccc9b42bebe..21f75bf0988 100644
--- a/lang/gcc48/Makefile
+++ b/lang/gcc48/Makefile
@@ -1,153 +1,21 @@
-# $NetBSD: Makefile,v 1.15 2014/05/29 23:36:42 wiz Exp $
+# $NetBSD: Makefile,v 1.16 2014/05/31 13:06:25 ryoon Exp $
GCC_PKGNAME= gcc48
.include "version.mk"
-DISTNAME= gcc-${GCC48_DIST_VERSION}
PKGNAME= ${GCC_PKGNAME}-${GCC48_DIST_VERSION}
-## When bumping the PKGREVISION of this package the PKGREVISION of
-## lang/gcc48-libs needs to be bump to be at least 1 more than the
-## PKGREVISION of this package!
-PKGREVISION= 5
CATEGORIES= lang
-MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC48_DIST_VERSION}/}
-EXTRACT_SUFX= .tar.bz2
MAINTAINER= sbd@NetBSD.org
HOMEPAGE= http://gcc.gnu.org/
COMMENT= The GNU Compiler Collection (GCC) - 4.8 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}
+META_PACKAGE= yes
-NOT_FOR_PLATFORM= Interix-*-*
+DEPENDS+= gcc48-libs-[0-9]*:../../lang/gcc48-libs
+DEPENDS+= gcc48-cc++-[0-9]*:../../lang/gcc48-cc++
+DEPENDS+= gcc48-fortran-[0-9]*:../../lang/gcc48-fortran
+DEPENDS+= gcc48-objc-[0-9]*:../../lang/gcc48-objc
-USE_LANGUAGES= c c++
-USE_TOOLS+= gmake makeinfo sed:run
-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++
-
-## 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-libssp
-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
-.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
-
-.include "options.mk"
-
-# ${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(PKG_OPTIONS:Mgcc-java)
- ${RM} -f ${DESTDIR}${JAVA_HOME}/bin/javadoc
- ${RM} -f ${DESTDIR}${JAVA_HOME}/jre/lib/${JAVA_ARCH}/libjawt.so
-.endif
-.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/lang/gcc48/Makefile.common b/lang/gcc48/Makefile.common
index f27b5617177..f5fe751ee2d 100644
--- a/lang/gcc48/Makefile.common
+++ b/lang/gcc48/Makefile.common
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.common,v 1.2 2014/05/20 19:12:36 adam Exp $
+# $NetBSD: Makefile.common,v 1.3 2014/05/31 13:06:25 ryoon Exp $
GCC_PKGNAME= gcc48
.include "../../lang/gcc48/version.mk"
@@ -15,16 +15,17 @@ MAINTAINER= sbd@NetBSD.org
HOMEPAGE= http://gcc.gnu.org/
LICENSE= gnu-gpl-v2 AND gnu-gpl-v3 AND gnu-lgpl-v2 AND gnu-lgpl-v3
-DISTFILES= ${DEFAULT_DISTFILES}
-EXTRACT_ONLY= ${DEFAULT_DISTFILES}
+DISTFILES+= ${DEFAULT_DISTFILES}
+EXTRACT_ONLY+= ${DEFAULT_DISTFILES}
DISTINFO_FILE= ${.CURDIR}/../../lang/gcc48/distinfo
PATCHDIR= ${.CURDIR}/../../lang/gcc48/patches
+FILESDIR= ${.CURDIR}/../../lang/gcc48/files
NOT_FOR_PLATFORM= Interix-*-*
USE_LANGUAGES= c c++
-USE_TOOLS+= gmake makeinfo sed:run
+USE_TOOLS+= bison gmake makeinfo perl:build sed:run
USE_LIBTOOL= yes
GNU_CONFIGURE= yes
## Build outside ${WRKSRC}
@@ -36,9 +37,10 @@ GCC_PREFIX= ${PREFIX}/${GCC_SUBPREFIX}
GNU_CONFIGURE_PREFIX= ${GCC_PREFIX}
INFO_FILES= yes
-PLIST_VARS+= java darwin unix
+PLIST_VARS+= java darwin unix libgcc_s nonetbsd
JAVA_MACHINE_ARCH= ${MACHINE_ARCH:S/x86_64/amd64/}
PLIST_SUBST+= JAVA_MACHINE_ARCH=${JAVA_MACHINE_ARCH}
+PLIST_SUBST+= PKGVERSION_NOREV=${PKGVERSION_NOREV}
# Errors in libgo/runtime/runtime.h
#BUILDLINK_TRANSFORM+= rm:-Werror
@@ -58,7 +60,11 @@ SUBST_VARS.vars= GCC_TARGET_MACHINE
.if ${OPSYS} == "Darwin"
PLIST.darwin= yes
-.else
+.elif ${OPSYS} != "NetBSD"
+PLIST.nonetbsd= yes
+PLIST.unix= yes
+.else # NetBSD
+PLIST.libgcc_s= yes
PLIST.unix= yes
.endif
@@ -71,7 +77,11 @@ 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.
+.if ${OPSYS} == "OpenBSD"
+BOOT_LDFLAGS= -static ${LDFLAGS_FOR_TARGET}
+.else
BOOT_LDFLAGS= -static-libstdc++ -static-libgcc ${LDFLAGS_FOR_TARGET}
+.endif
# 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
@@ -128,9 +138,22 @@ BUILDLINK_DEPMETHOD.binutils= full
. include "../../devel/binutils/buildlink3.mk"
CONFIGURE_ARGS+= --with-gnu-as --with-as=${PREFIX}/bin/gas
. endif
+.elif ${OPSYS} == "OpenBSD"
+BUILDLINK_DEPMETHOD.binutils= full
+. include "../../devel/binutils/buildlink3.mk"
+CONFIGURE_ARGS+= --with-gnu-as --with-as=${PREFIX}/bin/gas
+.endif
+
+# Create in-tree isl and cloog
+.if !empty(PKG_OPTIONS:Mgcc-graphite)
+post-extract: post-extract-graphite
.endif
pre-configure:
+.if ${OPSYS} == "OpenBSD"
+ cd ${WRKSRC}/gcc && \
+ patch -p1 < ${FILESDIR}/patch-gcc_targhooks.c-openbsd.diff
+.endif
${RUN} cd ${WRKSRC} && ${MKDIR} ${OBJDIR}
TEST_TARGET= -k check || ${TRUE}
diff --git a/lang/gcc48/PLIST.java b/lang/gcc48/PLIST.java
deleted file mode 100644
index d348e399c6b..00000000000
--- a/lang/gcc48/PLIST.java
+++ /dev/null
@@ -1,42 +0,0 @@
-@comment $NetBSD: PLIST.java,v 1.1 2013/04/01 21:06:15 wiz Exp $
-bin/${JAVA_NAME}-appletviewer
-bin/${JAVA_NAME}-jar
-bin/${JAVA_NAME}-jarsigner
-bin/${JAVA_NAME}-java
-bin/${JAVA_NAME}-javah
-bin/${JAVA_NAME}-keytool
-bin/${JAVA_NAME}-native2ascii
-bin/${JAVA_NAME}-orbd
-bin/${JAVA_NAME}-rmic
-bin/${JAVA_NAME}-rmid
-bin/${JAVA_NAME}-rmiregistry
-bin/${JAVA_NAME}-serialver
-bin/${JAVA_NAME}-tnameserv
-java/${JAVA_NAME}/bin/appletviewer
-java/${JAVA_NAME}/bin/jar
-java/${JAVA_NAME}/bin/jarsigner
-java/${JAVA_NAME}/bin/java
-java/${JAVA_NAME}/bin/javah
-java/${JAVA_NAME}/bin/keytool
-java/${JAVA_NAME}/bin/native2ascii
-java/${JAVA_NAME}/bin/orbd
-java/${JAVA_NAME}/bin/rmic
-java/${JAVA_NAME}/bin/rmid
-java/${JAVA_NAME}/bin/rmiregistry
-java/${JAVA_NAME}/bin/serialver
-java/${JAVA_NAME}/bin/tnameserv
-java/${JAVA_NAME}/include/jawt.h
-java/${JAVA_NAME}/include/jni.h
-java/${JAVA_NAME}/include/linux/jawt_md.h
-java/${JAVA_NAME}/include/linux/jni_md.h
-java/${JAVA_NAME}/jre/bin/java
-java/${JAVA_NAME}/jre/bin/keytool
-java/${JAVA_NAME}/jre/bin/orbd
-java/${JAVA_NAME}/jre/bin/rmid
-java/${JAVA_NAME}/jre/bin/rmiregistry
-java/${JAVA_NAME}/jre/bin/tnameserv
-java/${JAVA_NAME}/jre/lib/${JAVA_ARCH}/client/libjvm.so
-java/${JAVA_NAME}/jre/lib/${JAVA_ARCH}/server/libjvm.so
-java/${JAVA_NAME}/jre/lib/rt.jar
-java/${JAVA_NAME}/jre/lib/security/java.security
-java/${JAVA_NAME}/lib/tools.jar
diff --git a/lang/gcc48/distinfo b/lang/gcc48/distinfo
index 59ef383d77e..0fec0ab077a 100644
--- a/lang/gcc48/distinfo
+++ b/lang/gcc48/distinfo
@@ -1,42 +1,91 @@
-$NetBSD: distinfo,v 1.16 2014/05/10 14:14:58 richard Exp $
+$NetBSD: distinfo,v 1.17 2014/05/31 13:06:25 ryoon Exp $
-SHA1 (ecj-4.5.jar) = 58c1d79c64c8cd718550f32a932ccfde8d1e6449
-RMD160 (ecj-4.5.jar) = d3f4da657f086b6423f74e93f001132f4855368a
-Size (ecj-4.5.jar) = 1470676 bytes
-SHA1 (gcc-4.8.2.tar.bz2) = 810fb70bd721e1d9f446b6503afe0a9088b62986
-RMD160 (gcc-4.8.2.tar.bz2) = a417e682baa20877c290f6dc7d3d03a0c3710371
-Size (gcc-4.8.2.tar.bz2) = 85999682 bytes
+SHA1 (cloog-0.18.1.tar.gz) = 2dc70313e8e2c6610b856d627bce9c9c3f848077
+RMD160 (cloog-0.18.1.tar.gz) = 5c4a182efc0d42e7d5c30e6fcca5832776a2e69a
+Size (cloog-0.18.1.tar.gz) = 3857324 bytes
+SHA1 (gcc-4.8.3.tar.bz2) = da0a2b9ec074f2bf624a34f3507f812ebb6e4dce
+RMD160 (gcc-4.8.3.tar.bz2) = 2c7214ff607cbe822282c04d1d6f9fea765c82c5
+Size (gcc-4.8.3.tar.bz2) = 86126808 bytes
+SHA1 (isl-0.12.2.tar.bz2) = ca98a91e35fb3ded10d080342065919764d6f928
+RMD160 (isl-0.12.2.tar.bz2) = e8fb6bad4b579865a6a31c160fc21a0c9ad1e7b8
+Size (isl-0.12.2.tar.bz2) = 1319434 bytes
+SHA1 (patch-boehm-gc_configure) = 4ab0772cede9d4bef0c7eab412359f0700195135
+SHA1 (patch-boehm-gc_dyn__load.c) = 48fa440a1b5c05835550c12039739feb35b8927b
+SHA1 (patch-boehm-gc_include_gc__config.h.in) = cbd88100e8fb371d3d42c531658ce467c823498e
+SHA1 (patch-boehm-gc_include_gc__config__macros.h) = 0edc157309687c793f5ebb6acaf747f209848a6b
+SHA1 (patch-boehm-gc_include_gc__pthread__redirects.h) = 5df4e69665bc69c4a53f80361ed84bc7b7ef7b6f
+SHA1 (patch-boehm-gc_include_private_gcconfig.h) = 72cdf7bb2ddd843dc2f74ac4e09748ec213a343d
+SHA1 (patch-boehm-gc_mach__dep.c) = d91ca0d42357647ccf9fa3f4624bf8eaea2afbf9
+SHA1 (patch-boehm-gc_misc.c) = 11bf4eb2e8c54b195904b3f52bd35d5f979058f1
+SHA1 (patch-boehm-gc_os__dep.c) = add0c7e59739cc7c6a248c68d048ebec6700a037
+SHA1 (patch-boehm-gc_pthread__support.c) = b0d66aba1fbf419eb8cf04fd1fd8584e8f92df8d
+SHA1 (patch-boehm-gc_threadlibs.c) = 4cac00c47354d506f69cc784dfcf0b65c5af3237
+SHA1 (patch-fixincludes_fixincl.x) = b53bf6ae3ef1a0cc6d3ce1153f926ed208816c90
+SHA1 (patch-fixincludes_inclhack.def) = 577021b838b64ff987e28b0017afb3b05e28458f
SHA1 (patch-gcc-config-vax-constraints.md) = e6cea7a5334b5b124ca3e8b62eba45423e788e55
SHA1 (patch-gcc-config-vax-vax.c) = 02e389ec418a0fee1431ecd61d65b7f8d7629785
SHA1 (patch-gcc-config-vax-vax.md) = e06696be85641cbe9131ecc10bb28c45a465916d
SHA1 (patch-gcc_Makefile.in) = 3706889f55dac4f2847301340d95fc11645108eb
-SHA1 (patch-gcc_config.gcc) = ac175c5eecf3dd53508479b30bf5c59cc0a5fca9
+SHA1 (patch-gcc_builtins.c) = 67c66568237b68b22ba99bc76336e001e1634925
+SHA1 (patch-gcc_c-family_c-format.c) = b4893ae251b5b936026bd7cc28b9a8ec29af42cb
+SHA1 (patch-gcc_c-family_c.opt) = 175b3029cac6b7c04a54dcc52c1e832f83b8beff
+SHA1 (patch-gcc_c_c-decl.c) = a6f6d483390beae6d6d983963086e4287c2258c4
+SHA1 (patch-gcc_common.opt) = 31d062306ef6bbeebd85ee6e06c563a006a64aca
+SHA1 (patch-gcc_config.gcc) = 300ccd9dae0e185d43f705f4e9252244ac84117a
SHA1 (patch-gcc_config.host) = 1b1e11cd199eb93f49443d51c0063b09b7327858
SHA1 (patch-gcc_config_dragonfly-stdint.h) = 740dc819b446d5f1476506322c4b280ffdb5a6c0
SHA1 (patch-gcc_config_dragonfly.h) = 82f549cdc7543b4bf413a44d481ef42b10f59c82
SHA1 (patch-gcc_config_dragonfly.opt) = 92f615c73c2e94664bae5b5935ab8b09bca15f73
+SHA1 (patch-gcc_config_exec-stack.h) = 8135806e88c1b136038bb240958a4435b4e0bbe3
SHA1 (patch-gcc_config_host-netbsd.c) = 8f13b09dd7006d456cd1c66e895be504e9537880
SHA1 (patch-gcc_config_i386_dragonfly.h) = 0d3f785434c02beb9c4561fe59842a970e8f7896
+SHA1 (patch-gcc_config_i386_i386.c) = e787cda58beb2908f5656ccab0fde7f2d6d48037
+SHA1 (patch-gcc_config_i386_openbsd.h) = df5b85b5957392138f99085bd8ebeb923e37e9e7
+SHA1 (patch-gcc_config_i386_openbsdelf.h) = 74498a1bd7c339c90b847740d3c474ad3ca4a956
SHA1 (patch-gcc_config_netbsd-stdint.h) = 025fc883101a187e84ed4c0772406720d645d550
+SHA1 (patch-gcc_config_openbsd-libpthread.h) = 5043cf383fb68ff37b0cae22e61a97e26cff899e
+SHA1 (patch-gcc_config_openbsd.h) = 0090d48281c4973a18e8a70b2be9d2e999cca0a6
+SHA1 (patch-gcc_config_openbsd.opt) = 08b01bc4d7e171c3ee2ce5638a5859cff50c8ff8
SHA1 (patch-gcc_config_sol2.h) = de6455ee88f281737501287759b7a83b8db05398
SHA1 (patch-gcc_config_x-netbsd) = 6dc3d78e26df62054ea29f98ca51592858e671e3
-SHA1 (patch-gcc_configure) = a4b670d0c54c410d38715b7a2a572a7048e3ec5e
-SHA1 (patch-gcc_fortran_f95-lang.c) = 945aacf6b307f2120a4105c833b45a40feced68e
+SHA1 (patch-gcc_configure) = 868f4a55d5f6066852e054a334203213a06d49ca
+SHA1 (patch-gcc_defaults.h) = e0e7d489e06fc642e669c5a834838e704a262d75
+SHA1 (patch-gcc_flags.h) = 7301be3bf7bafd52cb99e7d9c722fc0715a3dde3
+SHA1 (patch-gcc_fortran_f95-lang.c) = 98eb68f444544ac55dea5635458bc20c73a50a49
+SHA1 (patch-gcc_gcc.c) = 4524424a24ddf57dfddbe87bf8adf6785198130f
SHA1 (patch-gcc_ggc-common.c) = fa577bc25260d7e6304f166686ba51c0b677d7f6
SHA1 (patch-gcc_ginclude_stddef.h) = 220ec23aecffca81337ae4c06afc18051da89b9a
+SHA1 (patch-gcc_go_go-lang.c) = 2e546c645b82a0ace4635aaaba692f2174bddaca
+SHA1 (patch-gcc_java_lang.c) = 81a38b32519b5a6509635491cda9aea7b9740541
+SHA1 (patch-gcc_lto_lto.c) = 6cde32d8f318dbb55fd4774eab239989624ddff5
+SHA1 (patch-gcc_opts.c) = da9be731d227e4bbc11ba21c1f45ad38ec30d7f0
SHA1 (patch-gcc_system.h) = 4c959a6b1c4d524cbdf44cfb80f0e5758ec20783
SHA1 (patch-gcc_testsuite_g++.dg_eh_unwind-direct.C) = fd85ccee102e9618a8010d2dcbb2d9916b28f1cc
+SHA1 (patch-gcc_testsuite_gcc.dg_format_format.h) = 5bb7af9f355dcd80bfaf4a206d86e4badd4d4b4d
+SHA1 (patch-gcc_toplev.c) = 4f08e99b5cf6960e33cb91f171c9065555ed844a
SHA1 (patch-include_libiberty.h) = ad2c64e9a14405c89b02ff68811b1c889405d0a1
-SHA1 (patch-libgcc_config.host) = 1807e784c9808243d1a99b19534d94752d81ce6d
+SHA1 (patch-libffi_configure) = b7cc1c187b2e0c1dea42509612b4d9ddf9d27daf
+SHA1 (patch-libffi_include_Makefile.in) = 7c3208b1b05c33d9be48683ff5146adbe2bf92a1
+SHA1 (patch-libgcc_Makefile.in) = 547d0a22c5d14e41ebeb6197bc3ed1d24ad63475
+SHA1 (patch-libgcc_config.host) = 0eead41f6a01cbe2b9c6d0f64ee4441841cef521
SHA1 (patch-libgcc_config_i386_dragonfly-unwind.h) = 9d77252dd982495e90f95b82706bab29e581df9f
SHA1 (patch-libgcc_config_t-slibgcc-sld) = 1b3ae1dc03eaad16a51311049ffc9e42c44dfcbc
SHA1 (patch-libgcc_crtstuff.c) = 88500ea895cd683608f8f2b7177149f11947e3b4
+SHA1 (patch-libgcc_libgcc2.c) = c3a1f3a6db9a4591a0858f84b963247634b0dac3
SHA1 (patch-libgcc_unwind-dw2-fde-dip.c) = 770f04f3cbeb0d794fa297b328f06f6e687419c0
+SHA1 (patch-libgfortran_configure) = e466dd7637d7ba61b23c5f24e4497da46e56d60a
SHA1 (patch-libgo_Makefile.in) = 612987541f745c7be6835ce7fb7119884db294c3
+SHA1 (patch-libgo_config_libtool.m4) = d62f00eae3bbd89a878eaf4e0b995ac482a39992
SHA1 (patch-libgo_config_ltmain.sh) = 703a27554e479cc2e48410a6bb0e5f5b4be2c150
+SHA1 (patch-libgomp_configure) = 8527167e1f08ac7e64277ac0d22532dd59394b64
+SHA1 (patch-libiberty_cp-demangle.c) = 2444346cd054f787dcc9704ee9be6acca9b835a3
SHA1 (patch-libjava_boehm.cc) = b18bc9d410a62543583c77e011f50b86f41ca18a
-SHA1 (patch-libjava_configure) = 9c83d60e155d6a9aac542d65ff195a99c5c764ff
+SHA1 (patch-libjava_configure) = 22bf1c472d4b5a823df85307371e50d3f7d89184
+SHA1 (patch-libjava_configure.host) = 194b88bfe2c2ed24fd7bc5b6b84c70d7329bf1b2
SHA1 (patch-libjava_contrib_rebuild-gcj-db.in) = bb01d738fc7db05046ae37e8ade32574de1d8297
+SHA1 (patch-libjava_libltdl_configure) = aed53e3063685d16a9dbd4c494e40be2a2ecede4
+SHA1 (patch-libjava_prims.cc) = ce9160f122885a72850df43134ebe4587b59637d
+SHA1 (patch-libmudflap_mf-runtime.h) = efb0687749fbd8d71e75542a36392d51805c2cc8
SHA1 (patch-libsanitizer_configure.tgt) = a56ba5e2dc6bc413e80358353af16e6910b0e106
SHA1 (patch-libstdc++-v3_config_locale_dragonfly_c__locale.cc) = 5c0ccc6b90e3508b03ed399e8e9e300a6aa9cbb7
SHA1 (patch-libstdc++-v3_config_locale_dragonfly_ctype__members.cc) = 876a754c7fcb1c4a362ca7b2655da6cdbb784ccc
@@ -47,6 +96,7 @@ SHA1 (patch-libstdc++-v3_config_os_bsd_dragonfly_os__defines.h) = 9a45ecb4309c50
SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h) = 014d442c885b9c51d1a4af05205279c274a9559d
SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc) = b63c2682336c9b6f0e0d7b900d6f40ad6e7a5ec4
SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h) = 626fc1f9c035ac5cef30a92d525af4e778835ebf
+SHA1 (patch-libstdc++-v3_config_os_bsd_openbsd_os__defines.h) = f899b6ddfabdef82ecee3562a946cecd1b995dd0
SHA1 (patch-libstdc++-v3_configure) = 3821275fa698221d7665ea3c98b0a24f33954a5a
SHA1 (patch-libstdc++-v3_configure.host) = 7426ea4a9735e5f886f4a3ffb4a9ba62734178c4
SHA1 (patch-libstdc++-v3_libsupc++_unwind-cxx.h) = 9784bfa4323f8498b36565d0fea28fce69ffdbb1
diff --git a/lang/gcc48/files/patch-gcc_targhooks.c-openbsd.diff b/lang/gcc48/files/patch-gcc_targhooks.c-openbsd.diff
new file mode 100644
index 00000000000..bb2871b58d0
--- /dev/null
+++ b/lang/gcc48/files/patch-gcc_targhooks.c-openbsd.diff
@@ -0,0 +1,154 @@
+$NetBSD: patch-gcc_targhooks.c-openbsd.diff,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/targhooks.c.orig 2013-01-10 20:38:27.000000000 +0000
++++ gcc/targhooks.c
+@@ -55,6 +55,7 @@ along with GCC; see the file COPYING3.
+ #include "tree.h"
+ #include "expr.h"
+ #include "output.h"
++#include "c-family/c-common.h"
+ #include "diagnostic-core.h"
+ #include "function.h"
+ #include "target.h"
+@@ -639,7 +640,7 @@ default_stack_protect_guard (void)
+ rtx x;
+
+ t = build_decl (UNKNOWN_LOCATION,
+- VAR_DECL, get_identifier ("__stack_chk_guard"),
++ VAR_DECL, get_identifier ("__guard_local"),
+ ptr_type_node);
+ TREE_STATIC (t) = 1;
+ TREE_PUBLIC (t) = 1;
+@@ -648,6 +649,8 @@ default_stack_protect_guard (void)
+ TREE_THIS_VOLATILE (t) = 1;
+ DECL_ARTIFICIAL (t) = 1;
+ DECL_IGNORED_P (t) = 1;
++ DECL_VISIBILITY (t) = VISIBILITY_HIDDEN;
++ DECL_VISIBILITY_SPECIFIED (t) = 1;
+
+ /* Do not share RTL as the declaration is visible outside of
+ current function. */
+@@ -660,67 +663,72 @@ default_stack_protect_guard (void)
+ return t;
+ }
+
+-static GTY(()) tree stack_chk_fail_decl;
++static GTY(()) int stack_protect_labelno;
+
+ tree
+ default_external_stack_protect_fail (void)
+ {
+- tree t = stack_chk_fail_decl;
+-
+- if (t == NULL_TREE)
+- {
+- t = build_function_type_list (void_type_node, NULL_TREE);
+- t = build_decl (UNKNOWN_LOCATION,
+- FUNCTION_DECL, get_identifier ("__stack_chk_fail"), t);
+- TREE_STATIC (t) = 1;
+- TREE_PUBLIC (t) = 1;
+- DECL_EXTERNAL (t) = 1;
+- TREE_USED (t) = 1;
+- TREE_THIS_VOLATILE (t) = 1;
+- TREE_NOTHROW (t) = 1;
+- DECL_ARTIFICIAL (t) = 1;
+- DECL_IGNORED_P (t) = 1;
+- DECL_VISIBILITY (t) = VISIBILITY_DEFAULT;
+- DECL_VISIBILITY_SPECIFIED (t) = 1;
+-
+- stack_chk_fail_decl = t;
+- }
+-
+- return build_call_expr (t, 0);
++ tree t, func, type, init, stack_smash_handler;
++ const char *tmp_name;
++ char *name;
++ size_t length;
++ char name_buf[32];
++
++ name = (char *)xmalloc(32);
++ if (NULL == (tmp_name = fname_as_string (0))) {
++ strlcpy (name, "*unknown*", 32);
++ } else {
++ strlcpy (name, tmp_name, 32);
++ }
++
++ length = strlen (name);
++ /* Build a decl for __func__. */
++ type = build_array_type (char_type_node,
++ build_index_type (size_int (length)));
++ type = build_qualified_type (type, TYPE_QUAL_CONST);
++
++ init = build_string (length + 1, name);
++ free ((char *) name);
++ TREE_TYPE (init) = type;
++
++ func = build_decl (UNKNOWN_LOCATION, VAR_DECL, NULL_TREE, type);
++ TREE_STATIC (func) = 1;
++ TREE_READONLY (func) = 1;
++ DECL_ARTIFICIAL (func) = 1;
++ ASM_GENERATE_INTERNAL_LABEL (name_buf, "LSSH", stack_protect_labelno++);
++ DECL_NAME (func) = get_identifier (name_buf);
++ DECL_INITIAL (func) = init;
++
++ assemble_variable (func, 0, 0, 0);
++
++ /* Build a decl for __stack_smash_handler. */
++ t = build_pointer_type (TREE_TYPE (func));
++ t = build_function_type_list (void_type_node, t, NULL_TREE);
++ t = build_decl (UNKNOWN_LOCATION,
++ FUNCTION_DECL, get_identifier ("__stack_smash_handler"), t);
++ /* t = build_fn_decl ("__stack_smash_handler", t); */
++ TREE_STATIC (t) = 1;
++ TREE_PUBLIC (t) = 1;
++ DECL_EXTERNAL (t) = 1;
++ TREE_USED (t) = 1;
++ TREE_THIS_VOLATILE (t) = 1;
++ TREE_NOTHROW (t) = 1;
++ DECL_ARTIFICIAL (t) = 1;
++ DECL_IGNORED_P (t) = 1;
++ DECL_VISIBILITY (t) = VISIBILITY_DEFAULT;
++ DECL_VISIBILITY_SPECIFIED (t) = 1;
++
++ stack_smash_handler = t;
++
++ /* Generate a call to __stack_smash_handler(__func__). */
++ t = build_fold_addr_expr (func);
++ return build_call_expr (stack_smash_handler, 1, t);
+ }
+
+ tree
+ default_hidden_stack_protect_fail (void)
+ {
+-#ifndef HAVE_GAS_HIDDEN
+ return default_external_stack_protect_fail ();
+-#else
+- tree t = stack_chk_fail_decl;
+-
+- if (!flag_pic)
+- return default_external_stack_protect_fail ();
+-
+- if (t == NULL_TREE)
+- {
+- t = build_function_type_list (void_type_node, NULL_TREE);
+- t = build_decl (UNKNOWN_LOCATION, FUNCTION_DECL,
+- get_identifier ("__stack_chk_fail_local"), t);
+- TREE_STATIC (t) = 1;
+- TREE_PUBLIC (t) = 1;
+- DECL_EXTERNAL (t) = 1;
+- TREE_USED (t) = 1;
+- TREE_THIS_VOLATILE (t) = 1;
+- TREE_NOTHROW (t) = 1;
+- DECL_ARTIFICIAL (t) = 1;
+- DECL_IGNORED_P (t) = 1;
+- DECL_VISIBILITY_SPECIFIED (t) = 1;
+- DECL_VISIBILITY (t) = VISIBILITY_HIDDEN;
+-
+- stack_chk_fail_decl = t;
+- }
+-
+- return build_call_expr (t, 0);
+-#endif
+ }
+
+ bool
diff --git a/lang/gcc48/options.mk b/lang/gcc48/options.mk
index 1933375048f..262024e4e16 100644
--- a/lang/gcc48/options.mk
+++ b/lang/gcc48/options.mk
@@ -1,23 +1,24 @@
-# $NetBSD: options.mk,v 1.5 2014/04/23 12:53:36 ryoon Exp $
+# $NetBSD: options.mk,v 1.6 2014/05/31 13:06:25 ryoon Exp $
-PKG_OPTIONS_VAR= PKG_OPTIONS.${GCC_PKGNAME}
+PKG_OPTIONS_VAR= PKG_OPTIONS.gcc48
PKG_SUPPORTED_OPTIONS= nls gcc-inplace-math gcc-graphite gcc-java
-PKG_SUGGESTED_OPTIONS= gcc-graphite
+PKG_SUGGESTED_OPTIONS= gcc-graphite gcc-inplace-math
.include "../../mk/bsd.prefs.mk"
+.if ${OPSYS} == "NetBSD" || ${OPSYS} == "Linux" || ${OPSYS} == "DragonFly"
+PKG_SUGGESTED_OPTIONS+= nls
+#.elif ${OPSYS} == "SunOS"
+#PKG_SUGGESTED_OPTIONS+= gcc-inplace-math
+.endif
+
+.include "../../mk/bsd.options.mk"
+
.if !empty(PKG_OPTIONS:Mgcc-java)
.include "../../lang/gcc48/java.mk"
-PKG_SUGGESTED_OPTIONS+= gcc-java
PLIST.java= yes
.endif
-.if ${OPSYS} == "NetBSD" || ${OPSYS} == "Linux" || ${OPSYS} == "DragonFly"
-PKG_SUGGESTED_OPTIONS+= nls
-.elif ${OPSYS} == "SunOS"
-PKG_SUGGESTED_OPTIONS+= gcc-inplace-math
-.endif
-
###
### Determine if multilib is avalible.
###
@@ -35,8 +36,6 @@ PKG_SUPPORTED_OPTIONS+= gcc-multilib
PKG_SUGGESTED_OPTIONS+= gcc-multilib
.endif
-.include "../../mk/bsd.options.mk"
-
###
### Native Language Support
###
@@ -47,6 +46,9 @@ 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"
+. if ${PKGPATH} == "lang/gcc48-cc++"
+PLIST_SRC+= ${PLIST_SRC_DFLT} PLIST.nls
+. endif
.else
CONFIGURE_ARGS+= --disable-nls
.endif
@@ -82,10 +84,17 @@ LIBS.SunOS+= -lgmp
### Graphite Support
###
.if !empty(PKG_OPTIONS:Mgcc-graphite)
-CONFIGURE_ARGS+= --with-cloog=${BUILDLINK_PREFIX.cloog}
-CONFIGURE_ARGS+= --enable-cloog-backend=isl
-.include "../../math/cloog/buildlink3.mk"
-.include "../../math/isl/buildlink3.mk"
+ISL12= isl-0.12.2
+SITES.${ISL12}.tar.bz2= ${MASTER_SITE_GNU:=gcc/infrastructure/}
+CLOOG18= cloog-0.18.1
+SITES.${CLOOG18}.tar.gz= ${MASTER_SITE_GNU:=gcc/infrastructure/}
+DISTFILES+= ${ISL12}.tar.bz2 ${CLOOG18}.tar.gz
+EXTRACT_ONLY+= ${ISL12}.tar.bz2 ${CLOOG18}.tar.gz
+post-extract-graphite:
+ ${MV} ${WRKDIR}/${ISL12} ${WRKSRC}/isl
+ ${MV} ${WRKDIR}/${CLOOG18} ${WRKSRC}/cloog
+.else
+CONFIGURE_ARGS+= --without-cloog --without-isl
.endif
.include "../../mk/bsd.options.mk"
diff --git a/lang/gcc48/patches/patch-boehm-gc_configure b/lang/gcc48/patches/patch-boehm-gc_configure
new file mode 100644
index 00000000000..8988df8b11b
--- /dev/null
+++ b/lang/gcc48/patches/patch-boehm-gc_configure
@@ -0,0 +1,52 @@
+$NetBSD: patch-boehm-gc_configure,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- boehm-gc/configure.orig 2014-05-22 09:13:48.000000000 +0000
++++ boehm-gc/configure
+@@ -10684,7 +10684,7 @@ netbsd*)
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
++ #finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+@@ -14409,7 +14409,7 @@ openbsd*)
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
++ #finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+@@ -14785,6 +14785,11 @@ $as_echo "#define _REENTRANT 1" >>confde
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"Only HP-UX 11 POSIX threads are supported.\"" >&5
+ $as_echo "$as_me: WARNING: \"Only HP-UX 11 POSIX threads are supported.\"" >&2;}
+ ;;
++ *-*-openbsd*)
++ $as_echo "#define GC_OPENBSD_THREADS 1" >>confdefs.h
++ THREADLIBS=-pthread
++ INCLUDES="$INCLUDES -pthread"
++ ;;
+ *-*-kfreebsd*-gnu)
+ $as_echo "#define GC_FREEBSD_THREADS 1" >>confdefs.h
+
+@@ -14914,7 +14919,6 @@ else
+ POWERPC_DARWIN_FALSE=
+ fi
+
+-
+ # Darwin needs a few extra special tests to deal with variation in the
+ # system headers.
+ case "$host" in
+@@ -15225,6 +15229,9 @@ $as_echo "#define DATASTART_IS_ETEXT 1"
+ sparc-*-netbsd*)
+ machdep="sparc_netbsd_mach_dep.lo"
+ ;;
++ sparc*-*-openbsd*)
++ machdep="sparc_mach_dep.lo"
++ ;;
+ sparc-sun-solaris2.3)
+ machdep="sparc_mach_dep.lo"
+
diff --git a/lang/gcc48/patches/patch-boehm-gc_dyn__load.c b/lang/gcc48/patches/patch-boehm-gc_dyn__load.c
new file mode 100644
index 00000000000..373a2121a36
--- /dev/null
+++ b/lang/gcc48/patches/patch-boehm-gc_dyn__load.c
@@ -0,0 +1,51 @@
+$NetBSD: patch-boehm-gc_dyn__load.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- boehm-gc/dyn_load.c.orig 2012-11-04 22:56:02.000000000 +0000
++++ boehm-gc/dyn_load.c
+@@ -61,6 +61,7 @@
+ !defined(HPUX) && !(defined(LINUX) && defined(__ELF__)) && \
+ !defined(RS6000) && !defined(SCO_ELF) && !defined(DGUX) && \
+ !(defined(FREEBSD) && defined(__ELF__)) && \
++ !(defined(OPENBSD) && defined(__ELF__)) && \
+ !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \
+ !defined(DARWIN)
+ --> We only know how to find data segments of dynamic libraries for the
+@@ -100,9 +101,9 @@
+
+ #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
+ (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \
++ (defined(OPENBSD) && defined(__ELF__)) || \
+ (defined(NETBSD) && defined(__ELF__)) || defined(HURD)
+ # include <stddef.h>
+-# include <elf.h>
+ # include <link.h>
+ #endif
+
+@@ -116,7 +117,7 @@
+ # define ElfW(type) Elf64_##type
+ # endif
+ # else
+-# ifdef NETBSD
++# if defined(NETBSD) || defined(OPENBSD)
+ # if ELFSIZE == 32
+ # define ElfW(type) Elf32_##type
+ # else
+@@ -365,6 +366,7 @@ void GC_register_dynamic_libraries()
+
+ #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
+ (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \
++ (defined(OPENBSD) && defined(__ELF__)) || \
+ (defined(NETBSD) && defined(__ELF__)) || defined(HURD)
+
+
+@@ -476,6 +478,10 @@ GC_bool GC_register_main_static_data()
+ #define HAVE_DL_ITERATE_PHDR
+ #endif
+
++#if defined(OPENBSD)
++#define HAVE_DL_ITERATE_PHDR
++#endif
++
+ #if defined(HAVE_DL_ITERATE_PHDR)
+
+ static int GC_register_dynlib_callback(info, size, ptr)
diff --git a/lang/gcc48/patches/patch-boehm-gc_include_gc__config.h.in b/lang/gcc48/patches/patch-boehm-gc_include_gc__config.h.in
new file mode 100644
index 00000000000..3fc39b290d2
--- /dev/null
+++ b/lang/gcc48/patches/patch-boehm-gc_include_gc__config.h.in
@@ -0,0 +1,14 @@
+$NetBSD: patch-boehm-gc_include_gc__config.h.in,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- boehm-gc/include/gc_config.h.in.orig 2012-11-04 22:56:02.000000000 +0000
++++ boehm-gc/include/gc_config.h.in
+@@ -30,6 +30,9 @@
+ /* support FreeBSD threads */
+ #undef GC_FREEBSD_THREADS
+
++/* support OpenBSD threads */
++#undef GC_OPENBSD_THREADS
++
+ /* include support for gcj */
+ #undef GC_GCJ_SUPPORT
+
diff --git a/lang/gcc48/patches/patch-boehm-gc_include_gc__config__macros.h b/lang/gcc48/patches/patch-boehm-gc_include_gc__config__macros.h
new file mode 100644
index 00000000000..eeafb0563e2
--- /dev/null
+++ b/lang/gcc48/patches/patch-boehm-gc_include_gc__config__macros.h
@@ -0,0 +1,24 @@
+$NetBSD: patch-boehm-gc_include_gc__config__macros.h,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- boehm-gc/include/gc_config_macros.h.orig 2012-11-04 22:56:02.000000000 +0000
++++ boehm-gc/include/gc_config_macros.h
+@@ -22,7 +22,7 @@
+ defined(GC_GNU_THREADS) || \
+ defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || \
+ defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \
+- defined(GC_AIX_THREADS) || \
++ defined(GC_AIX_THREADS) || defined(GC_OPENBSD_THREADS) || \
+ (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__))
+ # define GC_PTHREADS
+ # endif
+@@ -57,6 +57,10 @@
+ # define GC_FREEBSD_THREADS
+ # define GC_PTHREADS
+ # endif
++# if !defined(GC_PTHREADS) && defined(__OpenBSD__)
++# define GC_OPENBSD_THREADS
++# define GC_PTHREADS
++# endif
+ # if defined(DGUX) && (defined(i386) || defined(__i386__))
+ # define GC_DGUX386_THREADS
+ # define GC_PTHREADS
diff --git a/lang/gcc48/patches/patch-boehm-gc_include_gc__pthread__redirects.h b/lang/gcc48/patches/patch-boehm-gc_include_gc__pthread__redirects.h
new file mode 100644
index 00000000000..42f0cfd1caa
--- /dev/null
+++ b/lang/gcc48/patches/patch-boehm-gc_include_gc__pthread__redirects.h
@@ -0,0 +1,26 @@
+$NetBSD: patch-boehm-gc_include_gc__pthread__redirects.h,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- boehm-gc/include/gc_pthread_redirects.h.orig 2006-08-21 22:07:30.000000000 +0000
++++ boehm-gc/include/gc_pthread_redirects.h
+@@ -52,7 +52,7 @@
+ int GC_pthread_create(pthread_t *new_thread,
+ const pthread_attr_t *attr,
+ void *(*start_routine)(void *), void *arg);
+-#ifndef GC_DARWIN_THREADS
++#if !defined(GC_DARWIN_THREADS) && !defined(GC_OPENBSD_THREADS)
+ int GC_pthread_sigmask(int how, const sigset_t *set, sigset_t *oset);
+ #endif
+ int GC_pthread_join(pthread_t thread, void **retval);
+@@ -72,8 +72,11 @@
+ # define pthread_join GC_pthread_join
+ # define pthread_detach GC_pthread_detach
+
+-#ifndef GC_DARWIN_THREADS
++#if !defined(GC_DARWIN_THREADS) && !defined(GC_OPENBSD_THREADS)
+ # define pthread_sigmask GC_pthread_sigmask
++#endif
++
++#ifndef GC_DARWIN_THREADS
+ # define dlopen GC_dlopen
+ #endif
+
diff --git a/lang/gcc48/patches/patch-boehm-gc_include_private_gcconfig.h b/lang/gcc48/patches/patch-boehm-gc_include_private_gcconfig.h
new file mode 100644
index 00000000000..aad36dffaed
--- /dev/null
+++ b/lang/gcc48/patches/patch-boehm-gc_include_private_gcconfig.h
@@ -0,0 +1,355 @@
+$NetBSD: patch-boehm-gc_include_private_gcconfig.h,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- boehm-gc/include/private/gcconfig.h.orig 2013-12-29 22:42:08.000000000 +0000
++++ boehm-gc/include/private/gcconfig.h
+@@ -62,7 +62,7 @@
+ /* Determine the machine type: */
+ # if defined(__arm__) || defined(__thumb__)
+ # define ARM32
+-# if !defined(LINUX) && !defined(NETBSD)
++# if !defined(LINUX) && !defined(NETBSD) && !defined(OPENBSD)
+ # define NOSYS
+ # define mach_type_known
+ # endif
+@@ -77,14 +77,18 @@
+ # define HP
+ # define mach_type_known
+ # endif
+-# if defined(OPENBSD) && defined(m68k)
+-# define M68K
+-# define mach_type_known
+-# endif
+ # if defined(OPENBSD) && defined(__sparc__)
+ # define SPARC
+ # define mach_type_known
+ # endif
++# if defined(OPENBSD) && defined(__arm__)
++# define ARM32
++# define mach_type_known
++# endif
++# if defined(OPENBSD) && defined(__sh__)
++# define SH
++# define mach_type_known
++# endif
+ # if defined(NETBSD) && (defined(m68k) || defined(__m68k__))
+ # define M68K
+ # define mach_type_known
+@@ -101,7 +105,7 @@
+ # define SH
+ # define mach_type_known
+ # endif
+-# if defined(vax)
++# if defined(vax) || defined(__vax__)
+ # define VAX
+ # ifdef ultrix
+ # define ULTRIX
+@@ -119,7 +123,7 @@
+ # if defined(nec_ews) || defined(_nec_ews)
+ # define EWS4800
+ # endif
+-# if !defined(LINUX) && !defined(EWS4800) && !defined(NETBSD)
++# if !defined(LINUX) && !defined(EWS4800) && !defined(NETBSD) && !defined(OPENBSD)
+ # if defined(ultrix) || defined(__ultrix)
+ # define ULTRIX
+ # else
+@@ -210,7 +214,7 @@
+ # if defined(_PA_RISC1_0) || defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \
+ || defined(hppa) || defined(__hppa__)
+ # define HP_PA
+-# if !defined(LINUX) && !defined(HPUX)
++# if !defined(LINUX) && !defined(HPUX) && !defined(OPENBSD)
+ # define HPUX
+ # endif
+ # define mach_type_known
+@@ -231,6 +235,10 @@
+ # define I386
+ # define mach_type_known
+ # endif
++# if defined(OPENBSD) && defined(__amd64)
++# define X86_64
++# define mach_type_known
++# endif
+ # if defined(LINUX) && defined(__x86_64__)
+ # define X86_64
+ # define mach_type_known
+@@ -302,6 +310,11 @@
+ # define MACOS
+ # define mach_type_known
+ # endif
++# if defined(__OpenBSD__) && defined(__powerpc__)
++# define POWERPC
++# define OPENBSD
++# define mach_type_known
++# endif
+ # if defined(macosx) || (defined(__APPLE__) && defined(__MACH__))
+ # define DARWIN
+ # if defined(__ppc__) || defined(__ppc64__)
+@@ -651,18 +664,6 @@
+ # ifdef M68K
+ # define MACH_TYPE "M68K"
+ # define ALIGNMENT 2
+-# ifdef OPENBSD
+-# define OS_TYPE "OPENBSD"
+-# define HEURISTIC2
+-# ifdef __ELF__
+-# define DATASTART GC_data_start
+-# define DYNAMIC_LOADING
+-# else
+- extern char etext[];
+-# define DATASTART ((ptr_t)(etext))
+-# endif
+-# define USE_GENERIC_PUSH_REGS
+-# endif
+ # ifdef NETBSD
+ # define OS_TYPE "NETBSD"
+ # define HEURISTIC2
+@@ -836,6 +837,24 @@
+ should be looked into some more */
+ # define NO_PTHREAD_TRYLOCK
+ # endif
++# ifdef OPENBSD
++# define OS_TYPE "OPENBSD"
++# define ALIGNMENT 4
++# define SIG_SUSPEND SIGXFSZ
++# define SIG_THR_RESTART SIGXCPU
++# ifndef GC_OPENBSD_THREADS
++# include <sys/param.h>
++# include <uvm/uvm_extern.h>
++# define STACKBOTTOM USRSTACK
++# endif
++ extern int __data_start[];
++# define DATASTART ((ptr_t)(__data_start))
++ extern char _end[];
++# define DATAEND ((ptr_t)(&_end))
++# define DYNAMIC_LOADING
++# define USE_MMAP
++# define USE_MMAP_ANON
++# endif
+ # ifdef FREEBSD
+ # if defined(__powerpc64__)
+ # define ALIGNMENT 8
+@@ -991,9 +1010,20 @@
+ # endif
+ # ifdef OPENBSD
+ # define OS_TYPE "OPENBSD"
+-# define STACKBOTTOM ((ptr_t) 0xf8000000)
+- extern int etext[];
+-# define DATASTART ((ptr_t)(etext))
++# define SIG_SUSPEND SIGXFSZ
++# define SIG_THR_RESTART SIGXCPU
++# ifndef GC_OPENBSD_THREADS
++# include <sys/param.h>
++# include <uvm/uvm_extern.h>
++# define STACKBOTTOM USRSTACK
++# endif
++ extern int __data_start[];
++# define DATASTART ((ptr_t)(__data_start))
++ extern char _end[];
++# define DATAEND ((ptr_t)(&_end))
++# define DYNAMIC_LOADING
++# define USE_MMAP
++# define USE_MMAP_ANON
+ # endif
+ # ifdef NETBSD
+ # define OS_TYPE "NETBSD"
+@@ -1241,6 +1271,20 @@
+ # endif
+ # ifdef OPENBSD
+ # define OS_TYPE "OPENBSD"
++# define SIG_SUSPEND SIGXFSZ
++# define SIG_THR_RESTART SIGXCPU
++# ifndef GC_OPENBSD_THREADS
++# include <sys/param.h>
++# include <uvm/uvm_extern.h>
++# define STACKBOTTOM USRSTACK
++# endif
++ extern int __data_start[];
++# define DATASTART ((ptr_t)(__data_start))
++ extern char _end[];
++# define DATAEND ((ptr_t)(&_end))
++# define DYNAMIC_LOADING
++# define USE_MMAP
++# define USE_MMAP_ANON
+ # endif
+ # ifdef FREEBSD
+ # define OS_TYPE "FREEBSD"
+@@ -1276,7 +1320,7 @@
+ # ifdef BSDI
+ # define OS_TYPE "BSDI"
+ # endif
+-# if defined(OPENBSD) || defined(NETBSD) \
++# if defined(NETBSD) \
+ || defined(THREE86BSD) || defined(BSDI)
+ # define HEURISTIC2
+ extern char etext[];
+@@ -1470,6 +1514,24 @@
+ # define STACKBOTTOM ((ptr_t) 0x7ffff000)
+ # endif /* _ELF_ */
+ # endif
++# ifdef OPENBSD
++# define OS_TYPE "OPENBSD"
++# define ALIGNMENT 4
++# define SIG_SUSPEND SIGXFSZ
++# define SIG_THR_RESTART SIGXCPU
++# ifndef GC_OPENBSD_THREADS
++# include <sys/param.h>
++# include <uvm/uvm_extern.h>
++# define STACKBOTTOM USRSTACK
++# endif
++ extern int _fdata[];
++# define DATASTART ((ptr_t)(_fdata))
++ extern char _end[];
++# define DATAEND ((ptr_t)(&_end))
++# define DYNAMIC_LOADING
++# define USE_MMAP
++# define USE_MMAP_ANON
++# endif
+ # endif
+
+ # ifdef RS6000
+@@ -1517,7 +1579,7 @@
+ # define ALIGNMENT 4
+ # define ALIGN_DOUBLE
+ # endif
+-# if !defined(GC_HPUX_THREADS) && !defined(GC_LINUX_THREADS)
++# if !defined(GC_HPUX_THREADS) && !defined(GC_LINUX_THREADS) && !defined(OPENBSD)
+ # ifndef LINUX /* For now. */
+ # define MPROTECT_VDB
+ # endif
+@@ -1569,6 +1631,23 @@
+ extern int _end[];
+ # define DATAEND (&_end)
+ # endif /* LINUX */
++# ifdef OPENBSD
++# define OS_TYPE "OPENBSD"
++# define SIG_SUSPEND SIGXFSZ
++# define SIG_THR_RESTART SIGXCPU
++# ifndef GC_OPENBSD_THREADS
++# include <sys/param.h>
++# include <uvm/uvm_extern.h>
++# define STACKBOTTOM USRSTACK
++# endif
++ extern int __data_start[];
++# define DATASTART ((ptr_t)(__data_start))
++ extern char _end[];
++# define DATAEND ((ptr_t)(&_end))
++# define DYNAMIC_LOADING
++# define USE_MMAP
++# define USE_MMAP_ANON
++# endif
+ # endif /* HP_PA */
+
+ # ifdef ALPHA
+@@ -1593,15 +1672,21 @@
+ # endif
+ # ifdef OPENBSD
+ # define OS_TYPE "OPENBSD"
+-# define HEURISTIC2
+-# ifdef __ELF__ /* since OpenBSD/Alpha 2.9 */
+-# define DATASTART GC_data_start
+-# define ELFCLASS32 32
+-# define ELFCLASS64 64
+-# define ELF_CLASS ELFCLASS64
+-# else /* ECOFF, until OpenBSD/Alpha 2.7 */
+-# define DATASTART ((ptr_t) 0x140000000)
+-# endif
++# define ELF_CLASS ELFCLASS64
++# define SIG_SUSPEND SIGXFSZ
++# define SIG_THR_RESTART SIGXCPU
++# ifndef GC_OPENBSD_THREADS
++# include <sys/param.h>
++# include <uvm/uvm_extern.h>
++# define STACKBOTTOM USRSTACK
++# endif
++ extern int __data_start[];
++# define DATASTART ((ptr_t)(__data_start))
++ extern char _end[];
++# define DATAEND ((ptr_t)(&_end))
++# define DYNAMIC_LOADING
++# define USE_MMAP
++# define USE_MMAP_ANON
+ # endif
+ # ifdef FREEBSD
+ # define OS_TYPE "FREEBSD"
+@@ -1781,6 +1866,7 @@
+ # ifdef CX_UX
+ # define OS_TYPE "CX_UX"
+ # define DATASTART ((((word)etext + 0x3fffff) & ~0x3fffff) + 0x10000)
++# define STACKBOTTOM ((char*)0xf0000000) /* determined empirically */
+ # endif
+ # ifdef DGUX
+ # define OS_TYPE "DGUX"
+@@ -1891,6 +1977,24 @@
+ # define OS_TYPE "MSWINCE"
+ # define DATAEND /* not needed */
+ # endif
++# ifdef OPENBSD
++# define ALIGNMENT 4
++# define OS_TYPE "OPENBSD"
++# define SIG_SUSPEND SIGXFSZ
++# define SIG_THR_RESTART SIGXCPU
++# ifndef GC_OPENBSD_THREADS
++# include <sys/param.h>
++# include <uvm/uvm_extern.h>
++# define STACKBOTTOM USRSTACK
++# endif
++ extern int __data_start[];
++# define DATASTART ((ptr_t)(__data_start))
++ extern char _end[];
++# define DATAEND ((ptr_t)(&_end))
++# define DYNAMIC_LOADING
++# define USE_MMAP
++# define USE_MMAP_ANON
++# endif
+ # ifdef NOSYS
+ /* __data_start is usually defined in the target linker script. */
+ extern int __data_start[];
+@@ -1938,6 +2042,23 @@
+ # define USE_GENERIC_PUSH_REGS
+ # define DYNAMIC_LOADING
+ # endif
++# ifdef OPENBSD
++# define OS_TYPE "OPENBSD"
++# define SIG_SUSPEND SIGXFSZ
++# define SIG_THR_RESTART SIGXCPU
++# ifndef GC_OPENBSD_THREADS
++# include <sys/param.h>
++# include <uvm/uvm_extern.h>
++# define STACKBOTTOM USRSTACK
++# endif
++ extern int __data_start[];
++# define DATASTART ((ptr_t)(__data_start))
++ extern char _end[];
++# define DATAEND ((ptr_t)(&_end))
++# define DYNAMIC_LOADING
++# define USE_MMAP
++# define USE_MMAP_ANON
++# endif
+ # endif
+
+ # ifdef SH4
+@@ -1976,6 +2097,24 @@
+ # ifndef HBLKSIZE
+ # define HBLKSIZE 4096
+ # endif
++# ifdef OPENBSD
++# define OS_TYPE "OPENBSD"
++# define ELF_CLASS ELFCLASS64
++# define SIG_SUSPEND SIGXFSZ
++# define SIG_THR_RESTART SIGXCPU
++# ifndef GC_OPENBSD_THREADS
++# include <sys/param.h>
++# include <uvm/uvm_extern.h>
++# define STACKBOTTOM USRSTACK
++# endif
++ extern int __data_start[];
++# define DATASTART ((ptr_t)(__data_start))
++ extern char _end[];
++# define DATAEND ((ptr_t)(&_end))
++# define DYNAMIC_LOADING
++# define USE_MMAP
++# define USE_MMAP_ANON
++# endif
+ # define CACHE_LINE_SIZE 64
+ # define USE_GENERIC_PUSH_REGS
+ # ifdef LINUX
diff --git a/lang/gcc48/patches/patch-boehm-gc_mach__dep.c b/lang/gcc48/patches/patch-boehm-gc_mach__dep.c
new file mode 100644
index 00000000000..9c0b64d10c4
--- /dev/null
+++ b/lang/gcc48/patches/patch-boehm-gc_mach__dep.c
@@ -0,0 +1,22 @@
+$NetBSD: patch-boehm-gc_mach__dep.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- boehm-gc/mach_dep.c.orig 2006-01-25 03:03:14.000000000 +0000
++++ boehm-gc/mach_dep.c
+@@ -27,7 +27,7 @@
+ # endif
+ # endif
+
+-#if defined(RS6000) || defined(POWERPC)
++#if (defined(RS6000) || defined(POWERPC)) && !defined(OPENBSD)
+ # include <ucontext.h>
+ #endif
+
+@@ -417,7 +417,7 @@ ptr_t arg;
+ /* the stack. */
+ __builtin_unwind_init();
+ # else /* !HAVE_BUILTIN_UNWIND_INIT */
+-# if defined(RS6000) || defined(POWERPC)
++# if (defined(RS6000) || defined(POWERPC)) && !defined(OPENBSD)
+ /* FIXME: RS6000 means AIX. */
+ /* This should probably be used in all Posix/non-gcc */
+ /* settings. We defer that change to minimize risk. */
diff --git a/lang/gcc48/patches/patch-boehm-gc_misc.c b/lang/gcc48/patches/patch-boehm-gc_misc.c
new file mode 100644
index 00000000000..892b5d69f18
--- /dev/null
+++ b/lang/gcc48/patches/patch-boehm-gc_misc.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-boehm-gc_misc.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- boehm-gc/misc.c.orig 2006-09-14 18:06:04.000000000 +0000
++++ boehm-gc/misc.c
+@@ -660,7 +660,7 @@ void GC_init_inner()
+ # if defined(SEARCH_FOR_DATA_START)
+ GC_init_linux_data_start();
+ # endif
+-# if (defined(NETBSD) || defined(OPENBSD)) && defined(__ELF__)
++# if defined(NETBSD) && defined(__ELF__)
+ GC_init_netbsd_elf();
+ # endif
+ # if defined(GC_PTHREADS) || defined(GC_SOLARIS_THREADS) \
diff --git a/lang/gcc48/patches/patch-boehm-gc_os__dep.c b/lang/gcc48/patches/patch-boehm-gc_os__dep.c
new file mode 100644
index 00000000000..b29a215a7ff
--- /dev/null
+++ b/lang/gcc48/patches/patch-boehm-gc_os__dep.c
@@ -0,0 +1,177 @@
+$NetBSD: patch-boehm-gc_os__dep.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- boehm-gc/os_dep.c.orig 2013-03-06 15:08:58.000000000 +0000
++++ boehm-gc/os_dep.c
+@@ -380,7 +380,7 @@ static void *tiny_sbrk(ptrdiff_t increme
+ #define sbrk tiny_sbrk
+ # endif /* ECOS */
+
+-#if (defined(NETBSD) || defined(OPENBSD)) && defined(__ELF__)
++#if defined(NETBSD) && defined(__ELF__)
+ ptr_t GC_data_start;
+
+ void GC_init_netbsd_elf()
+@@ -393,6 +393,86 @@ static void *tiny_sbrk(ptrdiff_t increme
+ }
+ #endif
+
++#if defined(OPENBSD)
++ static struct sigaction old_segv_act;
++ sigjmp_buf GC_jmp_buf_openbsd;
++
++ /*ARGSUSED*/
++ void GC_fault_handler_openbsd(int sig)
++ {
++ siglongjmp(GC_jmp_buf_openbsd, 1);
++ }
++
++ /* Return the first nonaddressible location > p or bound */
++ /* Requires allocation lock. */
++ ptr_t GC_find_limit_openbsd(ptr_t p, ptr_t bound)
++ {
++ static volatile ptr_t result;
++ /* Safer if static, since otherwise it may not be */
++ /* preserved across the longjmp. Can safely be */
++ /* static since it's only called with the */
++ /* allocation lock held. */
++ struct sigaction act;
++ size_t pgsz = (size_t)sysconf(_SC_PAGESIZE);
++
++ GC_ASSERT(I_HOLD_LOCK());
++
++ act.sa_handler = GC_fault_handler_openbsd;
++ sigemptyset(&act.sa_mask);
++ act.sa_flags = SA_NODEFER | SA_RESTART;
++ sigaction(SIGSEGV, &act, &old_segv_act);
++
++ if (sigsetjmp(GC_jmp_buf_openbsd, 1) == 0) {
++ result = (ptr_t)(((word)(p)) & ~(pgsz-1));
++ for (;;) {
++ result += pgsz;
++ if (result >= bound) {
++ result = bound;
++ break;
++ }
++ GC_noop1((word)(*result));
++ }
++ }
++
++ sigaction(SIGSEGV, &old_segv_act, 0);
++
++ return(result);
++ }
++
++ /* Return first addressable location > p or bound */
++ /* Requires allocation lock. */
++ ptr_t GC_skip_hole_openbsd(ptr_t p, ptr_t bound)
++ {
++ static volatile ptr_t result;
++ struct sigaction act;
++ size_t pgsz = (size_t)sysconf(_SC_PAGESIZE);
++ static volatile int firstpass;
++
++ GC_ASSERT(I_HOLD_LOCK());
++
++ act.sa_handler = GC_fault_handler_openbsd;
++ sigemptyset(&act.sa_mask);
++ act.sa_flags = SA_NODEFER | SA_RESTART;
++ sigaction(SIGSEGV, &act, &old_segv_act);
++
++ firstpass = 1;
++ result = (ptr_t)(((word)(p)) & ~(pgsz-1));
++ if (sigsetjmp(GC_jmp_buf_openbsd, 1) != 0 || firstpass) {
++ firstpass = 0;
++ result += pgsz;
++ if (result >= bound) {
++ result = bound;
++ } else
++ GC_noop1((word)(*result));
++ }
++
++ sigaction(SIGSEGV, &old_segv_act, 0);
++
++ return(result);
++ }
++#endif
++
++
+ # ifdef OS2
+
+ # include <stddef.h>
+@@ -1057,7 +1137,8 @@ ptr_t GC_get_stack_base()
+ #endif /* GC_SOLARIS_THREADS */
+
+ #if !defined(BEOS) && !defined(AMIGA) && !defined(MSWIN32) \
+- && !defined(MSWINCE) && !defined(OS2) && !defined(NOSYS) && !defined(ECOS)
++ && !defined(MSWINCE) && !defined(OS2) && !defined(NOSYS) && !defined(ECOS) \
++ && !defined(GC_OPENBSD_THREADS)
+
+ ptr_t GC_get_stack_base()
+ {
+@@ -1121,6 +1202,25 @@ ptr_t GC_get_stack_base()
+
+ # endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS, !NOSYS, !ECOS */
+
++#if defined(GC_OPENBSD_THREADS)
++
++/* Find the stack using pthread_stackseg_np() */
++
++# include <sys/signal.h>
++# include <pthread.h>
++# include <pthread_np.h>
++
++#define HAVE_GET_STACK_BASE
++
++ptr_t GC_get_stack_base()
++{
++ stack_t stack;
++ pthread_stackseg_np(pthread_self(), &stack);
++ return stack.ss_sp;
++}
++#endif /* GC_OPENBSD_THREADS */
++
++
+ /*
+ * Register static data segment(s) as roots.
+ * If more data segments are added later then they need to be registered
+@@ -1492,6 +1592,32 @@ int * etext_addr;
+
+ #else /* !OS2 && !Windows && !AMIGA */
+
++#if defined(OPENBSD)
++
++/*
++ * Depending on arch alignment there can be multiple holes
++ * between DATASTART & DATAEND. Scan from DATASTART - DATAEND
++ * and register each region.
++ */
++void GC_register_data_segments(void)
++{
++ ptr_t region_start, region_end;
++
++ region_start = DATASTART;
++
++ for(;;) {
++ region_end = GC_find_limit_openbsd(region_start, DATAEND);
++ GC_add_roots_inner(region_start, region_end, FALSE);
++ if (region_end < DATAEND)
++ region_start = GC_skip_hole_openbsd(region_end, DATAEND);
++ else
++ break;
++ }
++}
++
++# else /* !OS2 && !Windows && !AMIGA && !OPENBSD */
++
++
+ void GC_register_data_segments()
+ {
+ # if !defined(PCR) && !defined(SRC_M3) && !defined(MACOS)
+@@ -1549,6 +1675,7 @@ void GC_register_data_segments()
+ /* change. */
+ }
+
++# endif /* ! OPENBSD */
+ # endif /* ! AMIGA */
+ # endif /* ! MSWIN32 && ! MSWINCE*/
+ # endif /* ! OS2 */
diff --git a/lang/gcc48/patches/patch-boehm-gc_pthread__support.c b/lang/gcc48/patches/patch-boehm-gc_pthread__support.c
new file mode 100644
index 00000000000..07026cbdf21
--- /dev/null
+++ b/lang/gcc48/patches/patch-boehm-gc_pthread__support.c
@@ -0,0 +1,44 @@
+$NetBSD: patch-boehm-gc_pthread__support.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- boehm-gc/pthread_support.c.orig 2012-11-04 22:56:02.000000000 +0000
++++ boehm-gc/pthread_support.c
+@@ -118,6 +118,10 @@
+ # include <fcntl.h>
+ # include <signal.h>
+
++#if defined(GC_OPENBSD_THREADS)
++# include <pthread_np.h>
++#endif
++
+ #if defined(GC_DARWIN_THREADS)
+ # include "private/darwin_semaphore.h"
+ #else
+@@ -884,7 +888,8 @@ void GC_thr_init()
+ GC_nprocs = pthread_num_processors_np();
+ # endif
+ # if defined(GC_OSF1_THREADS) || defined(GC_AIX_THREADS) \
+- || defined(GC_SOLARIS_PTHREADS) || defined(GC_GNU_THREADS)
++ || defined(GC_SOLARIS_PTHREADS) || defined(GC_GNU_THREADS) \
++ || defined(GC_OPENBSD_THREADS)
+ GC_nprocs = sysconf(_SC_NPROCESSORS_ONLN);
+ if (GC_nprocs <= 0) GC_nprocs = 1;
+ # endif
+@@ -970,7 +975,6 @@ void GC_init_parallel()
+ int WRAP_FUNC(pthread_sigmask)(int how, const sigset_t *set, sigset_t *oset)
+ {
+ sigset_t fudged_set;
+-
+ if (set != NULL && (how == SIG_BLOCK || how == SIG_SETMASK)) {
+ fudged_set = *set;
+ sigdelset(&fudged_set, SIG_SUSPEND);
+@@ -1156,6 +1160,10 @@ GC_PTR GC_get_thread_stack_base()
+ return stack_addr;
+ # endif
+
++# elif defined(GC_OPENBSD_THREADS)
++ stack_t stack;
++ pthread_stackseg_np(pthread_self(), &stack);
++ return stack.ss_sp;
+ # else
+ # ifdef DEBUG_THREADS
+ GC_printf0("Can not determine stack base for attached thread");
diff --git a/lang/gcc48/patches/patch-boehm-gc_threadlibs.c b/lang/gcc48/patches/patch-boehm-gc_threadlibs.c
new file mode 100644
index 00000000000..91553ac4a8f
--- /dev/null
+++ b/lang/gcc48/patches/patch-boehm-gc_threadlibs.c
@@ -0,0 +1,14 @@
+$NetBSD: patch-boehm-gc_threadlibs.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- boehm-gc/threadlibs.c.orig 2012-11-04 22:56:02.000000000 +0000
++++ boehm-gc/threadlibs.c
+@@ -16,6 +16,9 @@ int main()
+ || defined(GC_GNU_THREADS)
+ printf("-lpthread\n");
+ # endif
++# if defined(GC_OPENBSD_THREADS)
++ printf("-pthread\n");
++# endif
+ # if defined(GC_FREEBSD_THREADS)
+ # if (__FREEBSD_version >= 500000)
+ printf("-lpthread\n");
diff --git a/lang/gcc48/patches/patch-fixincludes_fixincl.x b/lang/gcc48/patches/patch-fixincludes_fixincl.x
new file mode 100644
index 00000000000..dc21d9ad9da
--- /dev/null
+++ b/lang/gcc48/patches/patch-fixincludes_fixincl.x
@@ -0,0 +1,18 @@
+$NetBSD: patch-fixincludes_fixincl.x,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- fixincludes/fixincl.x.orig 2013-05-31 11:43:36.000000000 +0000
++++ fixincludes/fixincl.x
+@@ -6154,11 +6154,11 @@ static const char* apzSolaris_Complex_Cx
+ "-e", "/#if[ \t]*!defined(__cplusplus)/c\\\n\
+ #ifdef\t__cplusplus\\\n\
+ extern \"C\" {\\\n\
+-#endif",
++#endif\\\n",
+ "-e", "/#endif[ \t]*\\/\\* !defined(__cplusplus) \\*\\//c\\\n\
+ #ifdef\t__cplusplus\\\n\
+ }\\\n\
+-#endif",
++#endif\\\n",
+ (char*)NULL };
+
+ /* * * * * * * * * * * * * * * * * * * * * * * * * *
diff --git a/lang/gcc48/patches/patch-fixincludes_inclhack.def b/lang/gcc48/patches/patch-fixincludes_inclhack.def
new file mode 100644
index 00000000000..0f070ebc60b
--- /dev/null
+++ b/lang/gcc48/patches/patch-fixincludes_inclhack.def
@@ -0,0 +1,16 @@
+$NetBSD: patch-fixincludes_inclhack.def,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- fixincludes/inclhack.def.orig 2013-05-31 11:43:36.000000000 +0000
++++ fixincludes/inclhack.def
+@@ -3213,9 +3213,9 @@ fix = {
+ mach = "*-*-solaris2.*";
+ files = complex.h;
+ sed = "/#if[ \t]*!defined(__cplusplus)/c\\\n"
+- "#ifdef\t__cplusplus\\\nextern \"C\" {\\\n#endif";
++ "#ifdef\t__cplusplus\\\nextern \"C\" {\\\n#endif\\\n";
+ sed = "/#endif[ \t]*\\/\\* !defined(__cplusplus) \\*\\//c\\\n"
+- "#ifdef\t__cplusplus\\\n}\\\n#endif";
++ "#ifdef\t__cplusplus\\\n}\\\n#endif\\\n";
+ test_text = "#if !defined(__cplusplus)\n"
+ "#endif /* !defined(__cplusplus) */";
+ };
diff --git a/lang/gcc48/patches/patch-gcc_builtins.c b/lang/gcc48/patches/patch-gcc_builtins.c
new file mode 100644
index 00000000000..573156b1395
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_builtins.c
@@ -0,0 +1,56 @@
+$NetBSD: patch-gcc_builtins.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/builtins.c.orig 2014-05-09 10:16:14.000000000 +0000
++++ gcc/builtins.c
+@@ -114,9 +114,11 @@ static rtx expand_builtin_memcpy (tree,
+ static rtx expand_builtin_mempcpy (tree, rtx, enum machine_mode);
+ static rtx expand_builtin_mempcpy_args (tree, tree, tree, rtx,
+ enum machine_mode, int);
++#ifndef NO_UNSAFE_BUILTINS
+ static rtx expand_builtin_strcpy (tree, rtx);
+ static rtx expand_builtin_strcpy_args (tree, tree, rtx);
+ static rtx expand_builtin_stpcpy (tree, rtx, enum machine_mode);
++#endif
+ static rtx expand_builtin_strncpy (tree, rtx);
+ static rtx builtin_memset_gen_str (void *, HOST_WIDE_INT, enum machine_mode);
+ static rtx expand_builtin_memset (tree, rtx, enum machine_mode);
+@@ -3228,6 +3230,7 @@ expand_builtin_mempcpy_args (tree dest,
+ # define CODE_FOR_movstr CODE_FOR_nothing
+ #endif
+
++#ifndef NO_UNSAFE_BUILTINS
+ /* Expand into a movstr instruction, if one is available. Return NULL_RTX if
+ we failed, the caller should emit a normal call, otherwise try to
+ get the result in TARGET, if convenient. If ENDP is 0 return the
+@@ -3378,6 +3381,7 @@ expand_builtin_stpcpy (tree exp, rtx tar
+ return expand_movstr (dst, src, target, /*endp=*/2);
+ }
+ }
++#endif
+
+ /* Callback routine for store_by_pieces. Read GET_MODE_BITSIZE (MODE)
+ bytes from constant string DATA + OFFSET and return it as target
+@@ -6174,9 +6178,11 @@ expand_builtin (tree exp, rtx target, rt
+ break;
+
+ case BUILT_IN_STRCPY:
++#ifndef NO_UNSAFE_BUILTINS
+ target = expand_builtin_strcpy (exp, target);
+ if (target)
+ return target;
++#endif
+ break;
+
+ case BUILT_IN_STRNCPY:
+@@ -6186,9 +6192,11 @@ expand_builtin (tree exp, rtx target, rt
+ break;
+
+ case BUILT_IN_STPCPY:
++#ifndef NO_UNSAFE_BUILTINS
+ target = expand_builtin_stpcpy (exp, target, mode);
+ if (target)
+ return target;
++#endif
+ break;
+
+ case BUILT_IN_MEMCPY:
diff --git a/lang/gcc48/patches/patch-gcc_c-family_c-format.c b/lang/gcc48/patches/patch-gcc_c-family_c-format.c
new file mode 100644
index 00000000000..a5310b910ca
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_c-family_c-format.c
@@ -0,0 +1,108 @@
+$NetBSD: patch-gcc_c-family_c-format.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/c-family/c-format.c.orig 2013-01-10 20:38:27.000000000 +0000
++++ gcc/c-family/c-format.c
+@@ -38,6 +38,7 @@ along with GCC; see the file COPYING3.
+ format_type_error. Target-specific format types do not have
+ matching enum values. */
+ enum format_type { printf_format_type, asm_fprintf_format_type,
++ kprintf_format_type, syslog_format_type,
+ gcc_diag_format_type, gcc_tdiag_format_type,
+ gcc_cdiag_format_type,
+ gcc_cxxdiag_format_type, gcc_gfc_format_type,
+@@ -51,6 +52,7 @@ typedef struct function_format_info
+ unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+
++
+ static bool decode_format_attr (tree, function_format_info *, int);
+ static int decode_format_type (const char *);
+
+@@ -417,6 +419,15 @@ static const format_length_info gcc_diag
+ { NO_FMT, NO_FMT, 0 }
+ };
+
++static const format_length_info kprintf_length_specs[] =
++{
++ { "h", FMT_LEN_h, STD_C89, NO_FMT, 0 },
++ { "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C9L, 0 },
++ { "q", FMT_LEN_ll, STD_EXT, NO_FMT, 0 },
++ { "L", FMT_LEN_L, STD_C89, NO_FMT, 0 },
++ { NO_FMT, NO_FMT, 0 }
++};
++
+ /* The custom diagnostics all accept the same length specifiers. */
+ #define gcc_tdiag_length_specs gcc_diag_length_specs
+ #define gcc_cdiag_length_specs gcc_diag_length_specs
+@@ -597,7 +608,6 @@ static const format_flag_pair strfmon_fl
+ { 0, 0, 0, 0 }
+ };
+
+-
+ static const format_char_info print_char_table[] =
+ {
+ /* C89 conversion specifiers. */
+@@ -641,6 +651,44 @@ static const format_char_info asm_fprint
+ { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL }
+ };
+
++static const format_char_info kprint_char_table[] =
++{
++ /* C89 conversion specifiers. */
++ { "di", 0, STD_C89, { T89_I, BADLEN, T89_S, T89_L, T9L_LL, BADLEN, T99_SST, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +'I", "i", NULL },
++ { "oxX", 0, STD_C89, { T89_UI, BADLEN, T89_US, T89_UL, T9L_ULL, BADLEN, T99_ST, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0#", "i", NULL },
++ { "u", 0, STD_C89, { T89_UI, BADLEN, T89_US, T89_UL, T9L_ULL, BADLEN, T99_ST, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0'I", "i", NULL },
++ { "c", 0, STD_C89, { T89_I, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "", NULL },
++ { "s", 1, STD_C89, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR", NULL },
++ { "p", 1, STD_C89, { T89_V, BADLEN, BADLEN, T89_UL, T9L_LL, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0", "c", NULL },
++/* Kernel bitmap formatting */
++ { "b", 0, STD_C89, { T89_I, BADLEN, T89_S, T89_L, T9L_LL, BADLEN, T99_SST, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "", "", kprint_char_table + 8 },
++ { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL },
++/* Kernel bitmap formatting, second part - similar to "s" except for types[] */
++ { "b", 1, STD_C89, { T89_C, BADLEN, T89_C, T89_C, T89_C, BADLEN, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, NULL, "cR", NULL }
++};
++
++static const format_char_info syslog_char_table[] =
++{
++ /* C89 conversion specifiers. */
++ { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i", NULL },
++ { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i", NULL },
++ { "u", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0'I", "i", NULL },
++ { "fgG", 0, STD_C89, { T89_D, BADLEN, BADLEN, T99_D, BADLEN, T89_LD, BADLEN, BADLEN, BADLEN }, "-wp0 +#'", "", NULL },
++ { "eE", 0, STD_C89, { T89_D, BADLEN, BADLEN, T99_D, BADLEN, T89_LD, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "", NULL },
++ { "c", 0, STD_C89, { T89_I, BADLEN, BADLEN, T94_WI, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "", NULL },
++ { "s", 1, STD_C89, { T89_C, BADLEN, BADLEN, T94_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR", NULL },
++ { "p", 1, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "c", NULL },
++ { "n", 1, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, BADLEN, T99_SST, T99_PD, T99_IM }, "", "W", NULL },
++ /* C99 conversion specifiers. */
++ { "F", 0, STD_C99, { T99_D, BADLEN, BADLEN, T99_D, BADLEN, T99_LD, BADLEN, BADLEN, BADLEN }, "-wp0 +#'", "", NULL },
++ { "aA", 0, STD_C99, { T99_D, BADLEN, BADLEN, T99_D, BADLEN, T99_LD, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "", NULL },
++ /* X/Open conversion specifiers. */
++ { "C", 0, STD_EXT, { TEX_WI, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "", NULL },
++ { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R", NULL },
++ { "m", 0, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "", NULL },
++ { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL }
++};
++
+ static const format_char_info gcc_diag_char_table[] =
+ {
+ /* C89 conversion specifiers. */
+@@ -817,6 +865,18 @@ static const format_kind_info format_typ
+ 'w', 0, 'p', 0, 'L', 0,
+ NULL, NULL
+ },
++ { "kprintf", kprintf_length_specs, kprint_char_table, " +#0-'I", NULL,
++ printf_flag_specs, printf_flag_pairs,
++ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK,
++ 'w', 0, 'p', 0, 'L', 0,
++ &integer_type_node, &integer_type_node
++ },
++ { "syslog", printf_length_specs, syslog_char_table, " +#0-'I", NULL,
++ printf_flag_specs, printf_flag_pairs,
++ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK,
++ 'w', 0, 'p', 0, 'L', 0,
++ &integer_type_node, &integer_type_node
++ },
+ { "gcc_diag", gcc_diag_length_specs, gcc_diag_char_table, "q+#", NULL,
+ gcc_diag_flag_specs, gcc_diag_flag_pairs,
+ FMT_FLAG_ARG_CONVERT,
diff --git a/lang/gcc48/patches/patch-gcc_c-family_c.opt b/lang/gcc48/patches/patch-gcc_c-family_c.opt
new file mode 100644
index 00000000000..89efbe1fdfa
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_c-family_c.opt
@@ -0,0 +1,30 @@
+$NetBSD: patch-gcc_c-family_c.opt,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/c-family/c.opt.orig 2014-04-07 06:40:18.000000000 +0000
++++ gcc/c-family/c.opt
+@@ -618,13 +618,9 @@ C ObjC C++ ObjC++ Var(warn_pointer_arith
+ Warn about function pointer arithmetic
+
+ Wpointer-sign
+-C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall)
++C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wpedantic)
+ Warn when a pointer differs in signedness in an assignment
+
+-Wpointer-sign
+-C ObjC LangEnabledBy(C ObjC,Wpedantic)
+-;
+-
+ Wpointer-to-int-cast
+ C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning
+ Warn when a pointer is cast to an integer of a different size
+@@ -1172,6 +1168,10 @@ fthreadsafe-statics
+ C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
+ -fno-threadsafe-statics Do not generate thread-safe code for initializing local statics
+
++ftrampolines
++Common Var(flag_trampolines)
++Allows trampolines
++
+ funsigned-bitfields
+ C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
+ When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
diff --git a/lang/gcc48/patches/patch-gcc_c_c-decl.c b/lang/gcc48/patches/patch-gcc_c_c-decl.c
new file mode 100644
index 00000000000..47bd4f187b7
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_c_c-decl.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-gcc_c_c-decl.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/c/c-decl.c.orig 2014-04-10 07:54:08.000000000 +0000
++++ gcc/c/c-decl.c
+@@ -4859,6 +4859,8 @@ warn_variable_length_array (tree name, t
+ "variable length array is used");
+ }
+ }
++ if (warn_variable_decl)
++ warning (OPT_Wvariable_decl, "variable-sized array %qE", name);
+ }
+
+ /* Given declspecs and a declarator,
diff --git a/lang/gcc48/patches/patch-gcc_common.opt b/lang/gcc48/patches/patch-gcc_common.opt
new file mode 100644
index 00000000000..862543b74a1
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_common.opt
@@ -0,0 +1,99 @@
+$NetBSD: patch-gcc_common.opt,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/common.opt.orig 2013-03-14 09:13:36.000000000 +0000
++++ gcc/common.opt
+@@ -572,6 +572,10 @@ Wlarger-than=
+ Common RejectNegative Joined UInteger Warning
+ -Wlarger-than=<number> Warn if an object is larger than <number> bytes
+
++Wstack-larger-than-
++Common RejectNegative Joined UInteger
++-Wstack-larger-than-<number> Warn if a function is using more than <number> bytes of stack space for its local variables.
++
+ Wunsafe-loop-optimizations
+ Common Var(warn_unsafe_loop_optimizations) Warning
+ Warn if the loop cannot be optimized due to nontrivial assumptions.
+@@ -636,7 +640,7 @@ Common Var(warn_suggest_attribute_noretu
+ Warn about functions which might be candidates for __attribute__((noreturn))
+
+ Wsystem-headers
+-Common Var(warn_system_headers) Warning
++Common Var(warn_system_headers) Init(1) Warning
+ Do not suppress warnings from system headers
+
+ Wtrampolines
+@@ -691,6 +695,10 @@ Wunused-variable
+ Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
+ Warn when a variable is unused
+
++Wvariable-decl
++Common Var(warn_variable_decl)
++Warn about variable-sized declarations
++
+ Wcoverage-mismatch
+ Common Var(warn_coverage_mismatch) Init(1) Warning
+ Warn in case profiles in -fprofile-use do not match
+@@ -798,7 +806,7 @@ fabi-version=
+ Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
+
+ faggressive-loop-optimizations
+-Common Report Var(flag_aggressive_loop_optimizations) Optimization Init(1)
++Common Report Var(flag_aggressive_loop_optimizations) Optimization
+ Aggressively optimize loops using language constraints
+
+ falign-functions
+@@ -995,7 +1003,7 @@ Common Report Var(flag_delete_dead_excep
+ Delete dead instructions that may throw exceptions
+
+ fdelete-null-pointer-checks
+-Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
++Common Report Var(flag_delete_null_pointer_checks)
+ Delete useless null pointer checks
+
+ fdevirtualize
+@@ -1247,7 +1255,7 @@ Enable guessing of branch probabilities
+ ; On SVR4 targets, it also controls whether or not to emit a
+ ; string identifying the compiler.
+ fident
+-Common Report Var(flag_no_ident,0)
++Common Report Var(flag_no_ident,0) Init(1)
+ Process #ident directives
+
+ fif-conversion
+@@ -1599,7 +1607,7 @@ Common Report Var(flag_pic,2) Negative(f
+ Generate position-independent code if possible (large mode)
+
+ fPIE
+-Common Report Var(flag_pie,2) Negative(fpic)
++Common Report Var(flag_pie,2) Negative(fpic) Init(PIE_DEFAULT)
+ Generate position-independent code for executables if possible (large mode)
+
+ fpic
+@@ -1902,7 +1910,7 @@ Common RejectNegative Joined Var(common_
+ -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
+
+ fstack-protector
+-Common Report Var(flag_stack_protect, 1)
++Common Report Var(flag_stack_protect, 1) Init(-1)
+ Use propolice as a stack protection method
+
+ fstack-protector-all
+@@ -2307,7 +2315,7 @@ Common JoinedOrMissing Negative(gdwarf-)
+ Generate debug information in COFF format
+
+ gdwarf-
+-Common Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs)
++Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
+ Generate debug information in DWARF v2 (or later) format
+
+ ggdb
+@@ -2393,6 +2401,9 @@ Driver
+ nodefaultlibs
+ Driver
+
++nopie
++Driver
++
+ nostartfiles
+ Driver
+
diff --git a/lang/gcc48/patches/patch-gcc_config.gcc b/lang/gcc48/patches/patch-gcc_config.gcc
index 3f7fb7bbdab..fb40d27b482 100644
--- a/lang/gcc48/patches/patch-gcc_config.gcc
+++ b/lang/gcc48/patches/patch-gcc_config.gcc
@@ -1,80 +1,91 @@
-$NetBSD: patch-gcc_config.gcc,v 1.1 2013/04/01 21:06:16 wiz Exp $
+$NetBSD: patch-gcc_config.gcc,v 1.2 2014/05/31 13:06:25 ryoon Exp $
---- gcc/config.gcc.orig 2013-02-08 16:02:47.000000000 +0000
+--- gcc/config.gcc.orig 2014-05-06 15:29:04.000000000 +0000
+++ gcc/config.gcc
-@@ -621,6 +621,26 @@ case ${target} in
- # need_64bit_hwint=yes # system compiler has this for all arch!
- use_gcc_stdint=wrap
- ;;
-+*-*-dragonfly*)
-+ gas=yes
-+ gnu_ld=yes
-+ tmake_file="t-slibgcc"
-+ case ${enable_threads} in
-+ "" | yes | posix)
-+ thread_file='posix'
-+ ;;
-+ no | gnat | single)
-+ # Let these non-posix thread selections fall through if requested
+@@ -712,6 +712,14 @@ case ${target} in
+ default_use_cxa_atexit=yes
+ ;;
+ esac
++ case ${target} in
++ *-*-openbsd[0-3].*|*-*-openbsd4.[012])
++ # keep default of no cxa_atexit support for these older releases
+ ;;
+ *)
-+ echo 'Unknown thread configuration for DragonFly BSD'
-+ exit 1
++ default_use_cxa_atexit=yes
+ ;;
+ esac
-+ extra_options="$extra_options rpath.opt dragonfly.opt"
-+ default_use_cxa_atexit=yes
-+ use_gcc_stdint=wrap
-+ ;;
- *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
- extra_options="$extra_options gnu-user.opt"
- gas=yes
-@@ -680,6 +700,7 @@ case ${target} in
- target_has_targetcm=yes
;;
- *-*-netbsd*)
-+ use_gcc_stdint=wrap
- tmake_file="t-slibgcc"
- gas=yes
- gnu_ld=yes
-@@ -1214,6 +1235,14 @@ x86_64-*-rdos*)
- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rdos.h i386/rdos64.h"
- tmake_file="i386/t-i386elf t-svr4"
- ;;
-+i[34567]86-*-dragonfly*)
-+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
-+ tmake_file="${tmake_file} i386/t-crtstuff"
-+ ;;
-+x86_64-*-dragonfly*)
-+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/x86-64.h i386/dragonfly.h"
-+ tmake_file="${tmake_file} i386/t-crtstuff"
-+ ;;
- i[34567]86-*-freebsd*)
- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
+ *-*-openbsd*)
+ tmake_file="t-openbsd"
+@@ -851,7 +859,7 @@ alpha*-*-netbsd*)
+ alpha/elf.opt"
+ ;;
+ alpha*-*-openbsd*)
+- tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
++ tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT PIE_DEFAULT=2"
+ tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
+ extra_options="${extra_options} openbsd.opt alpha/elf.opt"
+ # default x-alpha is only appropriate for dec-osf.
+@@ -1070,6 +1078,7 @@ hppa*-*-linux*)
;;
-@@ -1221,12 +1250,14 @@ x86_64-*-freebsd*)
- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
+ hppa*-*-openbsd*)
+ target_cpu_default="MASK_PA_11"
++ tm_defines="${tm_defines} PIE_DEFAULT=1"
+ tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
+ pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
+ tmake_file="${tmake_file} pa/t-openbsd"
+@@ -1245,6 +1254,7 @@ i[34567]86-*-openbsd2.*|i[34567]86-*open
+ use_collect2=yes
;;
- i[34567]86-*-netbsdelf*)
-- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
-+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h netbsd-stdint.h"
- extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
-+ tmake_file="${tmake_file} i386/t-crtstuff"
+ i[34567]86-*-openbsd*)
++ tm_defines="${tm_defines} PIE_DEFAULT=1"
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
+ tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
+ extra_options="${extra_options} openbsd.opt"
+@@ -1252,6 +1262,7 @@ i[34567]86-*-openbsd*)
+ gnu_ld=yes
;;
- x86_64-*-netbsd*)
-- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
-+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h netbsd-stdint.h"
- extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
-+ tmake_file="${tmake_file} i386/t-crtstuff"
+ x86_64-*-openbsd*)
++ tm_defines="${tm_defines} PIE_DEFAULT=1"
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
+ tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
+ extra_options="${extra_options} openbsd.opt"
+@@ -1981,11 +1992,12 @@ picochip-*)
+ use_gcc_stdint=wrap
+ tmake_file="picochip/t-picochip t-pnt16-warn"
+ ;;
+-# port not yet contributed
+-#powerpc-*-openbsd*)
+-# tmake_file="${tmake_file} rs6000/t-fprules"
+-# extra_headers=
+-# ;;
++powerpc-*-openbsd*)
++ tm_defines="${tm_defines} PIE_DEFAULT=2"
++ tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-libpthread.h freebsd-spec.h rs6000/sysv4.h rs6000/openbsd.h"
++ tmake_file="${tmake_file} rs6000/t-openbsd"
++ extra_options="${extra_options} rs6000/sysv4.opt openbsd.opt"
++ ;;
+ powerpc-*-darwin*)
+ extra_options="${extra_options} rs6000/darwin.opt"
+ case ${target} in
+@@ -2545,6 +2557,7 @@ sparc64-*-netbsd*)
+ tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
;;
- i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
- tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h"
-@@ -3697,6 +3728,8 @@ case ${target} in
- ;;
- i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
- ;;
-+ i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
-+ ;;
- i[34567]86-*-freebsd* | x86_64-*-freebsd*)
- ;;
- ia64*-*-linux*)
+ sparc64-*-openbsd*)
++ tm_defines="${tm_defines} PIE_DEFAULT=2"
+ tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
+ tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
+ extra_options="${extra_options} openbsd.opt"
+@@ -2735,6 +2748,12 @@ case ${target} in
+ arch_without_sse2=yes
+ arch_without_64bit=yes
+ ;;
++ i386-*-openbsd*)
++ arch=i486
++ cpu=generic
++ arch_without_sse2=yes
++ arch_without_64bit=yes
++ ;;
+ i386-*-*)
+ arch=i386
+ cpu=i386
diff --git a/lang/gcc48/patches/patch-gcc_config_exec-stack.h b/lang/gcc48/patches/patch-gcc_config_exec-stack.h
new file mode 100644
index 00000000000..3349f5b6305
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_config_exec-stack.h
@@ -0,0 +1,45 @@
+$NetBSD: patch-gcc_config_exec-stack.h,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/config/exec-stack.h.orig 2014-05-24 12:02:13.000000000 +0000
++++ gcc/config/exec-stack.h
+@@ -0,0 +1,40 @@
++/* Enable stack execute around trampoline address.
++ Copyright (C) 2002 Free Software Foundation, Inc.
++
++This file is part of GNU CC.
++
++GNU CC 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 2, or (at your option)
++any later version.
++
++GNU CC 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 GNU CC; see the file COPYING. If not, write to
++the Free Software Foundation, 59 Temple Place - Suite 330,
++Boston, MA 02111-1307, USA. */
++
++#undef FINALIZE_TRAMPOLINE
++#define FINALIZE_TRAMPOLINE(TRAMP) \
++ emit_library_call(gen_rtx_SYMBOL_REF (Pmode, "__enable_execute_stack"), \
++ 0, VOIDmode, 1, memory_address (SImode, (TRAMP)), Pmode)
++
++#undef TRANSFER_FROM_TRAMPOLINE
++#define TRANSFER_FROM_TRAMPOLINE \
++extern void __enable_execute_stack (void *); \
++void \
++__enable_execute_stack (addr) \
++ void *addr; \
++{ \
++ long size = getpagesize (); \
++ long mask = ~(size-1); \
++ char *page = (char *) (((long) addr) & mask); \
++ char *end = (char *) ((((long) (addr + TRAMPOLINE_SIZE)) & mask) + size); \
++ \
++ if (mprotect (page, end - page, PROT_READ | PROT_WRITE | PROT_EXEC) < 0) \
++ perror ("mprotect of trampoline code"); \
++}
diff --git a/lang/gcc48/patches/patch-gcc_config_i386_i386.c b/lang/gcc48/patches/patch-gcc_config_i386_i386.c
new file mode 100644
index 00000000000..ab13d0eb2b8
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_config_i386_i386.c
@@ -0,0 +1,31 @@
+$NetBSD: patch-gcc_config_i386_i386.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/config/i386/i386.c.orig 2014-05-08 19:32:34.000000000 +0000
++++ gcc/config/i386/i386.c
+@@ -2265,6 +2265,8 @@ struct ix86_frame
+ HOST_WIDE_INT reg_save_offset;
+ HOST_WIDE_INT sse_reg_save_offset;
+
++ HOST_WIDE_INT local_size;
++
+ /* When save_regs_using_mov is set, emit prologue using
+ move instead of push instructions. */
+ bool save_regs_using_mov;
+@@ -8941,6 +8943,7 @@ ix86_compute_frame_layout (struct ix86_f
+ HOST_WIDE_INT size = get_frame_size ();
+ HOST_WIDE_INT to_allocate;
+
++ frame->local_size = size;
+ frame->nregs = ix86_nsaved_regs ();
+ frame->nsseregs = ix86_nsaved_sseregs ();
+
+@@ -10293,6 +10296,9 @@ ix86_expand_prologue (void)
+ m->fs.realigned = true;
+ }
+
++ if (warn_stack_larger_than && frame.local_size > stack_larger_than_size)
++ warning (OPT_Wstack_larger_than_, "stack usage is %ld bytes", frame.local_size);
++
+ int_registers_saved = (frame.nregs == 0);
+ sse_registers_saved = (frame.nsseregs == 0);
+
diff --git a/lang/gcc48/patches/patch-gcc_config_i386_openbsd.h b/lang/gcc48/patches/patch-gcc_config_i386_openbsd.h
new file mode 100644
index 00000000000..dca5c6a5648
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_config_i386_openbsd.h
@@ -0,0 +1,27 @@
+$NetBSD: patch-gcc_config_i386_openbsd.h,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/config/i386/openbsd.h.orig 2013-01-10 20:38:27.000000000 +0000
++++ gcc/config/i386/openbsd.h
+@@ -38,10 +38,10 @@ along with GCC; see the file COPYING3.
+
+ /* This must agree with <machine/ansi.h> */
+ #undef SIZE_TYPE
+-#define SIZE_TYPE "unsigned int"
++#define SIZE_TYPE "long unsigned int"
+
+ #undef PTRDIFF_TYPE
+-#define PTRDIFF_TYPE "int"
++#define PTRDIFF_TYPE "long int"
+
+ #undef WCHAR_TYPE
+ #define WCHAR_TYPE "int"
+@@ -49,6 +49,9 @@ along with GCC; see the file COPYING3.
+ #undef WCHAR_TYPE_SIZE
+ #define WCHAR_TYPE_SIZE 32
+
++#undef WINT_TYPE
++#define WINT_TYPE "int"
++
+ /* Assembler format: overall framework. */
+
+ #undef ASM_APP_ON
diff --git a/lang/gcc48/patches/patch-gcc_config_i386_openbsdelf.h b/lang/gcc48/patches/patch-gcc_config_i386_openbsdelf.h
new file mode 100644
index 00000000000..e5963f07ea9
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_config_i386_openbsdelf.h
@@ -0,0 +1,18 @@
+$NetBSD: patch-gcc_config_i386_openbsdelf.h,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/config/i386/openbsdelf.h.orig 2013-01-10 20:38:27.000000000 +0000
++++ gcc/config/i386/openbsdelf.h
+@@ -97,10 +97,13 @@ along with GCC; see the file COPYING3.
+ %{shared:-shared} %{R*} \
+ %{static:-Bstatic} \
+ %{!static:-Bdynamic} \
++ %{rdynamic:-export-dynamic} \
+ %{assert*} \
+ -dynamic-linker /usr/libexec/ld.so"
+
+ #undef STARTFILE_SPEC
++
++#define SUBTARGET32_DEFAULT_CPU "i486"
+ #define STARTFILE_SPEC "\
+ %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \
+ crtbegin%O%s} %{shared:crtbeginS%O%s}"
diff --git a/lang/gcc48/patches/patch-gcc_config_openbsd-libpthread.h b/lang/gcc48/patches/patch-gcc_config_openbsd-libpthread.h
new file mode 100644
index 00000000000..ba2ca623364
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_config_openbsd-libpthread.h
@@ -0,0 +1,11 @@
+$NetBSD: patch-gcc_config_openbsd-libpthread.h,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/config/openbsd-libpthread.h.orig 2013-01-10 20:38:27.000000000 +0000
++++ gcc/config/openbsd-libpthread.h
+@@ -18,5 +18,5 @@
+ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
+
+-#define OBSD_LIB_SPEC "%{!shared:%{pthread:-lpthread} -lc}"
++#define OBSD_LIB_SPEC "%{pthread:-lpthread%{!shared:%{p|pg:_p}}} %{!shared:-lc%{p:_p}%{!p:%{pg:_p}}}"
+
diff --git a/lang/gcc48/patches/patch-gcc_config_openbsd.h b/lang/gcc48/patches/patch-gcc_config_openbsd.h
new file mode 100644
index 00000000000..ff58c1db279
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_config_openbsd.h
@@ -0,0 +1,32 @@
+$NetBSD: patch-gcc_config_openbsd.h,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/config/openbsd.h.orig 2013-01-10 20:38:27.000000000 +0000
++++ gcc/config/openbsd.h
+@@ -108,9 +108,9 @@ while (0)
+ This two-stage defines makes it easy to pick that for targets that
+ have subspecs. */
+ #ifdef CPP_CPU_SPEC
+-#define OBSD_CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE} %{pthread:-D_POSIX_THREADS}"
++#define OBSD_CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
+ #else
+-#define OBSD_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_POSIX_THREADS}"
++#define OBSD_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
+ #endif
+
+ #undef LIB_SPEC
+@@ -283,5 +283,15 @@ do { \
+
+ /* Storage layout. */
+
++/*
++ * Disable the use of unsafe builtin functions, (strcat, strcpy, stpcpy),
++ * making them easier to spot in the object files.
++ */
++#define NO_UNSAFE_BUILTINS
++
++/* The system headers on OpenBSD are C++-aware. */
++#undef NO_IMPLICIT_EXTERN_C
++#define NO_IMPLICIT_EXTERN_C
++
+
+ #define HAVE_ENABLE_EXECUTE_STACK
diff --git a/lang/gcc48/patches/patch-gcc_config_openbsd.opt b/lang/gcc48/patches/patch-gcc_config_openbsd.opt
new file mode 100644
index 00000000000..09d0f4d578f
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_config_openbsd.opt
@@ -0,0 +1,12 @@
+$NetBSD: patch-gcc_config_openbsd.opt,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/config/openbsd.opt.orig 2013-01-10 20:38:27.000000000 +0000
++++ gcc/config/openbsd.opt
+@@ -32,4 +32,7 @@ Driver
+ pthread
+ Driver
+
++rdynamic
++Driver
++
+ ; This comment is to ensure we retain the blank line above.
diff --git a/lang/gcc48/patches/patch-gcc_configure b/lang/gcc48/patches/patch-gcc_configure
index 698340bdfa1..08709e81305 100644
--- a/lang/gcc48/patches/patch-gcc_configure
+++ b/lang/gcc48/patches/patch-gcc_configure
@@ -1,29 +1,16 @@
-$NetBSD: patch-gcc_configure,v 1.1 2013/04/01 21:06:17 wiz Exp $
+$NetBSD: patch-gcc_configure,v 1.2 2014/05/31 13:06:25 ryoon Exp $
Add dl_iterate_phdr detection for FreeBSD and DragonFly.
Detection for NetBSD and OpenBSD is added but commented out in case this
error handling mechanism is activated for these platforms later.
---- gcc/configure.orig 2012-03-08 13:54:54.000000000 +0000
+--- gcc/configure.orig 2014-04-28 10:05:29.000000000 +0000
+++ gcc/configure
-@@ -26802,6 +26802,20 @@ case "$target" in
- gcc_cv_target_dl_iterate_phdr=no
- fi
- ;;
-+ *-*-dragonfly* | *-*-freebsd*)
-+ 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
-+ gcc_cv_target_dl_iterate_phdr=no
-+ fi
-+ ;;
-+# *-*-netbsd* | *-*-openbsd*)
-+# if grep dl_iterate_phdr $target_header_dir/link_elf.h > /dev/null 2>&1; then
-+# gcc_cv_target_dl_iterate_phdr=yes
-+# else
-+# gcc_cv_target_dl_iterate_phdr=no
-+# fi
-+# ;;
- esac
+@@ -26864,6 +26864,7 @@ else
+ fi
- if test x$gcc_cv_target_dl_iterate_phdr = xyes; then
+ ;;
++ *-*-openbsd*) gcc_cv_libc_provides_ssp=yes ;;
+ *) gcc_cv_libc_provides_ssp=no ;;
+ esac
+ fi
diff --git a/lang/gcc48/patches/patch-gcc_defaults.h b/lang/gcc48/patches/patch-gcc_defaults.h
new file mode 100644
index 00000000000..3e70fdc3234
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_defaults.h
@@ -0,0 +1,15 @@
+$NetBSD: patch-gcc_defaults.h,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/defaults.h.orig 2013-01-10 20:38:27.000000000 +0000
++++ gcc/defaults.h
+@@ -1404,6 +1404,10 @@ see the files COPYING3 and COPYING.RUNTI
+ #define SWITCHABLE_TARGET 0
+ #endif
+
++#ifndef PIE_DEFAULT
++#define PIE_DEFAULT 0
++#endif
++
+ #endif /* GCC_INSN_FLAGS_H */
+
+ #endif /* ! GCC_DEFAULTS_H */
diff --git a/lang/gcc48/patches/patch-gcc_flags.h b/lang/gcc48/patches/patch-gcc_flags.h
new file mode 100644
index 00000000000..0c61ea430de
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_flags.h
@@ -0,0 +1,16 @@
+$NetBSD: patch-gcc_flags.h,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/flags.h.orig 2013-01-10 20:38:27.000000000 +0000
++++ gcc/flags.h
+@@ -25,6 +25,11 @@ along with GCC; see the file COPYING3.
+
+ #if !defined(IN_LIBGCC2) && !defined(IN_TARGET_LIBS) && !defined(IN_RTS)
+
++/* Nonzero means warn about any function whose stack usage is larger than N
++ bytes. The value N is `stack_larger_than_size'. */
++extern int warn_stack_larger_than;
++extern HOST_WIDE_INT stack_larger_than_size;
++
+ /* Names of debug_info_type, for error messages. */
+ extern const char *const debug_type_names[];
+
diff --git a/lang/gcc48/patches/patch-gcc_fortran_f95-lang.c b/lang/gcc48/patches/patch-gcc_fortran_f95-lang.c
index 26ce5a67d32..a5a77102ca8 100644
--- a/lang/gcc48/patches/patch-gcc_fortran_f95-lang.c
+++ b/lang/gcc48/patches/patch-gcc_fortran_f95-lang.c
@@ -1,4 +1,4 @@
-$NetBSD: patch-gcc_fortran_f95-lang.c,v 1.2 2014/01/14 19:32:52 wiz Exp $
+$NetBSD: patch-gcc_fortran_f95-lang.c,v 1.3 2014/05/31 13:06:25 ryoon Exp $
No NetBSD the 'cabs' and 'cabsf' functions are are __RENAME so that
thay have '__c99_' prefixes.
@@ -28,3 +28,15 @@ thay have '__c99_' prefixes.
gfc_define_builtin ("__builtin_copysignl", mfunc_longdouble[1],
BUILT_IN_COPYSIGNL, "copysignl",
+@@ -1069,6 +1078,11 @@ gfc_maybe_initialize_eh (void)
+ using_eh_for_cleanups ();
+ }
+
++const char *
++fname_as_string(int pretty_p __attribute__((__unused__)))
++{
++ return NULL;
++}
+
+ #include "gt-fortran-f95-lang.h"
+ #include "gtype-fortran.h"
diff --git a/lang/gcc48/patches/patch-gcc_gcc.c b/lang/gcc48/patches/patch-gcc_gcc.c
new file mode 100644
index 00000000000..b483c0853b1
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_gcc.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-gcc_gcc.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/gcc.c.orig 2014-03-23 11:30:57.000000000 +0000
++++ gcc/gcc.c
+@@ -661,7 +661,7 @@ proper position among the other output f
+
+ #ifndef LINK_PIE_SPEC
+ #ifdef HAVE_LD_PIE
+-#define LINK_PIE_SPEC "%{pie:-pie} "
++#define LINK_PIE_SPEC "%{pie:-pie} %{p|pg|nopie:-nopie} "
+ #else
+ #define LINK_PIE_SPEC "%{pie:} "
+ #endif
diff --git a/lang/gcc48/patches/patch-gcc_go_go-lang.c b/lang/gcc48/patches/patch-gcc_go_go-lang.c
new file mode 100644
index 00000000000..ccf79b25bc9
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_go_go-lang.c
@@ -0,0 +1,17 @@
+$NetBSD: patch-gcc_go_go-lang.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/go/go-lang.c.orig 2013-12-12 02:29:08.000000000 +0000
++++ gcc/go/go-lang.c
+@@ -457,6 +457,12 @@ go_localize_identifier (const char *iden
+ return identifier_to_locale (ident);
+ }
+
++const char *
++fname_as_string(int pretty_p __attribute__((__unused__)))
++{
++ return NULL;
++}
++
+ #undef LANG_HOOKS_NAME
+ #undef LANG_HOOKS_INIT
+ #undef LANG_HOOKS_OPTION_LANG_MASK
diff --git a/lang/gcc48/patches/patch-gcc_java_lang.c b/lang/gcc48/patches/patch-gcc_java_lang.c
new file mode 100644
index 00000000000..9ceaadb78e9
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_java_lang.c
@@ -0,0 +1,15 @@
+$NetBSD: patch-gcc_java_lang.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/java/lang.c.orig 2013-01-10 20:38:27.000000000 +0000
++++ gcc/java/lang.c
+@@ -920,4 +920,10 @@ java_eh_personality (void)
+ return java_eh_personality_decl;
+ }
+
++const char *
++fname_as_string(int pretty_p __attribute__((__unused__)))
++{
++ return NULL;
++}
++
+ #include "gt-java-lang.h"
diff --git a/lang/gcc48/patches/patch-gcc_lto_lto.c b/lang/gcc48/patches/patch-gcc_lto_lto.c
new file mode 100644
index 00000000000..c0532730c4f
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_lto_lto.c
@@ -0,0 +1,17 @@
+$NetBSD: patch-gcc_lto_lto.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/lto/lto.c.orig 2013-02-07 18:01:40.000000000 +0000
++++ gcc/lto/lto.c
+@@ -3102,6 +3102,12 @@ read_cgraph_and_symbols (unsigned nfiles
+ all_file_decl_data = NULL;
+ }
+
++const char *
++fname_as_string(int pretty_p __attribute__((__unused__)))
++{
++ return NULL;
++}
++
+
+ /* Materialize all the bodies for all the nodes in the callgraph. */
+
diff --git a/lang/gcc48/patches/patch-gcc_opts.c b/lang/gcc48/patches/patch-gcc_opts.c
new file mode 100644
index 00000000000..503d81ba216
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_opts.c
@@ -0,0 +1,52 @@
+$NetBSD: patch-gcc_opts.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/opts.c.orig 2014-05-04 07:05:29.000000000 +0000
++++ gcc/opts.c
+@@ -49,6 +49,9 @@ const char *const debug_type_names[] =
+ ((strncmp (prefix, string, sizeof prefix - 1) == 0) \
+ ? ((string += sizeof prefix - 1), 1) : 0)
+
++int warn_stack_larger_than;
++HOST_WIDE_INT stack_larger_than_size;
++
+ void
+ set_struct_debug_option (struct gcc_options *opts, location_t loc,
+ const char *spec)
+@@ -468,8 +471,6 @@ static const struct default_options defa
+ { OPT_LEVELS_2_PLUS, OPT_fschedule_insns2, NULL, 1 },
+ #endif
+ { OPT_LEVELS_2_PLUS, OPT_fregmove, NULL, 1 },
+- { OPT_LEVELS_2_PLUS, OPT_fstrict_aliasing, NULL, 1 },
+- { OPT_LEVELS_2_PLUS, OPT_fstrict_overflow, NULL, 1 },
+ { OPT_LEVELS_2_PLUS, OPT_freorder_blocks, NULL, 1 },
+ { OPT_LEVELS_2_PLUS, OPT_freorder_functions, NULL, 1 },
+ { OPT_LEVELS_2_PLUS, OPT_ftree_vrp, NULL, 1 },
+@@ -488,6 +489,7 @@ static const struct default_options defa
+ { OPT_LEVELS_2_PLUS, OPT_fhoist_adjacent_loads, NULL, 1 },
+
+ /* -O3 optimizations. */
++ { OPT_LEVELS_3_PLUS, OPT_fstrict_aliasing, NULL, 1 },
+ { OPT_LEVELS_3_PLUS, OPT_ftree_loop_distribute_patterns, NULL, 1 },
+ { OPT_LEVELS_3_PLUS, OPT_fpredictive_commoning, NULL, 1 },
+ /* Inlining of functions reducing size is a good idea with -Os
+@@ -701,6 +703,8 @@ finish_options (struct gcc_options *opts
+
+ if (!opts->x_flag_opts_finished)
+ {
++ if (opts->x_flag_pic || opts->x_profile_flag)
++ opts->x_flag_pie = 0;
+ if (opts->x_flag_pie)
+ opts->x_flag_pic = opts->x_flag_pie;
+ if (opts->x_flag_pic && !opts->x_flag_pie)
+@@ -1437,6 +1441,11 @@ common_handle_option (struct gcc_options
+ opts->x_warn_frame_larger_than = value != -1;
+ break;
+
++ case OPT_Wstack_larger_than_:
++ stack_larger_than_size = value;
++ warn_stack_larger_than = stack_larger_than_size != -1;
++ break;
++
+ case OPT_Wstack_usage_:
+ opts->x_warn_stack_usage = value;
+ opts->x_flag_stack_usage_info = value != -1;
diff --git a/lang/gcc48/patches/patch-gcc_testsuite_gcc.dg_format_format.h b/lang/gcc48/patches/patch-gcc_testsuite_gcc.dg_format_format.h
new file mode 100644
index 00000000000..0c9265f08eb
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_testsuite_gcc.dg_format_format.h
@@ -0,0 +1,19 @@
+$NetBSD: patch-gcc_testsuite_gcc.dg_format_format.h,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/testsuite/gcc.dg/format/format.h.orig 2008-03-20 08:24:42.000000000 +0000
++++ gcc/testsuite/gcc.dg/format/format.h
+@@ -35,12 +35,14 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+
++#ifndef _WINT_T_DEFINED_
+ #ifndef _WINT_T
+ #ifndef __WINT_TYPE__
+ #define __WINT_TYPE__ unsigned int
+ #endif
+ typedef __WINT_TYPE__ wint_t;
+ #endif
++#endif
+
+ #ifdef _WIN64
+ /* Kludges to get types corresponding to size_t and ptrdiff_t. */
diff --git a/lang/gcc48/patches/patch-gcc_toplev.c b/lang/gcc48/patches/patch-gcc_toplev.c
new file mode 100644
index 00000000000..8fe28cedb50
--- /dev/null
+++ b/lang/gcc48/patches/patch-gcc_toplev.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-gcc_toplev.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- gcc/toplev.c.orig 2013-03-28 08:29:51.000000000 +0000
++++ gcc/toplev.c
+@@ -1519,6 +1519,8 @@ process_options (void)
+
+ /* Targets must be able to place spill slots at lower addresses. If the
+ target already uses a soft frame pointer, the transition is trivial. */
++ if (flag_stack_protect == -1)
++ flag_stack_protect = FRAME_GROWS_DOWNWARD ? 1 : 0;
+ if (!FRAME_GROWS_DOWNWARD && flag_stack_protect)
+ {
+ warning (0, "-fstack-protector not supported for this target");
diff --git a/lang/gcc48/patches/patch-libffi_configure b/lang/gcc48/patches/patch-libffi_configure
new file mode 100644
index 00000000000..42542ca308a
--- /dev/null
+++ b/lang/gcc48/patches/patch-libffi_configure
@@ -0,0 +1,33 @@
+$NetBSD: patch-libffi_configure,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- libffi/configure.orig 2014-05-22 09:13:48.000000000 +0000
++++ libffi/configure
+@@ -10329,7 +10329,7 @@ openbsd*)
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
++ #finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+@@ -11493,6 +11493,9 @@ case "$host" in
+ hppa*-*-linux* | parisc*-*-linux* | hppa*-*-openbsd*)
+ TARGET=PA_LINUX; TARGETDIR=pa
+ ;;
++ hppa-*-openbsd*)
++ TARGET=PA_LINUX; TARGETDIR=pa
++ ;;
+ hppa*64-*-hpux*)
+ TARGET=PA64_HPUX; TARGETDIR=pa
+ ;;
+@@ -11550,6 +11553,9 @@ case "$host" in
+ TARGET=POWERPC; TARGETDIR=powerpc
+ HAVE_LONG_DOUBLE_VARIANT=1
+ ;;
++ powerpc-*-openbsd*)
++ TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
++ ;;
+ powerpc-*-amigaos*)
+ TARGET=POWERPC; TARGETDIR=powerpc
+ ;;
diff --git a/lang/gcc48/patches/patch-libffi_include_Makefile.in b/lang/gcc48/patches/patch-libffi_include_Makefile.in
new file mode 100644
index 00000000000..edf9271ab63
--- /dev/null
+++ b/lang/gcc48/patches/patch-libffi_include_Makefile.in
@@ -0,0 +1,13 @@
+$NetBSD: patch-libffi_include_Makefile.in,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- libffi/include/Makefile.in.orig 2014-04-04 14:24:25.000000000 +0000
++++ libffi/include/Makefile.in
+@@ -384,7 +384,7 @@ info: info-am
+
+ info-am:
+
+-install-data-am: install-toollibffiHEADERS
++install-data-am:
+
+ install-dvi: install-dvi-am
+
diff --git a/lang/gcc48/patches/patch-libgcc_Makefile.in b/lang/gcc48/patches/patch-libgcc_Makefile.in
new file mode 100644
index 00000000000..9b4b6c98cec
--- /dev/null
+++ b/lang/gcc48/patches/patch-libgcc_Makefile.in
@@ -0,0 +1,26 @@
+$NetBSD: patch-libgcc_Makefile.in,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- libgcc/Makefile.in.orig 2013-02-04 19:06:20.000000000 +0000
++++ libgcc/Makefile.in
+@@ -378,7 +378,7 @@ ASM_HIDDEN_OP = @asm_hidden_op@
+
+ define gen-hide-list
+ $(NM) -pg $< | \
+- $(AWK) 'NF == 3 && $$2 !~ /^[UN]$$/ && $$3 !~ /.*_compat/ \
++ $(AWK) 'NF == 3 && $$2 !~ /^[UNF]$$/ && $$3 !~ /.*_compat/ \
+ && $$3 !~ /.*@.*/ \
+ { print "\t$(ASM_HIDDEN_OP)", $$3 }' > $@T
+ mv -f $@T $@
+@@ -1065,10 +1065,10 @@ install-shared:
+ install-leaf: $(install-shared) $(install-libunwind)
+ $(mkinstalldirs) $(DESTDIR)$(inst_libdir)
+
+- $(INSTALL_DATA) libgcc.a $(DESTDIR)$(inst_libdir)/
++ cp libgcc.a $(DESTDIR)$(inst_libdir)/
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc.a
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc.a
+- $(INSTALL_DATA) libgcov.a $(DESTDIR)$(inst_libdir)/
++ cp libgcov.a $(DESTDIR)$(inst_libdir)/
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcov.a
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a
+
diff --git a/lang/gcc48/patches/patch-libgcc_config.host b/lang/gcc48/patches/patch-libgcc_config.host
index 222d2577356..118d8d68c0c 100644
--- a/lang/gcc48/patches/patch-libgcc_config.host
+++ b/lang/gcc48/patches/patch-libgcc_config.host
@@ -1,6 +1,6 @@
-$NetBSD: patch-libgcc_config.host,v 1.1 2013/04/01 21:06:17 wiz Exp $
+$NetBSD: patch-libgcc_config.host,v 1.2 2014/05/31 13:06:25 ryoon Exp $
---- libgcc/config.host.orig 2013-02-04 19:06:20.000000000 +0000
+--- libgcc/config.host.orig 2014-03-20 16:12:30.000000000 +0000
+++ libgcc/config.host
@@ -176,6 +176,11 @@ case ${host} in
tmake_file="$tmake_file t-darwin ${cpu_type}/t-darwin t-libgcc-pic t-slibgcc-darwin"
@@ -39,11 +39,3 @@ $NetBSD: patch-libgcc_config.host,v 1.1 2013/04/01 21:06:17 wiz Exp $
i[34567]86-*-freebsd*)
tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
;;
-@@ -1144,6 +1158,7 @@ i[34567]86-*-darwin* | x86_64-*-darwin*
- i[34567]86-*-gnu* | \
- i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]* | \
- i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw* | \
-+ i[34567]86-*-dragonfly* | x86_64-*-dragonfly* | \
- i[34567]86-*-freebsd* | x86_64-*-freebsd* | \
- i[34567]86-*-openbsd* | x86_64-*-openbsd*)
- tmake_file="${tmake_file} t-softfp-tf"
diff --git a/lang/gcc48/patches/patch-libgcc_libgcc2.c b/lang/gcc48/patches/patch-libgcc_libgcc2.c
new file mode 100644
index 00000000000..2ca89dc2b21
--- /dev/null
+++ b/lang/gcc48/patches/patch-libgcc_libgcc2.c
@@ -0,0 +1,12 @@
+$NetBSD: patch-libgcc_libgcc2.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- libgcc/libgcc2.c.orig 2013-02-04 19:06:20.000000000 +0000
++++ libgcc/libgcc2.c
+@@ -2117,6 +2117,7 @@ mprotect (char *addr, int len, int prot)
+ #endif /* WINNT && ! __CYGWIN__ */
+
+ #ifdef TRANSFER_FROM_TRAMPOLINE
++#include <sys/mman.h>
+ TRANSFER_FROM_TRAMPOLINE
+ #endif
+ #endif /* L_trampoline */
diff --git a/lang/gcc48/patches/patch-libgfortran_configure b/lang/gcc48/patches/patch-libgfortran_configure
new file mode 100644
index 00000000000..7275e921b63
--- /dev/null
+++ b/lang/gcc48/patches/patch-libgfortran_configure
@@ -0,0 +1,22 @@
+$NetBSD: patch-libgfortran_configure,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- libgfortran/configure.orig 2014-05-22 09:13:48.000000000 +0000
++++ libgfortran/configure
+@@ -11746,7 +11746,7 @@ openbsd*)
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
++ #finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+@@ -15369,7 +15369,7 @@ openbsd*)
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
++ #finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
diff --git a/lang/gcc48/patches/patch-libgo_config_libtool.m4 b/lang/gcc48/patches/patch-libgo_config_libtool.m4
new file mode 100644
index 00000000000..c352a4af13c
--- /dev/null
+++ b/lang/gcc48/patches/patch-libgo_config_libtool.m4
@@ -0,0 +1,13 @@
+$NetBSD: patch-libgo_config_libtool.m4,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- libgo/config/libtool.m4.orig 2014-04-04 13:53:39.000000000 +0000
++++ libgo/config/libtool.m4
+@@ -2552,7 +2552,7 @@ openbsd*)
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
++ #finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
diff --git a/lang/gcc48/patches/patch-libgomp_configure b/lang/gcc48/patches/patch-libgomp_configure
new file mode 100644
index 00000000000..a34db5b4533
--- /dev/null
+++ b/lang/gcc48/patches/patch-libgomp_configure
@@ -0,0 +1,22 @@
+$NetBSD: patch-libgomp_configure,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- libgomp/configure.orig 2014-05-22 09:13:48.000000000 +0000
++++ libgomp/configure
+@@ -10516,7 +10516,7 @@ openbsd*)
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
++ #finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+@@ -14150,7 +14150,7 @@ openbsd*)
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
++ #finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
diff --git a/lang/gcc48/patches/patch-libiberty_cp-demangle.c b/lang/gcc48/patches/patch-libiberty_cp-demangle.c
new file mode 100644
index 00000000000..a59f0077df7
--- /dev/null
+++ b/lang/gcc48/patches/patch-libiberty_cp-demangle.c
@@ -0,0 +1,22 @@
+$NetBSD: patch-libiberty_cp-demangle.c,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- libiberty/cp-demangle.c.orig 2013-04-03 17:25:03.000000000 +0000
++++ libiberty/cp-demangle.c
+@@ -3736,7 +3736,7 @@ static inline void
+ d_append_num (struct d_print_info *dpi, long l)
+ {
+ char buf[25];
+- sprintf (buf,"%ld", l);
++ snprintf (buf, 25, "%ld", l);
+ d_append_string (dpi, buf);
+ }
+
+@@ -5561,7 +5561,7 @@ __cxa_demangle (const char *mangled_name
+ {
+ if (strlen (demangled) < *length)
+ {
+- strcpy (output_buffer, demangled);
++ strlcpy (output_buffer, demangled, *length);
+ free (demangled);
+ demangled = output_buffer;
+ }
diff --git a/lang/gcc48/patches/patch-libjava_configure b/lang/gcc48/patches/patch-libjava_configure
index 874233b7dd6..cd9dd64989d 100644
--- a/lang/gcc48/patches/patch-libjava_configure
+++ b/lang/gcc48/patches/patch-libjava_configure
@@ -1,4 +1,4 @@
-$NetBSD: patch-libjava_configure,v 1.2 2014/04/22 20:46:41 ryoon Exp $
+$NetBSD: patch-libjava_configure,v 1.3 2014/05/31 13:06:25 ryoon Exp $
Detect gethostbyname_r properly.
@@ -6,29 +6,14 @@ Avoid a reference to the wrapped make in the pkgsrc work directory from
showing up in an installed file.
See: libjava/contrib/aotcompile.py.in
---- libjava/configure.orig 2013-06-20 13:12:44.000000000 +0000
+--- libjava/configure.orig 2014-04-04 13:53:39.000000000 +0000
+++ libjava/configure
-@@ -22014,6 +22014,14 @@ do :
- if test "x$ac_cv_func_gethostbyname_r" = x""yes; then :
- cat >>confdefs.h <<_ACEOF
- #define HAVE_GETHOSTBYNAME_R 1
-+#include <netdb.h>
-+int
-+main ()
-+{
-+gethostbyname_r("", 0, 0);
-+;
-+return 0;
-+}
- _ACEOF
-
-
-@@ -24867,7 +24875,7 @@ $as_echo "Python modules dir: ${python_m
-
-
- # needed for aot-compile-rpm
--MAKE=`which make`
-+MAKE=${PKGSRC_MAKE}
-
-
- # Check whether --enable-aot-compile-rpm was given.
+@@ -20760,7 +20760,7 @@ case "$THREADS" in
+ # support for weak references to pthread_* functions ala gthr.h API.
+ THREADSPEC='%{!pthread: %{!shared: %eUnder this configuration, the user must provide -pthread when linking.}}'
+ ;;
+- *-*-freebsd*)
++ *-*-freebsd* | *-*-openbsd*)
+ # FreeBSD >=5.3 implements a model much closer to other modern UNIX
+ # systems which support threads and -lpthread.
+ THREADLDFLAGS=-pthread
diff --git a/lang/gcc48/patches/patch-libjava_configure.host b/lang/gcc48/patches/patch-libjava_configure.host
new file mode 100644
index 00000000000..fb1fc0f88ca
--- /dev/null
+++ b/lang/gcc48/patches/patch-libjava_configure.host
@@ -0,0 +1,17 @@
+$NetBSD: patch-libjava_configure.host,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- libjava/configure.host.orig 2012-03-14 16:33:37.000000000 +0000
++++ libjava/configure.host
+@@ -325,6 +325,12 @@ EOF
+ i?86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
+ can_unwind_signal=yes
+ ;;
++ *-*-openbsd*)
++ enable_hash_synchronization_default=no
++ libgcj_flags="${libgcj_flags} -fno-omit-frame-pointer"
++ can_unwind_signal=no
++ slow_pthread_self=no
++ ;;
+ *-*-freebsd*)
+ slow_pthread_self=
+ ;;
diff --git a/lang/gcc48/patches/patch-libjava_libltdl_configure b/lang/gcc48/patches/patch-libjava_libltdl_configure
new file mode 100644
index 00000000000..536a3186371
--- /dev/null
+++ b/lang/gcc48/patches/patch-libjava_libltdl_configure
@@ -0,0 +1,14 @@
+$NetBSD: patch-libjava_libltdl_configure,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- libjava/libltdl/configure.orig 2014-05-22 09:13:48.000000000 +0000
++++ libjava/libltdl/configure
+@@ -6897,9 +6897,6 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -
+ with_gnu_ld=no
+ fi
+ ;;
+- openbsd*)
+- with_gnu_ld=no
+- ;;
+ esac
+
+ ld_shlibs=yes
diff --git a/lang/gcc48/patches/patch-libjava_prims.cc b/lang/gcc48/patches/patch-libjava_prims.cc
new file mode 100644
index 00000000000..c0222184706
--- /dev/null
+++ b/lang/gcc48/patches/patch-libjava_prims.cc
@@ -0,0 +1,13 @@
+$NetBSD: patch-libjava_prims.cc,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- libjava/prims.cc.orig 2011-11-24 07:18:16.000000000 +0000
++++ libjava/prims.cc
+@@ -1143,7 +1143,7 @@ namespace gcj
+ bool verifyClasses = true;
+
+ // Thread stack size specified by the -Xss runtime argument.
+- size_t stack_size = 0;
++ size_t stack_size = 768*1024;
+
+ // Start time of the VM
+ jlong startTime = 0;
diff --git a/lang/gcc48/patches/patch-libmudflap_mf-runtime.h b/lang/gcc48/patches/patch-libmudflap_mf-runtime.h
new file mode 100644
index 00000000000..bf473677f42
--- /dev/null
+++ b/lang/gcc48/patches/patch-libmudflap_mf-runtime.h
@@ -0,0 +1,16 @@
+$NetBSD: patch-libmudflap_mf-runtime.h,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- libmudflap/mf-runtime.h.orig 2013-02-03 17:48:05.000000000 +0000
++++ libmudflap/mf-runtime.h
+@@ -31,7 +31,11 @@ see the files COPYING3 and COPYING.RUNTI
+ #define MF_RUNTIME_H
+
+ typedef void *__mf_ptr_t;
++#if defined(__OpenBSD__)
++typedef unsigned long __mf_uintptr_t __attribute__ ((__mode__ (__pointer__)));
++#else
+ typedef unsigned int __mf_uintptr_t __attribute__ ((__mode__ (__pointer__)));
++#endif
+ typedef __SIZE_TYPE__ __mf_size_t;
+
+ /* Global declarations used by instrumentation. When _MUDFLAP is
diff --git a/lang/gcc48/patches/patch-libstdc++-v3_config_os_bsd_openbsd_os__defines.h b/lang/gcc48/patches/patch-libstdc++-v3_config_os_bsd_openbsd_os__defines.h
new file mode 100644
index 00000000000..2d04d47f91c
--- /dev/null
+++ b/lang/gcc48/patches/patch-libstdc++-v3_config_os_bsd_openbsd_os__defines.h
@@ -0,0 +1,11 @@
+$NetBSD: patch-libstdc++-v3_config_os_bsd_openbsd_os__defines.h,v 1.1 2014/05/31 13:06:25 ryoon Exp $
+
+--- libstdc++-v3/config/os/bsd/openbsd/os_defines.h.orig 2013-02-03 17:54:05.000000000 +0000
++++ libstdc++-v3/config/os/bsd/openbsd/os_defines.h
+@@ -38,4 +38,6 @@
+ #define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC _GLIBCXX_USE_C99_DYNAMIC
+ #define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC _GLIBCXX_USE_C99_DYNAMIC
+
++#undef _GLIBCXX_HAVE_GETS
++
+ #endif
diff --git a/lang/gcc48/version.mk b/lang/gcc48/version.mk
index 8dc0d46baf8..2a09eedac76 100644
--- a/lang/gcc48/version.mk
+++ b/lang/gcc48/version.mk
@@ -1,2 +1,2 @@
-# $NetBSD: version.mk,v 1.6 2013/10/21 20:26:19 adam Exp $
-GCC48_DIST_VERSION:=4.8.2
+# $NetBSD: version.mk,v 1.7 2014/05/31 13:06:25 ryoon Exp $
+GCC48_DIST_VERSION:=4.8.3