mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
BZ#14138: Move getrlimit (ugetrlimit) syscall to syscalls.list.
This commit is contained in:
parent
7e66ee5142
commit
09c0ee5f8c
14
ChangeLog
14
ChangeLog
@ -1,3 +1,17 @@
|
||||
2012-08-01 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
[BZ #14138]
|
||||
* sysdeps/unix/sysv/linux/syscalls.list: Add getrlimit/ugetrlimit line.
|
||||
* sysdeps/unix/sysv/linux/i386/getrlimit.c: File removed.
|
||||
* sysdeps/unix/sysv/linux/powerpc/getrlimit.c: File removed.
|
||||
* sysdeps/unix/sysv/linux/sh/getrlimit.c: File removed.
|
||||
|
||||
* sysdeps/unix/make-syscalls.sh: Emit uses of the versioned_symbol and
|
||||
compat_symbol macros from <shlib-compat.h> rather than the underlying
|
||||
default_symbol_version and symbol_version macros, so that DEFAULT
|
||||
lines in shlib-versions are respected.
|
||||
* sysdeps/unix/Makefile ($(objpfx)stub-syscalls.c): Likewise.
|
||||
|
||||
2012-08-01 Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
* posix/unistd.h (setuid, setreuid, seteuid, setresuid):
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-08-01 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
[BZ #14138]
|
||||
* sysdeps/unix/sysv/linux/am33/getrlimit.c: File removed.
|
||||
|
||||
2012-03-09 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
[BZ #13673]
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-08-01 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
[BZ #14138]
|
||||
* sysdeps/unix/sysv/linux/arm/getrlimit.c: File removed.
|
||||
|
||||
2012-07-30 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/arm/preconfigure: Don't refuse configurations with
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-08-01 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
[BZ #14138]
|
||||
* sysdeps/unix/sysv/linux/m68k/getrlimit.c: File removed.
|
||||
|
||||
2012-08-01 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update.
|
||||
|
@ -1 +0,0 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/getrlimit.c>
|
@ -1 +0,0 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/getrlimit.c>
|
@ -1 +0,0 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/getrlimit.c>
|
@ -37,23 +37,29 @@ $(objpfx)stub-syscalls.c: $(common-objpfx)sysd-syscalls \
|
||||
$(..)sysdeps/unix/Makefile
|
||||
$(make-target-directory)
|
||||
(for call in $(unix-stub-syscalls); do \
|
||||
call=$${call%%@*}; \
|
||||
echo "#define $$call RENAMED_$$call"; \
|
||||
done; \
|
||||
echo '#include <errno.h>'; \
|
||||
echo '#include <shlib-compat.h>'; \
|
||||
for call in $(unix-stub-syscalls); do \
|
||||
call=$${call%%@*}; \
|
||||
echo "#undef $$call"; \
|
||||
done; \
|
||||
echo 'long int _no_syscall (void)'; \
|
||||
echo '{ __set_errno (ENOSYS); return -1L; }'; \
|
||||
for call in $(unix-stub-syscalls); do \
|
||||
case $$call in \
|
||||
*@@*) ver=$${call##*@}; call=$${call%%*@}; \
|
||||
echo "strong_alias (_no_syscall, $${call}_$${ver})"; \
|
||||
echo "default_symbol_version \
|
||||
($${call}_$${ver}, $$call, $$ver);" ;; \
|
||||
*@*) ver=$${call##*@}; call=$${call%%*@}; \
|
||||
echo "strong_alias (_no_syscall, $${call}_$${ver})"; \
|
||||
echo "symbol_version ($${call}_$${ver}, $$call, $$ver);" ;; \
|
||||
*@@*) \
|
||||
ver=$${call##*@}; call=$${call%%@*}; ver=$${ver//./_}; \
|
||||
echo "strong_alias (_no_syscall, __$${call}_$${ver})"; \
|
||||
echo "versioned_symbol (libc, __$${call}_$${ver}, $$call, $$ver);"\
|
||||
;; \
|
||||
*@*) \
|
||||
ver=$${call##*@}; call=$${call%%@*}; ver=$${ver//./_}; \
|
||||
echo "strong_alias (_no_syscall, __$${call}_$${ver})"; \
|
||||
echo "compat_symbol (libc, __$${call}_$${ver}, $$call, $$ver);" \
|
||||
;; \
|
||||
*) echo "weak_alias (_no_syscall, $$call)"; \
|
||||
echo "stub_warning ($$call)"; \
|
||||
echo "weak_alias (_no_syscall, __GI_$$call)" ;; \
|
||||
|
@ -64,18 +64,30 @@ done`
|
||||
# Any calls left?
|
||||
test -n "$calls" || exit 0
|
||||
|
||||
# This uses variables $weak and $strong.
|
||||
# This uses variables $weak, $strong, and $any_versioned.
|
||||
emit_weak_aliases()
|
||||
{
|
||||
# A shortcoming in the current gas is that it will only allow one
|
||||
# version-alias per symbol. So we create new strong aliases as needed.
|
||||
vcount=""
|
||||
|
||||
# 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.
|
||||
if [ $any_versioned = t ]; then
|
||||
echo " echo '#include <shlib-compat.h>'; \\"
|
||||
fi
|
||||
|
||||
for name in $weak; do
|
||||
case $name in
|
||||
*@@*)
|
||||
base=`echo $name | sed 's/@@.*//'`
|
||||
ver=`echo $name | sed 's/.*@@//'`
|
||||
ver=`echo $name | sed 's/.*@@//;s/\./_/g'`
|
||||
echo " echo '#ifndef NOT_IN_libc'; \\"
|
||||
if test -z "$vcount" ; then
|
||||
source=$strong
|
||||
@ -85,14 +97,14 @@ emit_weak_aliases()
|
||||
vcount=`expr $vcount + 1`
|
||||
echo " echo 'strong_alias ($strong, $source)'; \\"
|
||||
fi
|
||||
echo " echo 'default_symbol_version($source, $base, $ver)'; \\"
|
||||
echo " echo 'versioned_symbol (libc, $source, $base, $ver)'; \\"
|
||||
echo " echo '#else'; \\"
|
||||
echo " echo 'strong_alias ($strong, $base)'; \\"
|
||||
echo " echo '#endif'; \\"
|
||||
;;
|
||||
*@*)
|
||||
base=`echo $name | sed 's/@.*//'`
|
||||
ver=`echo $name | sed 's/.*@//'`
|
||||
ver=`echo $name | sed 's/.*@//;s/\./_/g'`
|
||||
echo " echo '#ifndef NOT_IN_libc'; \\"
|
||||
if test -z "$vcount" ; then
|
||||
source=$strong
|
||||
@ -102,7 +114,7 @@ emit_weak_aliases()
|
||||
vcount=`expr $vcount + 1`
|
||||
echo " echo 'strong_alias ($strong, $source)'; \\"
|
||||
fi
|
||||
echo " echo 'symbol_version ($source, $base, $ver)'; \\"
|
||||
echo " echo 'compat_symbol (libc, $source, $base, $ver)'; \\"
|
||||
echo " echo '#endif'; \\"
|
||||
;;
|
||||
!*)
|
||||
@ -175,10 +187,11 @@ while read file srcfile caller syscall args strong weak; do
|
||||
|
||||
# If there are versioned aliases the entry is only generated for the
|
||||
# shared library, unless it is a default version.
|
||||
any_versioned=f
|
||||
shared_only=f
|
||||
case $weak in
|
||||
*@@*) ;;
|
||||
*@*) shared_only=t;;
|
||||
*@@*) any_versioned=t ;;
|
||||
*@*) any_versioned=t shared_only=t ;;
|
||||
esac
|
||||
|
||||
case x$srcfile"$callnum" in
|
||||
|
@ -1,38 +0,0 @@
|
||||
/* Copyright (C) 1999-2012 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/>. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <sys/resource.h>
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <shlib-compat.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
extern int __new_getrlimit (enum __rlimit_resource resource,
|
||||
struct rlimit *__unbounded rlimits);
|
||||
|
||||
/* Consider moving to syscalls.list. */
|
||||
|
||||
int
|
||||
__new_getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits)
|
||||
{
|
||||
return INLINE_SYSCALL (ugetrlimit, 2, resource, CHECK_1 (rlimits));
|
||||
}
|
||||
|
||||
weak_alias (__new_getrlimit, __getrlimit);
|
||||
versioned_symbol (libc, __new_getrlimit, getrlimit, GLIBC_2_2);
|
@ -1 +0,0 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/getrlimit.c>
|
@ -1 +0,0 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/getrlimit.c>
|
@ -25,6 +25,7 @@ getpmsg - getpmsg i:ipppp getpmsg
|
||||
getppid - getppid Ei: __getppid getppid
|
||||
getresuid - getresuid i:ppp getresuid
|
||||
getresgid - getresgid i:ppp getresgid
|
||||
getrlimit - ugetrlimit i:ip __new_getrlimit __getrlimit getrlimit@@GLIBC_2.2
|
||||
getsid - getsid i:i getsid
|
||||
init_module EXTRA init_module 5 init_module
|
||||
inotify_add_watch EXTRA inotify_add_watch i:isi inotify_add_watch
|
||||
|
Loading…
Reference in New Issue
Block a user