shell.nix: explicitly build gdb for targetPlatform arm-none-eabihf

required for gdb 8.1.1 from nixos 18.09.
This commit is contained in:
Astro 2019-03-18 01:39:02 +01:00
parent 2b65b1daf1
commit 912bc2db24
1 changed files with 19 additions and 2 deletions

View File

@ -2,11 +2,28 @@
let let
mozillaOverlay = import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz); mozillaOverlay = import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz);
pkgs = import <nixpkgs> { overlays = [ mozillaOverlay ]; };
# `lib.systems.examples.armhf-embedded` from nixpkgs master
# (TODO: use directly starting with NixOS 19.0X)
targetPlatform = {
config = "arm-none-eabihf";
libc = "newlib";
};
in in
with import <nixpkgs> { overlays = [ mozillaOverlay ]; }; with pkgs;
let let
rustPlatform = callPackage (import ./nix/rustPlatform.nix) { inherit rustChannel; }; rustPlatform = callPackage (import ./nix/rustPlatform.nix) { inherit rustChannel; };
openocd = callPackage (import ./nix/openocd.nix) {}; openocd = callPackage (import ./nix/openocd.nix) {};
# TODO: gdb 8.2.1 from NixOS >= 19.XX is multiarch by default.
# remove the following as `gdb` is already in scope
gdb = pkgs.gdb.override {
stdenv = stdenv.override {
targetPlatform = {
config = "arm-none-eabihf";
libc = "newlib";
};
};
};
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "adc2tcp-env"; name = "adc2tcp-env";
@ -25,6 +42,6 @@ stdenv.mkDerivation {
sleep 1 sleep 1
echo "Run 'cargo build --release --features=semihosting'" echo "Run 'cargo build --release --features=semihosting'"
echo "Then 'gdb target/thumbv7em-none-eabihf/release/adc2tcp'" echo "Then '${targetPlatform.config}-gdb target/thumbv7em-none-eabihf/release/adc2tcp'"
''; '';
} }