glibc/sysdeps/unix
Joseph Myers eed3e1eb79 Make obsolete syscall wrappers into compat symbols (bug 18472).
Various Linux kernel syscalls have become obsolete over time.
Specifically, the following are obsolete in all kernel versions
supported by glibc, are not present for architectures more recently
added to the kernel, and as such, the wrapper functions for them
should be compat symbols, not in static libc and not available for new
links with shared libc.

* bdflush: in Linux 2.6, does nothing if present.

* create_module get_kernel_syms query_module: Linux 2.4 module
  interface, syscalls not present in Linux 2.6.

* uselib: part of the mechanism for loading a.out shared libraries,
  irrelevant with ELF.

This patch adds support for syscalls.list to list syscall aliases of
the form NAME@VERSION:OBSOLETED, with SHLIB_COMPAT conditionals being
generated for such aliases.  Those five syscalls are then made into
compat symbols (obsoleted in glibc 2.23, so future ports won't have
these symbols at all), with the header <sys/kdaemon.h> declaring
bdflush being removed.  When we move to 3.2 as minimum kernel version,
the same can be done for nfsservctl (removed in Linux 3.1) as well.

Tested for x86_64 and x86 (testsuite, as well as checking that the
symbols in question indeed become compat symbols, that they are indeed
omitted from static libc, and that the generated SHLIB_COMPAT
conditionals look right).

	[BZ #18472]
	* sysdeps/unix/Makefile ($(objpfx)stub-syscalls.c): Handle entries
	for the form NAME@VERSION:OBSOLETED and generate SHLIB_COMPAT
	conditionals for them.
	* sysdeps/unix/make-syscalls.sh (emit_weak_aliases): Likewise.
	* sysdeps/unix/sysv/linux/sys/kdaemon.h: Remove file.
	* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove
	sys/kdaemon.h.
	* sysdeps/unix/sysv/linux/syscalls.list (bdflush): Make into
	compat-only syscall, obsoleted in glibc 2.23.
	(create_module): Likewise.
	(get_kernel_syms): Likewise.
	(query_module): Likewise.
	(uselib): Likewise.
	* manual/sysinfo.texi (System Parameters): Do not mention bdflush.
2015-12-14 22:52:15 +00:00
..
alpha alpha: Unconditionally include dl-sysdep.h in sysdep.h 2015-04-06 10:36:44 -07:00
arm Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
bsd Convert 231 sysdeps function definitions to prototype style. 2015-10-19 12:04:33 +00:00
i386 Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
inet Move nss directory into sysdeps Subdirs. 2013-02-05 14:32:48 -08:00
mips MIPS: Only use .set mips* assembler directives when necessary 2015-09-08 16:52:43 +01:00
powerpc Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sh Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sysv/linux Make obsolete syscall wrappers into compat symbols (bug 18472). 2015-12-14 22:52:15 +00:00
x86_64 Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
clock_gettime.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
clock_nanosleep.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
clock_settime.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
confstr.h
get_child_max.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
getlogin_r.c Convert 231 sysdeps function definitions to prototype style. 2015-10-19 12:04:33 +00:00
getlogin.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
getpagesize.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
grantpt.c grantpt: trust the kernel about pty group and permission mode 2015-12-10 22:33:10 +01:00
ifreq.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Implies
make-syscalls.sh Make obsolete syscall wrappers into compat symbols (bug 18472). 2015-12-14 22:52:15 +00:00
Makefile Make obsolete syscall wrappers into compat symbols (bug 18472). 2015-12-14 22:52:15 +00:00
s-proto-cancel.S * sysdeps/unix/Makefile: Include $(common-objpfx)s-proto-cancel.d. 2002-12-30 00:12:56 +00:00
s-proto.S
setxid.h Update. 2004-11-12 01:27:04 +00:00
sockatmark.c Convert 231 sysdeps function definitions to prototype style. 2015-10-19 12:04:33 +00:00
stime.c Convert 231 sysdeps function definitions to prototype style. 2015-10-19 12:04:33 +00:00
syscall-template.S Create hidden aliases for non-libc syscalls automatically. 2015-06-17 20:17:49 +00:00
syscall.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
syscalls.list Fix nice getpriority, setpriority namespace (bug 18553). 2015-06-17 20:22:39 +00:00
sysdep.h Revert "Add INLINE_SYSCALL_RETURN/INLINE_SYSCALL_ERROR_RETURN" 2015-08-21 09:57:15 -07:00