Skip to content

Commit b67cb52

Browse files
committed
Only checking for necessary extensions when linking, made debug information location-independent
1 parent 7ef035a commit b67cb52

14 files changed

+25
-18
lines changed

riscv-rt/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,6 @@ inline-asm = ["riscv/inline-asm"]
1818

1919
[dev-dependencies]
2020
panic-halt = "0.2.0"
21+
22+
[build-dependencies]
23+
riscv-target = "0.1.2"

riscv-rt/assemble.ps1

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@
22
Remove-Item -Force bin/*.a
33

44
$crate = "riscv-rt"
5+
$extension_sets = @("i", "im", "ic", "imc")
56

6-
riscv64-unknown-elf-gcc -ggdb3 -c -mabi=ilp32 -march=rv32imac asm.S -o bin/$crate.o
7-
riscv64-unknown-elf-ar crs bin/riscv32imac-unknown-none-elf.a bin/$crate.o
8-
riscv64-unknown-elf-ar crs bin/riscv32imc-unknown-none-elf.a bin/$crate.o
7+
foreach ($ext in $extension_sets) {
8+
riscv64-unknown-elf-gcc -ggdb3 -c -mabi=ilp32 -march=rv32$ext asm.S -o bin/$crate.o
9+
riscv64-unknown-elf-ar crs bin/riscv32$ext-unknown-none-elf.a bin/$crate.o
910

10-
riscv64-unknown-elf-gcc -ggdb3 -c -mabi=ilp32 -march=rv32i asm.S -o bin/$crate.o
11-
riscv64-unknown-elf-ar crs bin/riscv32i-unknown-none-elf.a bin/$crate.o
12-
13-
riscv64-unknown-elf-gcc -ggdb3 -c -mabi=lp64 -march=rv64imac asm.S -o bin/$crate.o
14-
riscv64-unknown-elf-ar crs bin/riscv64imac-unknown-none-elf.a bin/$crate.o
15-
riscv64-unknown-elf-ar crs bin/riscv64gc-unknown-none-elf.a bin/$crate.o
11+
riscv64-unknown-elf-gcc -ggdb3 -c -mabi=lp64 -march=rv64$ext asm.S -o bin/$crate.o
12+
riscv64-unknown-elf-ar crs bin/riscv64$ext-unknown-none-elf.a bin/$crate.o
13+
}
1614

1715
Remove-Item bin/$crate.o

riscv-rt/assemble.sh

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,13 @@ crate=riscv-rt
77
# remove existing blobs because otherwise this will append object files to the old blobs
88
rm -f bin/*.a
99

10-
riscv64-unknown-elf-gcc -ggdb3 -c -mabi=ilp32 -march=rv32imac asm.S -o bin/$crate.o
11-
riscv64-unknown-elf-ar crs bin/riscv32imac-unknown-none-elf.a bin/$crate.o
12-
riscv64-unknown-elf-ar crs bin/riscv32imc-unknown-none-elf.a bin/$crate.o
10+
for ext in i ic im imc
11+
do
12+
riscv64-unknown-elf-gcc -ggdb3 -fdebug-prefix-map=$(pwd)=/riscv-rt -c -mabi=ilp32 -march=rv32${ext} asm.S -o bin/$crate.o
13+
riscv64-unknown-elf-ar crs bin/riscv32${ext}-unknown-none-elf.a bin/$crate.o
1314

14-
riscv64-unknown-elf-gcc -ggdb3 -c -mabi=ilp32 -march=rv32i asm.S -o bin/$crate.o
15-
riscv64-unknown-elf-ar crs bin/riscv32i-unknown-none-elf.a bin/$crate.o
16-
17-
riscv64-unknown-elf-gcc -ggdb3 -c -mabi=lp64 -march=rv64imac asm.S -o bin/$crate.o
18-
riscv64-unknown-elf-ar crs bin/riscv64imac-unknown-none-elf.a bin/$crate.o
19-
riscv64-unknown-elf-ar crs bin/riscv64gc-unknown-none-elf.a bin/$crate.o
15+
riscv64-unknown-elf-gcc -ggdb3 -fdebug-prefix-map=$(pwd)=/riscv-rt -c -mabi=lp64 -march=rv64${ext} asm.S -o bin/$crate.o
16+
riscv64-unknown-elf-ar crs bin/riscv64${ext}-unknown-none-elf.a bin/$crate.o
17+
done
2018

2119
rm bin/$crate.o
-40 Bytes
Binary file not shown.
7.63 KB
Binary file not shown.
7.46 KB
Binary file not shown.
-7.38 KB
Binary file not shown.
-48 Bytes
Binary file not shown.
12.6 KB
Binary file not shown.
12.4 KB
Binary file not shown.

0 commit comments

Comments
 (0)