2
0
Fork 0
genodepkgs/overlay/libc/default.nix

112 lines
2.6 KiB
Nix
Raw Normal View History

2020-03-24 13:47:30 +01:00
# SPDX-FileCopyrightText: Emery Hemingway
#
# SPDX-License-Identifier: LicenseRef-Hippocratic-1.1
{ stdenv, fetchgit, fetchurl, genodeHeaders, bison, flex, glibc, writeText }:
let
archInfo = with stdenv.hostPlatform;
if isAarch32 then {
inherit isArm isAarch32;
} else if isAarch64 then {
inherit isArm isAarch64;
} else if isx86_32 then {
inherit isx86 isx86_32;
} else if isx86_64 then {
inherit isx86 isx86_64;
} else
{ };
in stdenv.mkDerivation (archInfo // {
pname = "libgenode";
version = "19.11";
inherit genodeHeaders;
depsBuildBuild = [
bison
flex
glibc # provides rpcgen
];
src = fetchurl {
url =
"http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/12.0-RELEASE/src.txz";
sha256 = "0da393ac2174168a71c1c527d1453e07372295187d05c288250800cb152a889b";
};
unpackPhase = "tar xf $src $tarFlags";
tarFlags = [
"--strip-components=2"
"usr/src/contrib/gdtoa"
"usr/src/contrib/libc-vis"
"usr/src/contrib/tzcode/stdtime"
"usr/src/include"
"usr/src/lib/libc"
"usr/src/lib/msun"
"usr/src/sys/amd64"
"usr/src/sys/arm"
"usr/src/sys/arm64"
"usr/src/sys/bsm"
"usr/src/sys/crypto/chacha20"
"usr/src/sys/i386"
"usr/src/sys/libkern"
"usr/src/sys/net"
"usr/src/sys/netinet"
"usr/src/sys/netinet6"
"usr/src/sys/riscv"
"usr/src/sys/rpc"
"usr/src/sys/sys"
"usr/src/sys/vm"
"usr/src/sys/x86"
];
patches = [
./cdefs_no_hidden.patch
./_CurrentRuneLocale.patch
./gdtoa.patch
./log2.patch
./MB_CUR_MAX.patch
./mktime.patch
./printfcommon.patch
./rcmd.patch
./res_init_c.patch
./runetype.patch
./semaphore.patch
./thread_local.patch
./types.patch
./vfwprintf_c_warn.patch
./xlocale.patch
./xlocale_private.patch
./xprintf_float.patch
];
patchFlags = "-p0 --strip 3";
genodeRelLd = "${genodeHeaders}/ld/genode_rel.ld";
genodePrgPcIn = ./genode-prg.pc.in;
libcSymbols = ./libc.symbols;
ldSymbols = ./ld.symbols;
linkerLd = ./linker.ld;
vfsSymbols = ./vfs.symbols;
builder = writeText "builder.sh" ''
source $stdenv/setup
export includedir=$out/include
export pkgconfigdir=$out/lib/pkgconfig
export lddir=${genodeHeaders}/ld
mkdir -p $pkgconfigdir $out/lib
source ${./libc-builder.sh}
substituteAll ${./libc.pc.in} $pkgconfigdir/libc.pc
substituteAll ${./vfs.pc.in} $pkgconfigdir/vfs.pc
substituteAll ${./genode-prg.pc.in} $pkgconfigdir/genode-prg.pc
ln -s $out/lib/libc.lib.so $out/lib/libc.so
'';
})