Skip to content

Commit dc00d03

Browse files
committed
add target csky-unknown-linux-gnuabiv2hf
1 parent 724ba7f commit dc00d03

File tree

7 files changed

+38
-4
lines changed

7 files changed

+38
-4
lines changed

compiler/rustc_target/src/spec/csky_unknown_linux_gnuabiv2.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub fn target() -> Target {
1212
options: TargetOptions {
1313
abi: "abiv2".into(),
1414
features: "+2e3,+3e7,+7e10,+cache,+dsp1e2,+dspe60,+e1,+e2,+edsp,+elrw,+hard-tp,+high-registers,+hwdiv,+mp,+mp1e2,+nvic,+trust".into(),
15-
late_link_args_static: TargetOptions::link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-l:libatomic.a"]),
15+
late_link_args: TargetOptions::link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-l:libatomic.a"]),
1616
max_atomic_width: Some(32),
1717
..super::linux_gnu_base::opts()
1818
},
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
use crate::spec::{Cc, LinkerFlavor, Lld, Target, TargetOptions};
2+
3+
// This target is for glibc Linux on Csky
4+
5+
pub fn target() -> Target {
6+
Target {
7+
//https://github.com/llvm/llvm-project/blob/8b76aea8d8b1b71f6220bc2845abc749f18a19b7/clang/lib/Basic/Targets/CSKY.h
8+
llvm_target: "csky-unknown-linux-gnuabiv2".into(),
9+
pointer_width: 32,
10+
data_layout: "e-m:e-S32-p:32:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:32:32-v128:32:32-a:0:32-Fi32-n32".into(),
11+
arch: "csky".into(),
12+
options: TargetOptions {
13+
abi: "abiv2hf".into(),
14+
cpu: "ck860fv".into(),
15+
features: "+hard-float,+hard-float-abi,+2e3,+3e7,+7e10,+cache,+dsp1e2,+dspe60,+e1,+e2,+edsp,+elrw,+hard-tp,+high-registers,+hwdiv,+mp,+mp1e2,+nvic,+trust".into(),
16+
late_link_args: TargetOptions::link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-l:libatomic.a", "-mhard-float"]),
17+
max_atomic_width: Some(32),
18+
..super::linux_gnu_base::opts()
19+
},
20+
}
21+
}

compiler/rustc_target/src/spec/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -1344,6 +1344,7 @@ supported_targets! {
13441344
("loongarch64-unknown-linux-gnu", loongarch64_unknown_linux_gnu),
13451345
("m68k-unknown-linux-gnu", m68k_unknown_linux_gnu),
13461346
("csky-unknown-linux-gnuabiv2", csky_unknown_linux_gnuabiv2),
1347+
("csky-unknown-linux-gnuabiv2hf", csky_unknown_linux_gnuabiv2hf),
13471348
("mips-unknown-linux-gnu", mips_unknown_linux_gnu),
13481349
("mips64-unknown-linux-gnuabi64", mips64_unknown_linux_gnuabi64),
13491350
("mips64el-unknown-linux-gnuabi64", mips64el_unknown_linux_gnuabi64),

src/doc/rustc/src/SUMMARY.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
- [\*-esp-espidf](platform-support/esp-idf.md)
3434
- [\*-unknown-fuchsia](platform-support/fuchsia.md)
3535
- [\*-kmc-solid_\*](platform-support/kmc-solid.md)
36-
- [csky-unknown-linux-gnuabiv2](platform-support/csky-unknown-linux-gnuabiv2.md)
36+
- [csky-unknown-linux-gnuabiv2\*](platform-support/csky-unknown-linux-gnuabiv2.md)
3737
- [loongarch\*-unknown-linux-\*](platform-support/loongarch-linux.md)
3838
- [loongarch\*-unknown-none\*](platform-support/loongarch-none.md)
3939
- [m68k-unknown-linux-gnu](platform-support/m68k-unknown-linux-gnu.md)

src/doc/rustc/src/platform-support.md

+1
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ target | std | host | notes
260260
`bpfeb-unknown-none` | * | | BPF (big endian)
261261
`bpfel-unknown-none` | * | | BPF (little endian)
262262
`csky-unknown-linux-gnuabiv2` | ✓ | | C-SKY abiv2 Linux(little endian)
263+
`csky-unknown-linux-gnuabiv2hf` | ✓ | | C-SKY abiv2 Linux, hardfloat (little endian)
263264
`hexagon-unknown-linux-musl` | ? | |
264265
`i386-apple-ios` | ✓ | | 32-bit x86 iOS [^x86_32-floats-return-ABI]
265266
[`i586-pc-nto-qnx700`](platform-support/nto-qnx.md) | * | | 32-bit x86 QNX Neutrino 7.0 RTOS [^x86_32-floats-return-ABI]

src/doc/rustc/src/platform-support/csky-unknown-linux-gnuabiv2.md

+12-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,14 @@
44

55
This target supports [C-SKY](https://github.com/c-sky) CPUs with `abi` v2 and `glibc`.
66

7+
target | std | host | notes
8+
-------|:---:|:----:|-------
9+
`csky-unknown-linux-gnuabiv2` | ✓ | | C-SKY abiv2 Linux(little endian)
10+
`csky-unknown-linux-gnuabiv2hf` | ✓ | | C-SKY abiv2 Linux, hardfloat (little endian)
11+
12+
Refrence:
713
https://c-sky.github.io/
14+
815
https://gitlab.com/c-sky/
916

1017
## Target maintainers
@@ -13,7 +20,6 @@ https://gitlab.com/c-sky/
1320

1421
## Requirements
1522

16-
1723
## Building the target
1824

1925
### Get a C toolchain
@@ -28,13 +34,17 @@ The target can be built by enabling it for a `rustc` build, by placing the follo
2834

2935
```toml
3036
[build]
31-
target = ["x86_64-unknown-linux-gnu", "csky-unknown-linux-gnuabiv2"]
37+
target = ["x86_64-unknown-linux-gnu", "csky-unknown-linux-gnuabiv2", "csky-unknown-linux-gnuabiv2hf"]
3238
stage = 2
3339

3440
[target.csky-unknown-linux-gnuabiv2]
3541
# ADJUST THIS PATH TO POINT AT YOUR TOOLCHAIN
3642
cc = "${TOOLCHAIN_PATH}/bin/csky-linux-gnuabiv2-gcc"
3743

44+
[target.csky-unknown-linux-gnuabiv2hf]
45+
# ADJUST THIS PATH TO POINT AT YOUR TOOLCHAIN
46+
cc = "${TOOLCHAIN_PATH}/bin/csky-linux-gnuabiv2-gcc"
47+
3848
### Build
3949

4050
```sh

src/tools/build-manifest/src/main.rs

+1
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ static TARGETS: &[&str] = &[
102102
"loongarch64-unknown-none-softfloat",
103103
"m68k-unknown-linux-gnu",
104104
"csky-unknown-linux-gnuabiv2",
105+
"csky-unknown-linux-gnuabiv2hf",
105106
"mips-unknown-linux-gnu",
106107
"mips-unknown-linux-musl",
107108
"mips64-unknown-linux-gnuabi64",

0 commit comments

Comments
 (0)