diff options
Diffstat (limited to 'sysdeps/unix')
-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 |
5 files changed, 33 insertions, 46 deletions
diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile index 1770d1df98..48f5ec591f 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 fbf96605e0..bbef3eb360 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 3eb4a7d4f9..f6269ea3d8 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 67ab6d38e0..0000000000 --- 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 62bb3cc36d..caa6ccfbb1 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 |