|
Message-ID: <20170618120006.GH27071@port70.net> Date: Sun, 18 Jun 2017 14:00:07 +0200 From: Szabolcs Nagy <nsz@...t70.net> To: musl@...ts.openwall.com Subject: Re: syscall table discrepancies * Szabolcs Nagy <nsz@...t70.net> [2017-02-18 03:41:29 +0100]: > * Rich Felker <dalias@...c.org> [2017-02-16 21:00:44 -0500]: > > On Thu, Feb 16, 2017 at 08:51:47PM -0500, Rich Felker wrote: > > > arm > > > +o__NR_arm_fadvise64_64 270 > > > +o__NR_arm_sync_file_range 341 > > > -o__NR_fadvise64_64 270 > > > > Also a naming matter and one I'd probably rather not change, though > > I'm not sure. It looks like powerpc has the same nonstandard arg order > > for fadvise but doesn't use a different name, so it's not really > > helpful for arm to use a different name here. > > > > Not sure about sync_file_range; it might suggest we have a bug. > > it's just an alias, i added the arm names, kept the normal name > > > > i386 > > > -o__NR_madvise1 219 > > > > I think this is cruft that was removed...? > > linux removed it, i removed it too > > > > or1k > > > -o__NR__llseek 62 > > > +o__NR_llseek 62 > > > > This looks like a bug that probably has lseek broken on or1k with > > files larger than 2GB... I think the #else case in lseek.c should > > it's a naming issue, i added the new name, but kept the old one > for now. > > __NR_lseek would be a bug > __NR__llseek is the old name of the syscall. > __NR_llseek is how new 32bit arches call it. > > > probably be tweaked to produce a compile-time error if syscall_arg_t > > is 32-bit. That would also catch musl's equivalent of this n32 bug > > which remains unfixed: > > > > https://sourceware.org/ml/libc-alpha/2017-01/msg00074.html > > > > > powerpc > > > -o__NR_getresgid32 170 > > > -o__NR_getresuid32 165 > > > -o__NR_setresgid32 169 > > > -o__NR_setresuid32 164 > > > > These can probably be safely removed; I suspect they were cruft from > > before the general renaming in src/internal/syscall.h was in place. > > > > > -o__NR_timerfd 306 > > > > Also a leftover/legacy name, I presume? > > i dropped these. > >From 8057a8d5f5e6e53a81b9e485ed36b746f43efd69 Mon Sep 17 00:00:00 2001 > From: Szabolcs Nagy <nsz@...t70.net> > Date: Sat, 18 Feb 2017 00:50:09 +0000 > Subject: [PATCH] make syscall.h consistent with linux > > most of the found naming differences don't matter to musl, because > internally it unifies the syscall names that vary across targets, > but for external code the names should match the kernel uapi. > > aarch64: > __NR_fstatat is called __NR_newfstatat in linux. > __NR_or1k_atomic got mistakenly copied from or1k. > arm: > __NR_arm_sync_file_range is an alias for __NR_sync_file_range2 > __NR_fadvise64_64 is called __NR_arm_fadvise64_64 in linux, > the old non-arm name is kept too, it should not cause issues. > (powerpc has similar nonstandard fadvise and it uses the > normal name.) > i386: > __NR_madvise1 was removed from linux in commit > 303395ac3bf3e2cb488435537d416bc840438fcb 2011-11-11 > microblaze: > __NR_fadvise, __NR_fstatat, __NR_pread, __NR_pwrite > had different name in linux. > mips: > __NR_fadvise, __NR_fstatat, __NR_pread, __NR_pwrite, __NR_select > had different name in linux. > mipsn32: > __NR_fstatat is called __NR_newfstatat in linux. > or1k: > __NR__llseek is called __NR_llseek in linux. > the old name is kept too because that's the name musl uses > internally. > powerpc: > __NR_{get,set}res{gid,uid}32 was never present in powerpc linux. > __NR_timerfd was briefly defined in linux but then got renamed. > --- ping. > arch/aarch64/bits/syscall.h.in | 3 +-- > arch/arm/bits/syscall.h.in | 2 ++ > arch/i386/bits/syscall.h.in | 1 - > arch/microblaze/bits/syscall.h.in | 8 ++++---- > arch/mips/bits/syscall.h.in | 10 +++++----- > arch/mipsn32/bits/syscall.h.in | 2 +- > arch/or1k/bits/syscall.h.in | 1 + > arch/powerpc/bits/syscall.h.in | 5 ----- > 8 files changed, 14 insertions(+), 18 deletions(-) > > diff --git a/arch/aarch64/bits/syscall.h.in b/arch/aarch64/bits/syscall.h.in > index fd388eec..8b56afff 100644 > --- a/arch/aarch64/bits/syscall.h.in > +++ b/arch/aarch64/bits/syscall.h.in > @@ -77,7 +77,7 @@ > #define __NR_splice 76 > #define __NR_tee 77 > #define __NR_readlinkat 78 > -#define __NR_fstatat 79 > +#define __NR_newfstatat 79 > #define __NR_fstat 80 > #define __NR_sync 81 > #define __NR_fsync 82 > @@ -242,7 +242,6 @@ > #define __NR_perf_event_open 241 > #define __NR_accept4 242 > #define __NR_recvmmsg 243 > -#define __NR_or1k_atomic 244 > #define __NR_wait4 260 > #define __NR_prlimit64 261 > #define __NR_fanotify_init 262 > diff --git a/arch/arm/bits/syscall.h.in b/arch/arm/bits/syscall.h.in > index 9b129b23..0096fe7c 100644 > --- a/arch/arm/bits/syscall.h.in > +++ b/arch/arm/bits/syscall.h.in > @@ -224,6 +224,7 @@ > #define __NR_tgkill 268 > #define __NR_utimes 269 > #define __NR_fadvise64_64 270 > +#define __NR_arm_fadvise64_64 270 > #define __NR_pciconfig_iobase 271 > #define __NR_pciconfig_read 272 > #define __NR_pciconfig_write 273 > @@ -295,6 +296,7 @@ > #define __NR_get_robust_list 339 > #define __NR_splice 340 > #define __NR_sync_file_range2 341 > +#define __NR_arm_sync_file_range 341 > #define __NR_tee 342 > #define __NR_vmsplice 343 > #define __NR_move_pages 344 > diff --git a/arch/i386/bits/syscall.h.in b/arch/i386/bits/syscall.h.in > index 3a1d9270..1217f89a 100644 > --- a/arch/i386/bits/syscall.h.in > +++ b/arch/i386/bits/syscall.h.in > @@ -218,7 +218,6 @@ > #define __NR_pivot_root 217 > #define __NR_mincore 218 > #define __NR_madvise 219 > -#define __NR_madvise1 219 > #define __NR_getdents64 220 > #define __NR_fcntl64 221 > /* 223 is unused */ > diff --git a/arch/microblaze/bits/syscall.h.in b/arch/microblaze/bits/syscall.h.in > index 109fcdeb..e5f928e3 100644 > --- a/arch/microblaze/bits/syscall.h.in > +++ b/arch/microblaze/bits/syscall.h.in > @@ -178,8 +178,8 @@ > #define __NR_rt_sigtimedwait 177 > #define __NR_rt_sigqueueinfo 178 > #define __NR_rt_sigsuspend 179 > -#define __NR_pread 180 > -#define __NR_pwrite 181 > +#define __NR_pread64 180 > +#define __NR_pwrite64 181 > #define __NR_chown 182 > #define __NR_getcwd 183 > #define __NR_capget 184 > @@ -246,7 +246,7 @@ > #define __NR_io_getevents 247 > #define __NR_io_submit 248 > #define __NR_io_cancel 249 > -#define __NR_fadvise 250 > +#define __NR_fadvise64 250 > #define __NR_exit_group 252 > #define __NR_lookup_dcookie 253 > #define __NR_epoll_create 254 > @@ -294,7 +294,7 @@ > #define __NR_mknodat 297 > #define __NR_fchownat 298 > #define __NR_futimesat 299 > -#define __NR_fstatat 300 > +#define __NR_fstatat64 300 > #define __NR_unlinkat 301 > #define __NR_renameat 302 > #define __NR_linkat 303 > diff --git a/arch/mips/bits/syscall.h.in b/arch/mips/bits/syscall.h.in > index 6c9b3d8c..1a2147a7 100644 > --- a/arch/mips/bits/syscall.h.in > +++ b/arch/mips/bits/syscall.h.in > @@ -140,7 +140,7 @@ > #define __NR_setfsgid 4139 > #define __NR__llseek 4140 > #define __NR_getdents 4141 > -#define __NR_select 4142 > +#define __NR__newselect 4142 > #define __NR_flock 4143 > #define __NR_msync 4144 > #define __NR_readv 4145 > @@ -198,8 +198,8 @@ > #define __NR_rt_sigtimedwait 4197 > #define __NR_rt_sigqueueinfo 4198 > #define __NR_rt_sigsuspend 4199 > -#define __NR_pread 4200 > -#define __NR_pwrite 4201 > +#define __NR_pread64 4200 > +#define __NR_pwrite64 4201 > #define __NR_chown 4202 > #define __NR_getcwd 4203 > #define __NR_capget 4204 > @@ -252,7 +252,7 @@ > #define __NR_remap_file_pages 4251 > #define __NR_set_tid_address 4252 > #define __NR_restart_syscall 4253 > -#define __NR_fadvise 4254 > +#define __NR_fadvise64 4254 > #define __NR_statfs64 4255 > #define __NR_fstatfs64 4256 > #define __NR_timer_create 4257 > @@ -290,7 +290,7 @@ > #define __NR_mknodat 4290 > #define __NR_fchownat 4291 > #define __NR_futimesat 4292 > -#define __NR_fstatat 4293 > +#define __NR_fstatat64 4293 > #define __NR_unlinkat 4294 > #define __NR_renameat 4295 > #define __NR_linkat 4296 > diff --git a/arch/mipsn32/bits/syscall.h.in b/arch/mipsn32/bits/syscall.h.in > index d6b24e8f..cd843a76 100644 > --- a/arch/mipsn32/bits/syscall.h.in > +++ b/arch/mipsn32/bits/syscall.h.in > @@ -253,7 +253,7 @@ > #define __NR_mknodat 6253 > #define __NR_fchownat 6254 > #define __NR_futimesat 6255 > -#define __NR_fstatat 6256 > +#define __NR_newfstatat 6256 > #define __NR_unlinkat 6257 > #define __NR_renameat 6258 > #define __NR_linkat 6259 > diff --git a/arch/or1k/bits/syscall.h.in b/arch/or1k/bits/syscall.h.in > index 89788a9d..54581fb4 100644 > --- a/arch/or1k/bits/syscall.h.in > +++ b/arch/or1k/bits/syscall.h.in > @@ -61,6 +61,7 @@ > #define __NR_quotactl 60 > #define __NR_getdents64 61 > #define __NR__llseek 62 > +#define __NR_llseek 62 > #define __NR_read 63 > #define __NR_write 64 > #define __NR_readv 65 > diff --git a/arch/powerpc/bits/syscall.h.in b/arch/powerpc/bits/syscall.h.in > index 9d022321..35f7033e 100644 > --- a/arch/powerpc/bits/syscall.h.in > +++ b/arch/powerpc/bits/syscall.h.in > @@ -162,16 +162,12 @@ > #define __NR_sched_rr_get_interval 161 > #define __NR_nanosleep 162 > #define __NR_mremap 163 > -#define __NR_setresuid32 164 > #define __NR_setresuid 164 > -#define __NR_getresuid32 165 > #define __NR_getresuid 165 > #define __NR_query_module 166 > #define __NR_poll 167 > #define __NR_nfsservctl 168 > -#define __NR_setresgid32 169 > #define __NR_setresgid 169 > -#define __NR_getresgid32 170 > #define __NR_getresgid 170 > #define __NR_prctl 171 > #define __NR_rt_sigreturn 172 > @@ -306,7 +302,6 @@ > #define __NR_epoll_pwait 303 > #define __NR_utimensat 304 > #define __NR_signalfd 305 > -#define __NR_timerfd 306 > #define __NR_timerfd_create 306 > #define __NR_eventfd 307 > #define __NR_sync_file_range2 308 > -- > 2.11.0 >
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.