nixpkgs/pkgs/development/libraries/relibc/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

87 lines
2.2 KiB
Nix
Raw Normal View History

2023-04-13 15:59:08 +00:00
{ lib, stdenvNoCC, buildPackages }:
2020-07-21 20:11:36 +00:00
2020-08-20 09:46:31 +00:00
let
2021-01-27 05:50:30 +00:00
rpath = lib.makeLibraryPath [
2020-08-20 09:46:31 +00:00
buildPackages.stdenv.cc.libc
"$out"
];
bootstrapCrossRust = stdenvNoCC.mkDerivation {
name = "binary-redox-rust";
2020-10-14 21:23:37 +00:00
2020-10-20 00:17:22 +00:00
src = buildPackages.fetchzip {
2020-10-19 09:20:28 +00:00
name = "redox-rust-toolchain.tar.gz";
url = "https://www.dropbox.com/s/qt7as0j7cwnin8z/redox-rust-toolchain.tar.gz?dl=1";
2020-08-20 09:46:31 +00:00
sha256 = "1g17qp2q6b88p04yclkw6amm374pqlakrmw9kd86vw8z4g70jkxm";
};
2020-07-21 20:11:36 +00:00
2020-08-20 09:46:31 +00:00
dontBuild = true;
dontPatchELF = true;
dontStrip = true;
installPhase = ''
mkdir $out/
cp -r * $out/
find $out/ -executable -type f -exec patchelf \
--set-interpreter "${buildPackages.stdenv.cc.libc}/lib/ld-linux-x86-64.so.2" \
--set-rpath "${rpath}" \
"{}" \;
find $out/ -name "*.so" -type f -exec patchelf \
--set-rpath "${rpath}" \
"{}" \;
'';
2021-01-27 05:50:30 +00:00
meta.platforms = with lib; platforms.redox ++ platforms.linux;
2020-08-20 09:46:31 +00:00
};
redoxRustPlatform = buildPackages.makeRustPlatform {
rustc = bootstrapCrossRust;
cargo = bootstrapCrossRust;
2020-07-21 20:11:36 +00:00
};
2020-08-20 09:46:31 +00:00
in
redoxRustPlatform.buildRustPackage rec {
pname = "relibc";
version = "latest";
LD_LIBRARY_PATH = "${buildPackages.zlib}/lib";
2020-07-21 20:11:36 +00:00
2020-08-20 09:46:31 +00:00
src = buildPackages.fetchgit {
url = "https://gitlab.redox-os.org/redox-os/relibc/";
rev = "5af8e3ca35ad401014a867ac1a0cc3b08dee682b";
sha256 = "1j4wsga9psl453031izkl3clkvm31d1wg4y8f3yqqvhml2aliws5";
fetchSubmodules = true;
};
RUSTC_BOOTSTRAP = 1;
dontInstall = true;
dontFixup = true;
doCheck = false;
postBuild = ''
mkdir -p $out
DESTDIR=$out make install
2020-07-21 20:11:36 +00:00
'';
# TODO: should be hostPlatform
TARGET = buildPackages.rust.toRustTargetSpec stdenvNoCC.targetPlatform;
2020-08-20 09:46:31 +00:00
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"redox_syscall-0.2.0" = "sha256-nwbJBrhuc01fPbBgd5ShboNu0Nauqp2UjkA+sm9oCeE=";
};
};
2020-08-20 09:46:31 +00:00
2023-04-13 15:59:08 +00:00
# error: Usage of `RUSTC_WORKSPACE_WRAPPER` requires `-Z unstable-options`
auditable = false;
2021-01-27 05:50:30 +00:00
meta = with lib; {
2020-07-21 20:11:36 +00:00
homepage = "https://gitlab.redox-os.org/redox-os/relibc";
description = "C Library in Rust for Redox and Linux";
license = licenses.mit;
maintainers = [ maintainers.aaronjanse ];
platforms = platforms.redox ++ [ "x86_64-linux" ];
2020-07-21 20:11:36 +00:00
};
}