summary refs log tree commit diff
path: root/pkgs/os-specific/linux/dietlibc/builder.sh
blob: 50779de8f996c000f85c915bf162332e0c36e35c (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
source $stdenv/setup

makeFlags="prefix=$out"
installFlags="prefix=$out"

postInstall=postInstall
postInstall() {
    (cd $out && ln -s lib-* lib)
    (cd $out/lib && ln -s start.o crt1.o)

    # Fake crti.o and crtn.o.
    touch empty.c
    gcc -c empty.c -o $out/lib/crti.o
    gcc -c empty.c -o $out/lib/crtn.o

    # Copy <sys/user.h> from Glibc; binutils wants it.
    cp $glibc/include/sys/user.h $out/include/sys/

    # Remove <dlfcn.h>, it makes some packages think we can load
    # dynamic libraries.
    rm $out/include/dlfcn.h

    # Dietlibc has a asm include directory, whose presence makes the
    # asm directory of kernel-headers unreachable.  So make symlinks
    # from the dietlibc asm to the kernel-headers asm.
    ln -s $kernelHeaders/include/asm/* $out/include/asm/ || true

    # Make asm-x86_64 etc. available.
    for i in $kernelHeaders/include/asm-*; do
        ln -s $i $out/include/
    done

    # Idem for include/linux.
    ln -s $kernelHeaders/include/linux/* $out/include/linux/ || true
}

genericBuild