Assorted GNU updates.

svn path=/nixpkgs/branches/stdenv-updates/; revision=21047
This commit is contained in:
Ludovic Courtès 2010-04-13 08:37:54 +00:00
parent 19b9811012
commit 99d51d0e92
8 changed files with 21 additions and 138 deletions

View file

@ -1,83 +0,0 @@
Fix a regression in GNU as:
http://sourceware.org/bugzilla/show_bug.cgi?id=10856 .
The bug appears to be responsible for invalid code generated for
Crypto++:
http://groups.google.com/group/cryptopp-users/browse_thread/thread/7ce734e479586640/29c6649b7c7adee2?#29c6649b7c7adee2 .
diff -u -r1.77.2.1 -r1.77.2.2
--- a/gas/expr.c 2009/09/11 15:28:43 1.77.2.1
+++ b/gas/expr.c 2009/10/28 08:23:48 1.77.2.2
@@ -1997,6 +1997,7 @@
/* Help out with CSE. */
valueT final_val = expressionP->X_add_number;
symbolS *add_symbol = expressionP->X_add_symbol;
+ symbolS *orig_add_symbol = add_symbol;
symbolS *op_symbol = expressionP->X_op_symbol;
operatorT op = expressionP->X_op;
valueT left, right;
@@ -2078,6 +2079,7 @@
left = right;
seg_left = seg_right;
add_symbol = op_symbol;
+ orig_add_symbol = expressionP->X_op_symbol;
op = O_symbol;
break;
}
@@ -2122,18 +2124,19 @@
{
if (op == O_bit_exclusive_or || op == O_bit_inclusive_or)
{
- if (seg_right != absolute_section || right != 0)
+ if (!(seg_right == absolute_section && right == 0))
{
seg_left = seg_right;
left = right;
add_symbol = op_symbol;
+ orig_add_symbol = expressionP->X_op_symbol;
}
op = O_symbol;
break;
}
else if (op == O_left_shift || op == O_right_shift)
{
- if (seg_left != absolute_section || left != 0)
+ if (!(seg_left == absolute_section && left == 0))
{
op = O_symbol;
break;
@@ -2149,6 +2152,7 @@
seg_left = seg_right;
left = right;
add_symbol = op_symbol;
+ orig_add_symbol = expressionP->X_op_symbol;
op = O_symbol;
break;
}
@@ -2158,11 +2162,11 @@
op = O_symbol;
break;
}
- else if (left != right
- || ((seg_left != reg_section || seg_right != reg_section)
- && (seg_left != undefined_section
- || seg_right != undefined_section
- || add_symbol != op_symbol)))
+ else if (!(left == right
+ && ((seg_left == reg_section && seg_right == reg_section)
+ || (seg_left == undefined_section
+ && seg_right == undefined_section
+ && add_symbol == op_symbol))))
return 0;
else if (op == O_bit_and || op == O_bit_inclusive_or)
{
@@ -2233,7 +2237,8 @@
op = O_constant;
else if (seg_left == reg_section && final_val == 0)
op = O_register;
- else if (add_symbol != expressionP->X_add_symbol)
+ else if (seg_left == undefined_section
+ && add_symbol != orig_add_symbol)
final_val += left;
expressionP->X_add_symbol = add_symbol;
}

View file

@ -1,14 +1,14 @@
{stdenv, fetchurl, noSysDirs, cross ? null}:
let
basename = "binutils-2.20";
basename = "binutils-2.20.1";
in
stdenv.mkDerivation rec {
name = basename + stdenv.lib.optionalString (cross != null) "-${cross.config}";
src = fetchurl {
url = "mirror://gnu/binutils/${basename}.tar.bz2";
sha256 = "1c3m789p5rwmmnck5ms4zcnc40axss3gxzivz571al1vmbq0kpz1";
sha256 = "1y7nwsprhr4hvx9ps2l0l0ivb6k41rcrx1invmzqxs475mr892r2";
};
patches = [
@ -16,8 +16,6 @@ stdenv.mkDerivation rec {
# RUNPATH instead of RPATH on binaries. This is important because
# RUNPATH can be overriden using LD_LIBRARY_PATH at runtime.
./new-dtags.patch
./as-pr10856.patch
];
inherit noSysDirs;

View file

@ -1,11 +1,11 @@
{stdenv, fetchurl}:
stdenv.mkDerivation {
name = "gnum4-1.4.13";
name = "gnum4-1.4.14";
src = fetchurl {
url = mirror://gnu/m4/m4-1.4.13.tar.bz2;
sha256 = "01pcrajrk2rqhxbrij3j07ywyxlq7ih43a8pzvhdlxhlwfazxipw";
url = mirror://gnu/m4/m4-1.4.14.tar.bz2;
sha256 = "1ljddxjqw1642b26qzk87fahkv9rsv2cn2ygn6b3ldan6alzz188";
};
doCheck = !stdenv.isDarwin;

View file

@ -1,11 +1,11 @@
{stdenv, fetchurl}:
stdenv.mkDerivation rec {
name = "gnutar-1.22";
name = "gnutar-1.23";
src = fetchurl {
url = "mirror://gnu/tar/tar-1.22.tar.bz2";
sha256 = "0kdaadflxa6wznbbrp0xlxk9926hrr4yg7wr6m98ygvs35zvdvrw";
url = "mirror://gnu/tar/tar-1.23.tar.bz2";
sha256 = "0dmyxsh0171m6nv8aw74dps1l4b1r7pkqkly9kcv3yv2vdr86cn9";
};
patches = [./implausible.patch];

View file

@ -1,11 +1,11 @@
{stdenv, fetchurl, coreutils}:
stdenv.mkDerivation rec {
name = "findutils-4.4.1";
name = "findutils-4.4.2";
src = fetchurl {
url = "mirror://gnu/findutils/${name}.tar.gz";
sha256 = "0f61phan4q8w5i1lz768q973c1spfqgvc470jc89rpg0gxfvi9bp";
sha256 = "0amn0bbwqvsvvsh6drfwz20ydc2czk374lzw5kksbh6bf78k4ks3";
};
buildNativeInputs = [coreutils];

View file

@ -1,13 +1,13 @@
{stdenv, fetchurl, pcre}:
let version = "2.5.4"; in
let version = "2.6.3"; in
stdenv.mkDerivation {
name = "gnugrep-${version}";
src = fetchurl {
url = "mirror://gnu/grep/grep-${version}.tar.bz2";
sha256 = "0800lj1ywf43x5jnjyga56araak0f601sd9k5q1vv3s5057cdgha";
url = "mirror://gnu/grep/grep-${version}.tar.gz";
sha256 = "0rnnljzcpb2sl5zabww7gbzk9r6kp8kycsqrf909d6jdak8yah53";
};
buildInputs = [pcre];

View file

@ -1,15 +1,12 @@
{stdenv, fetchurl}:
stdenv.mkDerivation {
name = "gnused-4.1.5";
name = "gnused-4.2.1";
src = fetchurl {
url = mirror://gnu/sed/sed-4.1.5.tar.gz;
md5 = "7a1cbbbb3341287308e140bd4834c3ba";
url = mirror://gnu/sed/sed-4.2.1.tar.gz;
md5 = "0q1hzjvr6pzhaagidg7pj76k1fzz5nl15np7p72w9zcpw0f58ww7";
};
# !!! hack: this should go away in gnused > 4.1.5
patches = [./gettext-fix.patch];
meta = {
homepage = http://www.gnu.org/software/sed/;
@ -24,6 +21,9 @@ stdenv.mkDerivation {
multiple occurrences of a string within a file.
'';
license = "GPLv2+";
license = "GPLv3+";
platforms = stdenv.lib.platforms.all;
maintainers = [ stdenv.lib.maintainers.ludo ];
};
}

View file

@ -1,32 +0,0 @@
diff -rc sed-4.1.5-orig/configure sed-4.1.5/configure
*** sed-4.1.5-orig/configure Fri Feb 3 10:24:40 2006
--- sed-4.1.5/configure Fri Jul 14 12:50:13 2006
***************
*** 11265,11277 ****
esac
done ;;
gettext-fix )
! sed -e '/^mkinstalldirs *=/a\' \
! -e "install_sh=$install_sh" \
-e 's/^mkinstalldirs *=.*/mkinstalldirs=$(MKINSTALLDIRS)/' \
intl/Makefile > intl/Makefile.tmp
mv intl/Makefile.tmp intl/Makefile
! sed -e '/^mkinstalldirs *=/a\' \
! -e "install_sh=$install_sh" \
-e 's/^mkinstalldirs *=.*/mkinstalldirs=$(MKINSTALLDIRS)/' \
po/Makefile > po/Makefile.tmp
mv po/Makefile.tmp po/Makefile ;;
--- 11265,11277 ----
esac
done ;;
gettext-fix )
! sed -e "/^mkinstalldirs *=/a\\
! install_sh=$install_sh" \
-e 's/^mkinstalldirs *=.*/mkinstalldirs=$(MKINSTALLDIRS)/' \
intl/Makefile > intl/Makefile.tmp
mv intl/Makefile.tmp intl/Makefile
! sed -e "/^mkinstalldirs *=/a\\
! install_sh=$install_sh" \
-e 's/^mkinstalldirs *=.*/mkinstalldirs=$(MKINSTALLDIRS)/' \
po/Makefile > po/Makefile.tmp
mv po/Makefile.tmp po/Makefile ;;