Now that GCC 4.8.0 has been released, welcome GCC 4.9 in its very,

very early development stages.

Business as usual with the C, C++, Fortran, Java compilers and tools
invoked as gcc49, g++49, gfortran49, gcj49 and so forth. Initially
this may be relatively stable due to the GCC 4.8.0 stabilization
efforts, but be prepared for a rough ride the coming months as this
goes through active development.
This commit is contained in:
Gerald Pfeifer 2013-03-24 23:03:38 +00:00
parent be00327d52
commit b4a430c47e
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=315178
7 changed files with 275 additions and 0 deletions

View file

@ -91,6 +91,7 @@
SUBDIR += gcc46 SUBDIR += gcc46
SUBDIR += gcc47 SUBDIR += gcc47
SUBDIR += gcc48 SUBDIR += gcc48
SUBDIR += gcc49
SUBDIR += gcl SUBDIR += gcl
SUBDIR += gdc SUBDIR += gdc
SUBDIR += gforth SUBDIR += gforth

175
lang/gcc49/Makefile Normal file
View file

@ -0,0 +1,175 @@
# Created by: Gerald Pfeifer <gerald@FreeBSD.org>
# $FreeBSD$
PORTNAME= gcc
PORTVERSION= 4.9.0.20130319
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_GCC}
MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING}
DISTNAME= gcc-${VERSIONSTRING}
MAINTAINER= gerald@FreeBSD.org
COMMENT= GNU Compiler Collection 4.9
LIB_DEPENDS= gmp:${PORTSDIR}/math/gmp \
mpfr:${PORTSDIR}/math/mpfr \
mpc:${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
# VERSIONSTRING relates to downloads, GCC_VERSION and SUFFIX to names
# of executables and directories once installed.
VERSIONSTRING= ${PORTVERSION:C/([0-9]+\.[0-9]+).*\.([0-9]+)/\1-\2/}
GCC_VERSION= ${PORTVERSION:C/(.+)\.[0-9]{8}/\1/}
SUFFIX= ${PORTVERSION:C/([0-9]+).([0-9]+).*/\1\2/}
LATEST_LINK= gcc${SUFFIX}${PKGNAMESUFFIX}
ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 sparc64
USE_BINUTILS= yes
USES= bison
USE_BZIP2= yes
USE_GMAKE= yes
USE_ICONV= yes
USE_PERL5_BUILD=yes
MAKE_JOBS_SAFE= yes
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:S/${WRKDIR}\///}/configure
OPTIONS_DEFINE_i386= JAVA
OPTIONS_DEFINE_amd64= JAVA
OPTIONS_DEFAULT_i386= JAVA
OPTIONS_DEFAULT_amd64= JAVA
.include <bsd.port.pre.mk>
.if ${ARCH} == "amd64"
CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
.if ${ARCH} == powerpc64
CONFIGURE_ENV+= UNAME_m="powerpc64"
.endif
LANGUAGES:= c,c++,objc,fortran
SRCDIR= ${WRKDIR}/gcc-${VERSIONSTRING}
WRKSRC= ${WRKDIR}/build
TARGLIB= ${PREFIX}/lib/gcc${SUFFIX}
LIBEXEC= ${PREFIX}/libexec/gcc${SUFFIX}
GNU_CONFIGURE= yes
CFLAGS+= -I${LOCALBASE}/include
CONFIGURE_ARGS+=--disable-nls \
--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 \
--with-libiconv-prefix=${LOCALBASE} \
--with-pkgversion="FreeBSD Ports Collection" \
--with-system-zlib
MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
ALL_TARGET= bootstrap-lean
USE_LDCONFIG= ${TARGLIB}
PLIST_SUB= GCC_VERSION=${GCC_VERSION} \
GNU_HOST=${CONFIGURE_TARGET} \
SUFFIX=${SUFFIX}
MAN1= cpp${SUFFIX}.1 \
g++${SUFFIX}.1 \
gcc${SUFFIX}.1 \
gcov${SUFFIX}.1 \
gfortran${SUFFIX}.1
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" || ${ARCH} == "alpha"
INFO+= gcc${SUFFIX}/libquadmath \
gcc${SUFFIX}/libitm
.endif
.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
MAN1+= aot-compile${SUFFIX}.1 \
gappletviewer${SUFFIX}.1 \
gc-analyze${SUFFIX}.1 \
gcj${SUFFIX}.1 \
gcj-dbtool${SUFFIX}.1 \
gcjh${SUFFIX}.1 \
gij${SUFFIX}.1 \
gjar${SUFFIX}.1 \
gjarsigner${SUFFIX}.1 \
gjavah${SUFFIX}.1 \
gjdoc${SUFFIX}.1 \
gkeytool${SUFFIX}.1 \
gnative2ascii${SUFFIX}.1 \
gorbd${SUFFIX}.1 \
grmic${SUFFIX}.1 \
grmid${SUFFIX}.1 \
grmiregistry${SUFFIX}.1 \
gserialver${SUFFIX}.1 \
gtnameserv${SUFFIX}.1 \
jcf-dump${SUFFIX}.1 \
jv-convert${SUFFIX}.1 \
rebuild-gcj-db${SUFFIX}.1
MAN3= ffi${SUFFIX}.3 \
ffi_call${SUFFIX}.3 \
ffi_prep_cif${SUFFIX}.3 \
ffi_prep_cif_var${SUFFIX}.3
INFO+= gcc${SUFFIX}/cp-tools \
gcc${SUFFIX}/gcj \
gcc${SUFFIX}/libffi
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
.endif
post-install:
${RM} -f ${PREFIX}/man/man7/fsf-funding.7 \
${PREFIX}/man/man7/gfdl.7 ${PREFIX}/man/man7/gpl.7
${RM} -f ${TARGLIB}/*.la
# 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 ${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}
@if type ccache-update-links >/dev/null 2>&1; then \
ccache-update-links -v; \
fi
.include <bsd.port.post.mk>

2
lang/gcc49/distinfo Normal file
View file

@ -0,0 +1,2 @@
SHA256 (gcc-4.9-20130319.tar.bz2) = 8c27127aef5f3cb516f7d091ce258d3cdb9075112dc38ed134669362f1b84158
SIZE (gcc-4.9-20130319.tar.bz2) = 82611767

View file

@ -0,0 +1,13 @@
Index: libjava/Makefile.in
===================================================================
--- libjava/Makefile.in (revision 117734)
+++ libjava/Makefile.in (working copy)
@@ -712,7 +712,7 @@
$(am__append_2) $(am__append_3)
toolexecmainlib_DATA = libgcj.spec
dbexec_LTLIBRARIES = libjvm.la
-pkgconfigdir = $(libdir)/pkgconfig
+pkgconfigdir = $(prefix)/libdata/pkgconfig
jardir = $(datadir)/java
jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar
@JAVA_HOME_SET_FALSE@JAVA_HOME_DIR = $(prefix)

View file

@ -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
+ ;

7
lang/gcc49/pkg-descr Normal file
View file

@ -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 gcc49, g++49,
gfortran49, and gcj49, respectively.
WWW: http://gcc.gnu.org/
Gerald Pfeifer <gerald@FreeBSD.org>

57
lang/gcc49/pkg-plist Normal file
View file

@ -0,0 +1,57 @@
@comment $FreeBSD$
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
%%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%%bin/rebuild-gcj-db%%SUFFIX%%
%%JAVA%%libdata/pkgconfig/libgcj-4.9.pc
%%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