aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgerald <gerald@FreeBSD.org>2014-03-11 04:41:10 +0800
committergerald <gerald@FreeBSD.org>2014-03-11 04:41:10 +0800
commit04c8ad7602e8fd91b79f4579967539bdd850665d (patch)
tree82527306aa3108dfd71eceb51029c5e47d78944a
parente9f032838d2a0f43f0171aeb5c9adf58f177b755 (diff)
downloadfreebsd-ports-gnome-04c8ad7602e8fd91b79f4579967539bdd850665d.tar.gz
freebsd-ports-gnome-04c8ad7602e8fd91b79f4579967539bdd850665d.tar.zst
freebsd-ports-gnome-04c8ad7602e8fd91b79f4579967539bdd850665d.zip
Update the default version of GCC used in the Ports Collection from
GCC 4.6.4 to GCC 4.7.3. This entails updating the lang/gcc port as well as changing the default in Mk/bsd.default-versions.mk. This adds powerpc64 as a supported architecture (and removes ia64, though it can be supported by manually installing lang/gcc48). New binaries %%GNU_HOST%%-gcc-ar47, %%GNU_HOST%%-gcc-nm47, and %%GNU_HOST%%-gcc-ranlib47 are provided to support link-time optimization (LTO) which scales significantly better. And it adds support for indirect functions (IFUNCS), experimental support for transactional memory in the compiler as well as a supporting run-time library called libitm, a new string length optimization pass, and support for atomic operations specifying the C++11/C11 memory model. Version 3.1 of the OpenMP specification is now supported for the C, C++, and Fortran compilers. GCC accepts the options -std=c11 and -std=gnu11 for the C11 revision of the ISO C standard which inlcude support for unicode strings, nonreturning functions (_Noreturn and <stdnoreturn.h>), alignment support (_Alignas, _Alignof, max_align_t, <stdalign.h>), and a __builtin_complex built-in function. The C++ frontend now accepts the -std=c++11, -std=gnu++11, and -Wc++11-compat options and implements many C++11 features of the language including extended friends syntax, explicit override control, non-static data member initializers, user-defined literals, alias declarations, delegating constructors, atomic classes, and more. The C++ standard library and Fortran frontend have received many improvements. See http://gcc.gnu.org/gcc-4.7/changes.html for an extense list of changes; http://gcc.gnu.org/gcc-4.7/porting_to.html for information on how to port to that new version. PR: 182136 Supported by: Christoph Moench-Tegeder <cmt@burggraben.net> (fixing many ports) Tested by: bdrewery (two -exp runs)
-rw-r--r--Mk/bsd.default-versions.mk2
-rw-r--r--Mk/bsd.gcc.mk2
-rw-r--r--lang/gcc/Makefile16
-rw-r--r--lang/gcc/distinfo4
-rw-r--r--lang/gcc/files/patch-unwind-ia64.h19
-rw-r--r--lang/gcc/pkg-descr8
-rw-r--r--lang/gcc/pkg-plist8
-rw-r--r--lang/gcc47/Makefile2
8 files changed, 28 insertions, 33 deletions
diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk
index 7885423f2032..d1f701fa3fb3 100644
--- a/Mk/bsd.default-versions.mk
+++ b/Mk/bsd.default-versions.mk
@@ -20,7 +20,7 @@ ${_l:U}_DEFAULT= ${lang:C/.*=//g}
APACHE_DEFAULT?= 2.2
FPC_DEFAULT?= 2.6.2
-GCC_DEFAULT?= 4.6
+GCC_DEFAULT?= 4.7
LUA_DEFAULT?= 5.2
MYSQL_DEFAULT?= 5.5
PERL5_DEFAULT?= 5.16
diff --git a/Mk/bsd.gcc.mk b/Mk/bsd.gcc.mk
index f8e535b017af..cc158ea5be70 100644
--- a/Mk/bsd.gcc.mk
+++ b/Mk/bsd.gcc.mk
@@ -19,7 +19,7 @@
#
# Examples:
# USE_GCC= yes # port requires a current version of GCC
-# # (4.6 as of today, subject to change).
+# # (4.7 as of today, subject to change).
# USE_GCC= any # port requires GCC 4.2 or later.
# USE_GCC= 4.8+ # port requires GCC 4.8 or later.
# USE_GCC= 4.8 # port requires GCC 4.8.
diff --git a/lang/gcc/Makefile b/lang/gcc/Makefile
index 00971b65d412..2cdd83ba0472 100644
--- a/lang/gcc/Makefile
+++ b/lang/gcc/Makefile
@@ -2,13 +2,13 @@
# $FreeBSD$
PORTNAME= gcc
-PORTVERSION= 4.6.4
+PORTVERSION= 4.7.3
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_GCC}
MASTER_SITE_SUBDIR= releases/gcc-${DISTVERSION}
MAINTAINER= gerald@FreeBSD.org
-COMMENT= GNU Compiler Collection 4.6
+COMMENT= GNU Compiler Collection 4.7
LICENSE= GPLv3 GPLv3RLE
LICENSE_COMB= multi
@@ -23,14 +23,14 @@ RUN_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
BUILD_DEPENDS+= runtest:${PORTSDIR}/misc/dejagnu
.endif
-CONFLICTS= gcc46*
+CONFLICTS= gcc47*
# DISTVERSION relates to downloads, GCC_VERSION and SUFFIX to names
# of executables and directories once installed.
DISTVERSION= ${PORTVERSION}
GCC_VERSION= ${PORTVERSION:C/(.+)\.[0-9]{8}/\1/}
SUFFIX= ${PORTVERSION:C/([0-9]+).([0-9]+).*/\1\2/}
-ONLY_FOR_ARCHS= amd64 i386 ia64 powerpc sparc64
+ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 sparc64
USES= gmake iconv perl5
USE_BINUTILS= yes
USE_BZIP2= yes
@@ -55,6 +55,10 @@ CONFIGURE_TARGET= x86_64-portbld-${OPSYS:L}${OSREL}
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
@@ -67,6 +71,7 @@ CONFIGURE_ARGS+=--disable-bootstrap
ALL_TARGET= bootstrap-lean
.endif
CONFIGURE_ARGS+=--disable-nls \
+ --enable-gnu-indirect-function \
--libdir=${TARGLIB} \
--libexecdir=${LIBEXEC} \
--program-suffix=${SUFFIX} \
@@ -91,7 +96,8 @@ INFO= gcc${SUFFIX}/cpp \
gcc${SUFFIX}/libgomp
# Release tarballs (as opposed to snapshots) always carry this.
#.if ${ARCH} != "ia64" && ${ARCH} != "powerpc" && ${ARCH} != "sparc64"
-INFO+= gcc${SUFFIX}/libquadmath
+INFO+= gcc${SUFFIX}/libquadmath \
+ gcc${SUFFIX}/libitm
#.endif
.if ${PORT_OPTIONS:MJAVA}
diff --git a/lang/gcc/distinfo b/lang/gcc/distinfo
index 9214124401ed..224eeb63c482 100644
--- a/lang/gcc/distinfo
+++ b/lang/gcc/distinfo
@@ -1,2 +1,2 @@
-SHA256 (gcc-4.6.4.tar.bz2) = 35af16afa0b67af9b8eb15cafb76d2bc5f568540552522f5dc2c88dd45d977e8
-SIZE (gcc-4.6.4.tar.bz2) = 72006076
+SHA256 (gcc-4.7.3.tar.bz2) = 2f7c37eb4fc14422ff2358a9ef59c974a75ab41204ef0e49fc34ab1d8981a9c3
+SIZE (gcc-4.7.3.tar.bz2) = 82904224
diff --git a/lang/gcc/files/patch-unwind-ia64.h b/lang/gcc/files/patch-unwind-ia64.h
deleted file mode 100644
index 265c82c77042..000000000000
--- a/lang/gcc/files/patch-unwind-ia64.h
+++ /dev/null
@@ -1,19 +0,0 @@
-2010-09-12 Gerald Pfeifer <gerald@pfeifer.com>
-
- PR target/45650
- * config/ia64/unwind-ia64.h: Do not mark _Unwind_FindTableEntry
- hidden on FreeBSD.
-
-Index: gcc/config/ia64/unwind-ia64.h
-===================================================================
---- gcc/config/ia64/unwind-ia64.h (revision 164211)
-+++ gcc/config/ia64/unwind-ia64.h (working copy)
-@@ -40,4 +40,7 @@
- extern struct unw_table_entry *
- _Unwind_FindTableEntry (void *pc, unsigned long *segment_base,
- unsigned long *gp, struct unw_table_entry *ent)
-- __attribute__ ((__visibility__ ("hidden")));
-+#ifndef __FreeBSD__
-+ __attribute__ ((__visibility__ ("hidden")))
-+#endif
-+ ;
diff --git a/lang/gcc/pkg-descr b/lang/gcc/pkg-descr
index e2ba591daf6d..864e48a6ab05 100644
--- a/lang/gcc/pkg-descr
+++ b/lang/gcc/pkg-descr
@@ -1,11 +1,11 @@
GCC, the GNU Compiler Collection, supports a number of languages. This
-port installs the C, C++, Fortran and Java front ends as gcc46, g++46,
-gfortran46, and gcj46, respectively.
+port installs the C, C++, Fortran and Java front ends as gcc47, g++47,
+gfortran47, and gcj47, respectively.
-It can be used interchangibly with the lang/gcc46 port which tracks
+It can be used interchangibly with the lang/gcc47 port which tracks
weekly upstream snapshots whereas this port will be updated less
frequently, mostly in sync with upstream releases, and will move to
-lang/gcc47 and later over time.
+lang/gcc48 and later over time.
WWW: http://gcc.gnu.org/
diff --git a/lang/gcc/pkg-plist b/lang/gcc/pkg-plist
index 89a7b8a777fd..0c067e997773 100644
--- a/lang/gcc/pkg-plist
+++ b/lang/gcc/pkg-plist
@@ -2,11 +2,17 @@ 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
@@ -47,7 +53,7 @@ share/gcc-%%GCC_VERSION%%/python/libstdcxx/v6/printers.py
%%JAVA%%bin/jcf-dump%%SUFFIX%%
%%JAVA%%bin/jv-convert%%SUFFIX%%
%%JAVA%%bin/rebuild-gcj-db%%SUFFIX%%
-%%JAVA%%libdata/pkgconfig/libgcj-4.6.pc
+%%JAVA%%libdata/pkgconfig/libgcj-4.7.pc
%%JAVA%%man/man1/aot-compile%%SUFFIX%%.1.gz
%%JAVA%%man/man1/gappletviewer%%SUFFIX%%.1.gz
%%JAVA%%man/man1/gc-analyze%%SUFFIX%%.1.gz
diff --git a/lang/gcc47/Makefile b/lang/gcc47/Makefile
index fd8171cea9ee..8ab3291a8edf 100644
--- a/lang/gcc47/Makefile
+++ b/lang/gcc47/Makefile
@@ -24,6 +24,8 @@ RUN_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
BUILD_DEPENDS+= runtest:${PORTSDIR}/misc/dejagnu
.endif
+CONFLICTS= gcc-4.7.*
+
# 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