Skip to content

Instantly share code, notes, and snippets.

@spencerpogo
Created September 3, 2025 17:42
Show Gist options
  • Save spencerpogo/e3a502e7b03fcdb3aa477415603844fe to your computer and use it in GitHub Desktop.
Save spencerpogo/e3a502e7b03fcdb3aa477415603844fe to your computer and use it in GitHub Desktop.
Nix setup for MIT 6.1810 lab tools
{
pkgs ? import <nixpkgs> { },
}:
let
targetTriple = "riscv64-unknown-linux-gnu";
pkgsCross = import <nixpkgs> {
crossSystem = {
config = targetTriple;
};
};
inherit (pkgsCross.stdenv.cc) targetPrefix;
in
pkgs.mkShell {
packages = with pkgs; [
git
gnumake
gcc
# gdb-multiarch
gdb
qemu
pkgsCross.buildPackages.binutils
pkgsCross.buildPackages.gcc
];
shellHook = ''
echo "Using cross toolchain targeting ${targetTriple}"
export TARGET_TRIPLE=${targetTriple}
export CROSS_COMPILE=${targetPrefix}
export CC=${targetPrefix}gcc
export CXX=${targetPrefix}g++
export AS=${targetPrefix}as
export AR=${targetPrefix}ar
export LD=${targetPrefix}ld
export STRIP=${targetPrefix}strip
'';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment