On 2/4/2022 5:21 PM, Waldemar Brodkorb wrote:

Did you forget the preprocessor directive -D_GNU_SOURCE?

Which kernel version predates the prlimit64 syscall you are using?

best regards
  Waldemar

The older kernel is 2.6.22.19.  Looks like prlimit came around kernel 2.6.36.
https://man7.org/linux/man-pages/man1/prlimit.1.html
I use buildroot to compile which I think it passing all the right things. The older kernel gives me this error while compiling uclibc-ng.  prlimit64 syscall just wasn't around before 2.6.36.

  CC libc/sysdeps/linux/common/prlimit.os
In file included from ./include/sys/syscall.h:33,
                 from ./libc/sysdeps/linux/common/sysdep.h:19,
                 from ./libc/sysdeps/linux/mips/sysdep.h:24,
                 from libc/sysdeps/linux/common/prlimit.c:19:
libc/sysdeps/linux/common/prlimit.c: In function 'prlimit':
./libc/sysdeps/linux/mips/sysdep.h:33:33: error: '__NR_prlimit64' undeclared (first use in this function)
   33 | # define SYS_ify(syscall_name)  __NR_##syscall_name
      |                                 ^~~~~
./include/bits/syscalls.h:167:11: note: in definition of macro 'internal_syscall4'   167 |         : input, "r" (__a0), "r" (__a1), "r" (__a2)                     \
      |           ^~~~~
./include/bits/syscalls.h:50:36: note: in expansion of macro 'SYS_ify'
   50 |                               "i" (SYS_ify (name)), err, args)
      |                                    ^~~~~~~
./include/bits/syscalls.h:24:24: note: in expansion of macro 'INTERNAL_SYSCALL'    24 |      long result_var = INTERNAL_SYSCALL(name, err, nr, args);           \
      |                        ^~~~~~~~~~~~~~~~
libc/sysdeps/linux/common/prlimit.c:25:10: note: in expansion of macro 'INLINE_SYSCALL'
   25 |   return INLINE_SYSCALL (prlimit64, 4, pid, resource, new_rlimit,
      |          ^~~~~~~~~~~~~~
./libc/sysdeps/linux/mips/sysdep.h:33:33: note: each undeclared identifier is reported only once for each function it appears in
   33 | # define SYS_ify(syscall_name)  __NR_##syscall_name
      |                                 ^~~~~
./include/bits/syscalls.h:167:11: note: in definition of macro 'internal_syscall4'   167 |         : input, "r" (__a0), "r" (__a1), "r" (__a2)                     \
      |           ^~~~~
./include/bits/syscalls.h:50:36: note: in expansion of macro 'SYS_ify'
   50 |                               "i" (SYS_ify (name)), err, args)
      |                                    ^~~~~~~
./include/bits/syscalls.h:24:24: note: in expansion of macro 'INTERNAL_SYSCALL'    24 |      long result_var = INTERNAL_SYSCALL(name, err, nr, args);           \
      |                        ^~~~~~~~~~~~~~~~
libc/sysdeps/linux/common/prlimit.c:25:10: note: in expansion of macro 'INLINE_SYSCALL'
   25 |   return INLINE_SYSCALL (prlimit64, 4, pid, resource, new_rlimit,
      |          ^~~~~~~~~~~~~~
make[2]: *** [Makerules:369: libc/sysdeps/linux/common/prlimit.os] Error 1


The error with my newer (older) kernel, 2.6.36.4, was a result of my only reverting the 2nd prlimit commit and not the 1st, so that was my error.

Lance


_______________________________________________
devel mailing list -- devel@uclibc-ng.org
To unsubscribe send an email to devel-le...@uclibc-ng.org

Reply via email to