csky-unknown-linux-gnuabiv2

层级:3

此目标支持使用 abi v2 和 glibcC-SKY CPU。

目标std主机备注
csky-unknown-linux-gnuabiv2C-SKY abiv2 Linux(小端序)
csky-unknown-linux-gnuabiv2hfC-SKY abiv2 Linux,硬浮点(小端序)

参考

其他链接

  • https://c-sky.github.io/
  • https://gitlab.com/c-sky/

目标维护者

要求

构建目标

获取 C 工具链

已在 x86_64 linux 主机上测试了为该目标编译 rust。其他主机类型尚未测试,但如果您可以为它们找到合适的交叉编译工具链,则可能有效。

如果您还没有合适的工具链,可以从 这里 下载,并将其解压缩到一个目录中。

配置 rust

可以通过为 rustc 构建启用该目标来构建该目标,方法是在 config.toml 中放置以下内容

[build]
target = ["x86_64-unknown-linux-gnu", "csky-unknown-linux-gnuabiv2", "csky-unknown-linux-gnuabiv2hf"]
stage = 2

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

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

构建

# in rust dir
./x.py build --stage 2

构建和运行 Rust 程序

要在 x86_64 系统上测试交叉编译的二进制文件,可以使用 qemu-cskyv2。这通过进行动态二进制翻译和动态系统调用翻译来避免拥有一个完整的模拟 ARM 系统。它允许您直接在 x86_64 内核上运行 CSKY 程序。非常方便!

要使用

  • 安装 qemu-cskyv2(如果您还没有 qemu,可以从 这里 下载,并将其解压缩到一个目录中。)
  • 通过以下方式链接您构建的工具链
    • rustup toolchain link stage2 ${RUST}/build/x86_64-unknown-linux-gnu/stage2
  • 创建一个测试程序
cargo new hello_world
cd hello_world
  • 构建并运行
CARGO_TARGET_CSKY_UNKNOWN_LINUX_GNUABIV2_RUNNER=${QEMU_PATH}/bin/qemu-cskyv2 -L ${TOOLCHAIN_PATH}/csky-linux-gnuabiv2/libc \
CARGO_TARGET_CSKY_UNKNOWN_LINUX_GNUABIV2_LINKER=${TOOLCHAIN_PATH}/bin/csky-linux-gnuabiv2-gcc \
RUSTFLAGS="-C target-features=+crt-static" \
cargo +stage2 run --target csky-unknown-linux-gnuabiv2

注意:动态链接的程序可能无法由 qemu-cskyv2 运行,但可以在目标上运行。