Skip to content

Commit 0739b22

Browse files
Merge #52
52: Only checking for necessary extensions when linking, made debug information location-independent r=almindor a=ilya-epifanov Regarding the debug information: ```diff 1c1 < In archive src/oss/riscv-rt-orig/bin/riscv32i-unknown-none-elf.a: --- > In archive src/oss/riscv-rt/bin/riscv32i-unknown-none-elf.a: 335,336c335,336 < <18> DW_AT_comp_dir : (indirect string, offset: 0x6): /home/disasm/dev/rust/embedded/workspace/riscv-rt < <1c> DW_AT_producer : (indirect string, offset: 0x38): GNU AS 2.32 --- > <18> DW_AT_comp_dir : (indirect string, offset: 0x6): /riscv-rt > <1c> DW_AT_producer : (indirect string, offset: 0x10): GNU AS 2.34 367,371c367,368 < 0x00000000 61736d2e 53002f68 6f6d652f 64697361 asm.S./home/disa < 0x00000010 736d2f64 65762f72 7573742f 656d6265 sm/dev/rust/embe < 0x00000020 64646564 2f776f72 6b737061 63652f72 dded/workspace/r < 0x00000030 69736376 2d727400 474e5520 41532032 iscv-rt.GNU AS 2 < 0x00000040 2e333200 .32. --- > 0x00000000 61736d2e 53002f72 69736376 2d727400 asm.S./riscv-rt. > 0x00000010 474e5520 41532032 2e333400 GNU AS 2.34. 386c383 < Version: 1 --- > Version: 3 ``` Versions are still different, but at least the build paths are independent from the build environment. Co-authored-by: Ilya Epifanov <[email protected]>
2 parents f0afce4 + 12fb268 commit 0739b22

14 files changed

+26
-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: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@
22
Remove-Item -Force bin/*.a
33

44
$crate = "riscv-rt"
5+
$extension_sets = @("i", "im", "ic", "imc")
6+
$pwd = Get-Location
57

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
8+
foreach ($ext in $extension_sets) {
9+
riscv64-unknown-elf-gcc -ggdb3 -fdebug-prefix-map=$pwd=/riscv-rt -c -mabi=ilp32 -march=rv32$ext asm.S -o bin/$crate.o
10+
riscv64-unknown-elf-ar crs bin/riscv32$ext-unknown-none-elf.a bin/$crate.o
911

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
12+
riscv64-unknown-elf-gcc -ggdb3 -fdebug-prefix-map=$pwd=/riscv-rt -c -mabi=lp64 -march=rv64$ext asm.S -o bin/$crate.o
13+
riscv64-unknown-elf-ar crs bin/riscv64$ext-unknown-none-elf.a bin/$crate.o
14+
}
1615

1716
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)