On Wed, Jun 7, 2023, at 11:46, Zhangjin Wu wrote: >> On Wed, Jun 7, 2023, at 07:19, Zhangjin Wu wrote: > > Ok, agree, as the 64bit version of lseek may be enough for nolibc, if a target > application really require, they can add the alias themselves. > >> Are there any examples of functions where we actually want mulitple >> versions? >> > > For example, the following ones are related to the syscalls being added, > all of them have similar library routines in current sys.h: > > * waitid, https://linux.die.net/man/2/waitid > * ppoll, https://linux.die.net/man/2/ppoll > * pselect, https://linux.die.net/man/2/pselect6 > * clock_gettime, https://linux.die.net/man/2/clock_gettime > > The similar routines are put in right side: > > * waitid --> waitpid, wait, wait4 > * ppoll --> poll > * pselect --> select > * clock_gettime --> gettimeofday Ok, I think these are all useful to have in both versions. All four of these examples are old enough that I think it's sufficient just expose them to userspace as the bare system calls, and have the older library calls be implemented using them without a fallback to the native syscalls of the same name on architectures that have both, newer architectures would only have the latest version anyway. > For the clock_gettime, it may also let us think about if we need to add > its friends (clock_getres, clock_settime) together. Yes, I think that makes sense. We also need clock_settime() to implement settimeofday() on rv32. Ideally, I'd love to extend the tooling around system calls in the kernel so we can automatically generate the low-level wrapper functions from syscall.tbl, but this needs a lot of other work that you should not need to depend on for what you are doing right now. Arnd