Skip to content

Commit 0b1131d

Browse files
committed
Only checking for necessary extensions when linking
1 parent 255ef60 commit 0b1131d

9 files changed

+25
-12
lines changed

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,8 @@ license = "ISC"
1212
bare-metal = ">=0.2.0,<0.2.5"
1313
bit_field = "0.9.0"
1414

15+
[build-dependencies]
16+
riscv-target = "0.1"
17+
1518
[features]
1619
inline-asm = []

assemble.ps1

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@ $crate = "riscv"
88
riscv64-unknown-elf-gcc -c -mabi=ilp32 -march=rv32i asm.S -o bin/$crate.o
99
riscv64-unknown-elf-ar crs bin/riscv32i-unknown-none-elf.a bin/$crate.o
1010

11-
riscv64-unknown-elf-gcc -c -mabi=ilp32 -march=rv32imc asm.S -o bin/$crate.o
12-
riscv64-unknown-elf-ar crs bin/riscv32imac-unknown-none-elf.a bin/$crate.o
13-
riscv64-unknown-elf-ar crs bin/riscv32imc-unknown-none-elf.a bin/$crate.o
11+
riscv64-unknown-elf-gcc -c -mabi=ilp32 -march=rv32ic asm.S -o bin/$crate.o
12+
riscv64-unknown-elf-ar crs bin/riscv32ic-unknown-none-elf.a bin/$crate.o
1413

15-
riscv64-unknown-elf-gcc -c -mabi=lp64 -march=rv64imac asm.S -o bin/$crate.o
16-
riscv64-unknown-elf-ar crs bin/riscv64imac-unknown-none-elf.a bin/$crate.o
17-
riscv64-unknown-elf-ar crs bin/riscv64gc-unknown-none-elf.a bin/$crate.o
14+
riscv64-unknown-elf-gcc -c -mabi=lp64 -march=rv64i asm.S -o bin/$crate.o
15+
riscv64-unknown-elf-ar crs bin/riscv64i-unknown-none-elf.a bin/$crate.o
16+
17+
riscv64-unknown-elf-gcc -c -mabi=lp64 -march=rv64ic asm.S -o bin/$crate.o
18+
riscv64-unknown-elf-ar crs bin/riscv64ic-unknown-none-elf.a bin/$crate.o
1819

1920
Remove-Item bin/$crate.o

assemble.sh

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@ rm -f bin/*.a
1010
riscv64-unknown-elf-gcc -c -mabi=ilp32 -march=rv32i asm.S -o bin/$crate.o
1111
ar crs bin/riscv32i-unknown-none-elf.a bin/$crate.o
1212

13-
riscv64-unknown-elf-gcc -c -mabi=ilp32 -march=rv32imc asm.S -o bin/$crate.o
14-
ar crs bin/riscv32imac-unknown-none-elf.a bin/$crate.o
15-
ar crs bin/riscv32imc-unknown-none-elf.a bin/$crate.o
13+
riscv64-unknown-elf-gcc -c -mabi=ilp32 -march=rv32ic asm.S -o bin/$crate.o
14+
ar crs bin/riscv32ic-unknown-none-elf.a bin/$crate.o
1615

17-
riscv64-unknown-elf-gcc -c -mabi=lp64 -march=rv64imac asm.S -o bin/$crate.o
18-
ar crs bin/riscv64imac-unknown-none-elf.a bin/$crate.o
19-
ar crs bin/riscv64gc-unknown-none-elf.a bin/$crate.o
16+
riscv64-unknown-elf-gcc -c -mabi=lp64 -march=rv64i asm.S -o bin/$crate.o
17+
ar crs bin/riscv64i-unknown-none-elf.a bin/$crate.o
18+
19+
riscv64-unknown-elf-gcc -c -mabi=lp64 -march=rv64ic asm.S -o bin/$crate.o
20+
ar crs bin/riscv64ic-unknown-none-elf.a bin/$crate.o
2021

2122
rm bin/$crate.o

bin/riscv32i-unknown-none-elf.a

0 Bytes
Binary file not shown.
Binary file not shown.

bin/riscv32imc-unknown-none-elf.a

-69.7 KB
Binary file not shown.
Binary file not shown.
Binary file not shown.

build.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
extern crate riscv_target;
2+
3+
use riscv_target::Target;
14
use std::path::PathBuf;
25
use std::{env, fs};
36

@@ -7,6 +10,11 @@ fn main() {
710
let name = env::var("CARGO_PKG_NAME").unwrap();
811

912
if target.starts_with("riscv") && env::var_os("CARGO_FEATURE_INLINE_ASM").is_none() {
13+
let mut target = Target::from_target_str(&target);
14+
target.retain_extensions("ic");
15+
16+
let target = target.to_string();
17+
1018
fs::copy(
1119
format!("bin/{}.a", target),
1220
out_dir.join(format!("lib{}.a", name)),

0 commit comments

Comments
 (0)