This is the mail archive of the glibc-cvs@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]

GNU C Library master sources branch master updated. glibc-2.22-603-geed3e1e


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  eed3e1eb79bcfa9b52609fd875fa2d522e2d6bce (commit)
      from  5db0877750f1e2a1983e1f5e43bd0cc68058f684 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=eed3e1eb79bcfa9b52609fd875fa2d522e2d6bce

commit eed3e1eb79bcfa9b52609fd875fa2d522e2d6bce
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Mon Dec 14 22:52:15 2015 +0000

    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.

diff --git a/ChangeLog b/ChangeLog
index 13be8a8..aadde3f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2015-12-14  Joseph Myers  <joseph@codesourcery.com>
+
+	[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-11  Aurelien Jarno  <aurelien@aurel32.net>
 
 	* sysdeps/unix/sysv/linux/arm/ioperm.c: Do not include
diff --git a/NEWS b/NEWS
index 86d8ab6..2280610 100644
--- a/NEWS
+++ b/NEWS
@@ -53,6 +53,13 @@ Version 2.23
 * The obsolete header <regexp.h> has been removed.  Programs that require
   this header must be updated to use <regex.h> instead.
 
+* The obsolete functions bdflush, create_module, get_kernel_syms,
+  query_module and uselib are no longer available to newly linked binaries;
+  the header <sys/kdaemon.h> has been removed.  These functions and header
+  were specific to systems using the Linux kernel and could not usefully be
+  used with the GNU C Library on systems with version 2.6 or later of the
+  Linux kernel.
+
 * Optimized string, wcsmbs and memory functions for IBM z13.
   Implemented by Stefan Liebler.
 
diff --git a/manual/sysinfo.texi b/manual/sysinfo.texi
index e6c44d6..1fbfb95 100644
--- a/manual/sysinfo.texi
+++ b/manual/sysinfo.texi
@@ -1286,6 +1286,4 @@ parameters are:
 @code{gethostname}, @code{sethostname} (@xref{Host Identification}.)
 @item
 @code{uname} (@xref{Platform Type}.)
-@item
-@code{bdflush}
 @end itemize
diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile
index 1770d1d..48f5ec5 100644
--- a/sysdeps/unix/Makefile
+++ b/sysdeps/unix/Makefile
@@ -59,8 +59,20 @@ $(objpfx)stub-syscalls.c: $(common-objpfx)sysd-syscalls \
 	   *@*) \
 	     ver=$${call##*@}; call=$${call%%@*}; \
 	     ver=`echo "$$ver" | sed 's/\./_/g'`; \
+	     case $$ver in \
+	     *:*) \
+	       compat_ver=$${ver#*:}; \
+	       ver=$${ver%%:*}; \
+	       compat_cond="SHLIB_COMPAT (libc, $$ver, $$compat_ver)"; \
+	       ;; \
+	     *) \
+	       compat_cond=""; \
+	       ;; \
+	     esac; \
+	     if [ -n "$$compat_cond" ]; then echo "#if $$compat_cond"; fi; \
 	     echo "strong_alias (_no_syscall, __$${call}_$${ver})"; \
-	     echo "compat_symbol (libc, __$${call}_$${ver}, $$call, $$ver);" \
+	     echo "compat_symbol (libc, __$${call}_$${ver}, $$call, $$ver);"; \
+	     if [ -n "$$compat_cond" ]; then echo "#endif"; fi; \
 	     ;; \
 	   *) echo "weak_alias (_no_syscall, $$call)"; \
 	      echo "stub_warning ($$call)"; \
diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
index fbf9660..bbef3eb 100644
--- a/sysdeps/unix/make-syscalls.sh
+++ b/sysdeps/unix/make-syscalls.sh
@@ -81,12 +81,9 @@ emit_weak_aliases()
 
   # We use the <shlib-compat.h> macros to generate the versioned aliases
   # so that the version sets can be mapped to the configuration's
-  # minimum version set as per shlib-versions DEFAULT lines.  But note
-  # we don't generate any "#if SHLIB_COMPAT (...)" conditionals.  To do
-  # that we'd need to change the syscalls.list format so that it can
-  # list the "obsoleted" version set too.  If it ever arises that we
-  # have a syscall entry point that is obsoleted by a newer version set,
-  # we'll have to revamp all this.
+  # minimum version set as per shlib-versions DEFAULT lines.  If an
+  # entry point is specified in the form NAME@VERSION:OBSOLETED, a
+  # SHLIB_COMPAT conditional is generated.
   if [ $any_versioned = t ]; then
     echo "	 echo '#include <shlib-compat.h>'; \\"
   fi
@@ -113,7 +110,17 @@ emit_weak_aliases()
       *@*)
 	base=`echo $name | sed 's/@.*//'`
 	ver=`echo $name | sed 's/.*@//;s/\./_/g'`
-	echo "	 echo '#if defined SHARED && IS_IN (libc)'; \\"
+	case $ver in
+	  *:*)
+	    compat_ver=${ver#*:}
+	    ver=${ver%%:*}
+	    compat_cond=" && SHLIB_COMPAT (libc, $ver, $compat_ver)"
+	    ;;
+	  *)
+	    compat_cond=
+	    ;;
+	esac
+	echo "	 echo '#if defined SHARED && IS_IN (libc)$compat_cond'; \\"
 	if test -z "$vcount" ; then
 	  source=$strong
 	  vcount=1
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 3eb4a7d..f6269ea 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -29,7 +29,7 @@ CFLAGS-tst-writev.c += "-DARTIFICIAL_LIMIT=0x80000000-__getpagesize()"
 # here and in any non-Linux configuration that uses it; other
 # configurations will not install the file.
 sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
