aboutsummaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorGerald Pfeifer <gerald@FreeBSD.org>2014-04-28 21:19:17 +0000
committerGerald Pfeifer <gerald@FreeBSD.org>2014-04-28 21:19:17 +0000
commitf307be961265f4a67aa94291e46d209e5022eebc (patch)
treeb909b4be80d860f82637037f40aff569a02cec5b /lang
parente81683c1d9e44f193b6714eaf28e0f3c6c790896 (diff)
downloadports-f307be961265f4a67aa94291e46d209e5022eebc.tar.gz
ports-f307be961265f4a67aa94291e46d209e5022eebc.zip
Welcome GCC 4.10 aka lang/gcc410. This has recently branched from
GCC 4.9 development and is feature equivalent at this point. The coming months, during stage 1 of GCC developemtn, there will be many invasive and partially destablizing changes. Any outfall will be addressed in the second half of the release cylce. Until then, use at your own risk and file any bugs upstream.
Notes
Notes: svn path=/head/; revision=352556
Diffstat (limited to 'lang')
-rw-r--r--lang/Makefile1
-rw-r--r--lang/gcc410/Makefile152
-rw-r--r--lang/gcc410/distinfo2
-rw-r--r--lang/gcc410/files/java-patch-hier11
-rw-r--r--lang/gcc410/files/patch-unwind-ia64.h20
-rw-r--r--lang/gcc410/files/pkg-message.in7
-rw-r--r--lang/gcc410/pkg-descr7
-rw-r--r--lang/gcc410/pkg-plist81
8 files changed, 281 insertions, 0 deletions
diff --git a/lang/Makefile b/lang/Makefile
index 13bc40ddbfdb..614def077a64 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -88,6 +88,7 @@
SUBDIR += gcc47-aux
SUBDIR += gcc48
SUBDIR += gcc49
+ SUBDIR += gcc410
SUBDIR += gcl
SUBDIR += gforth
SUBDIR += ghc
diff --git a/lang/gcc410/Makefile b/lang/gcc410/Makefile
new file mode 100644
index 000000000000..472f1ae846a9
--- /dev/null
+++ b/lang/gcc410/Makefile
@@ -0,0 +1,152 @@
+# Created by: Gerald Pfeifer <gerald@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= gcc410
+PORTVERSION= 4.10.0.s20140420
+CATEGORIES= lang java
+MASTER_SITES= ${MASTER_SITE_GCC}
+MASTER_SITE_SUBDIR= snapshots/${DISTVERSION}
+DISTNAME= gcc-${DISTVERSION}
+
+MAINTAINER= gerald@FreeBSD.org
+COMMENT= GNU Compiler Collection 4.10
+
+LICENSE= GPLv3 GPLv3RLE
+LICENSE_COMB= multi
+
+LIB_DEPENDS= libgmp.so:${PORTSDIR}/math/gmp \
+ libmpfr.so:${PORTSDIR}/math/mpfr \
+ libmpc.so:${PORTSDIR}/math/mpc
+BUILD_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
+RUN_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
+
+.if defined(MAINTAINER_MODE)
+BUILD_DEPENDS+= runtest:${PORTSDIR}/misc/dejagnu
+.endif
+
+# DISTVERSION relates to downloads, GCC_VERSION and SUFFIX to names
+# of executables and directories once installed. A PORTVERSION of
+# 4.Y.2.s20130808 results in values of 4.Y-20130808, 4.Y.2, and 4Y
+# for these three.
+DISTVERSION= ${PORTVERSION:C/([0-9]+\.[0-9]+).*\.s([0-9]+)/\1-\2/}
+GCC_VERSION= ${PORTVERSION:C/(.+)\.s[0-9]{8}/\1/}
+SUFFIX= ${PORTVERSION:C/([0-9]+).([0-9]+).*/\1\2/}
+ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 sparc64
+USES= gmake iconv perl5 tar:bzip2
+USE_BINUTILS= yes
+USE_PERL5= build
+SSP_UNSAFE= yes
+
+PATCH_WRKSRC= ${SRCDIR}
+CONFIGURE_SCRIPT= ../${SRCDIR:S/${WRKDIR}\///}/configure
+
+OPTIONS_DEFINE= BOOTSTRAP
+OPTIONS_DEFINE_i386= JAVA
+OPTIONS_DEFINE_amd64= JAVA
+OPTIONS_DEFAULT= BOOTSTRAP
+OPTIONS_DEFAULT_i386= JAVA
+OPTIONS_DEFAULT_amd64= JAVA
+BOOTSTRAP_DESC= Build using a full bootstrap
+
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} == "amd64"
+CONFIGURE_TARGET= x86_64-portbld-${OPSYS:L}${OSREL}
+.else
+CONFIGURE_TARGET= ${ARCH}-portbld-${OPSYS:L}${OSREL}
+.endif
+
+.if ${ARCH} == powerpc64
+CONFIGURE_ENV+= UNAME_m="powerpc64"
+.endif
+
+LANGUAGES:= c,c++,objc,fortran
+SRCDIR= ${WRKDIR}/gcc-${DISTVERSION}
+WRKSRC= ${WRKDIR}/build
+TARGLIB= ${PREFIX}/lib/gcc${SUFFIX}
+LIBEXEC= ${PREFIX}/libexec/gcc${SUFFIX}
+GNU_CONFIGURE= yes
+.if empty(PORT_OPTIONS:MBOOTSTRAP)
+CONFIGURE_ARGS+=--disable-bootstrap
+.else
+ALL_TARGET= bootstrap-lean
+.endif
+CONFIGURE_ARGS+=--disable-nls \
+ --enable-gnu-indirect-function \
+ --libdir=${TARGLIB} \
+ --libexecdir=${LIBEXEC} \
+ --program-suffix=${SUFFIX} \
+ --with-as=${LOCALBASE}/bin/as \
+ --with-gmp=${LOCALBASE} \
+ --with-gxx-include-dir=${TARGLIB}/include/c++/ \
+ --with-ld=${LOCALBASE}/bin/ld \
+ ${ICONV_CONFIGURE_ARG} \
+ --with-pkgversion="FreeBSD Ports Collection" \
+ --with-system-zlib
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
+USE_LDCONFIG= ${TARGLIB}
+PLIST_SUB= GCC_VERSION=${GCC_VERSION} \
+ GNU_HOST=${CONFIGURE_TARGET} \
+ SUFFIX=${SUFFIX}
+INFO= gcc${SUFFIX}/cpp \
+ gcc${SUFFIX}/cppinternals \
+ gcc${SUFFIX}/gcc \
+ gcc${SUFFIX}/gccinstall \
+ gcc${SUFFIX}/gccint \
+ gcc${SUFFIX}/gfortran \
+ gcc${SUFFIX}/libgomp
+.if ${ARCH} == "i386" || ${ARCH} == "amd64"
+INFO+= gcc${SUFFIX}/libquadmath \
+ gcc${SUFFIX}/libitm
+.endif
+SUB_FILES= pkg-message
+SUB_LIST+= TARGLIB=${TARGLIB}
+
+.if ${PORT_OPTIONS:MJAVA}
+ECJ_JAR= ${LOCALBASE}/share/java/ecj-4.5.jar
+BUILD_DEPENDS+= ${ECJ_JAR}:${PORTSDIR}/lang/gcc-ecj45 \
+ zip:${PORTSDIR}/archivers/zip
+RUN_DEPENDS+= ${ECJ_JAR}:${PORTSDIR}/lang/gcc-ecj45
+EXTRA_PATCHES+= ${FILESDIR}/java-patch-hier
+CONFIGURE_ARGS+=--with-ecj-jar=${ECJ_JAR}
+LANGUAGES:= ${LANGUAGES},java
+INFO+= gcc${SUFFIX}/cp-tools \
+ gcc${SUFFIX}/gcj
+PLIST_SUB+= JAVA=""
+.else
+CONFIGURE_ARGS+=--disable-libgcj
+PLIST_SUB+= JAVA="@comment "
+.endif
+CONFIGURE_ARGS+=--enable-languages=${LANGUAGES}
+
+pre-everything::
+ @${ECHO_MSG} "Making GCC ${PORTVERSION} for ${CONFIGURE_TARGET} [${LANGUAGES}]"
+
+pre-configure:
+ cd ${SRCDIR} ; contrib/gcc_update --touch
+ @${RM} -f ${SRCDIR}/gcc/*/*.info*
+ @${MKDIR} ${CONFIGURE_WRKSRC}
+
+.if defined(MAINTAINER_MODE)
+full-regression-test: build
+ cd ${WRKSRC}; ${GMAKE} -sk check \
+ ; ${SRCDIR}/contrib/test_summary
+.endif
+
+post-install:
+ ${RM} -f ${STAGEDIR}${TARGLIB}/*.la
+ ${RM} -f ${STAGEDIR}${PREFIX}/man/man7/*
+ ${RM} -f ${STAGEDIR}${PREFIX}/bin/rebuild-gcj-db${SUFFIX} \
+ ${STAGEDIR}${PREFIX}/man/man1/rebuild-gcj-db${SUFFIX}.1
+ # Add target libraries and include files to packaging list.
+ ${RM} -f ${WRKDIR}/PLIST.lib
+.for d in ${TARGLIB:S/^${PREFIX}\///} ${LIBEXEC:S/^${PREFIX}\///} include/gcj include/gnu include/java include/javax
+ cd ${STAGEDIR}${PREFIX} ; if [ -d $d ]; then \
+ ${FIND} $d -type f -o -type l >>${WRKDIR}/PLIST.lib ;\
+ ${FIND} $d -type d | ${SORT} -r \
+ | ${SED} -e 's/^/@dirrm /g' >>${WRKDIR}/PLIST.lib ;\
+ fi
+.endfor
+ cd ${WRKDIR} ; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
+
+.include <bsd.port.post.mk>
diff --git a/lang/gcc410/distinfo b/lang/gcc410/distinfo
new file mode 100644
index 000000000000..4830bc9e3726
--- /dev/null
+++ b/lang/gcc410/distinfo
@@ -0,0 +1,2 @@
+SHA256 (gcc-4.10-20140420.tar.bz2) = 85774695a03b31656e4a3c53ce8a8096c3a4ab34f7e7996c17363eaa56b07fba
+SIZE (gcc-4.10-20140420.tar.bz2) = 85545006
diff --git a/lang/gcc410/files/java-patch-hier b/lang/gcc410/files/java-patch-hier
new file mode 100644
index 000000000000..8dd7f4637f70
--- /dev/null
+++ b/lang/gcc410/files/java-patch-hier
@@ -0,0 +1,11 @@
+--- libjava/Makefile.in 2013-05-26 22:33:07.000000000 +0000
++++ libjava/Makefile.in 2013-05-31 21:19:23.000000000 +0000
+@@ -941,7 +941,7 @@
+ @BUILD_SUBLIBS_FALSE@LIBJAVA_CORE_EXTRA =
+ @BUILD_SUBLIBS_TRUE@LIBJAVA_CORE_EXTRA = @LIBGCJ_SUBLIB_CORE_EXTRA_DEPS@
+ dbexec_LTLIBRARIES = libjvm.la
+-pkgconfigdir = $(toolexeclibdir)/pkgconfig
++pkgconfigdir = $(prefix)/libdata/pkgconfig
+ jardir = $(datadir)/java
+ jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar \
+ $(am__append_5)
diff --git a/lang/gcc410/files/patch-unwind-ia64.h b/lang/gcc410/files/patch-unwind-ia64.h
new file mode 100644
index 000000000000..57f97172e207
--- /dev/null
+++ b/lang/gcc410/files/patch-unwind-ia64.h
@@ -0,0 +1,20 @@
+2012-12-17 Gerald Pfeifer <gerald@pfeifer.com>
+ Anton Shterenlikht <mexas@bristol.ac.uk>
+
+ PR target/45650
+ * config/ia64/unwind-ia64.h: Do not mark _Unwind_FindTableEntry
+ hidden on FreeBSD.
+
+Index: libgcc/config/ia64/unwind-ia64.h
+===================================================================
+--- libgcc/config/ia64/unwind-ia64.h
++++ libgcc/config/ia64/unwind-ia64.h (working copy)
+@@ -49,4 +49,7 @@
+ extern struct unw_table_entry *
+ _Unwind_FindTableEntry (void *pc, unw_word *segment_base,
+ unw_word *gp, struct unw_table_entry *ent)
+- __attribute__ ((__visibility__ ("hidden")));
++#ifndef __FreeBSD__
++ __attribute__ ((__visibility__ ("hidden")))
++#endif
++ ;
diff --git a/lang/gcc410/files/pkg-message.in b/lang/gcc410/files/pkg-message.in
new file mode 100644
index 000000000000..433c37a3f89b
--- /dev/null
+++ b/lang/gcc410/files/pkg-message.in
@@ -0,0 +1,7 @@
+To ensure binaries built with this toolchain find appropriate versions
+of the necessary run-time libraries, you may want to link using
+
+ -Wl,-rpath=%%TARGLIB%%
+
+For ports leveraging USE_GCC, USES=compiler, or USES=fortran this happens
+transparently.
diff --git a/lang/gcc410/pkg-descr b/lang/gcc410/pkg-descr
new file mode 100644
index 000000000000..0d2e47a158ba
--- /dev/null
+++ b/lang/gcc410/pkg-descr
@@ -0,0 +1,7 @@
+GCC, the GNU Compiler Collection, supports a number of languages. This
+port installs the C, C++, Fortran and Java front ends as gcc410, g++410,
+gfortran410, and gcj410, respectively.
+
+WWW: http://gcc.gnu.org/
+
+Gerald Pfeifer <gerald@FreeBSD.org>
diff --git a/lang/gcc410/pkg-plist b/lang/gcc410/pkg-plist
new file mode 100644
index 000000000000..bc8061e1a965
--- /dev/null
+++ b/lang/gcc410/pkg-plist
@@ -0,0 +1,81 @@
+bin/%%GNU_HOST%%-c++%%SUFFIX%%
+bin/%%GNU_HOST%%-g++%%SUFFIX%%
+bin/%%GNU_HOST%%-gcc%%SUFFIX%%
+bin/%%GNU_HOST%%-gcc-%%GCC_VERSION%%
+bin/%%GNU_HOST%%-gcc-ar%%SUFFIX%%
+bin/%%GNU_HOST%%-gcc-nm%%SUFFIX%%
+bin/%%GNU_HOST%%-gcc-ranlib%%SUFFIX%%
+bin/%%GNU_HOST%%-gfortran%%SUFFIX%%
+bin/c++%%SUFFIX%%
+bin/cpp%%SUFFIX%%
+bin/g++%%SUFFIX%%
+bin/gcc%%SUFFIX%%
+bin/gcc-ar%%SUFFIX%%
+bin/gcc-nm%%SUFFIX%%
+bin/gcc-ranlib%%SUFFIX%%
+bin/gcov%%SUFFIX%%
+bin/gfortran%%SUFFIX%%
+info/gcc%%SUFFIX%%/dir
+man/man1/cpp%%SUFFIX%%.1.gz
+man/man1/g++%%SUFFIX%%.1.gz
+man/man1/gcc%%SUFFIX%%.1.gz
+man/man1/gcov%%SUFFIX%%.1.gz
+man/man1/gfortran%%SUFFIX%%.1.gz
+%%JAVA%%share/gcc-%%GCC_VERSION%%/python/libjava/aotcompile.py
+%%JAVA%%share/gcc-%%GCC_VERSION%%/python/libjava/classfile.py
+%%JAVA%%@dirrm share/gcc-%%GCC_VERSION%%/python/libjava
+share/gcc-%%GCC_VERSION%%/python/libstdcxx/__init__.py
+share/gcc-%%GCC_VERSION%%/python/libstdcxx/v6/__init__.py
+share/gcc-%%GCC_VERSION%%/python/libstdcxx/v6/printers.py
+@dirrm share/gcc-%%GCC_VERSION%%/python/libstdcxx/v6
+@dirrm share/gcc-%%GCC_VERSION%%/python/libstdcxx
+@dirrm share/gcc-%%GCC_VERSION%%/python
+@dirrm share/gcc-%%GCC_VERSION%%
+%%JAVA%%bin/%%GNU_HOST%%-gcj%%SUFFIX%%
+%%JAVA%%bin/aot-compile%%SUFFIX%%
+%%JAVA%%bin/gappletviewer%%SUFFIX%%
+%%JAVA%%bin/gc-analyze%%SUFFIX%%
+%%JAVA%%bin/gcj%%SUFFIX%%
+%%JAVA%%bin/gcj-dbtool%%SUFFIX%%
+%%JAVA%%bin/gcjh%%SUFFIX%%
+%%JAVA%%bin/gij%%SUFFIX%%
+%%JAVA%%bin/gjar%%SUFFIX%%
+%%JAVA%%bin/gjarsigner%%SUFFIX%%
+%%JAVA%%bin/gjavah%%SUFFIX%%
+%%JAVA%%bin/gkeytool%%SUFFIX%%
+%%JAVA%%bin/gnative2ascii%%SUFFIX%%
+%%JAVA%%bin/gorbd%%SUFFIX%%
+%%JAVA%%bin/grmic%%SUFFIX%%
+%%JAVA%%bin/grmid%%SUFFIX%%
+%%JAVA%%bin/grmiregistry%%SUFFIX%%
+%%JAVA%%bin/gserialver%%SUFFIX%%
+%%JAVA%%bin/gtnameserv%%SUFFIX%%
+%%JAVA%%bin/jcf-dump%%SUFFIX%%
+%%JAVA%%bin/jv-convert%%SUFFIX%%
+%%JAVA%%libdata/pkgconfig/libgcj-4.10.pc
+%%JAVA%%man/man1/aot-compile%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gappletviewer%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gc-analyze%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gcj%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gcj-dbtool%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gcjh%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gij%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gjar%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gjarsigner%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gjavah%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gjdoc%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gkeytool%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gnative2ascii%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gorbd%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/grmic%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/grmid%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/grmiregistry%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gserialver%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/gtnameserv%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/jcf-dump%%SUFFIX%%.1.gz
+%%JAVA%%man/man1/jv-convert%%SUFFIX%%.1.gz
+%%JAVA%%share/java/libgcj-%%GCC_VERSION%%.jar
+%%JAVA%%share/java/libgcj-tools-%%GCC_VERSION%%.jar
+@exec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi
+@unexec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi
+@comment Insert PLIST.lib here