Skip to content

Commit 323a346

Browse files
committed
Use llvm objcopy from rust toolchain 🎉
Its the last missing util we needed to be a rust-toolchain-only project. rust-lang/rust#50336 https://github.com/japaric/cargo-binutils
1 parent 038c8ac commit 323a346

File tree

17 files changed

+86
-379
lines changed

17 files changed

+86
-379
lines changed

.00_crosscompiler/OLVASSEL.md

Lines changed: 0 additions & 118 deletions
This file was deleted.

.00_crosscompiler/README.md

Lines changed: 0 additions & 118 deletions
This file was deleted.

.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

01_bareminimum/Makefile

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,14 @@
2424

2525
TARGET = aarch64-raspi3-none-elf
2626

27-
CROSS_CONTAINER = ./dockcross-linux-aarch64
28-
CROSS_CONTAINER_ROOT = /usr/xcc/aarch64-unknown-linux-gnueabi/bin
29-
CROSS_CONTAINER_OBJCOPY = $(CROSS_CONTAINER_ROOT)/aarch64-unknown-linux-gnueabi-objcopy
27+
OBJCOPY = cargo objcopy --
28+
OBJCOPY_PARAMS = --strip-all -O binary
3029

3130
UTILS_CONTAINER = andrerichter/raspi3-utils
3231
DOCKER_CMD = docker run -it --rm -v $(shell pwd):/work -w /work
3332
QEMU_CMD = qemu-system-aarch64 -M raspi3 -kernel kernel8.img
3433

35-
all: clean cross_cont_download kernel8.img
36-
37-
cross_cont_download:
38-
ifeq (,$(wildcard $(CROSS_CONTAINER)))
39-
docker run --rm dockcross/linux-arm64 > $(CROSS_CONTAINER)
40-
chmod +x $(CROSS_CONTAINER)
41-
endif
34+
all: clean kernel8.img
4235

4336
target/$(TARGET)/debug/kernel8: src/main.rs
4437
RUST_TARGET_PATH=$(shell pwd) xargo build --target=$(TARGET)
@@ -55,7 +48,7 @@ kernel8: target/$(TARGET)/release/kernel8
5548
endif
5649

5750
kernel8.img: kernel8
58-
$(CROSS_CONTAINER) $(CROSS_CONTAINER_OBJCOPY) -O binary -S $< kernel8.img
51+
$(OBJCOPY) $(OBJCOPY_PARAMS) $< kernel8.img
5952

6053
qemu:
6154
$(DOCKER_CMD) $(UTILS_CONTAINER) $(QEMU_CMD) -d in_asm

02_multicore_rust/Makefile

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,14 @@
2424

2525
TARGET = aarch64-raspi3-none-elf
2626

27-
CROSS_CONTAINER = ./dockcross-linux-aarch64
28-
CROSS_CONTAINER_ROOT = /usr/xcc/aarch64-unknown-linux-gnueabi/bin
29-
CROSS_CONTAINER_OBJCOPY = $(CROSS_CONTAINER_ROOT)/aarch64-unknown-linux-gnueabi-objcopy
27+
OBJCOPY = cargo objcopy --
28+
OBJCOPY_PARAMS = --strip-all -O binary
3029

3130
UTILS_CONTAINER = andrerichter/raspi3-utils
3231
DOCKER_CMD = docker run -it --rm -v $(shell pwd):/work -w /work
3332
QEMU_CMD = qemu-system-aarch64 -M raspi3 -kernel kernel8.img
3433

35-
all: clean cross_cont_download kernel8.img
36-
37-
cross_cont_download:
38-
ifeq (,$(wildcard $(CROSS_CONTAINER)))
39-
docker run --rm dockcross/linux-arm64 > $(CROSS_CONTAINER)
40-
chmod +x $(CROSS_CONTAINER)
41-
endif
34+
all: clean kernel8.img
4235

4336
target/$(TARGET)/debug/kernel8: src/main.rs
4437
RUST_TARGET_PATH=$(shell pwd) xargo build --target=$(TARGET)
@@ -55,7 +48,7 @@ kernel8: target/$(TARGET)/release/kernel8
5548
endif
5649

