Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'y2038-syscall-abi' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground into timers/2038

Pull additional syscall ABI cleanup for y2038 from Arnd Bergmann:

This is a follow-up to the y2038 syscall patches already merged in the tip
tree. As the final 32-bit RISC-V syscall ABI is still being decided on,
this is the last chance to make a few corrections to leave out interfaces
based on 32-bit time_t along with the old off_t and rlimit types.

The series achieves this in a few steps:

- A couple of bug fixes for minor regressions I introduced
in the original series

- A couple of older patches from Yury Norov that I had never
merged in the past, these fix up the openat/open_by_handle_at and
getrlimit/setrlimit syscalls to disallow the old versions of off_t
and rlimit.

- Hiding the deprecated system calls behind an #ifdef in
include/uapi/asm-generic/unistd.h

- Change arch/riscv to drop all these ABIs.

Originally, the plan was to also leave these out on C-Sky, but that now
has a glibc port that uses the older interfaces, so we need to leave
them in place.

+110 -8
+10
arch/Kconfig
··· 276 276 config ARCH_WANTS_DYNAMIC_TASK_STRUCT 277 277 bool 278 278 279 + config ARCH_32BIT_OFF_T 280 + bool 281 + depends on !64BIT 282 + help 283 + All new 32-bit architectures should have 64-bit off_t type on 284 + userspace side which corresponds to the loff_t kernel type. This 285 + is the requirement for modern ABIs. Some existing architectures 286 + still support 32-bit off_t. This option is enabled for all such 287 + architectures explicitly. 288 + 279 289 config HAVE_REGS_AND_STACK_ACCESS_API 280 290 bool 281 291 help
+1
arch/arc/Kconfig
··· 14 14 select ARCH_HAS_SYNC_DMA_FOR_CPU 15 15 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 16 16 select ARCH_SUPPORTS_ATOMIC_RMW if ARC_HAS_LLSC 17 + select ARCH_32BIT_OFF_T 17 18 select BUILDTIME_EXTABLE_SORT 18 19 select CLONE_BACKWARDS 19 20 select COMMON_CLK
+2
arch/arc/include/uapi/asm/unistd.h
··· 18 18 19 19 #define __ARCH_WANT_RENAMEAT 20 20 #define __ARCH_WANT_STAT64 21 + #define __ARCH_WANT_SET_GET_RLIMIT 21 22 #define __ARCH_WANT_SYS_EXECVE 22 23 #define __ARCH_WANT_SYS_CLONE 23 24 #define __ARCH_WANT_SYS_VFORK 24 25 #define __ARCH_WANT_SYS_FORK 26 + #define __ARCH_WANT_TIME32_SYSCALLS 25 27 26 28 #define sys_mmap2 sys_mmap_pgoff 27 29
+1
arch/arm/Kconfig
··· 2 2 config ARM 3 3 bool 4 4 default y 5 + select ARCH_32BIT_OFF_T 5 6 select ARCH_CLOCKSOURCE_DATA 6 7 select ARCH_DISCARD_MEMBLOCK if !HAVE_ARCH_PFN_VALID && !KEXEC 7 8 select ARCH_HAS_DEBUG_VIRTUAL if MMU
+2
arch/arm64/include/uapi/asm/unistd.h
··· 17 17 18 18 #define __ARCH_WANT_RENAMEAT 19 19 #define __ARCH_WANT_NEW_STAT 20 + #define __ARCH_WANT_SET_GET_RLIMIT 21 + #define __ARCH_WANT_TIME32_SYSCALLS 20 22 21 23 #include <asm-generic/unistd.h>
+1
arch/c6x/Kconfig
··· 6 6 7 7 config C6X 8 8 def_bool y 9 + select ARCH_32BIT_OFF_T 9 10 select ARCH_HAS_SYNC_DMA_FOR_CPU 10 11 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 11 12 select CLKDEV_LOOKUP
+2
arch/c6x/include/uapi/asm/unistd.h
··· 17 17 18 18 #define __ARCH_WANT_RENAMEAT 19 19 #define __ARCH_WANT_STAT64 20 + #define __ARCH_WANT_SET_GET_RLIMIT 20 21 #define __ARCH_WANT_SYS_CLONE 22 + #define __ARCH_WANT_TIME32_SYSCALLS 21 23 22 24 /* Use the standard ABI for syscalls. */ 23 25 #include <asm-generic/unistd.h>
+1
arch/csky/Kconfig
··· 1 1 config CSKY 2 2 def_bool y 3 + select ARCH_32BIT_OFF_T 3 4 select ARCH_HAS_SYNC_DMA_FOR_CPU 4 5 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 5 6 select ARCH_USE_BUILTIN_BSWAP
+2
arch/csky/include/uapi/asm/unistd.h
··· 2 2 // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd. 3 3 4 4 #define __ARCH_WANT_SYS_CLONE 5 + #define __ARCH_WANT_SET_GET_RLIMIT 6 + #define __ARCH_WANT_TIME32_SYSCALLS 5 7 #include <asm-generic/unistd.h> 6 8 7 9 #define __NR_set_thread_area (__NR_arch_specific_syscall + 0)
+1
arch/h8300/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 config H8300 3 3 def_bool y 4 + select ARCH_32BIT_OFF_T 4 5 select GENERIC_ATOMIC64 5 6 select HAVE_UID16 6 7 select VIRT_TO_BUS
+2
arch/h8300/include/uapi/asm/unistd.h
··· 2 2 3 3 #define __ARCH_WANT_RENAMEAT 4 4 #define __ARCH_WANT_STAT64 5 + #define __ARCH_WANT_SET_GET_RLIMIT 6 + #define __ARCH_WANT_TIME32_SYSCALLS 5 7 6 8 #include <asm-generic/unistd.h>
+1
arch/hexagon/Kconfig
··· 4 4 5 5 config HEXAGON 6 6 def_bool y 7 + select ARCH_32BIT_OFF_T 7 8 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 8 9 select ARCH_NO_PREEMPT 9 10 select HAVE_OPROFILE
+2
arch/hexagon/include/uapi/asm/unistd.h
··· 30 30 #define sys_mmap2 sys_mmap_pgoff 31 31 #define __ARCH_WANT_RENAMEAT 32 32 #define __ARCH_WANT_STAT64 33 + #define __ARCH_WANT_SET_GET_RLIMIT 33 34 #define __ARCH_WANT_SYS_EXECVE 34 35 #define __ARCH_WANT_SYS_CLONE 35 36 #define __ARCH_WANT_SYS_VFORK 36 37 #define __ARCH_WANT_SYS_FORK 38 + #define __ARCH_WANT_TIME32_SYSCALLS 37 39 38 40 #include <asm-generic/unistd.h>
+1
arch/m68k/Kconfig
··· 2 2 config M68K 3 3 bool 4 4 default y 5 + select ARCH_32BIT_OFF_T 5 6 select ARCH_HAS_SYNC_DMA_FOR_DEVICE if HAS_DMA 6 7 select ARCH_MIGHT_HAVE_PC_PARPORT if ISA 7 8 select ARCH_NO_COHERENT_DMA_MMAP if !MMU
+1
arch/microblaze/Kconfig
··· 1 1 config MICROBLAZE 2 2 def_bool y 3 + select ARCH_32BIT_OFF_T 3 4 select ARCH_NO_SWAP 4 5 select ARCH_HAS_DMA_COHERENT_TO_PFN if MMU 5 6 select ARCH_HAS_GCOV_PROFILE_ALL
+1
arch/mips/Kconfig
··· 2 2 config MIPS 3 3 bool 4 4 default y 5 + select ARCH_32BIT_OFF_T if !64BIT 5 6 select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT 6 7 select ARCH_CLOCKSOURCE_DATA 7 8 select ARCH_DISCARD_MEMBLOCK
+1
arch/nds32/Kconfig
··· 5 5 6 6 config NDS32 7 7 def_bool y 8 + select ARCH_32BIT_OFF_T 8 9 select ARCH_HAS_SYNC_DMA_FOR_CPU 9 10 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 10 11 select ARCH_WANT_FRAME_POINTERS if FTRACE
+2
arch/nds32/include/uapi/asm/unistd.h
··· 3 3 4 4 #define __ARCH_WANT_STAT64 5 5 #define __ARCH_WANT_SYNC_FILE_RANGE2 6 + #define __ARCH_WANT_SET_GET_RLIMIT 7 + #define __ARCH_WANT_TIME32_SYSCALLS 6 8 7 9 /* Use the standard ABI for syscalls */ 8 10 #include <asm-generic/unistd.h>
+1
arch/nios2/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 config NIOS2 3 3 def_bool y 4 + select ARCH_32BIT_OFF_T 4 5 select ARCH_HAS_SYNC_DMA_FOR_CPU 5 6 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 6 7 select ARCH_NO_SWAP
+2
arch/nios2/include/uapi/asm/unistd.h
··· 20 20 21 21 #define __ARCH_WANT_RENAMEAT 22 22 #define __ARCH_WANT_STAT64 23 + #define __ARCH_WANT_SET_GET_RLIMIT 24 + #define __ARCH_WANT_TIME32_SYSCALLS 23 25 24 26 /* Use the standard ABI for syscalls */ 25 27 #include <asm-generic/unistd.h>
+1
arch/openrisc/Kconfig
··· 6 6 7 7 config OPENRISC 8 8 def_bool y 9 + select ARCH_32BIT_OFF_T 9 10 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 10 11 select OF 11 12 select OF_EARLY_FLATTREE
+2
arch/openrisc/include/uapi/asm/unistd.h
··· 21 21 22 22 #define __ARCH_WANT_RENAMEAT 23 23 #define __ARCH_WANT_STAT64 24 + #define __ARCH_WANT_SET_GET_RLIMIT 24 25 #define __ARCH_WANT_SYS_FORK 25 26 #define __ARCH_WANT_SYS_CLONE 27 + #define __ARCH_WANT_TIME32_SYSCALLS 26 28 27 29 #include <asm-generic/unistd.h> 28 30
+1
arch/parisc/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 config PARISC 3 3 def_bool y 4 + select ARCH_32BIT_OFF_T if !64BIT 4 5 select ARCH_MIGHT_HAVE_PC_PARPORT 5 6 select HAVE_IDE 6 7 select HAVE_OPROFILE
+1
arch/powerpc/Kconfig
··· 128 128 # 129 129 # Please keep this list sorted alphabetically. 130 130 # 131 + select ARCH_32BIT_OFF_T if PPC32 131 132 select ARCH_HAS_DEBUG_VIRTUAL 132 133 select ARCH_HAS_DEVMEM_IS_ALLOWED 133 134 select ARCH_HAS_DMA_SET_COHERENT_MASK
+1
arch/riscv/include/uapi/asm/unistd.h
··· 17 17 18 18 #ifdef __LP64__ 19 19 #define __ARCH_WANT_NEW_STAT 20 + #define __ARCH_WANT_SET_GET_RLIMIT 20 21 #endif /* __LP64__ */ 21 22 22 23 #include <asm-generic/unistd.h>
+2
arch/riscv/kernel/vdso/Makefile
··· 2 2 3 3 # Symbols present in the vdso 4 4 vdso-syms = rt_sigreturn 5 + ifdef CONFIG_64BIT 5 6 vdso-syms += gettimeofday 6 7 vdso-syms += clock_gettime 7 8 vdso-syms += clock_getres 9 + endif 8 10 vdso-syms += getcpu 9 11 vdso-syms += flush_icache 10 12
+1
arch/sh/Kconfig
··· 62 62 63 63 config SUPERH32 64 64 def_bool "$(ARCH)" = "sh" 65 + select ARCH_32BIT_OFF_T 65 66 select HAVE_KPROBES 66 67 select HAVE_KRETPROBES 67 68 select HAVE_IOREMAP_PROT if MMU && !X2TLB
+1
arch/sparc/Kconfig
··· 49 49 50 50 config SPARC32 51 51 def_bool !64BIT 52 + select ARCH_32BIT_OFF_T 52 53 select ARCH_HAS_SYNC_DMA_FOR_CPU 53 54 select GENERIC_ATOMIC64 54 55 select CLZ_TAB
+1
arch/unicore32/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 config UNICORE32 3 3 def_bool y 4 + select ARCH_32BIT_OFF_T 4 5 select ARCH_HAS_DEVMEM_IS_ALLOWED 5 6 select ARCH_MIGHT_HAVE_PC_PARPORT 6 7 select ARCH_MIGHT_HAVE_PC_SERIO
+3 -1
arch/unicore32/include/uapi/asm/unistd.h
··· 12 12 */ 13 13 14 14 #define __ARCH_WANT_RENAMEAT 15 + #define __ARCH_WANT_SET_GET_RLIMIT 16 + #define __ARCH_WANT_STAT64 17 + #define __ARCH_WANT_TIME32_SYSCALLS 15 18 16 19 /* Use the standard ABI for syscalls. */ 17 20 #include <asm-generic/unistd.h> 18 - #define __ARCH_WANT_STAT64 19 21 #define __ARCH_WANT_SYS_CLONE
+1
arch/x86/Kconfig
··· 47 47 select ACPI_LEGACY_TABLES_LOOKUP if ACPI 48 48 select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI 49 49 select ANON_INODES 50 + select ARCH_32BIT_OFF_T if X86_32 50 51 select ARCH_CLOCKSOURCE_DATA 51 52 select ARCH_CLOCKSOURCE_INIT 52 53 select ARCH_DISCARD_MEMBLOCK
+1
arch/x86/um/Kconfig
··· 17 17 config X86_32 18 18 def_bool !64BIT 19 19 select HAVE_AOUT 20 + select ARCH_32BIT_OFF_T 20 21 select ARCH_WANT_IPC_PARSE_VERSION 21 22 select MODULES_USE_ELF_REL 22 23 select CLONE_BACKWARDS
+1
arch/xtensa/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 config XTENSA 3 3 def_bool y 4 + select ARCH_32BIT_OFF_T 4 5 select ARCH_HAS_SYNC_DMA_FOR_CPU 5 6 select ARCH_HAS_SYNC_DMA_FOR_DEVICE 6 7 select ARCH_NO_COHERENT_DMA_MMAP if !MMU
+1 -1
include/linux/fcntl.h
··· 12 12 O_NOATIME | O_CLOEXEC | O_PATH | __O_TMPFILE) 13 13 14 14 #ifndef force_o_largefile 15 - #define force_o_largefile() (BITS_PER_LONG != 32) 15 + #define force_o_largefile() (!IS_ENABLED(CONFIG_ARCH_32BIT_OFF_T)) 16 16 #endif 17 17 18 18 #if BITS_PER_LONG == 32
+43 -3
include/uapi/asm-generic/unistd.h
··· 38 38 __SC_COMP(__NR_io_submit, sys_io_submit, compat_sys_io_submit) 39 39 #define __NR_io_cancel 3 40 40 __SYSCALL(__NR_io_cancel, sys_io_cancel) 41 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 41 42 #define __NR_io_getevents 4 42 43 __SC_3264(__NR_io_getevents, sys_io_getevents_time32, sys_io_getevents) 44 + #endif 43 45 44 46 /* fs/xattr.c */ 45 47 #define __NR_setxattr 5 ··· 181 179 #define __NR_fchown 55 182 180 __SYSCALL(__NR_fchown, sys_fchown) 183 181 #define __NR_openat 56 184 - __SC_COMP(__NR_openat, sys_openat, compat_sys_openat) 182 + __SYSCALL(__NR_openat, sys_openat) 185 183 #define __NR_close 57 186 184 __SYSCALL(__NR_close, sys_close) 187 185 #define __NR_vhangup 58 ··· 224 222 __SYSCALL(__NR3264_sendfile, sys_sendfile64) 225 223 226 224 /* fs/select.c */ 225 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 227 226 #define __NR_pselect6 72 228 227 __SC_COMP_3264(__NR_pselect6, sys_pselect6_time32, sys_pselect6, compat_sys_pselect6_time32) 229 228 #define __NR_ppoll 73 230 229 __SC_COMP_3264(__NR_ppoll, sys_ppoll_time32, sys_ppoll, compat_sys_ppoll_time32) 230 + #endif 231 231 232 232 /* fs/signalfd.c */ 233 233 #define __NR_signalfd4 74 ··· 273 269 /* fs/timerfd.c */ 274 270 #define __NR_timerfd_create 85 275 271 __SYSCALL(__NR_timerfd_create, sys_timerfd_create) 272 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 276 273 #define __NR_timerfd_settime 86 277 274 __SC_3264(__NR_timerfd_settime, sys_timerfd_settime32, \ 278 275 sys_timerfd_settime) 279 276 #define __NR_timerfd_gettime 87 280 277 __SC_3264(__NR_timerfd_gettime, sys_timerfd_gettime32, \ 281 278 sys_timerfd_gettime) 279 + #endif 282 280 283 281 /* fs/utimes.c */ 282 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 284 283 #define __NR_utimensat 88 285 284 __SC_3264(__NR_utimensat, sys_utimensat_time32, sys_utimensat) 285 + #endif 286 286 287 287 /* kernel/acct.c */ 288 288 #define __NR_acct 89 ··· 317 309 __SYSCALL(__NR_unshare, sys_unshare) 318 310 319 311 /* kernel/futex.c */ 312 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 320 313 #define __NR_futex 98 321 314 __SC_3264(__NR_futex, sys_futex_time32, sys_futex) 315 + #endif 322 316 #define __NR_set_robust_list 99 323 317 __SC_COMP(__NR_set_robust_list, sys_set_robust_list, \ 324 318 compat_sys_set_robust_list) ··· 329 319 compat_sys_get_robust_list) 330 320 331 321 /* kernel/hrtimer.c */ 322 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 332 323 #define __NR_nanosleep 101 333 324 __SC_3264(__NR_nanosleep, sys_nanosleep_time32, sys_nanosleep) 325 + #endif 334 326 335 327 /* kernel/itimer.c */ 336 328 #define __NR_getitimer 102 ··· 353 341 /* kernel/posix-timers.c */ 354 342 #define __NR_timer_create 107 355 343 __SC_COMP(__NR_timer_create, sys_timer_create, compat_sys_timer_create) 344 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 356 345 #define __NR_timer_gettime 108 357 346 __SC_3264(__NR_timer_gettime, sys_timer_gettime32, sys_timer_gettime) 347 + #endif 358 348 #define __NR_timer_getoverrun 109 359 349 __SYSCALL(__NR_timer_getoverrun, sys_timer_getoverrun) 350 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 360 351 #define __NR_timer_settime 110 361 352 __SC_3264(__NR_timer_settime, sys_timer_settime32, sys_timer_settime) 353 + #endif 362 354 #define __NR_timer_delete 111 363 355 __SYSCALL(__NR_timer_delete, sys_timer_delete) 356 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 364 357 #define __NR_clock_settime 112 365 358 __SC_3264(__NR_clock_settime, sys_clock_settime32, sys_clock_settime) 366 359 #define __NR_clock_gettime 113 ··· 375 358 #define __NR_clock_nanosleep 115 376 359 __SC_3264(__NR_clock_nanosleep, sys_clock_nanosleep_time32, \ 377 360 sys_clock_nanosleep) 361 + #endif 378 362 379 363 /* kernel/printk.c */ 380 364 #define __NR_syslog 116 ··· 406 388 __SYSCALL(__NR_sched_get_priority_max, sys_sched_get_priority_max) 407 389 #define __NR_sched_get_priority_min 126 408 390 __SYSCALL(__NR_sched_get_priority_min, sys_sched_get_priority_min) 391 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 409 392 #define __NR_sched_rr_get_interval 127 410 393 __SC_3264(__NR_sched_rr_get_interval, sys_sched_rr_get_interval_time32, \ 411 394 sys_sched_rr_get_interval) 395 + #endif 412 396 413 397 /* kernel/signal.c */ 414 398 #define __NR_restart_syscall 128 ··· 431 411 __SC_COMP(__NR_rt_sigprocmask, sys_rt_sigprocmask, compat_sys_rt_sigprocmask) 432 412 #define __NR_rt_sigpending 136 433 413 __SC_COMP(__NR_rt_sigpending, sys_rt_sigpending, compat_sys_rt_sigpending) 414 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 434 415 #define __NR_rt_sigtimedwait 137 435 416 __SC_COMP_3264(__NR_rt_sigtimedwait, sys_rt_sigtimedwait_time32, \ 436 417 sys_rt_sigtimedwait, compat_sys_rt_sigtimedwait_time32) 418 + #endif 437 419 #define __NR_rt_sigqueueinfo 138 438 420 __SC_COMP(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo, \ 439 421 compat_sys_rt_sigqueueinfo) ··· 489 467 __SYSCALL(__NR_sethostname, sys_sethostname) 490 468 #define __NR_setdomainname 162 491 469 __SYSCALL(__NR_setdomainname, sys_setdomainname) 470 + 471 + #ifdef __ARCH_WANT_SET_GET_RLIMIT 472 + /* getrlimit and setrlimit are superseded with prlimit64 */ 492 473 #define __NR_getrlimit 163 493 474 __SC_COMP(__NR_getrlimit, sys_getrlimit, compat_sys_getrlimit) 494 475 #define __NR_setrlimit 164 495 476 __SC_COMP(__NR_setrlimit, sys_setrlimit, compat_sys_setrlimit) 477 + #endif 478 + 496 479 #define __NR_getrusage 165 497 480 __SC_COMP(__NR_getrusage, sys_getrusage, compat_sys_getrusage) 498 481 #define __NR_umask 166 ··· 508 481 __SYSCALL(__NR_getcpu, sys_getcpu) 509 482 510 483 /* kernel/time.c */ 484 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 511 485 #define __NR_gettimeofday 169 512 486 __SC_COMP(__NR_gettimeofday, sys_gettimeofday, compat_sys_gettimeofday) 513 487 #define __NR_settimeofday 170 514 488 __SC_COMP(__NR_settimeofday, sys_settimeofday, compat_sys_settimeofday) 515 489 #define __NR_adjtimex 171 516 490 __SC_3264(__NR_adjtimex, sys_adjtimex_time32, sys_adjtimex) 491 + #endif 517 492 518 493 /* kernel/timer.c */ 519 494 #define __NR_getpid 172 ··· 540 511 __SC_COMP(__NR_mq_open, sys_mq_open, compat_sys_mq_open) 541 512 #define __NR_mq_unlink 181 542 513 __SYSCALL(__NR_mq_unlink, sys_mq_unlink) 514 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 543 515 #define __NR_mq_timedsend 182 544 516 __SC_3264(__NR_mq_timedsend, sys_mq_timedsend_time32, sys_mq_timedsend) 545 517 #define __NR_mq_timedreceive 183 546 518 __SC_3264(__NR_mq_timedreceive, sys_mq_timedreceive_time32, \ 547 519 sys_mq_timedreceive) 520 + #endif 548 521 #define __NR_mq_notify 184 549 522 __SC_COMP(__NR_mq_notify, sys_mq_notify, compat_sys_mq_notify) 550 523 #define __NR_mq_getsetattr 185 ··· 567 536 __SYSCALL(__NR_semget, sys_semget) 568 537 #define __NR_semctl 191 569 538 __SC_COMP(__NR_semctl, sys_semctl, compat_sys_semctl) 539 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 570 540 #define __NR_semtimedop 192 571 541 __SC_COMP(__NR_semtimedop, sys_semtimedop, sys_semtimedop_time32) 542 + #endif 572 543 #define __NR_semop 193 573 544 __SYSCALL(__NR_semop, sys_semop) 574 545 ··· 691 658 __SYSCALL(__NR_perf_event_open, sys_perf_event_open) 692 659 #define __NR_accept4 242 693 660 __SYSCALL(__NR_accept4, sys_accept4) 661 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 694 662 #define __NR_recvmmsg 243 695 663 __SC_COMP_3264(__NR_recvmmsg, sys_recvmmsg_time32, sys_recvmmsg, compat_sys_recvmmsg_time32) 664 + #endif 696 665 697 666 /* 698 667 * Architectures may provide up to 16 syscalls of their own ··· 702 667 */ 703 668 #define __NR_arch_specific_syscall 244 704 669 670 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 705 671 #define __NR_wait4 260 706 672 __SC_COMP(__NR_wait4, sys_wait4, compat_sys_wait4) 673 + #endif 707 674 #define __NR_prlimit64 261 708 675 __SYSCALL(__NR_prlimit64, sys_prlimit64) 709 676 #define __NR_fanotify_init 262 ··· 715 678 #define __NR_name_to_handle_at 264 716 679 __SYSCALL(__NR_name_to_handle_at, sys_name_to_handle_at) 717 680 #define __NR_open_by_handle_at 265 718 - __SC_COMP(__NR_open_by_handle_at, sys_open_by_handle_at, \ 719 - compat_sys_open_by_handle_at) 681 + __SYSCALL(__NR_open_by_handle_at, sys_open_by_handle_at) 682 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 720 683 #define __NR_clock_adjtime 266 721 684 __SC_3264(__NR_clock_adjtime, sys_clock_adjtime32, sys_clock_adjtime) 685 + #endif 722 686 #define __NR_syncfs 267 723 687 __SYSCALL(__NR_syncfs, sys_syncfs) 724 688 #define __NR_setns 268 ··· 772 734 __SYSCALL(__NR_pkey_free, sys_pkey_free) 773 735 #define __NR_statx 291 774 736 __SYSCALL(__NR_statx, sys_statx) 737 + #if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32 775 738 #define __NR_io_pgetevents 292 776 739 __SC_COMP_3264(__NR_io_pgetevents, sys_io_pgetevents_time32, sys_io_pgetevents, compat_sys_io_pgetevents) 740 + #endif 777 741 #define __NR_rseq 293 778 742 __SYSCALL(__NR_rseq, sys_rseq) 779 743 #define __NR_kexec_file_load 294
+12 -3
scripts/checksyscalls.sh
··· 30 30 #define __IGNORE_readlink /* readlinkat */ 31 31 #define __IGNORE_symlink /* symlinkat */ 32 32 #define __IGNORE_utimes /* futimesat */ 33 - #if BITS_PER_LONG == 64 34 33 #define __IGNORE_stat /* fstatat */ 35 34 #define __IGNORE_lstat /* fstatat */ 36 - #else 37 35 #define __IGNORE_stat64 /* fstatat64 */ 38 36 #define __IGNORE_lstat64 /* fstatat64 */ 37 + 38 + #ifndef __ARCH_WANT_SET_GET_RLIMIT 39 + #define __IGNORE_getrlimit /* getrlimit */ 40 + #define __IGNORE_setrlimit /* setrlimit */ 39 41 #endif 40 42 41 43 /* Missing flags argument */ ··· 135 133 #define __IGNORE_io_pgetevents 136 134 #define __IGNORE_recvmmsg 137 135 #define __IGNORE_mq_timedsend 138 - #define __IGNORE_mq_timedreceiv 136 + #define __IGNORE_mq_timedreceive 139 137 #define __IGNORE_semtimedop 140 138 #define __IGNORE_rt_sigtimedwait 141 139 #define __IGNORE_futex 142 140 #define __IGNORE_sched_rr_get_interval 141 + #define __IGNORE_gettimeofday 142 + #define __IGNORE_settimeofday 143 + #define __IGNORE_wait4 144 + #define __IGNORE_adjtimex 145 + #define __IGNORE_nanosleep 146 + #define __IGNORE_io_getevents 147 + #define __IGNORE_recvmmsg 143 148 #endif 144 149 145 150 /* i386-specific or historical system calls */