diff options
author | Yuki Okushi <huyuumi.dev@gmail.com> | 2020-05-03 14:41:25 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-03 14:41:25 +0900 |
commit | 2020fddd382fa0908bf6d83eb903e5731f774352 (patch) | |
tree | 31797100861b16d7beefb7a1f520257fede9b217 | |
parent | 9352a2fac6af2d8b0404c93ddc07f1f33ee4be43 (diff) | |
parent | b12c35f0cd70855ee0de93d20265110f9acd86cc (diff) | |
download | rust-libc-2020fddd382fa0908bf6d83eb903e5731f774352.tar.gz |
Merge pull request #1684 from JohnTitor/riscv64
Add `riscv64gc-unknown-linux-gnu` image
-rw-r--r-- | ci/azure.yml | 2 | ||||
-rw-r--r-- | ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile | 12 | ||||
-rw-r--r-- | libc-test/build.rs | 3 | ||||
-rw-r--r-- | src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs | 21 |
4 files changed, 24 insertions, 14 deletions
diff --git a/ci/azure.yml b/ci/azure.yml index 52d1e47946..6a2f685320 100644 --- a/ci/azure.yml +++ b/ci/azure.yml @@ -72,6 +72,8 @@ jobs: TARGET: powerpc64le-unknown-linux-gnu s390x-unknown-linux-gnu: TARGET: s390x-unknown-linux-gnu + riscv64gc-unknown-linux-gnu: + TARGET: riscv64gc-unknown-linux-gnu #wasm32-wasi # TARGET: wasm32-wasi sparc64-unknown-linux-gnu: diff --git a/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile b/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile new file mode 100644 index 0000000000..2ab35b317f --- /dev/null +++ b/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile @@ -0,0 +1,12 @@ +FROM ubuntu:20.04 + +RUN apt-get update && apt-get install -y --no-install-recommends \ + gcc libc6-dev qemu-user ca-certificates \ + gcc-riscv64-linux-gnu libc6-dev-riscv64-cross \ + qemu-system-riscv64 linux-headers-generic + +ENV CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER=riscv64-linux-gnu-gcc \ + CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_RUNNER="qemu-riscv64 -L /usr/riscv64-linux-gnu" \ + CC_riscv64gc_unknown_linux_gnu=riscv64-linux-gnu-gcc \ + CFLAGS_riscv64gc_unknown_linux_gnu="-mabi=lp64d -fPIC" \ + PATH=$PATH:/rust/bin diff --git a/libc-test/build.rs b/libc-test/build.rs index dedd4b8301..f4a2f156b2 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2231,6 +2231,7 @@ fn test_linux(target: &str) { let aarch64_musl = target.contains("aarch64") && musl; let gnuabihf = target.contains("gnueabihf"); let x86_64_gnux32 = target.contains("gnux32") && x86_64; + let riscv64 = target.contains("riscv64"); let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); @@ -2657,7 +2658,7 @@ fn test_linux(target: &str) { (struct_ == "timex" && field.starts_with("__unused")) || // FIXME: It now takes mode_t since glibc 2.31 on some targets. (struct_ == "ipc_perm" && field == "mode" - && ((x86_64 || i686 || arm) && gnu || x86_64_gnux32) + && ((x86_64 || i686 || arm || riscv64) && gnu || x86_64_gnux32) ) }); diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index 3fe18c026a..9fa0f0a963 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -17,11 +17,6 @@ s! { __size: [::c_ulong; 7], } - pub struct timespec { - pub tv_sec: ::time_t, - pub tv_nsec: ::c_long, - } - pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, @@ -41,7 +36,7 @@ s! { pub st_mtime_nsec: ::c_long, pub st_ctime: ::time_t, pub st_ctime_nsec: ::c_long, - pub __unused: [::c_int; 2usize], + __unused: [::c_int; 2usize], } pub struct stat64 { @@ -63,7 +58,7 @@ s! { pub st_mtime_nsec: ::c_long, pub st_ctime: ::time_t, pub st_ctime_nsec: ::c_long, - pub __unused: [::c_int; 2], + __unused: [::c_int; 2], } pub struct statfs { @@ -161,11 +156,11 @@ s! { pub cuid: ::uid_t, pub cgid: ::gid_t, pub mode: ::c_ushort, - pub __pad1: ::c_ushort, + __pad1: ::c_ushort, pub __seq: ::c_ushort, - pub __pad2: ::c_ushort, - pub __unused1: ::c_ulong, - pub __unused2: ::c_ulong, + __pad2: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong, } pub struct shmid_ds { @@ -177,8 +172,8 @@ s! { pub shm_cpid: ::pid_t, pub shm_lpid: ::pid_t, pub shm_nattch: ::shmatt_t, - pub __unused5: ::c_ulong, - pub __unused6: ::c_ulong, + __unused5: ::c_ulong, + __unused6: ::c_ulong, } pub struct flock { |