This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [RFC v4 23/24] WIP: syscall.list: Call 64-bit versions of syscalls
* Alistair Francis:
> On Wed, Aug 14, 2019 at 11:57 AM Florian Weimer <fweimer@redhat.com> wrote:
>>
>> * Alistair Francis:
>>
>> > On Fri, Aug 9, 2019 at 6:04 PM Alistair Francis
>> > <alistair.francis@wdc.com> wrote:
>> >>
>> >> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
>> >> ---
>> >> sysdeps/unix/sysv/linux/syscalls.list | 8 ++++----
>> >> 1 file changed, 4 insertions(+), 4 deletions(-)
>> >>
>> >> diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
>> >> index e374f97b5f8..4844d1a9a3b 100644
>> >> --- a/sysdeps/unix/sysv/linux/syscalls.list
>> >> +++ b/sysdeps/unix/sysv/linux/syscalls.list
>> >> @@ -5,7 +5,7 @@ alarm - alarm i:i alarm
>> >> bdflush EXTRA bdflush i:ii __compat_bdflush bdflush@GLIBC_2.0:GLIBC_2.23
>> >> capget EXTRA capget i:pp capget
>> >> capset EXTRA capset i:pp capset
>> >> -clock_adjtime EXTRA clock_adjtime i:ip clock_adjtime
>> >> +clock_adjtime EXTRA clock_adjtime64 i:ip clock_adjtime
>> >> create_module EXTRA create_module 3 __compat_create_module create_module@GLIBC_2.0:GLIBC_2.23
>> >> delete_module EXTRA delete_module 3 delete_module
>> >> epoll_create EXTRA epoll_create i:i epoll_create
>> >> @@ -52,7 +52,7 @@ sched_getp - sched_getparam i:ip __sched_getparam sched_getparam
>> >> sched_gets - sched_getscheduler i:i __sched_getscheduler sched_getscheduler
>> >> sched_primax - sched_get_priority_max i:i __sched_get_priority_max sched_get_priority_max
>> >> sched_primin - sched_get_priority_min i:i __sched_get_priority_min sched_get_priority_min
>> >> -sched_rr_gi - sched_rr_get_interval i:ip __sched_rr_get_interval sched_rr_get_interval
>> >> +sched_rr_gi - sched_rr_get_interval_time64 i:ip __sched_rr_get_interval sched_rr_get_interval
>> >> sched_setp - sched_setparam i:ip __sched_setparam sched_setparam
>> >> sched_sets - sched_setscheduler i:iip __sched_setscheduler sched_setscheduler
>> >> sched_yield - sched_yield i: __sched_yield sched_yield
>> >> @@ -96,8 +96,8 @@ fremovexattr - fremovexattr i:is fremovexattr
>> >> mq_setattr - mq_getsetattr i:ipp mq_setattr
>> >>
>> >> timerfd_create EXTRA timerfd_create i:ii timerfd_create
>> >> -timerfd_settime EXTRA timerfd_settime i:iipp timerfd_settime
>> >> -timerfd_gettime EXTRA timerfd_gettime i:ip timerfd_gettime
>> >> +timerfd_settime EXTRA timerfd_settime64 i:iipp timerfd_settime
>> >> +timerfd_gettime EXTRA timerfd_gettime64 i:ip timerfd_gettime
>> >
>> > Does anyone have ideas/opinions on how to handle this correctly?
>>
>> As in many of the other cases, you can add this to <sysdep.h>:
>>
>> #define __NR_timerfd_settime __NR_timerfd_settime64
>> #define __NR_timerfd_gettime __NR_timerfd_gettime64
>>
>> Once a second such port arrives, we can factor out these common system
>> call renamings into a generic-64 subdirectory.
>
> Great! That's a straightforward fix.
Note that getting this to work on legacy architectures (which have a
32-bit time_t) today obviously requires vastly different steps.
I do not know if completing this work is a requirement for acceptance of
the RV32 port (I don't think it should be, but others might disagree).
Thanks,
Florian