From 41149ea8c7a6f28a1c60478fe7f6b9552aa39e3b Mon Sep 17 00:00:00 2001 From: Stefan O'Rear Date: Thu, 3 Sep 2020 03:31:05 -0400 Subject: only use getrlimit/setrlimit syscalls if they exist riscv32 and future architectures only provide prlimit64. --- src/misc/setrlimit.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/misc/setrlimit.c') diff --git a/src/misc/setrlimit.c b/src/misc/setrlimit.c index 8340aee0..5b713cf3 100644 --- a/src/misc/setrlimit.c +++ b/src/misc/setrlimit.c @@ -12,12 +12,14 @@ struct ctx { int err; }; +#ifdef SYS_setrlimit static void do_setrlimit(void *p) { struct ctx *c = p; if (c->err>0) return; c->err = -__syscall(SYS_setrlimit, c->res, c->lim); } +#endif int setrlimit(int resource, const struct rlimit *rlim) { @@ -29,6 +31,7 @@ int setrlimit(int resource, const struct rlimit *rlim) rlim = &tmp; } int ret = __syscall(SYS_prlimit64, 0, resource, rlim, 0); +#ifdef SYS_setrlimit if (ret != -ENOSYS) return __syscall_ret(ret); struct ctx c = { @@ -42,6 +45,9 @@ int setrlimit(int resource, const struct rlimit *rlim) return -1; } return 0; +#else + return __syscall_ret(ret); +#endif } weak_alias(setrlimit, setrlimit64); -- cgit v1.2.1