Updating gcc to 4.5.1.

I removed two patches that don't apply anymore (dragonegg, softfp-hurd).
I hope this means it's all fixed upstream.

svn path=/nixpkgs/branches/stdenv-updates/; revision=22879
This commit is contained in:
Lluís Batlle i Rossell 2010-08-02 15:58:03 +00:00
parent 5417c720fd
commit 955b962993
4 changed files with 9 additions and 87 deletions

View File

@ -41,7 +41,7 @@ assert libelf != null -> zlib != null;
with stdenv.lib;
with builtins;
let version = "4.5.0";
let version = "4.5.1";
javaEcj = fetchurl {
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
# `configure' time.
@ -136,7 +136,7 @@ stdenv.mkDerivation ({
};
patches =
[ ./softfp-hurd.patch ./dragonegg-2.7.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

View File

@ -1,46 +0,0 @@
Index: mainline/gcc/config/i386/i386.c
===================================================================
--- mainline.orig/gcc/config/i386/i386.c 2010-04-02 09:11:58.733574308 +0200
+++ mainline/gcc/config/i386/i386.c 2010-04-02 09:29:11.276111437 +0200
@@ -4992,7 +4992,8 @@
case, we return the original mode and warn ABI change if CUM isn't
NULL. */
-static enum machine_mode
+extern enum machine_mode type_natural_mode (const_tree, CUMULATIVE_ARGS *);
+enum machine_mode
type_natural_mode (const_tree type, CUMULATIVE_ARGS *cum)
{
enum machine_mode mode = TYPE_MODE (type);
@@ -5123,7 +5124,9 @@
See the x86-64 PS ABI for details.
*/
-static int
+extern int classify_argument (enum machine_mode, const_tree,
+ enum x86_64_reg_class [MAX_CLASSES], int);
+int
classify_argument (enum machine_mode mode, const_tree type,
enum x86_64_reg_class classes[MAX_CLASSES], int bit_offset)
{
@@ -5504,7 +5507,9 @@
/* Examine the argument and return set number of register required in each
class. Return 0 iff parameter should be passed in memory. */
-static int
+extern int examine_argument (enum machine_mode, const_tree, int,
+ int *, int *);
+int
examine_argument (enum machine_mode mode, const_tree type, int in_return,
int *int_nregs, int *sse_nregs)
{
@@ -6186,7 +6191,8 @@
/* Return true when TYPE should be 128bit aligned for 32bit argument passing
ABI. */
-static bool
+extern bool contains_aligned_value_p (tree);
+bool
contains_aligned_value_p (tree type)
{
enum machine_mode mode = TYPE_MODE (type);

View File

@ -1,32 +0,0 @@
This patch fixes undefined references to softp symbols (__multf3, __fixunstfsi,
__subtf3, etc.) in libgcc_s.so on GNU/Hurd.
Taken from <http://gcc.gnu.org/ml/gcc-patches/2010-04/msg00602.html>, with second
hunk adjusted so that it applies to GCC 4.5.0.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 9e499cb..9aec392 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -3070,7 +3070,9 @@ case ${target} in
i[34567]86-*-darwin* | x86_64-*-darwin*)
tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
;;
- i[34567]86-*-linux* | x86_64-*-linux* | i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
+ i[34567]86-*-linux* | x86_64-*-linux* | \
+ i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
+ i[34567]86-*-gnu*)
tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp i386/t-linux"
;;
ia64*-*-linux*)
diff --git a/libgcc/config.host b/libgcc/config.host
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -600,6 +600,7 @@ case ${host} in
i[34567]86-*-darwin* | x86_64-*-darwin* | \
i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
i[34567]86-*-linux* | x86_64-*-linux* | \
+ i[34567]86-*-gnu* | \
i[34567]86-*-solaris2* | \
i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
if test "${host_address}" = 32; then

View File

@ -1,26 +1,26 @@
/* Automatically generated by `update-gcc.sh', do not edit.
For GCC 4.5.0. */
For GCC 4.5.1. */
{ fetchurl, optional, version, langC, langCC, langFortran, langJava, langAda }:
assert version == "4.5.0";
assert version == "4.5.1";
optional /* langC */ true (fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-core-${version}.tar.bz2";
sha256 = "19ykzyd938d4pblsihrsalk9ch1s23z57s0r5an8sqs7acv51r0g";
sha256 = "0sjjw3qfcpdk0fs5d2rhl0xqcaclg86ifbq45dbk9ca072l3fyxm";
}) ++
optional langCC (fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-g++-${version}.tar.bz2";
sha256 = "0hialil4v2hi7klr14x6h5z7b9ryzzy9kchr96s2p9hmsm7famlk";
sha256 = "0j6ffb96b3r75hrjshg52llv21ax7r8jdx44hhj0maiisnl9wd55";
}) ++
optional langFortran (fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-fortran-${version}.tar.bz2";
sha256 = "0anby974dikygjmxr6h1pd9s24fdps84fki1dijzhqqvq6lr3hbb";
sha256 = "0xgwjc3h5fc5c100bnw24c35255il33lj5qbgpxf0zl8di2q13aw";
}) ++
optional langJava (fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-java-${version}.tar.bz2";
sha256 = "0mlbxyhj7svjgby5vrpc49l2vk0k0878nlx0ap6jqq7xdyysvlcn";
sha256 = "0mh37q4ibg05h1hdh39pkj1hycvdg6i79m4698knw7pppm14ax8q";
}) ++
optional langAda (fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-ada-${version}.tar.bz2";
sha256 = "1yar842bixmh2n9siy8s383lg8mz611xjdbbacgcznwab601czzv";
sha256 = "11chdbl7h046lnl83k79vj7dvgxz6kq7cnmwx94z644vaiflg153";
}) ++
[]