diff options
Diffstat (limited to 'pkgs/development/compilers/mrustc/bootstrap.nix')
-rw-r--r-- | pkgs/development/compilers/mrustc/bootstrap.nix | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/pkgs/development/compilers/mrustc/bootstrap.nix b/pkgs/development/compilers/mrustc/bootstrap.nix deleted file mode 100644 index ab5b9d7d2166..000000000000 --- a/pkgs/development/compilers/mrustc/bootstrap.nix +++ /dev/null @@ -1,147 +0,0 @@ -{ lib, stdenv -, fetchurl -, mrustc -, mrustc-minicargo -, llvm_12 -, llvmPackages_12 -, libffi -, cmake -, python3 -, zlib -, libxml2 -, openssl -, pkg-config -, curl -, which -, time -}: - -let - mrustcTargetVersion = "1.54"; - rustcVersion = "1.54.0"; - rustcSrc = fetchurl { - url = "https://static.rust-lang.org/dist/rustc-${rustcVersion}-src.tar.gz"; - sha256 = "0xk9dhfff16caambmwij67zgshd8v9djw6ha0fnnanlv7rii31dc"; - }; - rustcDir = "rustc-${rustcVersion}-src"; - outputDir = "output-${rustcVersion}"; -in - -stdenv.mkDerivation rec { - pname = "mrustc-bootstrap"; - version = "${mrustc.version}_${rustcVersion}"; - - inherit (mrustc) src; - postUnpack = "tar -xf ${rustcSrc} -C source/"; - - # the rust build system complains that nix alters the checksums - dontFixLibtool = true; - - patches = [ - ./patches/0001-dont-download-rustc.patch - ]; - - postPatch = '' - echo "applying patch ./rustc-${rustcVersion}-src.patch" - patch -p0 -d ${rustcDir}/ < rustc-${rustcVersion}-src.patch - ''; - - # rustc unfortunately needs cmake to compile llvm-rt but doesn't - # use it for the normal build. This disables cmake in Nix. - dontUseCmakeConfigure = true; - - strictDeps = true; - nativeBuildInputs = [ - cmake - mrustc - mrustc-minicargo - pkg-config - python3 - time - which - ]; - buildInputs = [ - # for rustc - llvm_12 libffi zlib libxml2 - # for cargo - openssl - (curl.override { inherit openssl; }) - ]; - - makeFlags = [ - # Use shared mrustc/minicargo/llvm instead of rebuilding them - "MRUSTC=${mrustc}/bin/mrustc" - #"MINICARGO=${mrustc-minicargo}/bin/minicargo" # FIXME: we need to rebuild minicargo locally so --manifest-overrides is applied - "LLVM_CONFIG=${llvm_12.dev}/bin/llvm-config" - "RUSTC_TARGET=${stdenv.targetPlatform.rust.rustcTarget}" - ]; - - buildPhase = '' - runHook preBuild - - local flagsArray=( - PARLEVEL=$NIX_BUILD_CORES - ${toString makeFlags} - ) - - touch ${rustcDir}/dl-version - export OUTDIR_SUF=-${rustcVersion} - export RUSTC_VERSION=${rustcVersion} - export MRUSTC_TARGET_VER=${mrustcTargetVersion} - export MRUSTC_PATH=${mrustc}/bin/mrustc - - echo minicargo.mk: libs - make -f minicargo.mk "''${flagsArray[@]}" LIBS - - echo test - make "''${flagsArray[@]}" test - - # disabled because it expects ./bin/mrustc - #echo local_tests - #make "''${flagsArray[@]}" local_tests - - echo minicargo.mk: rustc - make -f minicargo.mk "''${flagsArray[@]}" ${outputDir}/rustc - - echo minicargo.mk: cargo - make -f minicargo.mk "''${flagsArray[@]}" ${outputDir}/cargo - - echo run_rustc - make -C run_rustc "''${flagsArray[@]}" - - unset flagsArray - - runHook postBuild - ''; - - doCheck = true; - checkPhase = '' - runHook preCheck - run_rustc/${outputDir}/prefix/bin/hello_world | grep "hello, world" - runHook postCheck - ''; - - installPhase = '' - runHook preInstall - mkdir -p $out/bin/ $out/lib/ - cp run_rustc/${outputDir}/prefix/bin/cargo $out/bin/cargo - cp run_rustc/${outputDir}/prefix/bin/rustc_binary $out/bin/rustc - - cp -r run_rustc/${outputDir}/prefix/lib/* $out/lib/ - cp $out/lib/rustlib/${stdenv.targetPlatform.rust.rustcTarget}/lib/*.so $out/lib/ - runHook postInstall - ''; - - meta = with lib; { - inherit (src.meta) homepage; - description = "Minimal build of Rust"; - longDescription = '' - A minimal build of Rust, built from source using mrustc. - This is useful for bootstrapping the main Rust compiler without - an initial binary toolchain download. - ''; - maintainers = with maintainers; [ progval r-burns ]; - license = with licenses; [ mit asl20 ]; - platforms = [ "x86_64-linux" ]; - }; -} |