diff options
-rw-r--r-- | pkgs/development/compilers/gcc/4.7/arm-eabi.patch | 230 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/4.7/builder.sh | 245 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/4.7/default.nix | 533 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/4.7/gfortran-driving.patch | 20 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/4.7/gnat-cflags.patch | 33 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/4.7/java-jvgenmain-link.patch | 17 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/4.7/libstdc++-target.patch | 32 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/4.7/no-sys-dirs.patch | 41 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/4.7/parallel-bconfig-4.7.patch | 30 | ||||
-rw-r--r-- | pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix | 2 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 53 |
11 files changed, 7 insertions, 1229 deletions
diff --git a/pkgs/development/compilers/gcc/4.7/arm-eabi.patch b/pkgs/development/compilers/gcc/4.7/arm-eabi.patch deleted file mode 100644 index 63b017062b5..00000000000 --- a/pkgs/development/compilers/gcc/4.7/arm-eabi.patch +++ /dev/null @@ -1,230 +0,0 @@ -Index: gcc-4_7-branch/libstdc++-v3/configure.host -=================================================================== ---- gcc-4_7-branch/libstdc++-v3/configure.host (revision 194579) -+++ gcc-4_7-branch/libstdc++-v3/configure.host (revision 194580) -@@ -340,7 +340,7 @@ - fi - esac - case "${host}" in -- arm*-*-linux-*eabi) -+ arm*-*-linux-*eabi*) - port_specific_symbol_files="\$(srcdir)/../config/os/gnu-linux/arm-eabi-extra.ver" - ;; - esac -Index: gcc-4_7-branch/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc -=================================================================== ---- gcc-4_7-branch/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc (revision 194579) -+++ gcc-4_7-branch/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc (revision 194580) -@@ -1,5 +1,5 @@ - // { dg-options "-std=gnu++0x -funsigned-char -fshort-enums" } --// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } -+// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } - - // 2007-05-03 Benjamin Kosnik <bkoz@redhat.com> - // -Index: gcc-4_7-branch/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc -=================================================================== ---- gcc-4_7-branch/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc (revision 194579) -+++ gcc-4_7-branch/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc (revision 194580) -@@ -1,5 +1,5 @@ - // { dg-options "-std=gnu++0x -funsigned-char -fshort-enums" } --// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } -+// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } - - // 2007-05-03 Benjamin Kosnik <bkoz@redhat.com> - // -Index: gcc-4_7-branch/libjava/configure.ac -=================================================================== ---- gcc-4_7-branch/libjava/configure.ac (revision 194579) -+++ gcc-4_7-branch/libjava/configure.ac (revision 194580) -@@ -931,7 +931,7 @@ - # on Darwin -single_module speeds up loading of the dynamic libraries. - extra_ldflags_libjava=-Wl,-single_module - ;; --arm*linux*eabi) -+arm*-*-linux*eabi*) - # Some of the ARM unwinder code is actually in libstdc++. We - # could in principle replicate it in libgcj, but it's better to - # have a dependency on libstdc++. -Index: gcc-4_7-branch/libjava/configure -=================================================================== ---- gcc-4_7-branch/libjava/configure (revision 194579) -+++ gcc-4_7-branch/libjava/configure (revision 194580) -@@ -20542,7 +20542,7 @@ - # on Darwin -single_module speeds up loading of the dynamic libraries. - extra_ldflags_libjava=-Wl,-single_module - ;; --arm*linux*eabi) -+arm*-*-linux*eabi*) - # Some of the ARM unwinder code is actually in libstdc++. We - # could in principle replicate it in libgcj, but it's better to - # have a dependency on libstdc++. -Index: gcc-4_7-branch/libgcc/config.host -=================================================================== ---- gcc-4_7-branch/libgcc/config.host (revision 194579) -+++ gcc-4_7-branch/libgcc/config.host (revision 194580) -@@ -327,7 +327,7 @@ - arm*-*-linux*) # ARM GNU/Linux with ELF - tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix" - case ${host} in -- arm*-*-linux-*eabi) -+ arm*-*-linux-*eabi*) - tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc" - tm_file="$tm_file arm/bpabi-lib.h" - unwind_header=config/arm/unwind-arm.h -Index: gcc-4_7-branch/gcc/doc/install.texi -=================================================================== ---- gcc-4_7-branch/gcc/doc/install.texi (revision 194579) -+++ gcc-4_7-branch/gcc/doc/install.texi (revision 194580) -@@ -3222,7 +3222,7 @@ - @heading @anchor{arm-x-eabi}arm-*-eabi - ARM-family processors. Subtargets that use the ELF object format - require GNU binutils 2.13 or newer. Such subtargets include: --@code{arm-*-netbsdelf}, @code{arm-*-*linux-gnueabi} -+@code{arm-*-netbsdelf}, @code{arm-*-*linux-gnueabi*} - and @code{arm-*-rtemseabi}. - - @html -Index: gcc-4_7-branch/gcc/testsuite/gcc.target/arm/synchronize.c -=================================================================== ---- gcc-4_7-branch/gcc/testsuite/gcc.target/arm/synchronize.c (revision 194579) -+++ gcc-4_7-branch/gcc/testsuite/gcc.target/arm/synchronize.c (revision 194580) -@@ -1,4 +1,4 @@ --/* { dg-final { scan-assembler "__sync_synchronize|dmb|mcr" { target arm*-*-linux-*eabi } } } */ -+/* { dg-final { scan-assembler "__sync_synchronize|dmb|mcr" { target arm*-*-linux-*eabi* } } } */ - - void *foo (void) - { -Index: gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.jason/enum6.C -=================================================================== ---- gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.jason/enum6.C (revision 194579) -+++ gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.jason/enum6.C (revision 194580) -@@ -7,10 +7,10 @@ - // enum-size attributes should only be emitted if there are values of - // enum type that can escape the compilation unit, gcc cannot currently - // detect this; if this facility is added then this linker option should --// not be needed. arm-*-linux*eabi should be a good approximation to -+// not be needed. arm-*-linux*eabi* should be a good approximation to - // those platforms where the EABI supplement defines enum values to be - // 32 bits wide. --// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } -+// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } - - #include <limits.h> - -Index: gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.other/enum4.C -=================================================================== ---- gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.other/enum4.C (revision 194579) -+++ gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.other/enum4.C (revision 194580) -@@ -9,10 +9,10 @@ - // enum-size attributes should only be emitted if there are values of - // enum type that can escape the compilation unit, gcc cannot currently - // detect this; if this facility is added then this linker option should --// not be needed. arm-*-linux*eabi should be a good approximation to -+// not be needed. arm-*-linux*eabi* should be a good approximation to - // those platforms where the EABI supplement defines enum values to be - // 32 bits wide. --// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } -+// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } - - enum E { - a = -312 -Index: gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.law/enum9.C -=================================================================== ---- gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.law/enum9.C (revision 194579) -+++ gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.law/enum9.C (revision 194580) -@@ -7,10 +7,10 @@ - // enum-size attributes should only be emitted if there are values of - // enum type that can escape the compilation unit, gcc cannot currently - // detect this; if this facility is added then this linker option should --// not be needed. arm-*-linux*eabi should be a good approximation to -+// not be needed. arm-*-linux*eabi* should be a good approximation to - // those platforms where the EABI supplement defines enum values to be - // 32 bits wide. --// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } -+// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } - - // GROUPS passed enums - extern "C" int printf (const char *, ...); -Index: gcc-4_7-branch/gcc/testsuite/lib/target-supports.exp -=================================================================== ---- gcc-4_7-branch/gcc/testsuite/lib/target-supports.exp (revision 194579) -+++ gcc-4_7-branch/gcc/testsuite/lib/target-supports.exp (revision 194580) -@@ -3818,7 +3818,7 @@ - } - } "" - }] -- } elseif { [istarget arm*-*-linux-gnueabi] } { -+ } elseif { [istarget arm*-*-linux-gnueabi*] } { - return [check_runtime sync_longlong_runtime { - #include <stdlib.h> - int main () -@@ -3860,7 +3860,7 @@ - || [istarget i?86-*-*] - || [istarget x86_64-*-*] - || [istarget alpha*-*-*] -- || [istarget arm*-*-linux-gnueabi] -+ || [istarget arm*-*-linux-gnueabi*] - || [istarget bfin*-*linux*] - || [istarget hppa*-*linux*] - || [istarget s390*-*-*] -@@ -3890,7 +3890,7 @@ - || [istarget i?86-*-*] - || [istarget x86_64-*-*] - || [istarget alpha*-*-*] -- || [istarget arm*-*-linux-gnueabi] -+ || [istarget arm*-*-linux-gnueabi*] - || [istarget hppa*-*linux*] - || [istarget s390*-*-*] - || [istarget powerpc*-*-*] -Index: gcc-4_7-branch/gcc/testsuite/gfortran.dg/enum_9.f90 -=================================================================== ---- gcc-4_7-branch/gcc/testsuite/gfortran.dg/enum_9.f90 (revision 194579) -+++ gcc-4_7-branch/gcc/testsuite/gfortran.dg/enum_9.f90 (revision 194580) -@@ -1,6 +1,6 @@ - ! { dg-do run } - ! { dg-options "-fshort-enums" } --! { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } -+! { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } - ! Program to test enumerations when option -fshort-enums is given - - program main -Index: gcc-4_7-branch/gcc/testsuite/gfortran.dg/enum_10.f90 -=================================================================== ---- gcc-4_7-branch/gcc/testsuite/gfortran.dg/enum_10.f90 (revision 194579) -+++ gcc-4_7-branch/gcc/testsuite/gfortran.dg/enum_10.f90 (revision 194580) -@@ -1,7 +1,7 @@ - ! { dg-do run } - ! { dg-additional-sources enum_10.c } - ! { dg-options "-fshort-enums -w" } --! { dg-options "-fshort-enums -w -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } -+! { dg-options "-fshort-enums -w -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } - ! Make sure short enums are indeed interoperable with the - ! corresponding C type. - -Index: gcc-4_7-branch/gcc/ada/gcc-interface/Makefile.in -=================================================================== ---- gcc-4_7-branch/gcc/ada/gcc-interface/Makefile.in (revision 194579) -+++ gcc-4_7-branch/gcc/ada/gcc-interface/Makefile.in (revision 194580) -@@ -1866,7 +1866,7 @@ - LIBRARY_VERSION := $(LIB_VERSION) - endif - --ifeq ($(strip $(filter-out arm% linux-gnueabi,$(arch) $(osys)-$(word 4,$(targ)))),) -+ifeq ($(strip $(filter-out arm%-linux,$(arch)-$(osys)) $(if $(findstring eabi,$(word 4,$(targ))),,$(word 4,$(targ)))),) - LIBGNAT_TARGET_PAIRS = \ - a-intnam.ads<a-intnam-linux.ads \ - s-inmaop.adb<s-inmaop-posix.adb \ -Index: gcc-4_7-branch/gcc/config.gcc -=================================================================== ---- gcc-4_7-branch/gcc/config.gcc (revision 194579) -+++ gcc-4_7-branch/gcc/config.gcc (revision 194580) -@@ -855,7 +855,7 @@ - esac - tmake_file="${tmake_file} arm/t-arm" - case ${target} in -- arm*-*-linux-*eabi) -+ arm*-*-linux-*eabi*) - tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h" - tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi" - # Define multilib configuration for arm-linux-androideabi. diff --git a/pkgs/development/compilers/gcc/4.7/builder.sh b/pkgs/development/compilers/gcc/4.7/builder.sh deleted file mode 100644 index dc6fdd93561..00000000000 --- a/pkgs/development/compilers/gcc/4.7/builder.sh +++ /dev/null @@ -1,245 +0,0 @@ -source $stdenv/setup - - -export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy -mkdir $NIX_FIXINC_DUMMY - - -if test "$staticCompiler" = "1"; then - EXTRA_LDFLAGS="-static" -else - EXTRA_LDFLAGS="" -fi - -# GCC interprets empty paths as ".", which we don't want. -if test -z "$CPATH"; then unset CPATH; fi -if test -z "$LIBRARY_PATH"; then unset LIBRARY_PATH; fi -echo "\$CPATH is \`$CPATH'" -echo "\$LIBRARY_PATH is \`$LIBRARY_PATH'" - -if test "$noSysDirs" = "1"; then - - if test -e $NIX_GCC/nix-support/orig-libc; then - - # Figure out what extra flags to pass to the gcc compilers - # being generated to make sure that they use our glibc. - extraFlags="$(cat $NIX_GCC/nix-support/libc-cflags)" - extraLDFlags="$(cat $NIX_GCC/nix-support/libc-ldflags) $(cat $NIX_GCC/nix-support/libc-ldflags-before)" - - # Use *real* header files, otherwise a limits.h is generated - # that does not include Glibc's limits.h (notably missing - # SSIZE_MAX, which breaks the build). - export NIX_FIXINC_DUMMY=$(cat $NIX_GCC/nix-support/orig-libc)/include - - # The path to the Glibc binaries such as `crti.o'. - glibc_libdir="$(cat $NIX_GCC/nix-support/orig-libc)/lib" - - else - # Hack: support impure environments. - extraFlags="-isystem /usr/include" - extraLDFlags="-L/usr/lib64 -L/usr/lib" - glibc_libdir="/usr/lib" - export NIX_FIXINC_DUMMY=/usr/include - fi - - extraFlags="-I$NIX_FIXINC_DUMMY $extraFlags" - extraLDFlags="-L$glibc_libdir -rpath $glibc_libdir $extraLDFlags" - - # BOOT_CFLAGS defaults to `-g -O2'; since we override it below, - # make sure to explictly add them so that files compiled with the - # bootstrap compiler are optimized and (optionally) contain - # debugging information (info "(gccinstall) Building"). - if test -n "$dontStrip"; then - extraFlags="-O2 -g $extraFlags" - else - # Don't pass `-g' at all; this saves space while building. - extraFlags="-O2 $extraFlags" - fi - - EXTRA_FLAGS="$extraFlags" - for i in $extraLDFlags; do - EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,$i" - done - - if test -n "$targetConfig"; then - # Cross-compiling, we need gcc not to read ./specs in order to build - # the g++ compiler (after the specs for the cross-gcc are created). - # Having LIBRARY_PATH= makes gcc read the specs from ., and the build - # breaks. Having this variable comes from the default.nix code to bring - # gcj in. - unset LIBRARY_PATH - unset CPATH - if test -z "$crossStageStatic"; then - EXTRA_TARGET_CFLAGS="-B${libcCross}/lib -idirafter ${libcCross}/include" - EXTRA_TARGET_LDFLAGS="-Wl,-L${libcCross}/lib -Wl,-rpath,${libcCross}/lib -Wl,-rpath-link,${libcCross}/lib" - fi - else - if test -z "$NIX_GCC_CROSS"; then - EXTRA_TARGET_CFLAGS="$EXTRA_FLAGS" - EXTRA_TARGET_CXXFLAGS="$EXTRA_FLAGS" - EXTRA_TARGET_LDFLAGS="$EXTRA_LDFLAGS" - else - # This the case of cross-building the gcc. - # We need special flags for the target, different than those of the build - # Assertion: - test -e $NIX_GCC_CROSS/nix-support/orig-libc - - # Figure out what extra flags to pass to the gcc compilers - # being generated to make sure that they use our glibc. - extraFlags="$(cat $NIX_GCC_CROSS/nix-support/libc-cflags)" - extraLDFlags="$(cat $NIX_GCC_CROSS/nix-support/libc-ldflags) $(cat $NIX_GCC_CROSS/nix-support/libc-ldflags-before)" - - # Use *real* header files, otherwise a limits.h is generated - # that does not include Glibc's limits.h (notably missing - # SSIZE_MAX, which breaks the build). - NIX_FIXINC_DUMMY_CROSS=$(cat $NIX_GCC_CROSS/nix-support/orig-libc)/include - - # The path to the Glibc binaries such as `crti.o'. - glibc_dir="$(cat $NIX_GCC_CROSS/nix-support/orig-libc)" - glibc_libdir="$glibc_dir/lib" - configureFlags="$configureFlags --with-native-system-header-dir=$glibc_dir/include" - - extraFlags="-I$NIX_FIXINC_DUMMY_CROSS $extraFlags" - extraLDFlags="-L$glibc_libdir -rpath $glibc_libdir $extraLDFlags" - - EXTRA_TARGET_CFLAGS="$extraFlags" - for i in $extraLDFlags; do - EXTRA_TARGET_LDFLAGS="$EXTRA_TARGET_LDFLAGS -Wl,$i" - done - fi - fi - - - # CFLAGS_FOR_TARGET are needed for the libstdc++ configure script to find - # the startfiles. - # FLAGS_FOR_TARGET are needed for the target libraries to receive the -Bxxx - # for the startfiles. - makeFlagsArray=( \ - "${makeFlagsArray[@]}" \ - NATIVE_SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \ - SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \ - CFLAGS_FOR_BUILD="$EXTRA_FLAGS $EXTRA_LDFLAGS" \ - CXXFLAGS_FOR_BUILD="$EXTRA_FLAGS $EXTRA_LDFLAGS" \ - CFLAGS_FOR_TARGET="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \ - CXXFLAGS_FOR_TARGET="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \ - FLAGS_FOR_TARGET="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \ - LDFLAGS_FOR_BUILD="$EXTRA_FLAGS $EXTRA_LDFLAGS" \ - LDFLAGS_FOR_TARGET="$EXTRA_TARGET_LDFLAGS $EXTRA_TARGET_LDFLAGS" \ - ) - - if test -z "$targetConfig"; then - makeFlagsArray=( \ - "${makeFlagsArray[@]}" \ - BOOT_CFLAGS="$EXTRA_FLAGS $EXTRA_LDFLAGS" \ - BOOT_LDFLAGS="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \ - ) - fi - - if test -n "$targetConfig" -a "$crossStageStatic" == 1; then - # We don't want the gcc build to assume there will be a libc providing - # limits.h in this stagae - makeFlagsArray=( \ - "${makeFlagsArray[@]}" \ - LIMITS_H_TEST=false \ - ) - else - makeFlagsArray=( \ - "${makeFlagsArray[@]}" \ - LIMITS_H_TEST=true \ - ) - fi -fi - -if test -n "$targetConfig"; then - # The host strip will destroy some important details of the objects - dontStrip=1 -fi - -providedPreConfigure="$preConfigure"; -preConfigure() { - if test -n "$newlibSrc"; then - tar xvf "$newlibSrc" -C .. - ln -s ../newlib-*/newlib newlib - # Patch to get armvt5el working: - sed -i -e 's/ arm)/ arm*)/' newlib/configure.host - fi - # Bug - they packaged zlib - if test -d "zlib"; then - # This breaks the build without-headers, which should build only - # the target libgcc as target libraries. - # See 'configure:5370' - rm -Rf zlib - fi - - if test -f "$NIX_GCC/nix-support/orig-libc"; then - # Patch the configure script so it finds glibc headers. It's - # important for example in order not to get libssp built, - # because its functionality is in glibc already. - glibc_headers="$(cat $NIX_GCC/nix-support/orig-libc)/include" - sed -i \ - -e "s,glibc_header_dir=/usr/include,glibc_header_dir=$glibc_headers", \ - gcc/configure - fi - - if test -n "$crossMingw" -a -n "$crossStageStatic"; then - mkdir -p ../mingw - # --with-build-sysroot expects that: - cp -R $libcCross/include ../mingw - configureFlags="$configureFlags --with-build-sysroot=`pwd`/.." - fi - - # Eval the preConfigure script from nix expression. - eval $providedPreConfigure; - env; - # Perform the build in a different directory. - mkdir ../build - cd ../build - configureScript=../$sourceRoot/configure -} - - -postConfigure() { - # Don't store the configure flags in the resulting executables. - sed -e '/TOPLEVEL_CONFIGURE_ARGUMENTS=/d' -i Makefile -} - - -postInstall() { - # Remove precompiled headers for now. They are very big and - # probably not very useful yet. - find $out/include -name "*.gch" -exec rm -rf {} \; -prune - - # Remove `fixincl' to prevent a retained dependency on the - # previous gcc. - rm -rf $out/libexec/gcc/*/*/install-tools - rm -rf $out/lib/gcc/*/*/install-tools - - # More dependencies with the previous gcc or some libs (gccbug stores the build command line) - rm -rf $out/bin/gccbug - # Take out the bootstrap-tools from the rpath, as it's not needed at all having $out - for i in $out/libexec/gcc/*/*/*; do - if PREV_RPATH=`patchelf --print-rpath $i`; then - patchelf --set-rpath `echo $PREV_RPATH | sed 's,:[^:]*bootstrap-tools/lib,,'` $i - fi - done - - # Get rid of some "fixed" header files - rm -rf $out/lib/gcc/*/*/include/root - - # Replace hard links for i686-pc-linux-gnu-gcc etc. with symlinks. - for i in $out/bin/*-gcc*; do - if cmp -s $out/bin/gcc $i; then - ln -sfn gcc $i - fi - done - - for i in $out/bin/c++ $out/bin/*-c++* $out/bin/*-g++*; do - if cmp -s $out/bin/g++ $i; then - ln -sfn g++ $i - fi - done - - eval "$postInstallGhdl" -} - -genericBuild diff --git a/pkgs/development/compilers/gcc/4.7/default.nix b/pkgs/development/compilers/gcc/4.7/default.nix deleted file mode 100644 index 34ea93cf5f0..00000000000 --- a/pkgs/development/compilers/gcc/4.7/default.nix +++ /dev/null @@ -1,533 +0,0 @@ -{ stdenv, fetchurl, noSysDirs -, langC ? true, langCC ? true, langFortran ? false -, langJava ? false -, langAda ? false -, langVhdl ? false -, langGo ? false -, profiledCompiler ? false -, staticCompiler ? false -, enableShared ? true -, texinfo ? null -, perl ? null # optional, for texi2pod (then pod2man); required for Java -, gmp, mpfr, mpc, gettext, which -, libelf # optional, for link-time optimizations (LTO) -, ppl ? null, cloog ? null # optional, for the Graphite optimization framework. -, zlib ? null, boehmgc ? null -, zip ? null, unzip ? null, pkgconfig ? null, gtk ? null, libart_lgpl ? null -, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null -, libXrender ? null, xproto ? null, renderproto ? null, xextproto ? null -, libXrandr ? null, libXi ? null, inputproto ? null, randrproto ? null -, gnatboot ? null -, enableMultilib ? false -, enablePlugin ? true # whether to support user-supplied plug-ins -, name ? "gcc" -, cross ? null -, binutilsCross ? null -, libcCross ? null -, crossStageStatic ? true -, gnat ? null -, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd -, stripped ? true -, gnused ? null -}: - -assert langJava -> zip != null && unzip != null - && zlib != null && boehmgc != null - && perl != null; # for `--enable-java-home' -assert langAda -> gnatboot != null; -assert langVhdl -> gnat != null; - -# LTO needs libelf and zlib. -assert libelf != null -> zlib != null; - -# Make sure we get GNU sed. -assert stdenv.isDarwin -> gnused != null; - -# The go frontend is written in c++ -assert langGo -> langCC; - -with stdenv.lib; -with builtins; - -let version = "4.7.3"; - - # Whether building a cross-compiler for GNU/Hurd. - crossGNU = cross != null && cross.config == "i586-pc-gnu"; - - /* gccinstall.info says that "parallel make is currently not supported since - collisions in profile collecting may occur". - - Parallel make of gfortran is disabled because of an apparent race - condition concerning the generation of "bconfig.h". Please try and - re-enable parallel make for a later release of gfortran to check whether - the error has been fixed. - */ - enableParallelBuilding = !profiledCompiler && !langFortran; - - patches = [] - ++ optional enableParallelBuilding ./parallel-bconfig-4.7.patch - ++ optional stdenv.isArm [ ./arm-eabi.patch ] - ++ optional (cross != null) ./libstdc++-target.patch - # ++ optional noSysDirs ./no-sys-dirs.patch - # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its - # target libraries and tools. - ++ optional langAda ./gnat-cflags.patch - ++ optional langFortran ./gfortran-driving.patch; - - javaEcj = fetchurl { - # The `$(top_srcdir)/ecj.jar' file is automatically picked up at - # `configure' time. - - # XXX: Eventually we might want to take it from upstream. - url = "ftp://sourceware.org/pub/java/ecj-4.3.jar"; - sha256 = "0jz7hvc0s6iydmhgh5h2m15yza7p2rlss2vkif30vm9y77m97qcx"; - }; - - # Antlr (optional) allows the Java `gjdoc' tool to be built. We want a - # binary distribution here to allow the whole chain to be bootstrapped. - javaAntlr = fetchurl { - url = http://www.antlr.org/download/antlr-3.1.3.jar; - sha256 = "1f41j0y4kjydl71lqlvr73yagrs2jsg1fjymzjz66mjy7al5lh09"; - }; - - xlibs = [ - libX11 libXt libSM libICE libXtst libXrender libXrandr libXi - xproto renderproto xextproto inputproto randrproto - ]; - - javaAwtGtk = langJava && gtk != null; - - /* Platform flags */ - platformFlags = let - gccArch = stdenv.lib.attrByPath [ "platform" "gcc" "arch" ] null stdenv; - gccCpu = stdenv.lib.attrByPath [ "platform" "gcc" "cpu" ] null stdenv; - gccAbi = stdenv.lib.attrByPath [ "platform" "gcc" "abi" ] null stdenv; - gccFpu = stdenv.lib.attrByPath [ "platform" "gcc" "fpu" ] null stdenv; - gccFloat = stdenv.lib.attrByPath [ "platform" "gcc" "float" ] null stdenv; - gccMode = stdenv.lib.attrByPath [ "platform" "gcc" "mode" ] null stdenv; - withArch = if gccArch != null then " --with-arch=${gccArch}" else ""; - withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else ""; - withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else ""; - withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else ""; - withFloat = if gccFloat != null then " --with-float=${gccFloat}" else ""; - withMode = if gccMode != null then " --with-mode=${gccMode}" else ""; - in - (withArch + - withCpu + - withAbi + - withFpu + - withFloat + - withMode); - - /* Cross-gcc settings */ - crossMingw = (cross != null && cross.libc == "msvcrt"); - crossConfigureFlags = let - gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross; - gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross; - gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross; - gccFpu = stdenv.lib.attrByPath [ "gcc" "fpu" ] null cross; - gccFloat = stdenv.lib.attrByPath [ "gcc" "float" ] null cross; - gccMode = stdenv.lib.attrByPath [ "gcc" "mode" ] null cross; - withArch = if gccArch != null then " --with-arch=${gccArch}" else ""; - withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else ""; - withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else ""; - withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else ""; - withFloat = if gccFloat != null then " --with-float=${gccFloat}" else ""; - withMode = if gccMode != null then " --with-mode=${gccMode}" else ""; - in - "--target=${cross.config}" + - withArch + - withCpu + - withAbi + - withFpu + - withFloat + - withMode + - (if crossMingw && crossStageStatic then - " --with-headers=${libcCross}/include" + - " --with-gcc" + - " --with-gnu-as" + - " --with-gnu-ld" + - " --with-gnu-ld" + - " --disable-shared" + - " --disable-nls" + - " --disable-debug" + - " --enable-sjlj-exceptions" + - " --enable-threads=win32" + - " --disable-win32-registry" - else if crossStageStatic then - " --disable-libssp --disable-nls" + - " --without-headers" + - " --disable-threads " + - " --disable-libmudflap " + - " --disable-libgomp " + - " --disable-libquadmath" + - " --disable-shared" + - " --disable-decimal-float" # libdecnumber requires libc - else - " --with-headers=${libcCross}/include" + - " --enable-__cxa_atexit" + - " --enable-long-long" + - (if crossMingw then - " --enable-threads=win32" + - " --enable-sjlj-exceptions" + - " --enable-hash-synchronization" + - " --disable-libssp" + - " --disable-nls" + - " --with-dwarf2" + - # I think noone uses shared gcc libs in mingw, so we better do the same. - # In any case, mingw32 g++ linking is broken by default with shared libs, - # unless adding "-lsupc++" to any linking command. I don't know why. - " --disable-shared" + - (if cross.config == "x86_64-w64-mingw32" then - # To keep ABI compatibility with upstream mingw-w64 - " --enable-fully-dynamic-string" - else "") - else (if cross.libc == "uclibc" then - # In uclibc cases, libgomp needs an additional '-ldl' - # and as I don't know how to pass it, I disable libgomp. - " --disable-libgomp" else "") + - " --enable-threads=posix" + - " --enable-nls" + - " --disable-decimal-float") # No final libdecnumber (it may work only in 386) - ); - stageNameAddon = if crossStageStatic then "-stage-static" else - "-stage-final"; - crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else ""; - - bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips; - -in - -# We need all these X libraries when building AWT with GTK+. -assert gtk != null -> (filter (x: x == null) xlibs) == []; - -stdenv.mkDerivation ({ - name = "${name}${if stripped then "" else "-debug"}-${version}" + crossNameAddon; - - builder = ./builder.sh; - - src = fetchurl { - url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2"; - sha256 = "1hx9h64ivarlzi4hxvq42as5m9vlr5cyzaaq4gzj4i619zmkfz1g"; - }; - - inherit patches; - - postPatch = - if (stdenv.isGNU - || (libcCross != null # e.g., building `gcc.crossDrv' - && libcCross ? crossConfig - && libcCross.crossConfig == "i586-pc-gnu") - || (crossGNU && libcCross != null)) - then - # On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not - # in glibc, so add the right `-I' flags to the default spec string. - assert libcCross != null -> libpthreadCross != null; - let - libc = if libcCross != null then libcCross else stdenv.glibc; - gnu_h = "gcc/config/gnu.h"; - extraCPPDeps = - libc.propagatedBuildInputs - ++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross - ++ stdenv.lib.optional (libpthread != null) libpthread; - extraCPPSpec = - concatStrings (intersperse " " - (map (x: "-I${x}/include") extraCPPDeps)); - extraLibSpec = - if libpthreadCross != null - then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}" - else "-L${libpthread}/lib"; - in - '' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..." - sed -i "${gnu_h}" \ - -es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g' - - echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..." - sed -i "${gnu_h}" \ - -es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g' - - echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc}/include'..." - sed -i "${gnu_h}" \ - -es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc}/include"|g' - '' - else if cross != null || stdenv.gcc.libc != null then - # On NixOS, use the right path to the dynamic linker instead of - # `/lib/ld*.so'. - let - libc = if libcCross != null then libcCross else stdenv.gcc.libc; - in - '' echo "fixing the \`GLIBC_DYNAMIC_LINKER' and \`UCLIBC_DYNAMIC_LINKER' macros..." - for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h - do - grep -q LIBC_DYNAMIC_LINKER "$header" || continue - echo " fixing \`$header'..." - sed -i "$header" \ - -e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc}\3"|g' - done - '' - else null; - - inherit noSysDirs staticCompiler langJava crossStageStatic - libcCross crossMingw; - - nativeBuildInputs = [ texinfo which gettext ] - ++ (optional (perl != null) perl) - ++ (optional javaAwtGtk pkgconfig); - - buildInputs = [ gmp mpfr mpc libelf ] - ++ (optional (ppl != null) ppl) - ++ (optional (cloog != null) cloog) - ++ (optional (zlib != null) zlib) - ++ (optionals langJava [ boehmgc zip unzip ]) - ++ (optionals javaAwtGtk ([ gtk libart_lgpl ] ++ xlibs)) - ++ (optionals (cross != null) [binutilsCross]) - ++ (optionals langAda [gnatboot]) - ++ (optionals langVhdl [gnat]) - - # The builder relies on GNU sed (for instance, Darwin's `sed' fails with - # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. - ++ (optional stdenv.isDarwin gnused) - ; - - NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isSunOS "-lm -ldl"; - - preConfigure = '' - configureFlagsArray=( - ${stdenv.lib.optionalString (ppl != null && ppl ? dontDisableStatic && ppl.dontDisableStatic) - "'--with-host-libstdcxx=-lstdc++ -lgcc_s'"} - ${stdenv.lib.optionalString (ppl != null && stdenv.isSunOS) - "\"--with-host-libstdcxx=-Wl,-rpath,\$prefix/lib/amd64 -lstdc++\" - \"--with-boot-ldflags=-L../prev-x86_64-pc-solaris2.11/libstdc++-v3/src/.libs\""} - ); - ${stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit) - '' - export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g` - export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET" - export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET" - export CFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CFLAGS_FOR_TARGET" - ''} - ''; - - # 'iant' at #go-nuts@freenode, gccgo maintainer, said that - # they have a bug in 4.7.1 if adding "--disable-static" - dontDisableStatic = langGo || staticCompiler; - - configureFlags = " - ${if stdenv.isSunOS then - " --enable-long-long --enable-libssp --enable-threads=posix --disable-nls --enable-__cxa_atexit " + - # On Illumos/Solaris GNU as is preferred - " --with-gnu-as --without-gnu-ld " - else ""} - --enable-lto - ${if enableMultilib then "" else "--disable-multilib"} - ${if enableShared then "" else "--disable-shared"} - ${if enablePlugin then "--enable-plugin" else "--disable-plugin"} - ${if ppl != null then "--with-ppl=${ppl} --disable-ppl-version-check" else ""} - ${if cloog != null then - "--with-cloog=${cloog} --disable-cloog-version-check --enable-cloog-backend=isl" - else ""} - ${if langJava then - "--with-ecj-jar=${javaEcj} " + - - # Follow Sun's layout for the convenience of IcedTea/OpenJDK. See - # <http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2010-April/008888.html>. - "--enable-java-home --with-java-home=\${prefix}/lib/jvm/jre " - else ""} - ${if javaAwtGtk then "--enable-java-awt=gtk" else ""} - ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr}" else ""} - --with-gmp=${gmp} - --with-mpfr=${mpfr} - --with-mpc=${mpc} - ${if libelf != null then "--with-libelf=${libelf}" else ""} - --disable-libstdcxx-pch - --without-included-gettext - --with-system-zlib - --enable-languages=${ - concatStrings (intersperse "," - ( optional langC "c" - ++ optional langCC "c++" - ++ optional langFortran "fortran" - ++ optional langJava "java" - ++ optional langAda "ada" - ++ optional langVhdl "vhdl" - ++ optional langGo "go" - ) - ) - } - ${if (stdenv ? glibc && cross == null) - then " --with-native-system-header-dir=${stdenv.glibc}/include" - else ""} - ${if langAda then " --enable-libada" else ""} - ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""} - ${if cross != null then crossConfigureFlags else ""} - ${if !bootstrap then "--disable-bootstrap" else ""} - ${if cross == null then platformFlags else ""} - "; - - targetConfig = if cross != null then cross.config else null; - - buildFlags = if bootstrap then - (if profiledCompiler then "profiledbootstrap" else "bootstrap") - else ""; - - installTargets = - if stripped - then "install-strip" - else "install"; - - crossAttrs = let - xgccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null stdenv.cross; - xgccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null stdenv.cross; - xgccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null stdenv.cross; - xgccFpu = stdenv.lib.attrByPath [ "gcc" "fpu" ] null stdenv.cross; - xgccFloat = stdenv.lib.attrByPath [ "gcc" "float" ] null stdenv.cross; - xwithArch = if xgccArch != null then " --with-arch=${xgccArch}" else ""; - xwithCpu = if xgccCpu != null then " --with-cpu=${xgccCpu}" else ""; - xwithAbi = if xgccAbi != null then " --with-abi=${xgccAbi}" else ""; - xwithFpu = if xgccFpu != null then " --with-fpu=${xgccFpu}" else ""; - xwithFloat = if xgccFloat != null then " --with-float=${xgccFloat}" else ""; - in { - AR = "${stdenv.cross.config}-ar"; - LD = "${stdenv.cross.config}-ld"; - CC = "${stdenv.cross.config}-gcc"; - CXX = "${stdenv.cross.config}-gcc"; - AR_FOR_TARGET = "${stdenv.cross.config}-ar"; - LD_FOR_TARGET = "${stdenv.cross.config}-ld"; - CC_FOR_TARGET = "${stdenv.cross.config}-gcc"; - NM_FOR_TARGET = "${stdenv.cross.config}-nm"; - CXX_FOR_TARGET = "${stdenv.cross.config}-g++"; - # If we are making a cross compiler, cross != null - NIX_GCC_CROSS = if cross == null then "${stdenv.gccCross}" else ""; - dontStrip = true; - configureFlags = '' - ${if enableMultilib then "" else "--disable-multilib"} - ${if enableShared then "" else "--disable-shared"} - ${if ppl != null then "--with-ppl=${ppl.crossDrv}" else ""} - ${if cloog != null then "--with-cloog=${cloog.crossDrv} --enable-cloog-backend=isl" else ""} - ${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""} - ${if javaAwtGtk then "--enable-java-awt=gtk" else ""} - ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.crossDrv}" else ""} - --with-gmp=${gmp.crossDrv} - --with-mpfr=${mpfr.crossDrv} - --disable-libstdcxx-pch - --without-included-gettext - --with-system-zlib - --enable-languages=${ - concatStrings (intersperse "," - ( optional langC "c" - ++ optional langCC "c++" - ++ optional langFortran "fortran" - ++ optional langJava "java" - ++ optional langAda "ada" - ++ optional langVhdl "vhdl" - ++ optional langGo "go" - ) - ) - } - ${if langAda then " --enable-libada" else ""} - --target=${stdenv.cross.config} - ${xwithArch} - ${xwithCpu} - ${xwithAbi} - ${xwithFpu} - ${xwithFloat} - ''; - buildFlags = ""; - }; - - - # Needed for the cross compilation to work - AR = "ar"; - LD = "ld"; - # http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210 - CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" - else "gcc"; - - # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find - # the library headers and binaries, regarless of the language being - # compiled. - - # Note: When building the Java AWT GTK+ peer, the build system doesn't - # honor `--with-gmp' et al., e.g., when building - # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just - # add them to $CPATH and $LIBRARY_PATH in this case. - # - # Likewise, the LTO code doesn't find zlib. - - CPATH = concatStrings - (intersperse ":" (map (x: x + "/include") - (optionals (zlib != null) [ zlib ] - ++ optionals langJava [ boehmgc ] - ++ optionals javaAwtGtk xlibs - ++ optionals javaAwtGtk [ gmp mpfr ] - ++ optional (libpthread != null) libpthread - ++ optional (libpthreadCross != null) libpthreadCross - - # On GNU/Hurd glibc refers to Mach & Hurd - # headers. - ++ optionals (libcCross != null && - hasAttr "propagatedBuildInputs" libcCross) - libcCross.propagatedBuildInputs))); - - LIBRARY_PATH = concatStrings - (intersperse ":" (map (x: x + "/lib") - (optionals (zlib != null) [ zlib ] - ++ optionals langJava [ boehmgc ] - ++ optionals javaAwtGtk xlibs - ++ optionals javaAwtGtk [ gmp mpfr ] - ++ optional (libpthread != null) libpthread))); - - EXTRA_TARGET_CFLAGS = - if cross != null && libcCross != null - then "-idirafter ${libcCross}/include" - else null; - - EXTRA_TARGET_LDFLAGS = - if cross != null && libcCross != null - then "-B${libcCross}/lib -Wl,-L${libcCross}/lib" + - (optionalString (libpthreadCross != null) - " -L${libpthreadCross}/lib -Wl,${libpthreadCross.TARGET_LDFLAGS}") - else null; - - passthru = { inherit langC langCC langAda langFortran langVhdl - langGo enableMultilib version; }; - - inherit enableParallelBuilding; - - meta = { - homepage = http://gcc.gnu.org/; - license = "GPLv3+"; # runtime support libraries are typically LGPLv3+ - description = "GNU Compiler Collection, version ${version}" - + (if stripped then "" else " (with debugging info)"); - - longDescription = '' - The GNU Compiler Collection includes compiler front ends for C, C++, - Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well - as libraries for these languages (libstdc++, libgcj, libgomp,...). - - GCC development is a part of the GNU Project, aiming to improve the - compiler used in the GNU system including the GNU/Linux variant. - ''; - - maintainers = [ - stdenv.lib.maintainers.ludo - stdenv.lib.maintainers.viric - stdenv.lib.maintainers.shlevy - ]; - - # Volunteers needed for the {Cyg,Dar}win ports of *PPL. - # gnatboot is not available out of linux platforms, so we disable the darwin build - # for the gnat (ada compiler). - platforms = stdenv.lib.platforms.linux ++ optionals (langAda == false && libelf == null) [ "i686-darwin" ]; - }; -} - -// optionalAttrs (cross != null && cross.libc == "msvcrt" && crossStageStatic) { - makeFlags = [ "all-gcc" "all-target-libgcc" ]; - installTargets = "install-gcc install-target-libgcc"; -} - - -# Strip kills static libs of other archs (hence cross != null) -// optionalAttrs (!stripped || cross != null) { dontStrip = true; NIX_STRIP_DEBUG = 0; } -) diff --git a/pkgs/development/compilers/gcc/4.7/gfortran-driving.patch b/pkgs/development/compilers/gcc/4.7/gfortran-driving.patch deleted file mode 100644 index 70708886b40..00000000000 --- a/pkgs/development/compilers/gcc/4.7/gfortran-driving.patch +++ /dev/null @@ -1,20 +0,0 @@ -This patch fixes interaction with Libtool. -See <http://thread.gmane.org/gmane.comp.gcc.patches/258777>, for details. - ---- a/gcc/fortran/gfortranspec.c -+++ b/gcc/fortran/gfortranspec.c -@@ -461,8 +461,15 @@ For more information about these matters, see the file named COPYING\n\n")); - { - fprintf (stderr, _("Driving:")); - for (i = 0; i < g77_newargc; i++) -+ { -+ if (g77_new_decoded_options[i].opt_index == OPT_l) -+ /* Make sure no white space is inserted after `-l'. */ -+ fprintf (stderr, " -l%s", -+ g77_new_decoded_options[i].canonical_option[1]); -+ else - fprintf (stderr, " %s", - g77_new_decoded_options[i].orig_option_with_args_text); -+ } - fprintf (stderr, "\n"); - } diff --git a/pkgs/development/compilers/gcc/4.7/gnat-cflags.patch b/pkgs/development/compilers/gcc/4.7/gnat-cflags.patch deleted file mode 100644 index bf2acf065e9..00000000000 --- a/pkgs/development/compilers/gcc/4.7/gnat-cflags.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff --git a/libada/Makefile.in b/libada/Makefile.in -index f5057a0..337e0c6 100644 ---- a/libada/Makefile.in -+++ b/libada/Makefile.in -@@ -55,7 +55,7 @@ GCC_WARN_CFLAGS = $(LOOSE_WARN) - WARN_CFLAGS = @warn_cflags@ - - TARGET_LIBGCC2_CFLAGS= --GNATLIBCFLAGS= -g -O2 -+GNATLIBCFLAGS= -g -O2 $(CFLAGS) - GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \ - -DIN_RTS @have_getipinfo@ - ---- a/gcc/ada/gcc-interface/Makefile.in -+++ b/gcc/ada/gcc-interface/Makefile.in -@@ -105,7 +105,7 @@ ADAFLAGS = -W -Wall -gnatpg -gnata - SOME_ADAFLAGS =-gnata - FORCE_DEBUG_ADAFLAGS = -g - GNATLIBFLAGS = -gnatpg -nostdinc --GNATLIBCFLAGS = -g -O2 -+GNATLIBCFLAGS = -g -O2 $(CFLAGS_FOR_TARGET) - # Pretend that _Unwind_GetIPInfo is available for the target by default. This - # should be autodetected during the configuration of libada and passed down to - # here, but we need something for --disable-libada and hope for the best. -@@ -193,7 +193,7 @@ RTSDIR = rts$(subst /,_,$(MULTISUBDIR)) - # Link flags used to build gnat tools. By default we prefer to statically - # link with libgcc to avoid a dependency on shared libgcc (which is tricky - # to deal with as it may conflict with the libgcc provided by the system). --GCC_LINK_FLAGS=-static-libgcc -+GCC_LINK_FLAGS=-static-libgcc $(CFLAGS_FOR_TARGET) - - # End of variables for you to override. - diff --git a/pkgs/development/compilers/gcc/4.7/java-jvgenmain-link.patch b/pkgs/development/compilers/gcc/4.7/java-jvgenmain-link.patch deleted file mode 100644 index 2612e8bfbbb..00000000000 --- a/pkgs/development/compilers/gcc/4.7/java-jvgenmain-link.patch +++ /dev/null @@ -1,17 +0,0 @@ -The `jvgenmain' executable must be linked against `vec.o', among others, -since it uses its vector API. - ---- gcc-4.3.3/gcc/java/Make-lang.in 2008-12-05 00:00:19.000000000 +0100 -+++ gcc-4.3.3/gcc/java/Make-lang.in 2009-07-03 16:11:41.000000000 +0200 -@@ -109,9 +109,9 @@ jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIB - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) \ - $(CPPLIBS) $(ZLIB) $(LDEXP_LIB) $(LIBS) - --jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS) -+jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS) $(BUILD_RTL) - rm -f $@ -- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) $(LIBS) -+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) $(BUILD_RTL) $(LIBS) - - # - # Build hooks: diff --git a/pkgs/development/compilers/gcc/4.7/libstdc++-target.patch b/pkgs/development/compilers/gcc/4.7/libstdc++-target.patch deleted file mode 100644 index fb622b39580..00000000000 --- a/pkgs/development/compilers/gcc/4.7/libstdc++-target.patch +++ /dev/null @@ -1,32 +0,0 @@ -Patch to make the target libraries 'configure' scripts find the proper CPP. -I noticed that building the mingw32 cross compiler. -Looking at the build script for mingw in archlinux, I think that only nixos -needs this patch. I don't know why. -diff --git a/Makefile.in b/Makefile.in -index 93f66b6..d691917 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -266,6 +266,7 @@ BASE_TARGET_EXPORTS = \ - AR="$(AR_FOR_TARGET)"; export AR; \ - AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \ - CC="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \ -+ CPP="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CC; \ - CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ - CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \ -@@ -291,11 +292,13 @@ BASE_TARGET_EXPORTS = \ - RAW_CXX_TARGET_EXPORTS = \ - $(BASE_TARGET_EXPORTS) \ - CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ -- CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; -+ CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; \ -+ CXXCPP="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CXX; - - NORMAL_TARGET_EXPORTS = \ - $(BASE_TARGET_EXPORTS) \ -- CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; -+ CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; \ -+ CXXCPP="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CXX; - - # Where to find GMP - HOST_GMPLIBS = @gmplibs@ diff --git a/pkgs/development/compilers/gcc/4.7/no-sys-dirs.patch b/pkgs/development/compilers/gcc/4.7/no-sys-dirs.patch deleted file mode 100644 index 79901703cb8..00000000000 --- a/pkgs/development/compilers/gcc/4.7/no-sys-dirs.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff -ru gcc-4.3.1-orig/gcc/cppdefault.c gcc-4.3.1/gcc/cppdefault.c ---- gcc-4.3.1-orig/gcc/cppdefault.c 2007-07-26 10:37:01.000000000 +0200 -+++ gcc-4.3.1/gcc/cppdefault.c 2008-06-25 17:48:23.000000000 +0200 -@@ -41,6 +41,10 @@ - # undef CROSS_INCLUDE_DIR - #endif - -+#undef LOCAL_INCLUDE_DIR -+#undef SYSTEM_INCLUDE_DIR -+#undef STANDARD_INCLUDE_DIR -+ - const struct default_include cpp_include_defaults[] - #ifdef INCLUDE_DEFAULTS - = INCLUDE_DEFAULTS; -diff -ru gcc-4.3.1-orig/gcc/gcc.c gcc-4.3.1/gcc/gcc.c ---- gcc-4.3.1-orig/gcc/gcc.c 2008-03-02 23:55:19.000000000 +0100 -+++ gcc-4.3.1/gcc/gcc.c 2008-06-25 17:52:53.000000000 +0200 -@@ -1478,10 +1478,10 @@ - /* Default prefixes to attach to command names. */ - - #ifndef STANDARD_STARTFILE_PREFIX_1 --#define STANDARD_STARTFILE_PREFIX_1 "/lib/" -+#define STANDARD_STARTFILE_PREFIX_1 "" - #endif - #ifndef STANDARD_STARTFILE_PREFIX_2 --#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/" -+#define STANDARD_STARTFILE_PREFIX_2 "" - #endif - - #ifdef CROSS_DIRECTORY_STRUCTURE /* Don't use these prefixes for a cross compiler. */ ---- gcc-4.3.1-orig/gcc/Makefile.in 2008-05-11 20:54:15.000000000 +0200 -+++ gcc-4.3.1/gcc/Makefile.in 2008-06-25 17:48:23.000000000 +0200 -@@ -3277,7 +3281,7 @@ - -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \ - -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \ - -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \ -- -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \ -+ -DLOCAL_INCLUDE_DIR=\"/no-such-dir\" \ - -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \ - -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \ - -DPREFIX=\"$(prefix)/\" \ diff --git a/pkgs/development/compilers/gcc/4.7/parallel-bconfig-4.7.patch b/pkgs/development/compilers/gcc/4.7/parallel-bconfig-4.7.patch deleted file mode 100644 index bdf0fa4931a..00000000000 --- a/pkgs/development/compilers/gcc/4.7/parallel-bconfig-4.7.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 0f6735a..ba93e9b 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -3904,21 +3904,21 @@ build/genflags.o : genflags.c $(RTL_BASE_H) $(OBSTACK_H) $(BCONFIG_H) \ - $(SYSTEM_H) coretypes.h $(GTM_H) errors.h $(READ_MD_H) gensupport.h - build/gengenrtl.o : gengenrtl.c $(BCONFIG_H) $(SYSTEM_H) rtl.def - gengtype-lex.o build/gengtype-lex.o : gengtype-lex.c gengtype.h $(SYSTEM_H) --gengtype-lex.o: $(CONFIG_H) -+gengtype-lex.o: $(CONFIG_H) $(BCONFIG_H) - build/gengtype-lex.o: $(BCONFIG_H) - gengtype-parse.o build/gengtype-parse.o : gengtype-parse.c gengtype.h \ - $(SYSTEM_H) --gengtype-parse.o: $(CONFIG_H) -+gengtype-parse.o: $(CONFIG_H) $(BCONFIG_H) - build/gengtype-parse.o: $(BCONFIG_H) - gengtype-state.o build/gengtype-state.o: gengtype-state.c $(SYSTEM_H) \ - gengtype.h errors.h double-int.h version.h $(HASHTAB_H) $(OBSTACK_H) \ - $(XREGEX_H) --gengtype-state.o: $(CONFIG_H) -+gengtype-state.o: $(CONFIG_H) $(BCONFIG_H) - build/gengtype-state.o: $(BCONFIG_H) - gengtype.o build/gengtype.o : gengtype.c $(SYSTEM_H) gengtype.h \ - rtl.def insn-notes.def errors.h double-int.h version.h $(HASHTAB_H) \ - $(OBSTACK_H) $(XREGEX_H) --gengtype.o: $(CONFIG_H) -+gengtype.o: $(CONFIG_H) $(BCONFIG_H) - build/gengtype.o: $(BCONFIG_H) - build/genmddeps.o: genmddeps.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h \ - errors.h $(READ_MD_H) diff --git a/pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix b/pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix index 9b2949e3e36..c4ec02aeb3e 100644 --- a/pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix +++ b/pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix @@ -73,7 +73,7 @@ let patch = pkgs.patch.crossDrv; patchelf = pkgs.patchelf.crossDrv; replace = pkgs.replace.crossDrv; - gcc = pkgs.gcc47; + gcc = pkgs.gcc; gmp = pkgs.gmp.crossDrv; mpfr = pkgs.mpfr.crossDrv; ppl = pkgs.ppl.crossDrv; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0fb7e10c33c..5515d5fd8f6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2406,8 +2406,6 @@ let gcc46 = gcc46_real; - gcc47 = gcc47_real; - gcc48 = gcc48_real; gcc45_realCross = lib.addMetaAttrs { hydraPlatforms = []; } @@ -2435,10 +2433,9 @@ let cross = assert crossSystem != null; crossSystem; }); - gcc47_realCross = lib.addMetaAttrs { hydraPlatforms = []; } - (makeOverridable (import ../development/compilers/gcc/4.7) { - inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib - cloog ppl gettext which noSysDirs; + gcc48_realCross = lib.addMetaAttrs { hydraPlatforms = []; } + (callPackage ../development/compilers/gcc/4.8 { + inherit noSysDirs; binutilsCross = binutilsCross; libcCross = libcCross; profiledCompiler = false; @@ -2447,7 +2444,7 @@ let cross = assert crossSystem != null; crossSystem; }); - gcc_realCross = gcc47_realCross; + gcc_realCross = gcc48_realCross; gccCrossStageStatic = let isMingw = (stdenv.cross.libc == "msvcrt"); @@ -2559,33 +2556,6 @@ let })) else throw "Multilib gcc not supported on ‘${system}’"; - gcc47_real = lowPrio (wrapGCC (callPackage ../development/compilers/gcc/4.7 { - inherit noSysDirs; - texinfo = texinfo4; - # I'm not sure if profiling with enableParallelBuilding helps a lot. - # We can enable it back some day. This makes the *gcc* builds faster now. - profiledCompiler = false; - - # When building `gcc.crossDrv' (a "Canadian cross", with host == target - # and host != build), `cross' must be null but the cross-libc must still - # be passed. - cross = null; - libcCross = if crossSystem != null then libcCross else null; - libpthreadCross = - if crossSystem != null && crossSystem.config == "i586-pc-gnu" - then gnu.libpthreadCross - else null; - })); - - gcc47_debug = lowPrio (wrapGCC (callPackage ../development/compilers/gcc/4.7 { - stripped = false; - texinfo = texinfo4; - inherit noSysDirs; - cross = null; - libcCross = null; - binutilsCross = null; - })); - gcc48_real = lowPrio (wrapGCC (callPackage ../development/compilers/gcc/4.8 { inherit noSysDirs; @@ -2695,13 +2665,6 @@ let gccgo = gccgo48; - gccgo47 = wrapGCC (gcc47_real.gcc.override { - name = "gccgo"; - langCC = true; #required for go. - langC = true; - langGo = true; - }); - gccgo48 = wrapGCC (gcc48_real.gcc.override { name = "gccgo"; langCC = true; #required for go. @@ -8602,9 +8565,7 @@ let ogmtools = callPackage ../applications/video/ogmtools { }; - omxplayer = callPackage ../applications/video/omxplayer { - stdenv = overrideGCC stdenv gcc47; - }; + omxplayer = callPackage ../applications/video/omxplayer { }; oneteam = callPackage ../applications/networking/instant-messengers/oneteam {}; @@ -9363,9 +9324,7 @@ let d2x_rebirth = callPackage ../games/d2x-rebirth { }; - eduke32 = callPackage ../games/eduke32 { - stdenv = overrideGCC stdenv gcc47; - }; + eduke32 = callPackage ../games/eduke32 { }; egoboo = callPackage ../games/egoboo { }; |