This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi Joseph, > On Tue, 11 Jun 2019, Lukasz Majewski wrote: > > > Syscall's ABI compatibility checking: > > > > 1. Code to check if syscalls are defined since v3.2 kernel on the > > intersection of archs supported by v3.2 kernel and contemporary > > glibc (SHA1: e6e24243905957c36596f50a22af0acfd83793e2): > > > > (Assumption: syscall ABI change require changing the name - like > > __NR_epoll_create and __NR_epoll_create1) > > > > export syscalls_table="\ > > clock_gettime clock_settime clock_adjtime \ > > clock_getres clock_nanosleep timer_gettime \ > > timer_settime timerfd_gettime timerfd_settime \ > > utimensat pselect6 ppoll io_pgetevents recvmmsg \ > > mq_timedsend mq_timedreceive rt_sigtimedwait futex \ > > sched_rr_get_interval" > > > > for syscall in ${syscalls_table} ; do echo -n "syscall: ${syscall} > > -> "; \ grep -rnIw "__NR_${syscall}" | grep ^arch/ | \ > > grep -vE > > "mn10300|avr32|cris|m32r|frv|blackfin|xtensa|h8300|vdso" | \ wc -l; > > done > > This is not quite sufficient. It's possible for a syscall to be > mentioned in an architecture's asm/unistd.h but not in the actual > syscall table, for example (or mentioned inside #if 0). > > You do need to check the relevant files for each architecture. *But* > only architectures with 64-bit syscall interfaces are relevant, > because those with 32-bit syscall interfaces won't get > __ASSUME_TIME64_SYSCALLS defined for kernels before 5.1 anyway. So > it doesn't matter whether a syscall was present for arm or m68k, for > example. Thanks for clarification. > > (For example: before 3.15, microblaze didn't have pselect6 in its > syscall table, though it had it in asm/unistd.h. But there's no > reason to exclude pselect6 from this patch, because microblaze is a > 32-bit architecture, and all 64-bit architectures / syscall ABIs had > that syscall already in 3.2.) Ok. > > So you care about (glibc architecture names): aarch64 alpha ia64 mips > (n64 and n32 syscall ABIs) powerpc (64-bit syscall ABI) riscv (64-bit > syscall ABI) s390 (64-bit syscall ABI) sparc (64-bit syscall ABI) > x86_64 (classic and x32 syscall ABIs). The 64-bit versions of hppa > and sh are not relevant because they aren't supported by glibc. Thanks for listing them. > > > - 32 bit: nios2, csky, hppa (is the same as parisc?) - no > > need to > > Yes, hppa is called parisc in the Linux kernel. There are a few such > cases where the names are different (e.g. the Linux kernel uses > "arm64" as the name for aarch64). > If I may ask - do I need to further fix/re-word in-patch comment and patch description? Is it precise and semantically correct? Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
Attachment:
pgpAKzEWXM6uT.pgp
Description: OpenPGP digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |