From 415d114f17e21e03e955212d4c67237e0f53b55d Mon Sep 17 00:00:00 2001 From: ryoon Date: Thu, 16 Jul 2015 12:03:36 +0000 Subject: Import gcc5-5.1.0 as lang/gcc5. The GNU Compiler Collection (GCC) includes front ends for C, C++, Objective-C, Fortran, Java, and Go, as well as libraries for these languages (libstdc++, libgcj,...). This package provides the snapshot release of version 5. On NetBSD a working cabsl function must be present in libm to build gfortran. This has been added to -current on 2014/10/10 and to NetBSD7 on 2014/10/13. --- lang/gcc5/DESCR | 6 + lang/gcc5/Makefile | 174 ++++++++++++++++++++ lang/gcc5/PLIST.java | 42 +++++ lang/gcc5/buildlink3.mk | 35 ++++ lang/gcc5/distinfo | 38 +++++ lang/gcc5/options.mk | 181 +++++++++++++++++++++ lang/gcc5/patches/patch-gcc_Makefile.in | 15 ++ lang/gcc5/patches/patch-gcc_config.gcc | 39 +++++ lang/gcc5/patches/patch-gcc_config_netbsd-protos.h | 34 ++++ lang/gcc5/patches/patch-gcc_config_netbsd-stdint.h | 63 +++++++ lang/gcc5/patches/patch-gcc_config_netbsd.c | 127 +++++++++++++++ lang/gcc5/patches/patch-gcc_config_netbsd.h | 24 +++ lang/gcc5/patches/patch-gcc_config_t-netbsd | 28 ++++ lang/gcc5/patches/patch-gcc_config_x-netbsd | 12 ++ lang/gcc5/patches/patch-gcc_configure | 18 ++ lang/gcc5/patches/patch-gcc_ggc-common.c | 71 ++++++++ lang/gcc5/patches/patch-gcc_lto_lto.c | 19 +++ lang/gcc5/patches/patch-gcc_system.h | 27 +++ lang/gcc5/patches/patch-libcilkrts_configure | 13 ++ .../patches/patch-libcilkrts_runtime_os-unix.c | 33 ++++ lang/gcc5/patches/patch-libdecnumber_decNumber.c | 13 ++ lang/gcc5/patches/patch-libffi_configure | 13 ++ .../patch-libffi_testsuite_libffi.call_float2.c | 13 ++ lang/gcc5/patches/patch-libgcc_crtstuff.c | 14 ++ .../gcc5/patches/patch-libgcc_unwind-dw2-fde-dip.c | 13 ++ lang/gcc5/patches/patch-libgfortran_configure | 13 ++ lang/gcc5/patches/patch-libgo_Makefile.in | 17 ++ lang/gcc5/patches/patch-libgo_mksysinfo.sh | 13 ++ lang/gcc5/patches/patch-libjava_boehm.cc | 22 +++ lang/gcc5/patches/patch-libjava_configure | 17 ++ .../patch-libjava_contrib_rebuild-gcj-db.in | 29 ++++ lang/gcc5/patches/patch-libsanitizer_configure.tgt | 13 ++ ...libstdc++-v3_config_os_bsd_netbsd_ctype__base.h | 37 +++++ ..._config_os_bsd_netbsd_ctype__configure__char.cc | 57 +++++++ ...bstdc++-v3_config_os_bsd_netbsd_ctype__inline.h | 13 ++ .../patch-libstdc++-v3_libsupc++_unwind-cxx.h | 12 ++ lang/gcc5/version.mk | 2 + 37 files changed, 1310 insertions(+) create mode 100644 lang/gcc5/DESCR create mode 100644 lang/gcc5/Makefile create mode 100644 lang/gcc5/PLIST.java create mode 100644 lang/gcc5/buildlink3.mk create mode 100644 lang/gcc5/distinfo create mode 100644 lang/gcc5/options.mk create mode 100644 lang/gcc5/patches/patch-gcc_Makefile.in create mode 100644 lang/gcc5/patches/patch-gcc_config.gcc create mode 100644 lang/gcc5/patches/patch-gcc_config_netbsd-protos.h create mode 100644 lang/gcc5/patches/patch-gcc_config_netbsd-stdint.h create mode 100644 lang/gcc5/patches/patch-gcc_config_netbsd.c create mode 100644 lang/gcc5/patches/patch-gcc_config_netbsd.h create mode 100644 lang/gcc5/patches/patch-gcc_config_t-netbsd create mode 100644 lang/gcc5/patches/patch-gcc_config_x-netbsd create mode 100644 lang/gcc5/patches/patch-gcc_configure create mode 100644 lang/gcc5/patches/patch-gcc_ggc-common.c create mode 100644 lang/gcc5/patches/patch-gcc_lto_lto.c create mode 100644 lang/gcc5/patches/patch-gcc_system.h create mode 100644 lang/gcc5/patches/patch-libcilkrts_configure create mode 100644 lang/gcc5/patches/patch-libcilkrts_runtime_os-unix.c create mode 100644 lang/gcc5/patches/patch-libdecnumber_decNumber.c create mode 100644 lang/gcc5/patches/patch-libffi_configure create mode 100644 lang/gcc5/patches/patch-libffi_testsuite_libffi.call_float2.c create mode 100644 lang/gcc5/patches/patch-libgcc_crtstuff.c create mode 100644 lang/gcc5/patches/patch-libgcc_unwind-dw2-fde-dip.c create mode 100644 lang/gcc5/patches/patch-libgfortran_configure create mode 100644 lang/gcc5/patches/patch-libgo_Makefile.in create mode 100644 lang/gcc5/patches/patch-libgo_mksysinfo.sh create mode 100644 lang/gcc5/patches/patch-libjava_boehm.cc create mode 100644 lang/gcc5/patches/patch-libjava_configure create mode 100644 lang/gcc5/patches/patch-libjava_contrib_rebuild-gcj-db.in create mode 100644 lang/gcc5/patches/patch-libsanitizer_configure.tgt create mode 100644 lang/gcc5/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h create mode 100644 lang/gcc5/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc create mode 100644 lang/gcc5/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h create mode 100644 lang/gcc5/patches/patch-libstdc++-v3_libsupc++_unwind-cxx.h create mode 100644 lang/gcc5/version.mk (limited to 'lang') diff --git a/lang/gcc5/DESCR b/lang/gcc5/DESCR new file mode 100644 index 00000000000..562714fdfd2 --- /dev/null +++ b/lang/gcc5/DESCR @@ -0,0 +1,6 @@ +The GNU Compiler Collection (GCC) includes front ends for C, C++, Objective-C, +Fortran, Java, and Go, as well as libraries for these languages (libstdc++, +libgcj,...). This package provides the snapshot release of version 5. + +On NetBSD a working cabsl function must be present in libm to build gfortran. +This has been added to -current on 2014/10/10 and to NetBSD7 on 2014/10/13. diff --git a/lang/gcc5/Makefile b/lang/gcc5/Makefile new file mode 100644 index 00000000000..43af0bac10e --- /dev/null +++ b/lang/gcc5/Makefile @@ -0,0 +1,174 @@ +# $NetBSD: Makefile,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +GCC_PKGNAME= gcc5 +.include "version.mk" + +DISTNAME= gcc-${GCC5_DIST_VERSION} +PKGNAME= ${GCC_PKGNAME}-${GCC5_DIST_VERSION} +## When bumping the PKGREVISION of this package the PKGREVISION of +## lang/gcc5-libs needs to be bump to be at least 1 more than the +## PKGREVISION of this package! +#PKGREVISION= 1 +CATEGORIES= lang +MASTER_SITES= ${MASTER_SITE_GNU:=gcc/snapshots/${GCC5-DIST_VERSION}/} +MASTER_SITES+= ftp://ftp.fu-berlin.de/unix/languages/gcc/snapshots/${GCC5_DIST_VERSION}/ +EXTRACT_SUFX= .tar.bz2 + +MAINTAINER= ryoon@NetBSD.org +HOMEPAGE= http://gcc.gnu.org/ +COMMENT= The GNU Compiler Collection (GCC) - 5 Release Series +LICENSE= gnu-gpl-v2 AND gnu-gpl-v3 AND gnu-lgpl-v2 AND gnu-lgpl-v3 + +DISTFILES= ${DEFAULT_DISTFILES} +EXTRACT_ONLY= ${DEFAULT_DISTFILES} + +NOT_FOR_PLATFORM= Interix-*-* + +USE_LANGUAGES= c c++ +USE_TOOLS+= gmake makeinfo sed:run + +GNU_CONFIGURE= yes +## Build outside ${WRKSRC} +OBJDIR= ../build +CONFIGURE_DIRS= ${OBJDIR} +CONFIGURE_SCRIPT= ../${DISTNAME}/configure +GCC_SUBPREFIX= ${GCC_PKGNAME} +GCC_PREFIX= ${PREFIX}/${GCC_SUBPREFIX} +GNU_CONFIGURE_PREFIX= ${GCC_PREFIX} +INFO_FILES= yes + +UNLIMIT_RESOURCES+= datasize +UNLIMIT_RESOURCES+= stacksize + +SUBST_CLASSES+= vars +SUBST_MESSAGE.vars= Setting target machine name path in ${SUBST_FILES.vars} +SUBST_STAGE.vars= pre-configure +SUBST_FILES.vars= gcc/Makefile.in +SUBST_VARS.vars= GCC_TARGET_MACHINE + +.include "../../mk/bsd.prefs.mk" + +LANGS= c + +# In some cases LINKER_RPATH_FLAG needs a trailing space. +LINKER_RPATH_FLAG:= ${LINKER_RPATH_FLAG:S/-rpath/& /} + +## The Library rpath to use in end programs. +LDFLAGS_FOR_TARGET= ${LDFLAGS:M${COMPILER_RPATH_FLAG}*:N*/usr/lib*} + +# The "-static-libstdc++ -static-libgcc" flags are normally added to the +# boot-ldflags by configure but because we are supply the boot-ldflags +# we mash supply them. +BOOT_LDFLAGS= -static-libstdc++ -static-libgcc ${LDFLAGS_FOR_TARGET} +# Needed on Darwin when LDFLAGS point to a SDK +BOOT_LDFLAGS+= ${LDFLAGS:M-Wl,-syslibroot*} +# GCC does not understand this option; remove it, or stage build will fail +BUILDLINK_TRANSFORM+= rm:-stdlib=libc++ + +.include "options.mk" + +## For graphite support. +.if !empty(PKG_OPTIONS:Mgcc-graphite) + +post-extract: + ${TAR} -jxf ${DISTDIR}/${ISL14}.tar.bz2 -C ${WRKSRC} + ${MV} ${WRKSRC}/${ISL14} ${WRKSRC}/isl +.endif + +## For target librarys and libjava programs. +CONFIGURE_ENV+= LDFLAGS_FOR_TARGET=${LDFLAGS_FOR_TARGET:Q} + +CONFIGURE_ARGS+= --enable-languages=${LANGS:Q} +CONFIGURE_ARGS+= --enable-shared +CONFIGURE_ARGS+= --enable-long-long +CONFIGURE_ARGS+= --with-local-prefix=${GCC_PREFIX:Q} +CONFIGURE_ARGS+= --enable-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 +MAKE_ENV+= ac_cv_func_gethostbyname_r=no +MAKE_ENV+= ac_cv_func_freelocale=no +MAKE_ENV+= ac_cv_func_newlocale=no +MAKE_ENV+= ac_cv_func_uselocale=no +.endif +.if ${OPSYS} == "DragonFly" +CONFIGURE_ARGS+= --disable-bootstrap +.endif + + + +.if !empty(MACHINE_PLATFORM:MNetBSD-*-i386) || !empty(MACHINE_PLATFORM:MLinux-*-i386) +CONFIGURE_ARGS+= --with-arch=i486 --with-tune=i486 +.endif + +.if !empty(MACHINE_PLATFORM:MNetBSD-*-x86_64) || !empty(MACHINE_PLATFORM:MLinux-*-x86_64) +CONFIGURE_ARGS+= --with-arch=nocona --with-tune=nocona --with-fpmath=sse +.endif + + +# ${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/gcc5/PLIST.java b/lang/gcc5/PLIST.java new file mode 100644 index 00000000000..18c55f1775d --- /dev/null +++ b/lang/gcc5/PLIST.java @@ -0,0 +1,42 @@ +@comment $NetBSD: PLIST.java,v 1.1 2015/07/16 12:03:36 ryoon 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/gcc5/buildlink3.mk b/lang/gcc5/buildlink3.mk new file mode 100644 index 00000000000..9b67414a0c2 --- /dev/null +++ b/lang/gcc5/buildlink3.mk @@ -0,0 +1,35 @@ +# $NetBSD: buildlink3.mk,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +BUILDLINK_TREE+= gcc5 + +.if !defined(GCC5_BUILDLINK3_MK) +GCC5_BUILDLINK3_MK:= + +BUILDLINK_API_DEPENDS.gcc5+= gcc5>=${_GCC_REQD} +BUILDLINK_ABI_DEPENDS.gcc5+= gcc5>=5.1 +BUILDLINK_PKGSRCDIR.gcc5= ../../lang/gcc5 +BUILDLINK_DEPMETHOD.gcc5?= build + +FIND_PREFIX:= BUILDLINK_PREFIX.gcc5=gcc5 +.include "../../mk/find-prefix.mk" +BUILDLINK_PASSTHRU_DIRS+= ${BUILDLINK_PREFIX.gcc5}/gcc5 + +BUILDLINK_FILES.gcc5= #empty +BUILDLINK_AUTO_VARS.gcc5= no + +# Packages that link against shared libraries need a full dependency. +#.if defined(_USE_GCC_SHLIB) +#DEPENDS+= {gcc5, gcc5-libs}>=${_GCC_REQD}:../../lang/gcc5-libs +#ABI_DEPENDS+= {gcc5,gcc5-libs}>=5.1.0:../../lang/gcc5-libs +#.endif + +pkgbase := gcc5 +.include "../../mk/pkg-build-options.mk" +.if !empty(PKG_BUILD_OPTIONS.gcc5:Mgcc-java) +.include "../../devel/zlib/buildlink3.mk" +.endif + +.include "../../mk/dlopen.buildlink3.mk" +.include "../../mk/pthread.buildlink3.mk" +.endif # GCC5_BUILDLINK3_MK +BUILDLINK_TREE+= -gcc5 diff --git a/lang/gcc5/distinfo b/lang/gcc5/distinfo new file mode 100644 index 00000000000..93fcd273172 --- /dev/null +++ b/lang/gcc5/distinfo @@ -0,0 +1,38 @@ +$NetBSD: distinfo,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +SHA1 (gcc-5.1.0.tar.bz2) = b6c947b09adf780fe02065d0c48bfd7b4bdddfa3 +RMD160 (gcc-5.1.0.tar.bz2) = 17a9623f384ce10415a603042e0592c9b4956078 +Size (gcc-5.1.0.tar.bz2) = 94954411 bytes +SHA1 (isl-0.14.tar.bz2) = b09e25df265c97ed54002cd811d227a9a26c5f9c +RMD160 (isl-0.14.tar.bz2) = 4c69d026b51561bc1948cb7db79331b78a9d2c39 +Size (isl-0.14.tar.bz2) = 1399896 bytes +SHA1 (patch-gcc_Makefile.in) = ce366a091960d335ecb022918e2f7bfc4e3fcccf +SHA1 (patch-gcc_config.gcc) = bfa3897de6afa573ee44a60973611c4e9024f497 +SHA1 (patch-gcc_config_netbsd-protos.h) = 6d28864b4ccc8c1a63fe28e43601b84b63a00633 +SHA1 (patch-gcc_config_netbsd-stdint.h) = 025fc883101a187e84ed4c0772406720d645d550 +SHA1 (patch-gcc_config_netbsd.c) = 9d1327f926dece6e753093e759b5c8b707747ae1 +SHA1 (patch-gcc_config_netbsd.h) = b722614a3822e9800a2a8f65a87e56927d05a1b1 +SHA1 (patch-gcc_config_t-netbsd) = 802ad5706aa7ca9629f8e237f08fbb1569d28846 +SHA1 (patch-gcc_config_x-netbsd) = 6dc3d78e26df62054ea29f98ca51592858e671e3 +SHA1 (patch-gcc_configure) = fc96c9e150e4c28fb937cc01256d1f958fe59f30 +SHA1 (patch-gcc_ggc-common.c) = a5d2dba635859f5d680c3f80d7c30b42461c752b +SHA1 (patch-gcc_lto_lto.c) = 825b632e2a7ff5777d4fbfdcf6f0ea3f64c4742b +SHA1 (patch-gcc_system.h) = 4c959a6b1c4d524cbdf44cfb80f0e5758ec20783 +SHA1 (patch-libcilkrts_configure) = 72a18f311d78d4b88a55441d76c10ddd85b28360 +SHA1 (patch-libcilkrts_runtime_os-unix.c) = 653c5e3486d09bddae6a384edc2a3b3f2c95f74b +SHA1 (patch-libdecnumber_decNumber.c) = cec90e49c829bfc6ba1ec605d2fac7daaad62762 +SHA1 (patch-libffi_configure) = bcfbfe8abddc378e2de4a39ad0669583b37e0292 +SHA1 (patch-libffi_testsuite_libffi.call_float2.c) = 6321dde308579448c27c2b6e1e30633699dd145f +SHA1 (patch-libgcc_crtstuff.c) = d22dd1fb4a79aed2e7c2864f0bb00bcc338b3ab8 +SHA1 (patch-libgcc_unwind-dw2-fde-dip.c) = 9c5e1823226521d11900b4d3b92c050d3941a1f6 +SHA1 (patch-libgfortran_configure) = f80dd6f3bb8093d071a71001c62c7b6d563e4055 +SHA1 (patch-libgo_Makefile.in) = 612987541f745c7be6835ce7fb7119884db294c3 +SHA1 (patch-libgo_mksysinfo.sh) = 81f2c31c08215056309a3d9b6c724bae6ceff319 +SHA1 (patch-libjava_boehm.cc) = bf5564261b02523927685340f59ce8faf7f84ace +SHA1 (patch-libjava_configure) = 48ea2baffe87e09dda8133d286bd9b1bfe4c3f8a +SHA1 (patch-libjava_contrib_rebuild-gcj-db.in) = bb01d738fc7db05046ae37e8ade32574de1d8297 +SHA1 (patch-libsanitizer_configure.tgt) = dc6fdd14886eb82b1bb0c7b680ca4a3255f58944 +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_libsupc++_unwind-cxx.h) = 9784bfa4323f8498b36565d0fea28fce69ffdbb1 diff --git a/lang/gcc5/options.mk b/lang/gcc5/options.mk new file mode 100644 index 00000000000..6b221a96157 --- /dev/null +++ b/lang/gcc5/options.mk @@ -0,0 +1,181 @@ +# $NetBSD: options.mk,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +PKG_OPTIONS_VAR= PKG_OPTIONS.${GCC_PKGNAME} +PKG_SUPPORTED_OPTIONS= nls gcc-inplace-math gcc-c++ gcc-fortran \ + gcc-go gcc-objc gcc-objc++ gcc-graphite gcc-java +PKG_SUGGESTED_OPTIONS= gcc-c++ gcc-fortran gcc-objc gcc-objc++ \ + gcc-graphite gcc-inplace-math + +.if ${OPSYS} == "NetBSD" +PKG_SUGGESTED_OPTIONS+= nls +.elif ${OPSYS} == "Linux" +PKG_SUGGESTED_OPTIONS+= nls +.elif ${OPSYS} == "DragonFly" +PKG_SUGGESTED_OPTIONS+= nls +.elif ${OPSYS} == "SunOS" +PKG_SUGGESTED_OPTIONS+= gcc-inplace-math +.else +.endif + +### +### Determine if multilib is avalible. +### +MULTILIB_SUPPORTED?= unknown +.if !empty(MACHINE_PLATFORM:MLinux-*-x86_64) +. if exists(/usr/include/gnu/stubs-64.h) && \ + !exists(/usr/include/gnu/stubs-32.h) +MULTILIB_SUPPORTED=No +. else +MULTILIB_SUPPORTED=Yes +. endif +.endif +.if !empty(MULTILIB_SUPPORTED:M[Yy][Ee][Ss]) +PKG_SUPPORTED_OPTIONS+= gcc-multilib +PKG_SUGGESTED_OPTIONS+= gcc-multilib +.endif + +.include "../../mk/bsd.options.mk" + +### +### Native Language Support +### +.if !empty(PKG_OPTIONS:Mnls) +USE_TOOLS+= msgfmt +CONFIGURE_ARGS+= --enable-nls +CONFIGURE_ARGS+= --with-libiconv-prefix=${BUILDLINK_PREFIX.iconv} +MAKE_ENV+= ICONVPREFIX=${BUILDLINK_PREFIX.iconv} +.include "../../converters/libiconv/buildlink3.mk" +.include "../../devel/gettext-lib/buildlink3.mk" +.else +CONFIGURE_ARGS+= --disable-nls +.endif + +### +### Multilib Support +### +.if (!empty(MULTILIB_SUPPORTED:M[Yy][Ee][Ss]) && \ + empty(PKG_OPTIONS:Mgcc-multilib) ) || \ + !empty(MULTILIB_SUPPORTED:M[Nn][Oo]) +CONFIGURE_ARGS+= --disable-multilib +.endif + +### +### Build math libraries in place +### +.if !empty(PKG_OPTIONS:Mgcc-inplace-math) +. include "../../devel/gmp/inplace.mk" +. include "../../math/mpcomplex/inplace.mk" +. include "../../math/mpfr/inplace.mk" +.else +CONFIGURE_ARGS+= --with-gmp=${BUILDLINK_PREFIX.gmp} +CONFIGURE_ARGS+= --with-mpc=${BUILDLINK_PREFIX.mpcomplex} +CONFIGURE_ARGS+= --with-mpfr=${BUILDLINK_PREFIX.mpfr} +LIBS.SunOS+= -lgmp +. include "../../devel/gmp/buildlink3.mk" +. include "../../math/mpcomplex/buildlink3.mk" +. include "../../math/mpfr/buildlink3.mk" +.endif + + +### +### Graphite Support +### +.if !empty(PKG_OPTIONS:Mgcc-graphite) +ISL14 = isl-0.14 +SITES.${ISL14}.tar.bz2 = ${MASTER_SITE_GNU:=gcc/infrastructure/} +DISTFILES += ${ISL14}.tar.bz2 +.endif + +### +### Optional languages +### Ada could be added although there is a bootstrapping issue. See +### ../gcc34-ada for guidance +### + +.if !empty(PKG_OPTIONS:Mgcc-objc++) +. if empty(PKG_OPTIONS:Mgcc-c++) +PKG_OPTIONS+= gcc-c++ +. endif +. if empty(PKG_OPTIONS:Mgcc-objc) +PKG_OPTIONS+= gcc-objc +. endif +LANGS+= obj-c++ +.endif + +.if !empty(PKG_OPTIONS:Mgcc-objc) +LANGS+= objc +.endif + +.if !empty(PKG_OPTIONS:Mgcc-java) +. if empty(PKG_OPTIONS:Mgcc-c++) +PKG_OPTIONS+= gcc-c++ +. endif + +LANGS+= java + +# Add the Eclipse Java compiler for to parse `.java' source files. +ECJ_JAR= ecj-4.5.jar +SITES.${ECJ_JAR}= ftp://sourceware.org/pub/java/ +DISTFILES+= ${ECJ_JAR} +CONFIGURE_ARGS+= --with-ecj-jar=${DISTDIR:Q}/${ECJ_JAR:Q} + +JAVA_NAME= ${GCC_PKGNAME} +JAVA_HOME= ${PREFIX}/java/${JAVA_NAME} +JAVA_WRAPPERS= appletviewer jar jarsigner java javah keytool \ + native2ascii orbd rmic rmid rmiregistry serialver \ + tnameserv + +JAVA_ARCH= ${MACHINE_ARCH:S/x86_64/amd64/} + +PLIST_SRC+= PLIST.java +PLIST_SUBST+= JAVA_NAME=${JAVA_NAME:Q} +PLIST_SUBST+= JAVA_ARCH=${JAVA_ARCH:Q} + +# Create a JPackage compatible SDK environment. +CONFIGURE_ARGS+= --enable-java-home +CONFIGURE_ARGS+= --with-os-directory=${LOWER_OPSYS:Q} +CONFIGURE_ARGS+= --with-arch-directory=${JAVA_ARCH:Q} +CONFIGURE_ARGS+= --with-jvm-root-dir=${JAVA_HOME:Q} +CONFIGURE_ARGS+= --with-java-home=${JAVA_HOME:Q} + +REPLACE_PYTHON= libjava/contrib/aot-compile.in + +USE_TOOLS+= unzip zip:run gmake:run +CONFIGURE_ARGS+= --with-system-zlib + +# libjava/contrib/aotcompile.py.in stores the path to a 'make' program so +# we need to make sure we give it the installed 'make' and not the tool +# wrapped one. +CONFIGURE_ENV+= PKGSRC_MAKE=${TOOLS_PATH.gmake} +MAKE_ENV+= PKGSRC_MAKE=${TOOLS_PATH.gmake} + +# fastjar-0.93 from pkgsrc/archivers/fastjar seems to trigger a build +# failure (seen on NetBSD-5.0/i386) when building java. So in case +# the fastjar package is installed, make sure the configure script +# doesn't pick it up. +CONFIGURE_ENV+= JAR=no +MAKE_ENV+= JAR=no +MAKE_ENV+= ac_cv_prog_JAR=no + +.include "../../devel/zlib/buildlink3.mk" +.include "../../lang/python/application.mk" +.include "../../mk/java-env.mk" +.endif + +.if !empty(PKG_OPTIONS:Mgcc-go) +LANGS+= go +.endif + +.if !empty(PKG_OPTIONS:Mgcc-fortran) +LANGS+= fortran +.endif + +.if !empty(PKG_OPTIONS:Mgcc-c++) +LANGS+= c++ +USE_TOOLS+= perl +CONFIGURE_ARGS+= --enable-__cxa_atexit +CONFIGURE_ARGS+= --with-gxx-include-dir=${GCC_PREFIX}/include/c++/ +.else +CONFIGURE_ARGS+= --disable-build-with-cxx +CONFIGURE_ARGS+= --disable-build-poststage1-with-cxx +.endif diff --git a/lang/gcc5/patches/patch-gcc_Makefile.in b/lang/gcc5/patches/patch-gcc_Makefile.in new file mode 100644 index 00000000000..c76a7e4301d --- /dev/null +++ b/lang/gcc5/patches/patch-gcc_Makefile.in @@ -0,0 +1,15 @@ +$NetBSD: patch-gcc_Makefile.in,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +Add gcc libdir to a programs rpath so that _this gcc's_ support libraries +are found. + +--- gcc/Makefile.in.orig 2013-03-05 09:46:34.000000000 +0000 ++++ gcc/Makefile.in +@@ -2027,6 +2027,7 @@ prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_ + # Language-independent files. + + DRIVER_DEFINES = \ ++ -DLINK_LIBGCC_SPEC="\"%D $(LINKER_RPATH_FLAG) $(prefix)/@GCC_TARGET_MACHINE@/lib/%M $(LINKER_RPATH_FLAG) $(libdir)/%M \"" \ + -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \ + -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \ + -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \ diff --git a/lang/gcc5/patches/patch-gcc_config.gcc b/lang/gcc5/patches/patch-gcc_config.gcc new file mode 100644 index 00000000000..8aad48ec3bb --- /dev/null +++ b/lang/gcc5/patches/patch-gcc_config.gcc @@ -0,0 +1,39 @@ +$NetBSD: patch-gcc_config.gcc,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- gcc/config.gcc.orig 2014-11-21 16:04:20.000000000 +0000 ++++ gcc/config.gcc +@@ -745,10 +745,16 @@ case ${target} in + target_has_targetcm=yes + ;; + *-*-netbsd*) +- tmake_file="t-slibgcc" ++ use_gcc_stdint=wrap ++ tmake_file="t-slibgcc t-netbsd" + gas=yes + gnu_ld=yes + ++ # cabs/cabsf are renamed to __c99_cabs/cabsf ++ tm_p_file="${tm_p_file} netbsd-protos.h" ++ target_gtfiles="\$(srcdir)/config/netbsd.c" ++ extra_objs="netbsd.o" ++ + # NetBSD 2.0 and later get POSIX threads enabled by default. + # Allow them to be explicitly enabled on any other version. + case ${enable_threads} in +@@ -1372,12 +1378,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" + ;; + 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" + ;; + 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" + ;; + 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" diff --git a/lang/gcc5/patches/patch-gcc_config_netbsd-protos.h b/lang/gcc5/patches/patch-gcc_config_netbsd-protos.h new file mode 100644 index 00000000000..e87c8d5dd54 --- /dev/null +++ b/lang/gcc5/patches/patch-gcc_config_netbsd-protos.h @@ -0,0 +1,34 @@ +$NetBSD: patch-gcc_config_netbsd-protos.h,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- /dev/null 2014-12-15 07:13:57.000000000 +0000 ++++ gcc/config/netbsd-protos.h +@@ -0,0 +1,29 @@ ++/* Prototypes. ++ Copyright (C) 2001-2014 Free Software Foundation, Inc. ++ ++This file is part of GCC. ++ ++GCC is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License as published by ++the Free Software Foundation; either version 3, or (at your option) ++any later version. ++ ++GCC is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with GCC; see the file COPYING3. If not see ++. */ ++ ++#ifndef _NETBSD_PROTOS_H_ ++#define _NETBSD_PROTOS_H_ ++ ++double __c99_cabs (double complex); ++float __c99_cabsf (float complex); ++long double __c99_cabsl (long double complex); ++ ++void netbsd_patch_builtins (void); ++ ++#endif /* _NETBSD_PROTOS_H_ */ diff --git a/lang/gcc5/patches/patch-gcc_config_netbsd-stdint.h b/lang/gcc5/patches/patch-gcc_config_netbsd-stdint.h new file mode 100644 index 00000000000..0a52c6d55db --- /dev/null +++ b/lang/gcc5/patches/patch-gcc_config_netbsd-stdint.h @@ -0,0 +1,63 @@ +$NetBSD: patch-gcc_config_netbsd-stdint.h,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +Copy gcc/config/freebsd-stdint.h to gcc/config/netbsd-stdint.h. + +--- gcc/config/netbsd-stdint.h.orig 2012-04-02 09:19:19.577200540 +0000 ++++ gcc/config/netbsd-stdint.h +@@ -0,0 +1,56 @@ ++/* Definitions for types for NetBSD systems. ++ Copyright (C) 2009 Free Software Foundation, Inc. ++ Contributed by Gerald Pfeifer . ++ ++This file is part of GCC. ++ ++GCC is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License as published by ++the Free Software Foundation; either version 3, or (at your option) ++any later version. ++ ++GCC is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++GNU General Public License for more details. ++ ++Under Section 7 of GPL version 3, you are granted additional ++permissions described in the GCC Runtime Library Exception, version ++3.1, as published by the Free Software Foundation. ++ ++You should have received a copy of the GNU General Public License and ++a copy of the GCC Runtime Library Exception along with this program; ++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++. */ ++ ++#define SIG_ATOMIC_TYPE "int" ++ ++#define INT8_TYPE "signed char" ++#define INT16_TYPE "short int" ++#define INT32_TYPE "int" ++#define INT64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int") ++#define UINT8_TYPE "unsigned char" ++#define UINT16_TYPE "short unsigned int" ++#define UINT32_TYPE "unsigned int" ++#define UINT64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int") ++ ++#define INT_LEAST8_TYPE "signed char" ++#define INT_LEAST16_TYPE "short int" ++#define INT_LEAST32_TYPE "int" ++#define INT_LEAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int") ++#define UINT_LEAST8_TYPE "unsigned char" ++#define UINT_LEAST16_TYPE "short unsigned int" ++#define UINT_LEAST32_TYPE "unsigned int" ++#define UINT_LEAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int") ++ ++#define INT_FAST8_TYPE "int" ++#define INT_FAST16_TYPE "int" ++#define INT_FAST32_TYPE "int" ++#define INT_FAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int") ++#define UINT_FAST8_TYPE "unsigned int" ++#define UINT_FAST16_TYPE "unsigned int" ++#define UINT_FAST32_TYPE "unsigned int" ++#define UINT_FAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int") ++ ++#define INTPTR_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "int") ++#define UINTPTR_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "unsigned int") diff --git a/lang/gcc5/patches/patch-gcc_config_netbsd.c b/lang/gcc5/patches/patch-gcc_config_netbsd.c new file mode 100644 index 00000000000..cf01a51b5f0 --- /dev/null +++ b/lang/gcc5/patches/patch-gcc_config_netbsd.c @@ -0,0 +1,127 @@ +$NetBSD: patch-gcc_config_netbsd.c,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- /dev/null 2015-01-20 20:33:39.000000000 +0000 ++++ gcc/config/netbsd.c +@@ -0,0 +1,122 @@ ++/* Functions for generic NetBSD as target machine for GNU C compiler. ++ Copyright (C) 1989-2014 Free Software Foundation, Inc. ++ Contributed by Apple Computer Inc. ++ ++This file is part of GCC. ++ ++GCC is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License as published by ++the Free Software Foundation; either version 3, or (at your option) ++any later version. ++ ++GCC is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with GCC; see the file COPYING3. If not see ++. */ ++ ++ ++#include "config.h" ++#include "system.h" ++#include "coretypes.h" ++#include "tm.h" ++#include "rtl.h" ++#include "regs.h" ++#include "hard-reg-set.h" ++#include "insn-config.h" ++#include "conditions.h" ++#include "insn-flags.h" ++#include "output.h" ++#include "insn-attr.h" ++#include "flags.h" ++#include "hash-set.h" ++#include "machmode.h" ++#include "vec.h" ++#include "double-int.h" ++#include "input.h" ++#include "alias.h" ++#include "symtab.h" ++#include "wide-int.h" ++#include "inchash.h" ++#include "tree.h" ++#include "fold-const.h" ++#include "stringpool.h" ++#include "varasm.h" ++#include "stor-layout.h" ++#include "hashtab.h" ++#include "function.h" ++#include "statistics.h" ++#include "real.h" ++#include "fixed-value.h" ++#include "expmed.h" ++#include "dojump.h" ++#include "explow.h" ++#include "calls.h" ++#include "emit-rtl.h" ++#include "stmt.h" ++#include "expr.h" ++#include "reload.h" ++#include "ggc.h" ++#include "langhooks.h" ++#include "target.h" ++#include "tm_p.h" ++#include "diagnostic-core.h" ++#include "toplev.h" ++#include "dominance.h" ++#include "cfg.h" ++#include "cfgrtl.h" ++#include "cfganal.h" ++#include "lcm.h" ++#include "cfgbuild.h" ++#include "cfgcleanup.h" ++#include "predict.h" ++#include "basic-block.h" ++#include "df.h" ++#include "debug.h" ++#include "obstack.h" ++#include "hash-table.h" ++#include "tree-ssa-alias.h" ++#include "internal-fn.h" ++#include "gimple-fold.h" ++#include "tree-eh.h" ++#include "gimple-expr.h" ++#include "is-a.h" ++#include "gimple.h" ++#include "gimplify.h" ++#include "hash-map.h" ++#include "plugin-api.h" ++#include "ipa-ref.h" ++#include "cgraph.h" ++#include "lto-streamer.h" ++#include "lto-section-names.h" ++ ++static void ++netbsd_patch_builtin (enum built_in_function fncode) ++{ ++ tree fn = builtin_decl_explicit (fncode); ++ tree sym; ++ char *newname; ++ ++ if (!fn) ++ return; ++ ++ sym = DECL_ASSEMBLER_NAME (fn); ++ newname = ACONCAT (("__c99_", IDENTIFIER_POINTER (sym), NULL)); ++ ++ set_user_assembler_name (fn, newname); ++ ++ fn = builtin_decl_implicit (fncode); ++ if (fn) ++ set_user_assembler_name (fn, newname); ++} ++ ++void ++netbsd_patch_builtins (void) ++{ ++ netbsd_patch_builtin (BUILT_IN_CABSF); ++ netbsd_patch_builtin (BUILT_IN_CABS); ++ netbsd_patch_builtin (BUILT_IN_CABSL); ++} diff --git a/lang/gcc5/patches/patch-gcc_config_netbsd.h b/lang/gcc5/patches/patch-gcc_config_netbsd.h new file mode 100644 index 00000000000..995fb188c52 --- /dev/null +++ b/lang/gcc5/patches/patch-gcc_config_netbsd.h @@ -0,0 +1,24 @@ +$NetBSD: patch-gcc_config_netbsd.h,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- gcc/config/netbsd.h.orig 2014-01-02 22:23:26.000000000 +0000 ++++ gcc/config/netbsd.h +@@ -17,6 +17,9 @@ You should have received a copy of the G + along with GCC; see the file COPYING3. If not see + . */ + ++ ++#include "netbsd-protos.h" ++ + /* TARGET_OS_CPP_BUILTINS() common to all NetBSD targets. */ + #define NETBSD_OS_CPP_BUILTINS_COMMON() \ + do \ +@@ -175,3 +178,9 @@ along with GCC; see the file COPYING3. + + #undef WINT_TYPE + #define WINT_TYPE "int" ++ ++#undef SUBTARGET_INIT_BUILTINS ++#define SUBTARGET_INIT_BUILTINS \ ++do { \ ++ netbsd_patch_builtins (); \ ++} while(0) diff --git a/lang/gcc5/patches/patch-gcc_config_t-netbsd b/lang/gcc5/patches/patch-gcc_config_t-netbsd new file mode 100644 index 00000000000..ad7927a7839 --- /dev/null +++ b/lang/gcc5/patches/patch-gcc_config_t-netbsd @@ -0,0 +1,28 @@ +$NetBSD: patch-gcc_config_t-netbsd,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- /dev/null 2014-12-16 20:23:05.000000000 +0000 ++++ gcc/config/t-netbsd +@@ -0,0 +1,23 @@ ++# Copyright (C) 2002-2014 Free Software Foundation, Inc. ++# ++# This file is part of GCC. ++# ++# GCC is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3, or (at your option) ++# any later version. ++# ++# GCC is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GCC; see the file COPYING3. If not see ++# . ++ ++ ++netbsd.o: $(srcdir)/config/netbsd.c ++ $(COMPILE) $< ++ $(POSTCOMPILE) ++ diff --git a/lang/gcc5/patches/patch-gcc_config_x-netbsd b/lang/gcc5/patches/patch-gcc_config_x-netbsd new file mode 100644 index 00000000000..6751a7806d9 --- /dev/null +++ b/lang/gcc5/patches/patch-gcc_config_x-netbsd @@ -0,0 +1,12 @@ +$NetBSD: patch-gcc_config_x-netbsd,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +Add host hooks for NetBSD - needed for working precompiled headers. +http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58397 + +--- /dev/null 2013-09-11 09:12:57.000000000 +0200 ++++ gcc/config/x-netbsd 2013-09-10 18:57:27.000000000 +0200 +@@ -0,0 +1,4 @@ ++host-netbsd.o : $(srcdir)/config/host-netbsd.c $(CONFIG_H) $(SYSTEM_H) \ ++ coretypes.h hosthooks.h hosthooks-def.h $(HOOKS_H) ++ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ ++ $(srcdir)/config/host-netbsd.c diff --git a/lang/gcc5/patches/patch-gcc_configure b/lang/gcc5/patches/patch-gcc_configure new file mode 100644 index 00000000000..2af6aa575bf --- /dev/null +++ b/lang/gcc5/patches/patch-gcc_configure @@ -0,0 +1,18 @@ +$NetBSD: patch-gcc_configure,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- gcc/configure.orig 2014-05-21 11:08:58.000000000 +0000 ++++ gcc/configure +@@ -27332,6 +27332,13 @@ case "$target" in + gcc_cv_target_dl_iterate_phdr=no + fi + ;; ++ *-*-netbsd* | *-*-openbsd*) ++ 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 ++ ;; + esac + + if test x$gcc_cv_target_dl_iterate_phdr = xyes; then diff --git a/lang/gcc5/patches/patch-gcc_ggc-common.c b/lang/gcc5/patches/patch-gcc_ggc-common.c new file mode 100644 index 00000000000..793b2bc8cde --- /dev/null +++ b/lang/gcc5/patches/patch-gcc_ggc-common.c @@ -0,0 +1,71 @@ +$NetBSD: patch-gcc_ggc-common.c,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- gcc/ggc-common.c.orig 2014-12-10 03:45:40.000000000 +0000 ++++ gcc/ggc-common.c +@@ -603,6 +603,8 @@ gt_pch_restore (FILE *f) + size_t i; + struct mmap_info mmi; + int result; ++ struct line_maps * old_line_table = line_table; ++ location_t old_input_loc = input_location; + + /* Delete any deletable objects. This makes ggc_pch_read much + faster, as it can be sure that no GCable objects remain other +@@ -616,32 +618,50 @@ gt_pch_restore (FILE *f) + /* Read in all the scalar variables. */ + for (rt = gt_pch_scalar_rtab; *rt; rt++) + for (rti = *rt; rti->base != NULL; rti++) +- if (fread (rti->base, rti->stride, 1, f) != 1) ++ if (fread (rti->base, rti->stride, 1, f) != 1) { ++ line_table = old_line_table; ++ input_location = old_input_loc; + fatal_error (input_location, "can%'t read PCH file: %m"); ++ } + + /* Read in all the global pointers, in 6 easy loops. */ + for (rt = gt_ggc_rtab; *rt; rt++) + for (rti = *rt; rti->base != NULL; rti++) + for (i = 0; i < rti->nelt; i++) + if (fread ((char *)rti->base + rti->stride * i, +- sizeof (void *), 1, f) != 1) ++ sizeof (void *), 1, f) != 1) { ++ line_table = old_line_table; ++ input_location = old_input_loc; + fatal_error (input_location, "can%'t read PCH file: %m"); ++ } + +- if (fread (&mmi, sizeof (mmi), 1, f) != 1) ++ if (fread (&mmi, sizeof (mmi), 1, f) != 1) { ++ line_table = old_line_table; ++ input_location = old_input_loc; + fatal_error (input_location, "can%'t read PCH file: %m"); ++ } + + result = host_hooks.gt_pch_use_address (mmi.preferred_base, mmi.size, + fileno (f), mmi.offset); +- if (result < 0) ++ if (result < 0) { ++ line_table = old_line_table; ++ input_location = old_input_loc; + fatal_error (input_location, "had to relocate PCH"); ++ } + if (result == 0) + { + if (fseek (f, mmi.offset, SEEK_SET) != 0 +- || fread (mmi.preferred_base, mmi.size, 1, f) != 1) ++ || fread (mmi.preferred_base, mmi.size, 1, f) != 1) { ++ line_table = old_line_table; ++ input_location = old_input_loc; + fatal_error (input_location, "can%'t read PCH file: %m"); ++ } + } +- else if (fseek (f, mmi.offset + mmi.size, SEEK_SET) != 0) +- fatal_error (input_location, "can%'t read PCH file: %m"); ++ else if (fseek (f, mmi.offset + mmi.size, SEEK_SET) != 0) { ++ line_table = old_line_table; ++ input_location = old_input_loc; ++ fatal_error (input_location, "can%'t read PCH file: %m"); ++ } + + ggc_pch_read (f, mmi.preferred_base); + diff --git a/lang/gcc5/patches/patch-gcc_lto_lto.c b/lang/gcc5/patches/patch-gcc_lto_lto.c new file mode 100644 index 00000000000..74238e82a23 --- /dev/null +++ b/lang/gcc5/patches/patch-gcc_lto_lto.c @@ -0,0 +1,19 @@ +$NetBSD: patch-gcc_lto_lto.c,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- gcc/lto/lto.c.orig 2015-01-30 16:15:00.000000000 +0000 ++++ gcc/lto/lto.c +@@ -2495,7 +2495,13 @@ wait_for_child () + #ifndef WCONTINUED + #define WCONTINUED 0 + #endif +- int w = waitpid (0, &status, WUNTRACED | WCONTINUED); ++ ++#if defined(__NetBSD__) ++ int w = waitpid(0, &status, WUNTRACED | WALLSIG); ++#else ++ int w = waitpid(0, &status, WUNTRACED | WCONTINUED); ++#endif ++ + if (w == -1) + fatal_error (input_location, "waitpid failed"); + diff --git a/lang/gcc5/patches/patch-gcc_system.h b/lang/gcc5/patches/patch-gcc_system.h new file mode 100644 index 00000000000..ba77cf2fa31 --- /dev/null +++ b/lang/gcc5/patches/patch-gcc_system.h @@ -0,0 +1,27 @@ +$NetBSD: patch-gcc_system.h,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- gcc/system.h.orig 2013-04-29 18:37:29.000000000 +0000 ++++ gcc/system.h +@@ -72,18 +72,22 @@ along with GCC; see the file COPYING3. + + #if defined HAVE_DECL_PUTC_UNLOCKED && HAVE_DECL_PUTC_UNLOCKED + ++# if !defined(__NetBSD__) + # ifdef HAVE_PUTC_UNLOCKED + # undef putc + # define putc(C, Stream) putc_unlocked (C, Stream) + # endif ++# endif + # ifdef HAVE_PUTCHAR_UNLOCKED + # undef putchar + # define putchar(C) putchar_unlocked (C) + # endif ++# if !defined(__NetBSD__) + # ifdef HAVE_GETC_UNLOCKED + # undef getc + # define getc(Stream) getc_unlocked (Stream) + # endif ++# endif + # ifdef HAVE_GETCHAR_UNLOCKED + # undef getchar + # define getchar() getchar_unlocked () diff --git a/lang/gcc5/patches/patch-libcilkrts_configure b/lang/gcc5/patches/patch-libcilkrts_configure new file mode 100644 index 00000000000..7ab3c7244c2 --- /dev/null +++ b/lang/gcc5/patches/patch-libcilkrts_configure @@ -0,0 +1,13 @@ +$NetBSD: patch-libcilkrts_configure,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libcilkrts/configure.orig 2014-08-12 11:06:44.000000000 +0000 ++++ libcilkrts/configure +@@ -14519,7 +14519,7 @@ esac + CFLAGS="$save_CFLAGS" + + if test $enable_shared = yes; then +- link_cilkrts="-lcilkrts %{static: $LIBS}" ++ link_cilkrts="-rpath ${PREFIX}/gcc50snapshot/lib --as-needed -lgcc_s -lcilkrts %{static $LIBS}" + else + link_cilkrts="-lcilkrts $LIBS" + fi diff --git a/lang/gcc5/patches/patch-libcilkrts_runtime_os-unix.c b/lang/gcc5/patches/patch-libcilkrts_runtime_os-unix.c new file mode 100644 index 00000000000..38d57d266da --- /dev/null +++ b/lang/gcc5/patches/patch-libcilkrts_runtime_os-unix.c @@ -0,0 +1,33 @@ +$NetBSD: patch-libcilkrts_runtime_os-unix.c,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libcilkrts/runtime/os-unix.c.orig 2014-05-21 11:08:58.000000000 +0000 ++++ libcilkrts/runtime/os-unix.c +@@ -56,7 +56,9 @@ + // Uses sysconf(_SC_NPROCESSORS_ONLN) in verbose output + #elif defined __DragonFly__ + // No additional include files +-#elif defined __FreeBSD__ ++#elif defined __FreeBSD__ ++// No additional include files ++#elif defined __NetBSD__ + // No additional include files + #elif defined __CYGWIN__ + // Cygwin on Windows - no additional include files +@@ -376,7 +378,7 @@ COMMON_SYSDEP int __cilkrts_hardware_cpu + assert((unsigned)count == count); + + return count; +-#elif defined __FreeBSD__ || defined __CYGWIN__ || defined __DragonFly__ ++#elif defined __FreeBSD__ || defined __CYGWIN__ || defined __DragonFly__ || defined __NetBSD__ + int ncores = sysconf(_SC_NPROCESSORS_ONLN); + + return ncores; +@@ -400,7 +402,7 @@ COMMON_SYSDEP void __cilkrts_sleep(void) + + COMMON_SYSDEP void __cilkrts_yield(void) + { +-#if __APPLE__ || __FreeBSD__ || __VXWORKS__ ++#if __APPLE__ || __FreeBSD__ || __NetBSD__ || __VXWORKS__ + // On MacOS, call sched_yield to yield quantum. I'm not sure why we + // don't do this on Linux also. + sched_yield(); diff --git a/lang/gcc5/patches/patch-libdecnumber_decNumber.c b/lang/gcc5/patches/patch-libdecnumber_decNumber.c new file mode 100644 index 00000000000..0637f8aff0c --- /dev/null +++ b/lang/gcc5/patches/patch-libdecnumber_decNumber.c @@ -0,0 +1,13 @@ +$NetBSD: patch-libdecnumber_decNumber.c,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libdecnumber/decNumber.c.orig 2013-08-14 08:42:04.000000000 +0000 ++++ libdecnumber/decNumber.c +@@ -770,7 +770,7 @@ decNumber * decNumberAbs(decNumber *res, + decNumber * decNumberAdd(decNumber *res, const decNumber *lhs, + const decNumber *rhs, decContext *set) { + uInt status=0; /* accumulator */ +- decAddOp(res, lhs, rhs, set, 0, &status); ++ decAddOp(res, lhs, rhs, set, (uByte)0, &status); + if (status!=0) decStatus(res, status, set); + #if DECCHECK + decCheckInexact(res, set); diff --git a/lang/gcc5/patches/patch-libffi_configure b/lang/gcc5/patches/patch-libffi_configure new file mode 100644 index 00000000000..f61494f4b5d --- /dev/null +++ b/lang/gcc5/patches/patch-libffi_configure @@ -0,0 +1,13 @@ +$NetBSD: patch-libffi_configure,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libffi/configure.orig 2013-06-01 17:03:49.000000000 +0000 ++++ libffi/configure +@@ -12689,7 +12689,7 @@ case "$target" in + $as_echo "#define FFI_EXEC_TRAMPOLINE_TABLE 1" >>confdefs.h + + ;; +- *-apple-darwin1* | *-*-freebsd* | *-*-kfreebsd* | *-*-openbsd* | *-pc-solaris*) ++ *-apple-darwin1* | *-*-freebsd* | *-*-kfreebsd* | *-*-netbsd* | *-*-openbsd* | *-pc-solaris*) + + $as_echo "#define FFI_MMAP_EXEC_WRIT 1" >>confdefs.h + diff --git a/lang/gcc5/patches/patch-libffi_testsuite_libffi.call_float2.c b/lang/gcc5/patches/patch-libffi_testsuite_libffi.call_float2.c new file mode 100644 index 00000000000..ca220f13c90 --- /dev/null +++ b/lang/gcc5/patches/patch-libffi_testsuite_libffi.call_float2.c @@ -0,0 +1,13 @@ +$NetBSD: patch-libffi_testsuite_libffi.call_float2.c,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libffi/testsuite/libffi.call/float2.c.orig 2013-06-01 17:08:18.000000000 +0000 ++++ libffi/testsuite/libffi.call/float2.c +@@ -45,7 +45,7 @@ int main (void) + /* This is ifdef'd out for now. long double support under SunOS/gcc + is pretty much non-existent. You'll get the odd bus error in library + routines like printf(). */ +- printf ("%Lf, %Lf, %Lf, %Lf\n", ld, ldblit(f), ld - ldblit(f), LDBL_EPSILON); ++ printf ("%Lf, %Lf, %Lf, %Lf\n", (long double)ld, (long double)ldblit(f), (long double)(ld - ldblit(f)), (long double)LDBL_EPSILON); + #endif + + /* These are not always the same!! Check for a reasonable delta */ diff --git a/lang/gcc5/patches/patch-libgcc_crtstuff.c b/lang/gcc5/patches/patch-libgcc_crtstuff.c new file mode 100644 index 00000000000..2fa4066af9e --- /dev/null +++ b/lang/gcc5/patches/patch-libgcc_crtstuff.c @@ -0,0 +1,14 @@ +$NetBSD: patch-libgcc_crtstuff.c,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libgcc/crtstuff.c.orig 2014-09-22 00:49:01.000000000 +0000 ++++ libgcc/crtstuff.c +@@ -81,7 +81,8 @@ call_ ## FUNC (void) \ + #endif + + #if defined(TARGET_DL_ITERATE_PHDR) && \ +- (defined(__DragonFly__) || defined(__FreeBSD__)) ++ (defined(__DragonFly__) || defined(__FreeBSD__) || \ ++ defined(__NetBSD__) || defined(__OpenBSD__)) + #define BSD_DL_ITERATE_PHDR_AVAILABLE + #endif + diff --git a/lang/gcc5/patches/patch-libgcc_unwind-dw2-fde-dip.c b/lang/gcc5/patches/patch-libgcc_unwind-dw2-fde-dip.c new file mode 100644 index 00000000000..957e5e44610 --- /dev/null +++ b/lang/gcc5/patches/patch-libgcc_unwind-dw2-fde-dip.c @@ -0,0 +1,13 @@ +$NetBSD: patch-libgcc_unwind-dw2-fde-dip.c,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libgcc/unwind-dw2-fde-dip.c.orig 2014-05-21 11:08:58.000000000 +0000 ++++ libgcc/unwind-dw2-fde-dip.c +@@ -65,7 +65,7 @@ + #endif + + #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ +- && defined(__OpenBSD__) ++ && defined(__OpenBSD__) || defined(__NetBSD__) + # define ElfW(type) Elf_##type + # define USE_PT_GNU_EH_FRAME + #endif diff --git a/lang/gcc5/patches/patch-libgfortran_configure b/lang/gcc5/patches/patch-libgfortran_configure new file mode 100644 index 00000000000..ac53775afb3 --- /dev/null +++ b/lang/gcc5/patches/patch-libgfortran_configure @@ -0,0 +1,13 @@ +$NetBSD: patch-libgfortran_configure,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libgfortran/configure.orig 2014-12-07 22:38:00.000000000 +0000 ++++ libgfortran/configure +@@ -26447,7 +26447,7 @@ $as_echo "#define SUPPORTS_WEAK 1" >>con + + fi + case "$host" in +- *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* ) ++ *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* | *-*-netbsd* ) + + $as_echo "#define GTHREAD_USE_WEAK 0" >>confdefs.h + diff --git a/lang/gcc5/patches/patch-libgo_Makefile.in b/lang/gcc5/patches/patch-libgo_Makefile.in new file mode 100644 index 00000000000..4b0d065a793 --- /dev/null +++ b/lang/gcc5/patches/patch-libgo_Makefile.in @@ -0,0 +1,17 @@ +$NetBSD: patch-libgo_Makefile.in,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +proc.c will not compile with inline-functions (implied by -O3) +so add -fno-inline-functions to it's cflags. + + +--- libgo/Makefile.in.orig 2012-08-06 14:34:27.000000000 +0000 ++++ libgo/Makefile.in +@@ -3051,7 +3051,7 @@ print.lo: runtime/print.c + @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o print.lo `test -f 'runtime/print.c' || echo '$(srcdir)/'`runtime/print.c + + proc.lo: runtime/proc.c +-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT proc.lo -MD -MP -MF $(DEPDIR)/proc.Tpo -c -o proc.lo `test -f 'runtime/proc.c' || echo '$(srcdir)/'`runtime/proc.c ++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) -fno-inline-functions $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT proc.lo -MD -MP -MF $(DEPDIR)/proc.Tpo -c -o proc.lo `test -f 'runtime/proc.c' || echo '$(srcdir)/'`runtime/proc.c + @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proc.Tpo $(DEPDIR)/proc.Plo + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/proc.c' object='proc.lo' libtool=yes @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ diff --git a/lang/gcc5/patches/patch-libgo_mksysinfo.sh b/lang/gcc5/patches/patch-libgo_mksysinfo.sh new file mode 100644 index 00000000000..23bc2760452 --- /dev/null +++ b/lang/gcc5/patches/patch-libgo_mksysinfo.sh @@ -0,0 +1,13 @@ +$NetBSD: patch-libgo_mksysinfo.sh,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libgo/mksysinfo.sh.orig 2014-11-12 07:15:40.000000000 +0000 ++++ libgo/mksysinfo.sh +@@ -470,7 +470,7 @@ upcase_fields () { + # GNU/Linux specific; it should do no harm if there is no + # _user_regs_struct. + regs=`grep '^type _user_regs_struct struct' gen-sysinfo.go || true` +-if test "$regs" == ""; then ++if test "$regs" = ""; then + # s390 + regs=`grep '^type __user_regs_struct struct' gen-sysinfo.go || true` + if test "$regs" != ""; then diff --git a/lang/gcc5/patches/patch-libjava_boehm.cc b/lang/gcc5/patches/patch-libjava_boehm.cc new file mode 100644 index 00000000000..2a4eae7d488 --- /dev/null +++ b/lang/gcc5/patches/patch-libjava_boehm.cc @@ -0,0 +1,22 @@ +$NetBSD: patch-libjava_boehm.cc,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libjava/boehm.cc.orig 2014-05-20 18:02:20.000000000 +0000 ++++ libjava/boehm.cc +@@ -748,7 +748,7 @@ _Jv_GCAttachThread () + // only actually works if pthread_getattr_np is defined. + // FIXME: until gc7 it is simpler to disable this on solaris. + #if defined(HAVE_PTHREAD_GETATTR_NP) && !defined(GC_SOLARIS_THREADS) \ +- && !defined(GC_WIN32_THREADS) ++ && !defined(__NetBSD__) && !defined(GC_WIN32_THREADS) + GC_register_my_thread (); + #endif + } +@@ -757,7 +757,7 @@ void + _Jv_GCDetachThread () + { + #if defined(HAVE_PTHREAD_GETATTR_NP) && !defined(GC_SOLARIS_THREADS) \ +- && !defined(GC_WIN32_THREADS) ++ && !defined(__NetBSD__) && !defined(GC_WIN32_THREADS) + GC_unregister_my_thread (); + #endif + } diff --git a/lang/gcc5/patches/patch-libjava_configure b/lang/gcc5/patches/patch-libjava_configure new file mode 100644 index 00000000000..e343a117a2a --- /dev/null +++ b/lang/gcc5/patches/patch-libjava_configure @@ -0,0 +1,17 @@ +$NetBSD: patch-libjava_configure,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +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 2012-03-22 07:37:39.000000000 +0000 ++++ libjava/configure +@@ -24692,7 +24692,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. diff --git a/lang/gcc5/patches/patch-libjava_contrib_rebuild-gcj-db.in b/lang/gcc5/patches/patch-libjava_contrib_rebuild-gcj-db.in new file mode 100644 index 00000000000..90a136c442a --- /dev/null +++ b/lang/gcc5/patches/patch-libjava_contrib_rebuild-gcj-db.in @@ -0,0 +1,29 @@ +$NetBSD: patch-libjava_contrib_rebuild-gcj-db.in,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +No need to use bash for this small script. + +Also -print0 is not portable to solaris and perhaps others. + +--- libjava/contrib/rebuild-gcj-db.in.orig 2008-07-02 13:17:54.000000000 +0000 ++++ libjava/contrib/rebuild-gcj-db.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # rebuild-gcj-db + + ## Copyright (C) 2000, 2002, 2003, 2008 Free Software Foundation +@@ -16,12 +16,12 @@ for i in `@prefix@/bin/gcc --print-multi + base=@prefix@/lib/$dirname + dbLocation=`@prefix@/bin/gcj-dbtool -p $base` + libdir=$base/gcj +- if ! test -d $libdir; then ++ if test ! -d $libdir; then + # No shared libraries here. + continue + fi + dirname $dbLocation | xargs mkdir -p + @prefix@/bin/gcj-dbtool -n $dbLocation 64 +- find $libdir -follow -name '*.db' -print0 | \ ++ find $libdir -follow -name '*.db' -print | @AWK@ '{printf("%s%c", $1, 0);}'|\ + @prefix@/bin/gcj-dbtool -0 -m $dbLocation $dbLocation + done diff --git a/lang/gcc5/patches/patch-libsanitizer_configure.tgt b/lang/gcc5/patches/patch-libsanitizer_configure.tgt new file mode 100644 index 00000000000..3b582f32c68 --- /dev/null +++ b/lang/gcc5/patches/patch-libsanitizer_configure.tgt @@ -0,0 +1,13 @@ +$NetBSD: patch-libsanitizer_configure.tgt,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libsanitizer/configure.tgt.orig 2014-09-26 13:07:42.000000000 +0000 ++++ libsanitizer/configure.tgt +@@ -37,7 +37,7 @@ case "${target}" in + ;; + aarch64*-*-linux*) + ;; +- x86_64-*-darwin[1]* | i?86-*-darwin[1]*) ++ x86_64-*-darwin[1][1-9]* | i?86-*-darwin[1][1-9]*) + TSAN_SUPPORTED=no + ;; + *) diff --git a/lang/gcc5/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h b/lang/gcc5/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h new file mode 100644 index 00000000000..37836167b07 --- /dev/null +++ b/lang/gcc5/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h @@ -0,0 +1,37 @@ +$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libstdc++-v3/config/os/bsd/netbsd/ctype_base.h.orig 2013-02-03 17:54:05.000000000 +0000 ++++ libstdc++-v3/config/os/bsd/netbsd/ctype_base.h +@@ -43,9 +43,22 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + // NB: Offsets into ctype::_M_table force a particular size + // on the mask type. Because of this, we don't use an enum. +- typedef unsigned char mask; + +-#ifndef _CTYPE_U ++#if defined(_CTYPE_BL) ++ typedef unsigned short mask; ++ static const mask upper = _CTYPE_U; ++ static const mask lower = _CTYPE_L; ++ static const mask alpha = _CTYPE_A; ++ static const mask digit = _CTYPE_D; ++ static const mask xdigit = _CTYPE_X; ++ static const mask space = _CTYPE_S; ++ static const mask print = _CTYPE_R; ++ static const mask graph = _CTYPE_G; ++ static const mask cntrl = _CTYPE_C; ++ static const mask punct = _CTYPE_P; ++ static const mask alnum = _CTYPE_A | _CTYPE_D; ++#elif !defined(_CTYPE_U) ++ typedef unsigned char mask; + static const mask upper = _U; + static const mask lower = _L; + static const mask alpha = _U | _L; +@@ -58,6 +71,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + static const mask punct = _P; + static const mask alnum = _U | _L | _N; + #else ++ typedef unsigned char mask; + static const mask upper = _CTYPE_U; + static const mask lower = _CTYPE_L; + static const mask alpha = _CTYPE_U | _CTYPE_L; diff --git a/lang/gcc5/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc b/lang/gcc5/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc new file mode 100644 index 00000000000..af4c2f4b9a9 --- /dev/null +++ b/lang/gcc5/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc @@ -0,0 +1,57 @@ +$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__configure__char.cc,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc.orig 2013-02-03 17:54:05.000000000 +0000 ++++ libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc +@@ -38,11 +38,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + // Information as gleaned from /usr/include/ctype.h + ++#ifndef _CTYPE_BL + extern "C" const u_int8_t _C_ctype_[]; ++#endif + + const ctype_base::mask* + ctype::classic_table() throw() +- { return _C_ctype_ + 1; } ++#ifdef _CTYPE_BL ++ { return _C_ctype_tab_ + 1; } ++#else ++ { return _C_ctype_ + 1; } ++#endif + + ctype::ctype(__c_locale, const mask* __table, bool __del, + size_t __refs) +@@ -69,14 +75,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + char + ctype::do_toupper(char __c) const +- { return ::toupper((int) __c); } ++ { return ::toupper((int)(unsigned char) __c); } + + const char* + ctype::do_toupper(char* __low, const char* __high) const + { + while (__low < __high) + { +- *__low = ::toupper((int) *__low); ++ *__low = ::toupper((int)(unsigned char) *__low); + ++__low; + } + return __high; +@@ -84,14 +90,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + char + ctype::do_tolower(char __c) const +- { return ::tolower((int) __c); } ++ { return ::tolower((int)(unsigned char) __c); } + + const char* + ctype::do_tolower(char* __low, const char* __high) const + { + while (__low < __high) + { +- *__low = ::tolower((int) *__low); ++ *__low = ::tolower((int)(unsigned char) *__low); + ++__low; + } + return __high; diff --git a/lang/gcc5/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h b/lang/gcc5/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h new file mode 100644 index 00000000000..6f1c956d3cb --- /dev/null +++ b/lang/gcc5/patches/patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h @@ -0,0 +1,13 @@ +$NetBSD: patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h.orig 2013-02-03 17:54:05.000000000 +0000 ++++ libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h +@@ -48,7 +48,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + is(const char* __low, const char* __high, mask* __vec) const + { + while (__low < __high) +- *__vec++ = _M_table[*__low++]; ++ *__vec++ = _M_table[(unsigned char)*__low++]; + return __high; + } + diff --git a/lang/gcc5/patches/patch-libstdc++-v3_libsupc++_unwind-cxx.h b/lang/gcc5/patches/patch-libstdc++-v3_libsupc++_unwind-cxx.h new file mode 100644 index 00000000000..1eb5bbc6649 --- /dev/null +++ b/lang/gcc5/patches/patch-libstdc++-v3_libsupc++_unwind-cxx.h @@ -0,0 +1,12 @@ +$NetBSD: patch-libstdc++-v3_libsupc++_unwind-cxx.h,v 1.1 2015/07/16 12:03:36 ryoon Exp $ + +--- libstdc++-v3/libsupc++/unwind-cxx.h.orig 2013-03-19 17:04:44.000000000 +0000 ++++ libstdc++-v3/libsupc++/unwind-cxx.h +@@ -38,6 +38,7 @@ + #include + + #ifdef _GLIBCXX_HAVE_SYS_SDT_H ++#include + #include + /* We only want to use stap probes starting with v3. Earlier versions + added too much startup cost. */ diff --git a/lang/gcc5/version.mk b/lang/gcc5/version.mk new file mode 100644 index 00000000000..4337c31c6d7 --- /dev/null +++ b/lang/gcc5/version.mk @@ -0,0 +1,2 @@ +# $NetBSD: version.mk,v 1.1 2015/07/16 12:03:36 ryoon Exp $ +GCC5_DIST_VERSION:=5.1.0 -- cgit v1.2.3