From 04c8ad7602e8fd91b79f4579967539bdd850665d Mon Sep 17 00:00:00 2001 From: gerald Date: Mon, 10 Mar 2014 20:41:10 +0000 Subject: 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 ), alignment support (_Alignas, _Alignof, max_align_t, ), 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 (fixing many ports) Tested by: bdrewery (two -exp runs) --- Mk/bsd.default-versions.mk | 2 +- Mk/bsd.gcc.mk | 2 +- lang/gcc/Makefile | 16 +++++++++++----- lang/gcc/distinfo | 4 ++-- lang/gcc/files/patch-unwind-ia64.h | 19 ------------------- lang/gcc/pkg-descr | 8 ++++---- lang/gcc/pkg-plist | 8 +++++++- lang/gcc47/Makefile | 2 ++ 8 files changed, 28 insertions(+), 33 deletions(-) delete mode 100644 lang/gcc/files/patch-unwind-ia64.h 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 - - 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 -- cgit