Skip to content

Commit 2020fdd

Browse files
authored
Merge pull request #1684 from JohnTitor/riscv64
Add `riscv64gc-unknown-linux-gnu` image
2 parents 9352a2f + b12c35f commit 2020fdd

File tree

4 files changed

+24
-14
lines changed

4 files changed

+24
-14
lines changed

ci/azure.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ jobs:
7272
TARGET: powerpc64le-unknown-linux-gnu
7373
s390x-unknown-linux-gnu:
7474
TARGET: s390x-unknown-linux-gnu
75+
riscv64gc-unknown-linux-gnu:
76+
TARGET: riscv64gc-unknown-linux-gnu
7577
#wasm32-wasi
7678
# TARGET: wasm32-wasi
7779
sparc64-unknown-linux-gnu:
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM ubuntu:20.04
2+
3+
RUN apt-get update && apt-get install -y --no-install-recommends \
4+
gcc libc6-dev qemu-user ca-certificates \
5+
gcc-riscv64-linux-gnu libc6-dev-riscv64-cross \
6+
qemu-system-riscv64 linux-headers-generic
7+
8+
ENV CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER=riscv64-linux-gnu-gcc \
9+
CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_RUNNER="qemu-riscv64 -L /usr/riscv64-linux-gnu" \
10+
CC_riscv64gc_unknown_linux_gnu=riscv64-linux-gnu-gcc \
11+
CFLAGS_riscv64gc_unknown_linux_gnu="-mabi=lp64d -fPIC" \
12+
PATH=$PATH:/rust/bin

libc-test/build.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2231,6 +2231,7 @@ fn test_linux(target: &str) {
22312231
let aarch64_musl = target.contains("aarch64") && musl;
22322232
let gnuabihf = target.contains("gnueabihf");
22332233
let x86_64_gnux32 = target.contains("gnux32") && x86_64;
2234+
let riscv64 = target.contains("riscv64");
22342235

22352236
let mut cfg = ctest_cfg();
22362237
cfg.define("_GNU_SOURCE", None);
@@ -2657,7 +2658,7 @@ fn test_linux(target: &str) {
26572658
(struct_ == "timex" && field.starts_with("__unused")) ||
26582659
// FIXME: It now takes mode_t since glibc 2.31 on some targets.
26592660
(struct_ == "ipc_perm" && field == "mode"
2660-
&& ((x86_64 || i686 || arm) && gnu || x86_64_gnux32)
2661+
&& ((x86_64 || i686 || arm || riscv64) && gnu || x86_64_gnux32)
26612662
)
26622663
});
26632664

src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,6 @@ s! {
1717
__size: [::c_ulong; 7],
1818
}
1919

20-
pub struct timespec {
21-
pub tv_sec: ::time_t,
22-
pub tv_nsec: ::c_long,
23-
}
24-
2520
pub struct stat {
2621
pub st_dev: ::dev_t,
2722
pub st_ino: ::ino_t,
@@ -41,7 +36,7 @@ s! {
4136
pub st_mtime_nsec: ::c_long,
4237
pub st_ctime: ::time_t,
4338
pub st_ctime_nsec: ::c_long,
44-
pub __unused: [::c_int; 2usize],
39+
__unused: [::c_int; 2usize],
4540
}
4641

4742
pub struct stat64 {
@@ -63,7 +58,7 @@ s! {
6358
pub st_mtime_nsec: ::c_long,
6459
pub st_ctime: ::time_t,
6560
pub st_ctime_nsec: ::c_long,
66-
pub __unused: [::c_int; 2],
61+
__unused: [::c_int; 2],
6762
}
6863

6964
pub struct statfs {
@@ -161,11 +156,11 @@ s! {
161156
pub cuid: ::uid_t,
162157
pub cgid: ::gid_t,
163158
pub mode: ::c_ushort,
164-
pub __pad1: ::c_ushort,
159+
__pad1: ::c_ushort,
165160
pub __seq: ::c_ushort,
166-
pub __pad2: ::c_ushort,
167-
pub __unused1: ::c_ulong,
168-
pub __unused2: ::c_ulong,
161+
__pad2: ::c_ushort,
162+
__unused1: ::c_ulong,
163+
__unused2: ::c_ulong,
169164
}
170165

171166
pub struct shmid_ds {
@@ -177,8 +172,8 @@ s! {
177172
pub shm_cpid: ::pid_t,
178173
pub shm_lpid: ::pid_t,
179174
pub shm_nattch: ::shmatt_t,
180-
pub __unused5: ::c_ulong,
181-
pub __unused6: ::c_ulong,
175+
__unused5: ::c_ulong,
176+
__unused6: ::c_ulong,
182177
}
183178

184179
pub struct flock {

0 commit comments

Comments
 (0)