From 7bbb1ad569183bbbf0d760975170ea83a9193f2c Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue, 13 Dec 2011 16:47:29 +0000
Subject: [PATCH] * Revert to binutils 2.21.1.  Binutils 2.22 changes the
 default   handling of dynamic libraries from --copy-dt-needed-entries to  
 --no-copy-dt-needed-entries, which breaks stuff (e.g. GCC, see  
 http://hydra.nixos.org/build/1608471).  So stick with 2.21.1 for   now.

svn path=/nixpkgs/branches/stdenv-updates/; revision=30870
---
 .../tools/misc/binutils/default.nix           | 21 ++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 9c359865af8..7b7ff2d44be 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -1,13 +1,28 @@
 { stdenv, fetchurl, noSysDirs, zlib, cross ? null, gold ? false, bison ? null, flex2535 ? null, bc ? null, dejagnu ? null }:
 
-let basename = "binutils-2.22"; in
-
+let basename = "binutils-2.21.1a"; in
 stdenv.mkDerivation rec {
   name = basename + stdenv.lib.optionalString (cross != null) "-${cross.config}";
 
+  # WARNING: Upstream made a mistake in packaging that may mean anyone
+  # but the FSF hosting this tarball is accidentally in violation of
+  # the GPL. We can't update binutils until the next stdenv-updates,
+  # so we are stuck with this version. The issue is discussed in
+  # this email: http://sourceware.org/ml/binutils/2011-08/msg00198.html
+  # The tarball for this minor version will not be fixed, as only the
+  # tarballs for the latest minor version of each major version will
+  # be repackaged. The fixed sources for the closest version to this one
+  # can be found at mirror://gnu/binutils/binutils-2.21.1a.tar.bz2
+  # or http://ftp.gnu.org/gnu/binutils/binutils-2.21.1a.tar.bz2
+  # The sources missing from this tarball come from cgen. It is unclear
+  # WHICH sources should be included, but the cvs tree can be checked out
+  # by:
+  # cvs -z 9 -d :pserver:anoncvs@sourceware.org:/cvs/src login
+  # {enter "anoncvs" as the password}
+  # cvs -z 9 -d :pserver:anoncvs@sourceware.org:/cvs/src co cgen
   src = fetchurl {
     url = "mirror://gnu/binutils/${basename}.tar.bz2";
-    sha256 = "1a9w66v5dwvbnawshjwqcgz7km6kw6ihkzp6sswv9ycc3knzhykc";
+    sha256 = "0m7nmd7gc9d9md43wbrv65hz6lbi2crqwryzpigv19ray1lzmv6d";
   };
 
   patches = [