From 73f38d909e6a8573b33f7c0e0827a5b14e416533 Mon Sep 17 00:00:00 2001 From: Stefan O'Rear Date: Thu, 3 Sep 2020 03:31:05 -0400 Subject: [PATCH 03/16] time64: Only getrlimit/setrlimit if they exist riscv32 and future architectures only provide prlimit64. --- src/misc/getrlimit.c | 6 +++++- src/misc/setrlimit.c | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/misc/getrlimit.c b/src/misc/getrlimit.c index 2ab2f0f4..bf676307 100644 --- a/src/misc/getrlimit.c +++ b/src/misc/getrlimit.c @@ -6,12 +6,13 @@ int getrlimit(int resource, struct rlimit *rlim) { - unsigned long k_rlim[2]; int ret = syscall(SYS_prlimit64, 0, resource, 0, rlim); if (!ret) { FIX(rlim->rlim_cur); FIX(rlim->rlim_max); } +#ifdef SYS_getrlimit + unsigned long k_rlim[2]; if (!ret || errno != ENOSYS) return ret; if (syscall(SYS_getrlimit, resource, k_rlim) < 0) @@ -21,6 +22,9 @@ int getrlimit(int resource, struct rlimit *rlim) FIX(rlim->rlim_cur); FIX(rlim->rlim_max); return 0; +#else + return ret; +#endif } weak_alias(getrlimit, getrlimit64); diff --git a/src/misc/setrlimit.c b/src/misc/setrlimit.c index 8340aee0..4cf2c607 100644 --- a/src/misc/setrlimit.c +++ b/src/misc/setrlimit.c @@ -16,7 +16,9 @@ static void do_setrlimit(void *p) { struct ctx *c = p; if (c->err>0) return; +#ifdef SYS_setrlimit c->err = -__syscall(SYS_setrlimit, c->res, c->lim); +#endif } int setrlimit(int resource, const struct rlimit *rlim) -- 2.29.2