提交 942437c9 编写于 作者: A Arnd Bergmann

y2038: allow disabling time32 system calls

At the moment, the compilation of the old time32 system calls depends
purely on the architecture. As systems with new libc based on 64-bit
time_t are getting deployed, even architectures that previously supported
these (notably x86-32 and arm32 but also many others) no longer depend on
them, and removing them from a kernel image results in a smaller kernel
binary, the same way we can leave out many other optional system calls.

More importantly, on an embedded system that needs to keep working
beyond year 2038, any user space program calling these system calls
is likely a bug, so removing them from the kernel image does provide
an extra debugging help for finding broken applications.

I've gone back and forth on hiding this option unless CONFIG_EXPERT
is set. This version leaves it visible based on the logic that
eventually it will be turned off indefinitely.
Acked-by: NChristian Brauner <christian.brauner@ubuntu.com>
Signed-off-by: NArnd Bergmann <arnd@arndb.de>
上级 bd40a175
...@@ -797,7 +797,8 @@ config COMPAT_OLD_SIGACTION ...@@ -797,7 +797,8 @@ config COMPAT_OLD_SIGACTION
bool bool
config COMPAT_32BIT_TIME config COMPAT_32BIT_TIME
def_bool !64BIT || COMPAT bool "Provide system calls for 32-bit time_t"
default !64BIT || COMPAT
help help
This enables 32 bit time_t support in addition to 64 bit time_t support. This enables 32 bit time_t support in addition to 64 bit time_t support.
This is relevant on all 32-bit architectures, and 64-bit architectures This is relevant on all 32-bit architectures, and 64-bit architectures
......
...@@ -410,6 +410,29 @@ COND_SYSCALL(send); ...@@ -410,6 +410,29 @@ COND_SYSCALL(send);
COND_SYSCALL(bdflush); COND_SYSCALL(bdflush);
COND_SYSCALL(uselib); COND_SYSCALL(uselib);
/* optional: time32 */
COND_SYSCALL(time32);
COND_SYSCALL(stime32);
COND_SYSCALL(utime32);
COND_SYSCALL(adjtimex_time32);
COND_SYSCALL(sched_rr_get_interval_time32);
COND_SYSCALL(nanosleep_time32);
COND_SYSCALL(rt_sigtimedwait_time32);
COND_SYSCALL_COMPAT(rt_sigtimedwait_time32);
COND_SYSCALL(timer_settime32);
COND_SYSCALL(timer_gettime32);
COND_SYSCALL(clock_settime32);
COND_SYSCALL(clock_gettime32);
COND_SYSCALL(clock_getres_time32);
COND_SYSCALL(clock_nanosleep_time32);
COND_SYSCALL(utimes_time32);
COND_SYSCALL(futimesat_time32);
COND_SYSCALL(pselect6_time32);
COND_SYSCALL_COMPAT(pselect6_time32);
COND_SYSCALL(ppoll_time32);
COND_SYSCALL_COMPAT(ppoll_time32);
COND_SYSCALL(utimensat_time32);
COND_SYSCALL(clock_adjtime32);
/* /*
* The syscalls below are not found in include/uapi/asm-generic/unistd.h * The syscalls below are not found in include/uapi/asm-generic/unistd.h
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册