summary refs log tree commit diff
path: root/pkgs/os-specific/linux/dietlibc/default.nix
blob: d98bfb9673569262b5e9f54e3fed4ec20794c886 (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
37
38
39
40
41
42
43
{stdenv, fetchurl, glibc}:

assert stdenv.isLinux;

stdenv.mkDerivation {
  name = "dietlibc-0.30";
  src = fetchurl {
    url = mirror://kernel/linux/libs/dietlibc/dietlibc-0.30.tar.bz2;
    md5 = "2465d652fff6f1fad3da3b98e60e83c9";
  };
  builder = ./builder.sh;
  
  inherit glibc;
  kernelHeaders = glibc.linuxHeaders;

  patches = [

    # dietlibc's sigcontext.h provides a macro called PC(), which is
    # rather intrusive (e.g., binutils fails to compile because of
    # it).  Rename it.
    ./pc.patch

    # wchar.h declares lots of functions that don't actually exist.
    # Remove them.
    ./no-wchar.patch

    # Fix to get DNS resolution to work on 64-bit platforms.  Taken
    # from 0.31 CVS.
    ./dns64.patch

    # Get lseek64 working on x86_64.  From
    # http://svn.annvix.org/cgi-bin/viewvc.cgi/packages/releases/2.0-CURRENT/dietlibc/SOURCES
    ./x86_64-lseek64.patch
    #./x86_64-stat64.patch

  ];

  meta = {
    homepage = http://www.fefe.de/dietlibc/;
    description = "A small implementation of the C library";
    license = "GPL";
  };
}