summary refs log tree commit diff
path: root/pkgs/development/libraries/aterm/2.5.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-01-27 17:46:07 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-01-27 17:46:07 +0000
commitda4fb573a7bfb2d1ef402ed6081131a8ce893038 (patch)
tree54dcb8f013800ae344a1dbfc2849d208ee5c82e1 /pkgs/development/libraries/aterm/2.5.nix
parent76efe57d1be042bb7cdce852106a74bb8b79b2e4 (diff)
downloadnixpkgs-da4fb573a7bfb2d1ef402ed6081131a8ce893038.tar
nixpkgs-da4fb573a7bfb2d1ef402ed6081131a8ce893038.tar.gz
nixpkgs-da4fb573a7bfb2d1ef402ed6081131a8ce893038.tar.bz2
nixpkgs-da4fb573a7bfb2d1ef402ed6081131a8ce893038.tar.lz
nixpkgs-da4fb573a7bfb2d1ef402ed6081131a8ce893038.tar.xz
nixpkgs-da4fb573a7bfb2d1ef402ed6081131a8ce893038.tar.zst
nixpkgs-da4fb573a7bfb2d1ef402ed6081131a8ce893038.zip
* Added ATerm 2.8. Also removed some old versions and patches that
  were no longer in use.

* A patch for compiling the ATerm library with GCC 4.3.  Without it,
  the code for resizing ATerm tables gets stuck in an infinite loop
  (http://bugzilla.sen.cwi.nl:8080/show_bug.cgi?id=841).  The problem
  is in this bit of code in hash.c, which tries to dynamically figure
  out the maximum signed integer:

    long try_long_max;
    long long_max;
    long delta;

    try_long_max = 1;
    do {
      long_max = try_long_max;
      try_long_max = long_max * 2;
    } while (try_long_max > 0);

  At -O2, GCC 4.3 determines that 1 * 2 * 2 * ... can never be <= 0,
  and so it optimises this into a 1-instruction infinite loop:

    0x0805a782 <keyPut+1282>: jmp  0x805a782 <keyPut+1282>

  Quite beautiful really. ;-)

  The fix is to use the LONG_MAX macro instead.

svn path=/nixpkgs/branches/stdenv-updates/; revision=13888
Diffstat (limited to 'pkgs/development/libraries/aterm/2.5.nix')
-rw-r--r--pkgs/development/libraries/aterm/2.5.nix5
1 files changed, 5 insertions, 0 deletions
diff --git a/pkgs/development/libraries/aterm/2.5.nix b/pkgs/development/libraries/aterm/2.5.nix
index 88e31d08515..f30bd7d3d5c 100644
--- a/pkgs/development/libraries/aterm/2.5.nix
+++ b/pkgs/development/libraries/aterm/2.5.nix
@@ -8,6 +8,11 @@ stdenv.mkDerivation {
     md5 = "33ddcb1a229baf406ad1f603eb1d5995";
   };
 
+  patches = [
+    # Fix for http://bugzilla.sen.cwi.nl:8080/show_bug.cgi?id=841
+    ./max-long.patch
+  ];
+  
   doCheck = true;
 
   meta = {