summary refs log tree commit diff
path: root/pkgs/development/libraries/libsigsegv/default.nix
blob: 4189ba9c6fae48deb4d68c5005bbde9e89029b28 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{ lib, stdenv, fetchurl
, enableSigbusFix ? false # required by kernels < 3.18.6
}:

stdenv.mkDerivation rec {
  name = "libsigsegv-2.13";

  src = fetchurl {
    url = "mirror://gnu/libsigsegv/${name}.tar.gz";
    sha256 = "sha256-vnjuQXawX3x1/wMpjYSHTbkPS2ydVQPw2hIms6PEgRk=";
  };

  patches = if enableSigbusFix then [ ./sigbus_fix.patch ] else null;

  doCheck = true; # not cross;

  meta = {
    homepage = "https://www.gnu.org/software/libsigsegv/";
    description = "Library to handle page faults in user mode";

    longDescription = ''
      GNU libsigsegv is a library for handling page faults in user mode. A
      page fault occurs when a program tries to access to a region of memory
      that is currently not available. Catching and handling a page fault is
      a useful technique for implementing pageable virtual memory,
      memory-mapped access to persistent databases, generational garbage
      collectors, stack overflow handlers, distributed shared memory, and
      more.
    '';

    license = lib.licenses.gpl2Plus;

    maintainers = [ ];
    platforms = lib.platforms.unix;
  };
}