diff --git a/pkgs/development/libraries/libffi/default.nix b/pkgs/development/libraries/libffi/default.nix index a1f6716009ee..bc15e88ba2f8 100644 --- a/pkgs/development/libraries/libffi/default.nix +++ b/pkgs/development/libraries/libffi/default.nix @@ -1,23 +1,21 @@ { fetchurl, stdenv, dejagnu }: stdenv.mkDerivation rec { - name = "libffi-3.0.13"; + name = "libffi-3.2.1"; src = fetchurl { url = "ftp://sourceware.org/pub/libffi/${name}.tar.gz"; - sha256 = "077ibkf84bvcd6rw1m6jb107br63i2pp301rkmsbgg6300adxp8x"; + sha256 = "0dya49bnhianl0r65m65xndz6ls2jn1xngyn72gd28ls3n7bnvnh"; }; - patches = stdenv.lib.optional (stdenv.needsPax) ./libffi-3.0.13-emutramp_pax_proc.patch; - buildInputs = stdenv.lib.optional doCheck dejagnu; configureFlags = [ "--with-gcc-arch=generic" # no detection of -march= or -mtune= - ] ++ stdenv.lib.optional (stdenv.needsPax) "--enable-pax_emutramp"; + "--enable-pax_emutramp" + ]; - #doCheck = stdenv.isLinux; # until we solve dejagnu problems on darwin and expect on BSD - doCheck = false; + doCheck = stdenv.isLinux; # until we solve dejagnu problems on darwin and expect on BSD dontStrip = stdenv ? cross; # Don't run the native `strip' when cross-compiling. diff --git a/pkgs/development/libraries/libffi/libffi-3.0.13-emutramp_pax_proc.patch b/pkgs/development/libraries/libffi/libffi-3.0.13-emutramp_pax_proc.patch deleted file mode 100644 index c27bd9bf8893..000000000000 --- a/pkgs/development/libraries/libffi/libffi-3.0.13-emutramp_pax_proc.patch +++ /dev/null @@ -1,37 +0,0 @@ -2013-05-22 Magnus Granberg - - #457194 - * src/closuer.c (emutramp_enabled_check): Check with /proc. - ---- a/src/closures.c 2013-03-17 23:27:11.000000000 +0100 -+++ b/src/closures.c 2013-04-29 23:26:02.279022022 +0200 -@@ -181,10 +181,26 @@ static int emutramp_enabled = -1; - static int - emutramp_enabled_check (void) - { -- if (getenv ("FFI_DISABLE_EMUTRAMP") == NULL) -- return 1; -- else -+ char *buf = NULL; -+ size_t len = 0; -+ FILE *f; -+ int ret; -+ f = fopen ("/proc/self/status", "r"); -+ if (f == NULL) - return 0; -+ ret = 0; -+ -+ while (getline (&buf, &len, f) != -1) -+ if (!strncmp (buf, "PaX:", 4)) -+ { -+ char emutramp; -+ if (sscanf (buf, "%*s %*c%c", &emutramp) == 1) -+ ret = (emutramp == 'E'); -+ break; -+ } -+ free (buf); -+ fclose (f); -+ return ret; - } - - #define is_emutramp_enabled() (emutramp_enabled >= 0 ? emutramp_enabled \