[PATCH] linux-user/syscall.c: fix build without RLIMIT_RTTIME

Fabrice Fontaine posted 1 patch 1 year, 11 months ago
There is a newer version of this series
linux-user/syscall.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] linux-user/syscall.c: fix build without RLIMIT_RTTIME
Posted by Fabrice Fontaine 1 year, 11 months ago
RLIMIT_RTTIME is not provided by uclibc-ng or by musl prior to version
1.2.0 and
https://github.com/bminor/musl/commit/2507e7f5312e79620f6337935d0a6c9045ccba09
resulting in the following build failure since
https://git.qemu.org/?p=qemu.git;a=commit;h=244fd08323088db73590ff2317dfe86f810b51d7:

../linux-user/syscall.c: In function 'target_to_host_resource':
../linux-user/syscall.c:1057:16: error: 'RLIMIT_RTTIME' undeclared (first use in this function); did you mean 'RLIMIT_NOFILE'?
 1057 |         return RLIMIT_RTTIME;
      |                ^~~~~~~~~~~~~
      |                RLIMIT_NOFILE

Fixes:
 - http://autobuild.buildroot.org/results/22d3b584b704613d030e1ea9e6b709b713e4cc26

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 linux-user/syscall.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index dd0d92ba4e..6df78bedf5 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -1024,6 +1024,10 @@ static inline abi_ulong host_to_target_rlim(rlim_t rlim)
 }
 #endif
 
+#ifndef RLIMIT_RTTIME
+#define RLIMIT_RTTIME 15
+#endif
+
 static inline int target_to_host_resource(int code)
 {
     switch (code) {
-- 
2.35.1
Re: [PATCH] linux-user/syscall.c: fix build without RLIMIT_RTTIME
Posted by Laurent Vivier 1 year, 11 months ago
Le 14/05/2022 à 16:34, Fabrice Fontaine a écrit :
> RLIMIT_RTTIME is not provided by uclibc-ng or by musl prior to version
> 1.2.0 and
> https://github.com/bminor/musl/commit/2507e7f5312e79620f6337935d0a6c9045ccba09
> resulting in the following build failure since
> https://git.qemu.org/?p=qemu.git;a=commit;h=244fd08323088db73590ff2317dfe86f810b51d7:
> 
> ../linux-user/syscall.c: In function 'target_to_host_resource':
> ../linux-user/syscall.c:1057:16: error: 'RLIMIT_RTTIME' undeclared (first use in this function); did you mean 'RLIMIT_NOFILE'?
>   1057 |         return RLIMIT_RTTIME;
>        |                ^~~~~~~~~~~~~
>        |                RLIMIT_NOFILE
> 
> Fixes:
>   - http://autobuild.buildroot.org/results/22d3b584b704613d030e1ea9e6b709b713e4cc26
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
>   linux-user/syscall.c | 4 ++++
>   1 file changed, 4 insertions(+)

Generally we prefer to fix this kind of problem with:

+#ifdef RLIMIT_RTTIME
      case TARGET_RLIMIT_RTTIME:
          return RLIMIT_RTTIME;
+#endif

Thanks,
Laurent