Specify components in `rust-toolchain` and update the toolchain to `nightly-2020-08-20`.
diff --git a/Makefile b/Makefile
index 81829e2..779a021 100644
--- a/Makefile
+++ b/Makefile
@@ -38,12 +38,6 @@
.PHONY: setup
setup: setup-qemu
- rustup target add thumbv7em-none-eabi
- rustup target add riscv32imac-unknown-none-elf
- rustup target add riscv32imc-unknown-none-elf
- rustup component add clippy
- rustup component add rustfmt
- rustup component add miri
cargo install elf2tab --version 0.6.0
cargo install stack-sizes
cargo miri setup
diff --git a/core/Cargo.toml b/core/Cargo.toml
index f19168c..5632d23 100644
--- a/core/Cargo.toml
+++ b/core/Cargo.toml
@@ -11,6 +11,6 @@
custom_alloc_error_handler = []
[dependencies]
-linked_list_allocator = { optional = true, version = "=0.8.1", default-features = false }
+linked_list_allocator = { optional = true, version = "0.8.6", default-features = false }
libtock_codegen = { path = "../codegen" }
libtock_platform = { path = "platform" }
diff --git a/core/src/lang_items.rs b/core/src/lang_items.rs
index b5c2cd4..82d2f54 100644
--- a/core/src/lang_items.rs
+++ b/core/src/lang_items.rs
@@ -21,6 +21,7 @@
use crate::syscalls;
#[lang = "start"]
+#[allow(improper_ctypes_definitions)]
extern "C" fn start<T>(main: fn() -> T, _argc: isize, _argv: *const *const u8) -> bool
where
T: Termination,
diff --git a/layout_generic.ld b/layout_generic.ld
index f2deebb..0bbef87 100644
--- a/layout_generic.ld
+++ b/layout_generic.ld
@@ -160,6 +160,11 @@
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > FLASH
PROVIDE_HIDDEN (__exidx_end = .);
+
+ /DISCARD/ :
+ {
+ *(.eh_frame)
+ }
}
ASSERT((_stack_top_aligned - _stack_top_unaligned) == 0, "
diff --git a/rust-toolchain b/rust-toolchain
index 4aec5c6..0a379e7 100644
--- a/rust-toolchain
+++ b/rust-toolchain
@@ -1 +1,8 @@
-nightly-2020-06-10
+[toolchain]
+# See https://rust-lang.github.io/rustup-components-history/ for a list of
+# recently nightlies and what components are available for them.
+channel = "nightly-2020-08-20"
+components = ["clippy", "miri", "rustfmt"]
+targets = ["thumbv7em-none-eabi",
+ "riscv32imac-unknown-none-elf",
+ "riscv32imc-unknown-none-elf"]