glibc/manual
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
..
examples Split large string section; add truncation advice 2015-12-10 08:29:30 -08:00
argp.texi manual/argp.texi (Specifying Argp Parsers): Fix typo. 2015-10-14 11:49:58 -04:00
arith.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
charset.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
check-safety.sh Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
conf.texi * manual/conf.texi: Document MTASC-safety properties. 2014-01-29 05:26:47 -02:00
contrib.texi glibc 2.21 pre-release update. 2015-02-05 23:14:38 -05:00
creature.texi Remove _BSD_SOURCE and _SVID_SOURCE. 2014-02-11 23:40:07 +00:00
crypt.texi * manual/crypt.texi: Document MTASC-safety properties. 2014-01-29 05:27:54 -02:00
ctype.texi * manual/ctype.texi: Document MTASC-safety properties. 2014-01-31 23:14:14 -02:00
debug.texi * manual/debug.texi: Document MTASC-safety properties. 2014-01-30 18:50:57 -02:00
dir
errno.texi manual: complete example in error message documentation 2015-03-06 00:59:49 -05:00
fdl-1.3.texi
filesys.texi Fix manual argument order for posix_fallocate64 (Bug 19086). 2015-10-07 14:10:43 -04:00
freemanuals.texi
getopt.texi * manual/getopt.texi: Document MTASC-safety properties. 2014-01-31 23:16:56 -02:00
header.texi
install-plain.texi BZ #15941: Fix INSTALL file regeneration failure with makeinfo 5.x 2013-12-05 09:58:20 +05:30
install.texi Require GCC 4.7 or later to build glibc. 2015-10-27 16:34:12 +00:00
intro.texi manual: Sort overview listing by manual order. 2014-04-17 19:41:09 -04:00
io.texi
ipc.texi manual/ipc.texi: Fix AC-safety notes. 2014-04-08 17:12:15 -04:00
job.texi ctermid: return string literal, document MT-Safety pitfall 2014-11-21 02:16:02 -02:00
lang.texi Split large string section; add truncation advice 2015-12-10 08:29:30 -08:00
lgpl-2.1.texi
libc-texinfo.sh
libc.texinfo Update copyright dates not handled by scripts/update-copyrights. 2015-01-02 16:54:45 +00:00
libcbook.texi
libdl.texi * manual/libdl.texi: New. 2014-01-31 23:23:59 -02:00
libm-err-tab.pl Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
llio.texi Fix exponents in manual. 2015-08-20 09:43:50 +02:00
locale.texi Split large string section; add truncation advice 2015-12-10 08:29:30 -08:00
macros.texi Fix exponents in manual. 2015-08-20 09:43:50 +02:00
maint.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
Makefile manual: skip build when perl is unavailable 2015-08-21 17:10:59 -04:00
math.texi Refine documentation of libm exceptions goals. 2015-02-17 23:41:27 +00:00
memory.texi Split large string section; add truncation advice 2015-12-10 08:29:30 -08:00
message.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
nss.texi Document best practice for disconnected NSS modules. 2015-12-10 00:48:15 -05:00
nsswitch.texi
pattern.texi Avoid SIGFPE in wordexp [BZ #18100] 2015-03-23 16:12:38 +01:00
pipe.texi * manual/pipe.texi: Document MTASC-safety properties. 2014-01-31 23:37:28 -02:00
platform.texi PowerPC: Extend Program Priority Register support 2015-08-19 17:43:26 -03:00
probes.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
process.texi Add a new "Inter-Process Communication" chapter. 2014-02-26 11:05:09 -05:00
resource.texi Fix typo in manual. 2014-06-05 01:13:04 +02:00
search.texi manual: Correct guarantee about pointers compared by qsort() 2014-12-21 14:11:32 +01:00
setjmp.texi manual/setjmp.texi: Clarify setcontext and signal handlers text 2014-04-17 11:40:36 +01:00
signal.texi Fix crossreference to nonexistent node BSD Handler 2014-11-18 11:19:20 +01:00
socket.texi Fix two spaces after sentence. 2014-02-26 23:27:38 +01:00
startup.texi Remove _BSD_SOURCE and _SVID_SOURCE. 2014-02-11 23:40:07 +00:00
stdio-fp.c
stdio.texi Split large string section; add truncation advice 2015-12-10 08:29:30 -08:00
string.texi Split large string section; add truncation advice 2015-12-10 08:29:30 -08:00
summary.awk Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sysinfo.texi Make obsolete syscall wrappers into compat symbols (bug 18472). 2015-12-14 22:52:15 +00:00
syslog.texi * manual/syslog.texi: Document MTASC-safety properties. 2014-02-01 01:22:09 -02:00
terminal.texi * manual/terminal.texi: Document MTASC-safety properties. 2014-02-01 03:53:15 -02:00
texinfo.tex Update miscellaneous files from upstream sources. 2014-06-26 20:13:44 +00:00
texis.awk
threads.texi Remove CPU set size checking from affinity functions [BZ #19143] 2015-11-24 17:21:01 +01:00
time.texi * manual/time.texi (TZ Variable): glibc no longer comes with tzdata. 2015-02-16 15:32:34 -08:00
tsort.awk Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
users.texi manual: cuserid is mtasurace if not passed a string 2014-11-21 02:15:09 -02:00
xtract-typefun.awk