5750
kernel8.img: kernel8
58-
$(CROSS_CONTAINER) $(CROSS_CONTAINER_OBJCOPY) -O binary -S $< kernel8.img
51+
$(OBJCOPY) $(OBJCOPY_PARAMS) $< kernel8.img
5952

6053
qemu:
6154
$(DOCKER_CMD) $(UTILS_CONTAINER) $(QEMU_CMD) -d in_asm

03_uart1/Makefile

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,14 @@
2424

2525
TARGET = aarch64-raspi3-none-elf
2626

27-
CROSS_CONTAINER = ./dockcross-linux-aarch64
28-
CROSS_CONTAINER_ROOT = /usr/xcc/aarch64-unknown-linux-gnueabi/bin
29-
CROSS_CONTAINER_OBJCOPY = $(CROSS_CONTAINER_ROOT)/aarch64-unknown-linux-gnueabi-objcopy
27+
OBJCOPY = cargo objcopy --
28+
OBJCOPY_PARAMS = --strip-all -O binary
3029

3130
UTILS_CONTAINER = andrerichter/raspi3-utils
3231
DOCKER_CMD = docker run -it --rm -v $(shell pwd):/work -w /work
3332
QEMU_CMD = qemu-system-aarch64 -M raspi3 -kernel kernel8.img
3433

35-
all: clean cross_cont_download kernel8.img
36-
37-
cross_cont_download:
38-
ifeq (,$(wildcard $(CROSS_CONTAINER)))
39-
docker run --rm dockcross/linux-arm64 > $(CROSS_CONTAINER)
40-
chmod +x $(CROSS_CONTAINER)
41-
endif
34+
all: clean kernel8.img
4235

4336
target/$(TARGET)/debug/kernel8: src/main.rs
4437
RUST_TARGET_PATH=$(shell pwd) xargo build --target=$(TARGET)
@@ -55,7 +48,7 @@ kernel8: target/$(TARGET)/release/kernel8
5548
endif
5649

5750
kernel8.img: kernel8
58-
$(CROSS_CONTAINER) $(CROSS_CONTAINER_OBJCOPY) -O binary -S $< kernel8.img
51+
$(OBJCOPY) $(OBJCOPY_PARAMS) $< kernel8.img
5952

6053
qemu:
6154
$(DOCKER_CMD) $(UTILS_CONTAINER) $(QEMU_CMD) -serial stdio

04_mailboxes/Makefile

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,14 @@
2424

2525
TARGET = aarch64-raspi3-none-elf
2626

27-
CROSS_CONTAINER = ./dockcross-linux-aarch64
28-
CROSS_CONTAINER_ROOT = /usr/xcc/aarch64-unknown-linux-gnueabi/bin
29-
CROSS_CONTAINER_OBJCOPY = $(CROSS_CONTAINER_ROOT)/aarch64-unknown-linux-gnueabi-objcopy
27+
OBJCOPY = cargo objcopy --
28+
OBJCOPY_PARAMS = --strip-all -O binary
3029

3130
UTILS_CONTAINER = andrerichter/raspi3-utils
3231
DOCKER_CMD = docker run -it --rm -v $(shell pwd):/work -w /work
3332
QEMU_CMD = qemu-system-aarch64 -M raspi3 -kernel kernel8.img
3433

35-
all: clean cross_cont_download kernel8.img
36-
37-
cross_cont_download:
38-
ifeq (,$(wildcard $(CROSS_CONTAINER)))
39-
docker run --rm dockcross/linux-arm64 > $(CROSS_CONTAINER)
40-
chmod +x $(CROSS_CONTAINER)
41-
endif
34+
all: clean kernel8.img
4235

4336
target/$(TARGET)/debug/kernel8: src/main.rs
4437
RUST_TARGET_PATH=$(shell pwd) xargo build --target=$(TARGET)
@@ -55,7 +48,7 @@ kernel8: target/$(TARGET)/release/kernel8
5548
endif
5649

5750
kernel8.img: kernel8
58-
$(CROSS_CONTAINER) $(CROSS_CONTAINER_OBJCOPY) -O binary -S $< kernel8.img
51+
$(OBJCOPY) $(OBJCOPY_PARAMS) $< kernel8.img
5952

6053
qemu:
6154
$(DOCKER_CMD) $(UTILS_CONTAINER) $(QEMU_CMD) -serial stdio

0 commit comments

Comments
 (0)