pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/lang/gcc47 Import gcc-4.7.0 and lang/gcc47
details: https://anonhg.NetBSD.org/pkgsrc/rev/17e3aa4e3011
branches: trunk
changeset: 602624:17e3aa4e3011
user: sbd <sbd%pkgsrc.org@localhost>
date: Mon Apr 16 04:27:18 2012 +0000
description:
Import gcc-4.7.0 and lang/gcc47
GCC 4.7.0 is a major release, containing substantial new
functionality not available in GCC 4.6.x or previous GCC releases.
GCC 4.7 features support for software transactional memory on
selected architectures. The C++ compiler supports a bigger
subset of the new ISO C++11 standard such as support for atomics
and the C++11 memory model, non-static data member initializers,
user-defined literals, alias-declarations, delegating constructors,
explicit override and extended friend syntax. The C compiler adds support
for more features from the new ISO C11 standard. GCC now supports
version 3.1 of the OpenMP specification for C, C++ and Fortran.
The link-time optimization (LTO) framework has seen improvements
with regards to scalability, stability and resource needs. Inlining
and interprocedural constant propagation have been improved.
GCC 4.7 now supports various new GNU extensions to the DWARF debugging
information format, like entry value and call site information, a typed
DWARF stack and a more compact macro representation.
Extending the widest support for hardware architectures in the
industry, GCC 4.7 gains support for Adapteva's Epiphany processor,
National Semiconductor's CR16, and TI's C6X as well as Tilera's
TILE-Gx and TILEPro families of processors. The x86
family support has been extended by the Intel Haswell and AMD Piledriver
architectures. ARM has gained support for the Cortex-A7 family.
See
http://gcc.gnu.org/gcc-4.7/changes.html
for more information about changes in GCC 4.7.
diffstat:
lang/gcc47/DESCR | 3 +
lang/gcc47/Makefile | 119 +++++++++
lang/gcc47/PLIST.java | 42 +++
lang/gcc47/distinfo | 18 +
lang/gcc47/files/values.c | 64 +++++
lang/gcc47/options.mk | 163 +++++++++++++
lang/gcc47/patches/patch-gcc_Makefile.in | 17 +
lang/gcc47/patches/patch-gcc_config.gcc | 31 ++
lang/gcc47/patches/patch-gcc_config_netbsd-stdint.h | 63 +++++
lang/gcc47/patches/patch-gcc_fortran_f95-lang.c | 25 +
lang/gcc47/patches/patch-gcc_gcc.c | 19 +
lang/gcc47/patches/patch-gcc_ginclude_stddef.h | 19 +
lang/gcc47/patches/patch-libgfortran_configure | 15 +
lang/gcc47/patches/patch-libgo_Makefile.in | 17 +
lang/gcc47/patches/patch-libjava_configure | 17 +
lang/gcc47/patches/patch-libjava_contrib_rebuild-gcj-db.in | 29 ++
lang/gcc47/version.mk | 2 +
17 files changed, 663 insertions(+), 0 deletions(-)
diffs (truncated from 731 to 300 lines):
diff -r 66ed90e9855e -r 17e3aa4e3011 lang/gcc47/DESCR
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gcc47/DESCR Mon Apr 16 04:27:18 2012 +0000
@@ -0,0 +1,3 @@
+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,...).
diff -r 66ed90e9855e -r 17e3aa4e3011 lang/gcc47/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gcc47/Makefile Mon Apr 16 04:27:18 2012 +0000
@@ -0,0 +1,119 @@
+# $NetBSD: Makefile,v 1.1.1.1 2012/04/16 04:27:18 sbd Exp $
+
+GCC_PKGNAME= gcc47
+.include "version.mk"
+
+DISTNAME= gcc-${GCC_DIST_VERSION}
+PKGNAME= ${GCC_PKGNAME}-${GCC_DIST_VERSION}
+CATEGORIES= lang
+MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC_DIST_VERSION}/}
+EXTRACT_SUFX= .tar.bz2
+
+MAINTAINER= sbd%NetBSD.org@localhost
+HOMEPAGE= http://gcc.gnu.org/
+COMMENT= The GNU Compiler Collection (GCC) - 4.7 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-*-* DragonFly-*-*
+
+USE_TOOLS+= gmake makeinfo sed:run
+
+PKG_DESTDIR_SUPPORT= user-destdir
+
+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
+
+.include "../../mk/bsd.prefs.mk"
+
+LANGS= c
+
+## 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}
+
+## 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
+.endif
+
+.include "options.mk"
+
+# ${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"
+CONFIGURE_ENV+= OBJDUMP=/usr/sfw/bin/gobjdump
+CONFIGURE_ARGS+= --without-gnu-ld --with-ld=/usr/ccs/bin/ld
+. if !exists(/usr/sfw/bin/gas)
+CONFIGURE_ARGS+= --without-gnu-as --with-as=/usr/ccs/bin/as
+. else
+CONFIGURE_ARGS+= --with-gnu-as --with-as=/usr/sfw/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/bsd.pkg.mk"
diff -r 66ed90e9855e -r 17e3aa4e3011 lang/gcc47/PLIST.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gcc47/PLIST.java Mon Apr 16 04:27:18 2012 +0000
@@ -0,0 +1,42 @@
+@comment $NetBSD: PLIST.java,v 1.1.1.1 2012/04/16 04:27:18 sbd 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/${LOWER_OPSYS}/jawt_md.h
+java/${JAVA_NAME}/include/${LOWER_OPSYS}/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 -r 66ed90e9855e -r 17e3aa4e3011 lang/gcc47/distinfo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gcc47/distinfo Mon Apr 16 04:27:18 2012 +0000
@@ -0,0 +1,18 @@
+$NetBSD: distinfo,v 1.1.1.1 2012/04/16 04:27:18 sbd Exp $
+
+SHA1 (ecj-4.5.jar) = 58c1d79c64c8cd718550f32a932ccfde8d1e6449
+RMD160 (ecj-4.5.jar) = d3f4da657f086b6423f74e93f001132f4855368a
+Size (ecj-4.5.jar) = 1470676 bytes
+SHA1 (gcc-4.7.0.tar.bz2) = 03b8241477a9f8a34f6efe7273d92b9b6dd9fe82
+RMD160 (gcc-4.7.0.tar.bz2) = 4ed660b281cdb9bcf98f5c2cf2da105c71db5be4
+Size (gcc-4.7.0.tar.bz2) = 82518546 bytes
+SHA1 (patch-gcc_Makefile.in) = 2372899a37259c89281e6bd1223e39df9b53a7e3
+SHA1 (patch-gcc_config.gcc) = eeec5e63f000905c03186c4ccbac07e0cbe8a6b2
+SHA1 (patch-gcc_config_netbsd-stdint.h) = 025fc883101a187e84ed4c0772406720d645d550
+SHA1 (patch-gcc_fortran_f95-lang.c) = 06470dbee79f8c762675d3060a870b7dd9ba38f8
+SHA1 (patch-gcc_gcc.c) = 67a74bf3a5fc4cc9d9b3c7b79807fe11e2b002b3
+SHA1 (patch-gcc_ginclude_stddef.h) = 635e3e7579e9395fa017ac38e8b768d98937a80e
+SHA1 (patch-libgfortran_configure) = b3bbc7d9201073a1bed0b7e10141465bab52c8be
+SHA1 (patch-libgo_Makefile.in) = c06e3f0deb9f906d2c158262cffdc3fb7af95602
+SHA1 (patch-libjava_configure) = 48ea2baffe87e09dda8133d286bd9b1bfe4c3f8a
+SHA1 (patch-libjava_contrib_rebuild-gcj-db.in) = bb01d738fc7db05046ae37e8ade32574de1d8297
diff -r 66ed90e9855e -r 17e3aa4e3011 lang/gcc47/files/values.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gcc47/files/values.c Mon Apr 16 04:27:18 2012 +0000
@@ -0,0 +1,64 @@
+#if 0 /* $NetBSD: values.c,v 1.1.1.1 2012/04/16 04:27:18 sbd Exp $ */
+#
+# This is Solaris x86 specific GCC run-time environment patch, which
+# makes it possible to reliably deploy .init snippets. Trouble is that
+# Solaris linker erroneously pads .init segment with zeros [instead of
+# nops], which is bound to SEGV early upon program start-up. This bug
+# was recognized by GCC team [it is mentioned in source code], but
+# workaround apparently and obviously erroneously slipped away in some
+# newer GCC release. This patch compensates for this mishap by dropping
+# modified values-X*.o into GCC installation tree. Object modules in
+# question are normally provided by Sun and linked prior crtbegin.o.
+# Modified versions are additionally crafted with custom .init segment,
+# which does some magic:-)
+# <appro%fy.chalmers.se@localhost>
+set -e
+gcc=gcc
+if [[ "x$1" = x*gcc ]]; then
+ gcc=$1; shift
+fi
+gcc_dir=`${gcc} "$@" -print-libgcc-file-name`
+gcc_dir=${gcc_dir%/*} #*/
+set -x
+${gcc} "$@" -c -o $gcc_dir/values-Xa.o -DXa $0
+${gcc} "$@" -c -o $gcc_dir/values-Xc.o -DXc $0
+${gcc} "$@" -c -o $gcc_dir/values-Xt.o -DXt $0
+exit
+#endif
+
+#include <math.h>
+
+#if defined(Xa)
+const enum version _lib_version = ansi_1;
+#elif defined(Xc)
+const enum version _lib_version = strict_ansi;
+#elif defined(Xt)
+const enum version _lib_version = c_issue_4;
+#else
+#error "compile by issuing 'ksh -f values.c [gcc] [-m64]'"
+#endif
+
+#if defined(__x86_64__)
+asm("\n"
+".section .init\n"
+".align 1\n"
+" leaq 1f(%rip),%rax\n"
+"1: cmpl $0,2f-1b(%rax)\n"
+" jne 2f\n"
+" jmp 2f+5\n"
+" .skip 9\n" /* pad up to 0x1b bytes */
+"2:\n"
+);
+#else
+asm("\n"
+".section .init\n"
+".align 1\n"
+" call 1f\n"
+"1: popl %eax\n"
+" cmpl $0,2f-1b(%eax)\n"
+" jne 2f\n"
+" jmp 2f+5\n"
+" .skip 10\n" /* pad up to 0x1b bytes */
+"2:\n"
+);
+#endif
diff -r 66ed90e9855e -r 17e3aa4e3011 lang/gcc47/options.mk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gcc47/options.mk Mon Apr 16 04:27:18 2012 +0000
@@ -0,0 +1,163 @@
+# $NetBSD: options.mk,v 1.1.1.1 2012/04/16 04:27:18 sbd Exp $
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.${GCC_PKGNAME}
+PKG_SUPPORTED_OPTIONS= nls gcc-inplace-math gcc-c++ gcc-fortran gcc-java \
+ gcc-go gcc-objc gcc-objc++
+PKG_SUGGESTED_OPTIONS= gcc-c++ gcc-fortran gcc-go gcc-objc gcc-objc++
+
+.if ${OPSYS} == "NetBSD" || ${OPSYS} == "Linux"
+PKG_SUGGESTED_OPTIONS+= nls gcc-java
+.elif ${OPSYS} == "SunOS"
+PKG_SUGGESTED_OPTIONS+= gcc-inplace-math
+.else
+PKG_SUGGESTED_OPTIONS+= gcc-java
+.endif
+
+###
+### Determine if multilib is avalible.
+###
+.if !empty(MACHINE_PLATFORM:MLinux-*-x86_64) && \
+ exists(/usr/include/gnu/stubs-64.h) && \
+ !exists(/usr/include/gnu/stubs-32.h)
+MULTILIB_SUPPORTED=No
+.endif
+.if empty(MULTILIB_SUPPORTED:M[Nn][Oo])
+PKG_SUPPORTED_OPTIONS+= gcc-multilib
+PKG_SUGGESTED_OPTIONS+= gcc-multilib
+.endif
+
+.include "../../mk/bsd.options.mk"
+
Home |
Main Index |
Thread Index |
Old Index