diff options
-rw-r--r-- | ChangeLog | 18 | ||||
-rw-r--r-- | NEWS | 7 | ||||
-rw-r--r-- | manual/sysinfo.texi | 2 | ||||
-rw-r--r-- | sysdeps/unix/Makefile | 14 | ||||
-rw-r--r-- | sysdeps/unix/make-syscalls.sh | 21 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/Makefile | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/kdaemon.h | 32 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/syscalls.list | 10 |
8 files changed, 58 insertions, 48 deletions
@@ -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 @@ -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..bbef3eb3 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 |