-		  sys/klog.h sys/kdaemon.h \
+		  sys/klog.h \
 		  sys/user.h sys/prctl.h \
 		  sys/kd.h sys/soundcard.h sys/vt.h \
 		  sys/quota.h sys/fsuid.h \
diff --git a/sysdeps/unix/sysv/linux/sys/kdaemon.h b/sysdeps/unix/sysv/linux/sys/kdaemon.h
deleted file mode 100644
index 67ab6d3..0000000
--- a/sysdeps/unix/sysv/linux/sys/kdaemon.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1996-2015 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Interfaces to control the various kernel daemons.  */
-
-#ifndef _SYS_KDAEMON_H
-
-#define _SYS_KDAEMON_H	1
-#include <features.h>
-
-__BEGIN_DECLS
-
-/* Start, flush, or tune the kernel's buffer flushing daemon.  */
-extern int bdflush (int __func, long int __data) __THROW;
-
-__END_DECLS
-
-#endif /* _SYS_KDAEMON_H */
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index 62bb3cc..caa6ccf 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -2,12 +2,12 @@
 
 adjtimex	adjtime	adjtimex	i:p	__adjtimex	adjtimex ntp_adjtime
 alarm		-	alarm		i:i	alarm
-bdflush		EXTRA	bdflush		i:ii	bdflush
+bdflush		EXTRA	bdflush		i:ii	__compat_bdflush	bdflush@GLIBC_2.0:GLIBC_2.23
 capget		EXTRA	capget		i:pp	capget
 capset		EXTRA	capset		i:pp	capset
 clock_adjtime	EXTRA	clock_adjtime	i:ip	clock_adjtime
 creat		-	creat		Ci:si	creat
-create_module	EXTRA	create_module	3	create_module
+create_module	EXTRA	create_module	3	__compat_create_module	create_module@GLIBC_2.0:GLIBC_2.23
 delete_module	EXTRA	delete_module	3	delete_module
 epoll_create	EXTRA	epoll_create	i:i	epoll_create
 epoll_create1	EXTRA	epoll_create1	i:i	epoll_create1
@@ -16,7 +16,7 @@ epoll_wait	EXTRA	epoll_wait	Ci:ipii	epoll_wait
 execve		-	execve		i:spp	__execve	execve
 fdatasync	-	fdatasync	Ci:i	fdatasync
 flock		-	flock		i:ii	__flock		flock
-get_kernel_syms	EXTRA	get_kernel_syms	i:p	get_kernel_syms
+get_kernel_syms	EXTRA	get_kernel_syms	i:p	__compat_get_kernel_syms	get_kernel_syms@GLIBC_2.0:GLIBC_2.23
 getegid		-	getegid		Ei:	__getegid	getegid
 geteuid		-	geteuid		Ei:	__geteuid	geteuid
 getpgid		-	getpgid		i:i	__getpgid	getpgid
@@ -53,7 +53,7 @@ pivot_root	EXTRA	pivot_root	i:ss	pivot_root
 poll		-	poll		Ci:pii	__libc_poll	__poll poll
 prctl		EXTRA	prctl		i:iiiii	__prctl		prctl
 putpmsg		-	putpmsg		i:ippii	putpmsg
-query_module	EXTRA	query_module	i:sipip	query_module
+query_module	EXTRA	query_module	i:sipip	__compat_query_module	query_module@GLIBC_2.0:GLIBC_2.23
 quotactl	EXTRA	quotactl	i:isip	quotactl
 remap_file_pages -	remap_file_pages i:piiii	__remap_file_pages remap_file_pages
 sched_getp	-	sched_getparam	i:ip	__sched_getparam	sched_getparam
@@ -78,7 +78,7 @@ swapon		-	swapon		i:si	__swapon	swapon
 swapoff		-	swapoff		i:s	__swapoff	swapoff
 tee		EXTRA	tee		Ci:iiii	tee
 unshare		EXTRA	unshare		i:i	unshare
-uselib		EXTRA	uselib		i:s	uselib
+uselib		EXTRA	uselib		i:s	__compat_uselib	uselib@GLIBC_2.0:GLIBC_2.23
 utime		-	utime		i:sP	utime
 vmsplice	EXTRA	vmsplice	Ci:iPii	vmsplice
 wait4		-	wait4		i:iWiP	__wait4		wait4

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                             |   18 ++++++++++++++++++
 NEWS                                  |    7 +++++++
 manual/sysinfo.texi                   |    2 --
 sysdeps/unix/Makefile                 |   14 +++++++++++++-
 sysdeps/unix/make-syscalls.sh         |   21 ++++++++++++++-------
 sysdeps/unix/sysv/linux/Makefile      |    2 +-
 sysdeps/unix/sysv/linux/sys/kdaemon.h |   32 --------------------------------
 sysdeps/unix/sysv/linux/syscalls.list |   10 +++++-----
 8 files changed, 58 insertions(+), 48 deletions(-)
 delete mode 100644 sysdeps/unix/sysv/linux/sys/kdaemon.h


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]