mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-05 12:40:55 +08:00
nptl: Remove tst-cancel-wrappers test and related macros
With upcoming BZ#12683 fix, syscall cancellation is not more handled by {libc,pthread,librt}_{enable,disable}_asynccancel symbols. This renders both LIBC_CANCEL_HANDLED and empty declaration and tst-cancel-wrappers.sh unrequired. This patch removes both the macro and the nptl test. Checked on x86_64-linux-gnu. * io/creat.c (LIBC_CANCEL_HANDLED): Remove macro. * io/ppoll.c (LIBC_CANCEL_HANDLED): Likewise. * misc/pselect.c (LIBC_CANCEL_HANDLED): Likewise. * nptl/pthreadP.h (LIBC_CANCEL_HANDLED): Likewise. * sysdeps/generic/sysdep-cancel.h (LIBC_CANCEL_HANDLED): Likewise. * sysdeps/mach/hurd/sysdep-cancel.h (LIBC_CANCEL_HANDLED): Likewise. * sysdeps/posix/pause.c (LIBC_CANCEL_HANDLED): Likewise. * sysdeps/posix/sigpause.c (LIBC_CANCEL_HANDLED): Likewise. * sysdeps/unix/sysv/linux/creat.c (LIBC_CANCEL_HANDLED): Likewise. * sysdeps/unix/sysv/linux/creat64.c (LIBC_CANCEL_HANDLED): Likewise. * sysdeps/unix/sysv/linux/sigwait.c (LIBC_CANCEL_HANDLED): Likewise. * sysdeps/unix/sysv/linux/sigwaitinfo.c (LIBC_CANCEL_HANDLED): Likewise. * nptl/Makefile [$(run-built-tests) = yes] (tests-special): Remove tst-cancel-wrappers.sh. (generated): Remove tst-cancel-wrappers.out. (tst-cancel-wrappers.out): Remove rule. * nptl/tst-cancel-wrappers.sh: Remove file.
This commit is contained in:
parent
7d7af8f17d
commit
17cc27d5b7
21
ChangeLog
21
ChangeLog
@ -1,3 +1,24 @@
|
|||||||
|
2019-01-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||||
|
|
||||||
|
* io/creat.c (LIBC_CANCEL_HANDLED): Remove macro.
|
||||||
|
* io/ppoll.c (LIBC_CANCEL_HANDLED): Likewise.
|
||||||
|
* misc/pselect.c (LIBC_CANCEL_HANDLED): Likewise.
|
||||||
|
* nptl/pthreadP.h (LIBC_CANCEL_HANDLED): Likewise.
|
||||||
|
* sysdeps/generic/sysdep-cancel.h (LIBC_CANCEL_HANDLED): Likewise.
|
||||||
|
* sysdeps/mach/hurd/sysdep-cancel.h (LIBC_CANCEL_HANDLED): Likewise.
|
||||||
|
* sysdeps/posix/pause.c (LIBC_CANCEL_HANDLED): Likewise.
|
||||||
|
* sysdeps/posix/sigpause.c (LIBC_CANCEL_HANDLED): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/creat.c (LIBC_CANCEL_HANDLED): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/creat64.c (LIBC_CANCEL_HANDLED): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/sigwait.c (LIBC_CANCEL_HANDLED): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/sigwaitinfo.c (LIBC_CANCEL_HANDLED):
|
||||||
|
Likewise.
|
||||||
|
* nptl/Makefile [$(run-built-tests) = yes] (tests-special): Remove
|
||||||
|
tst-cancel-wrappers.sh.
|
||||||
|
(generated): Remove tst-cancel-wrappers.out.
|
||||||
|
(tst-cancel-wrappers.out): Remove rule.
|
||||||
|
* nptl/tst-cancel-wrappers.sh: Remove file.
|
||||||
|
|
||||||
2019-01-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
2019-01-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h: Add comment.
|
* sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h: Add comment.
|
||||||
|
@ -27,6 +27,3 @@ creat (const char *file, mode_t mode)
|
|||||||
{
|
{
|
||||||
return __open (file, O_WRONLY|O_CREAT|O_TRUNC, mode);
|
return __open (file, O_WRONLY|O_CREAT|O_TRUNC, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* __open handles cancellation. */
|
|
||||||
LIBC_CANCEL_HANDLED ();
|
|
||||||
|
@ -70,7 +70,5 @@ ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef ppoll
|
#ifndef ppoll
|
||||||
/* __poll handles cancellation. */
|
|
||||||
LIBC_CANCEL_HANDLED ();
|
|
||||||
libc_hidden_def (ppoll);
|
libc_hidden_def (ppoll);
|
||||||
#endif
|
#endif
|
||||||
|
@ -73,6 +73,4 @@ __pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
|
|||||||
}
|
}
|
||||||
#ifndef __pselect
|
#ifndef __pselect
|
||||||
weak_alias (__pselect, pselect)
|
weak_alias (__pselect, pselect)
|
||||||
/* __select handles cancellation. */
|
|
||||||
LIBC_CANCEL_HANDLED ();
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -465,8 +465,7 @@ tests-reverse += tst-cancel5 tst-cancel23 tst-vfork1x tst-vfork2x
|
|||||||
ifeq ($(run-built-tests),yes)
|
ifeq ($(run-built-tests),yes)
|
||||||
tests-special += $(objpfx)tst-stack3-mem.out $(objpfx)tst-oddstacklimit.out
|
tests-special += $(objpfx)tst-stack3-mem.out $(objpfx)tst-oddstacklimit.out
|
||||||
ifeq ($(build-shared),yes)
|
ifeq ($(build-shared),yes)
|
||||||
tests-special += $(objpfx)tst-tls6.out $(objpfx)tst-cleanup0-cmp.out \
|
tests-special += $(objpfx)tst-tls6.out $(objpfx)tst-cleanup0-cmp.out
|
||||||
$(objpfx)tst-cancel-wrappers.out
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -669,8 +668,7 @@ $(objpfx)$(multidir)/crtn.o: $(objpfx)crtn.o $(objpfx)$(multidir)/
|
|||||||
ln -f $< $@
|
ln -f $< $@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
generated += multidir.mk tst-atfork2.mtrace tst-cancel-wrappers.out \
|
generated += multidir.mk tst-atfork2.mtrace tst-tls6.out
|
||||||
tst-tls6.out
|
|
||||||
|
|
||||||
generated += $(objpfx)tst-atfork2.mtrace \
|
generated += $(objpfx)tst-atfork2.mtrace \
|
||||||
$(addsuffix .so,$(strip $(modules-names)))
|
$(addsuffix .so,$(strip $(modules-names)))
|
||||||
@ -681,18 +679,6 @@ LDFLAGS-pthread.so += -e __nptl_main
|
|||||||
$(objpfx)pt-interp.os: $(common-objpfx)runtime-linker.h
|
$(objpfx)pt-interp.os: $(common-objpfx)runtime-linker.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(run-built-tests),yes)
|
|
||||||
ifeq (yes,$(build-shared))
|
|
||||||
$(objpfx)tst-cancel-wrappers.out: tst-cancel-wrappers.sh
|
|
||||||
$(SHELL) $< '$(NM)' \
|
|
||||||
$(common-objpfx)libc_pic.a \
|
|
||||||
$(common-objpfx)libc.a \
|
|
||||||
$(objpfx)libpthread_pic.a \
|
|
||||||
$(objpfx)libpthread.a > $@; \
|
|
||||||
$(evaluate-test)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
tst-exec4-ARGS = $(host-test-program-cmd)
|
tst-exec4-ARGS = $(host-test-program-cmd)
|
||||||
|
|
||||||
$(objpfx)tst-execstack: $(libdl)
|
$(objpfx)tst-execstack: $(libdl)
|
||||||
|
@ -325,27 +325,17 @@ __do_cancel (void)
|
|||||||
/* Same as CANCEL_RESET, but for use in libc.so. */
|
/* Same as CANCEL_RESET, but for use in libc.so. */
|
||||||
# define LIBC_CANCEL_RESET(oldtype) \
|
# define LIBC_CANCEL_RESET(oldtype) \
|
||||||
__libc_disable_asynccancel (oldtype)
|
__libc_disable_asynccancel (oldtype)
|
||||||
# define LIBC_CANCEL_HANDLED() \
|
|
||||||
__asm (".globl " __SYMBOL_PREFIX "__libc_enable_asynccancel"); \
|
|
||||||
__asm (".globl " __SYMBOL_PREFIX "__libc_disable_asynccancel")
|
|
||||||
#elif IS_IN (libpthread)
|
#elif IS_IN (libpthread)
|
||||||
# define LIBC_CANCEL_ASYNC() CANCEL_ASYNC ()
|
# define LIBC_CANCEL_ASYNC() CANCEL_ASYNC ()
|
||||||
# define LIBC_CANCEL_RESET(val) CANCEL_RESET (val)
|
# define LIBC_CANCEL_RESET(val) CANCEL_RESET (val)
|
||||||
# define LIBC_CANCEL_HANDLED() \
|
|
||||||
__asm (".globl " __SYMBOL_PREFIX "__pthread_enable_asynccancel"); \
|
|
||||||
__asm (".globl " __SYMBOL_PREFIX "__pthread_disable_asynccancel")
|
|
||||||
#elif IS_IN (librt)
|
#elif IS_IN (librt)
|
||||||
# define LIBC_CANCEL_ASYNC() \
|
# define LIBC_CANCEL_ASYNC() \
|
||||||
__librt_enable_asynccancel ()
|
__librt_enable_asynccancel ()
|
||||||
# define LIBC_CANCEL_RESET(val) \
|
# define LIBC_CANCEL_RESET(val) \
|
||||||
__librt_disable_asynccancel (val)
|
__librt_disable_asynccancel (val)
|
||||||
# define LIBC_CANCEL_HANDLED() \
|
|
||||||
__asm (".globl " __SYMBOL_PREFIX "__librt_enable_asynccancel"); \
|
|
||||||
__asm (".globl " __SYMBOL_PREFIX "__librt_disable_asynccancel")
|
|
||||||
#else
|
#else
|
||||||
# define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
|
# define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
|
||||||
# define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
|
# define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
|
||||||
# define LIBC_CANCEL_HANDLED() /* Nothing. */
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,92 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Test whether all cancelable functions are cancelable.
|
|
||||||
# Copyright (C) 2002-2019 Free Software Foundation, Inc.
|
|
||||||
# This file is part of the GNU C Library.
|
|
||||||
# Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
|
|
||||||
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
NM="$1"; shift
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
( $NM -P $1; echo 'end[end]:' ) | gawk ' BEGIN {
|
|
||||||
C["accept"]=1
|
|
||||||
C["close"]=1
|
|
||||||
C["connect"]=1
|
|
||||||
C["creat"]=1
|
|
||||||
C["fcntl"]=1
|
|
||||||
C["fdatasync"]=1
|
|
||||||
C["fsync"]=1
|
|
||||||
C["msgrcv"]=1
|
|
||||||
C["msgsnd"]=1
|
|
||||||
C["msync"]=1
|
|
||||||
C["nanosleep"]=1
|
|
||||||
C["open"]=1
|
|
||||||
C["open64"]=1
|
|
||||||
C["pause"]=1
|
|
||||||
C["poll"]=1
|
|
||||||
C["pread"]=1
|
|
||||||
C["pread64"]=1
|
|
||||||
C["pselect"]=1
|
|
||||||
C["pwrite"]=1
|
|
||||||
C["pwrite64"]=1
|
|
||||||
C["read"]=1
|
|
||||||
C["readv"]=1
|
|
||||||
C["recv"]=1
|
|
||||||
C["recvfrom"]=1
|
|
||||||
C["recvmsg"]=1
|
|
||||||
C["select"]=1
|
|
||||||
C["send"]=1
|
|
||||||
C["sendmsg"]=1
|
|
||||||
C["sendto"]=1
|
|
||||||
C["sigpause"]=1
|
|
||||||
C["sigsuspend"]=1
|
|
||||||
C["sigwait"]=1
|
|
||||||
C["sigwaitinfo"]=1
|
|
||||||
C["tcdrain"]=1
|
|
||||||
C["wait"]=1
|
|
||||||
C["waitid"]=1
|
|
||||||
C["waitpid"]=1
|
|
||||||
C["write"]=1
|
|
||||||
C["writev"]=1
|
|
||||||
C["__xpg_sigpause"]=1
|
|
||||||
}
|
|
||||||
/:$/ {
|
|
||||||
if (seen)
|
|
||||||
{
|
|
||||||
if (!seen_enable || !seen_disable)
|
|
||||||
{
|
|
||||||
printf "in '$1'(%s) %s'\''s cancellation missing\n", object, seen
|
|
||||||
ret = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
seen=""
|
|
||||||
seen_enable=""
|
|
||||||
seen_disable=""
|
|
||||||
object=gensub(/^.*\[(.*)\]:$/, "\\1", 1, $0)
|
|
||||||
next
|
|
||||||
}
|
|
||||||
{
|
|
||||||
if (C[$1] && $2 ~ /^[TW]$/)
|
|
||||||
seen=$1
|
|
||||||
else if ($1 ~ /^([.]|)__(libc|pthread)_enable_asynccancel$/ && $2 == "U")
|
|
||||||
seen_enable=1
|
|
||||||
else if ($1 ~ /^([.]|)__(libc|pthread)_disable_asynccancel$/ && $2 == "U")
|
|
||||||
seen_disable=1
|
|
||||||
}
|
|
||||||
END {
|
|
||||||
exit ret
|
|
||||||
}' || exit
|
|
||||||
shift
|
|
||||||
done
|
|
@ -5,4 +5,3 @@
|
|||||||
#define RTLD_SINGLE_THREAD_P (1)
|
#define RTLD_SINGLE_THREAD_P (1)
|
||||||
#define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
|
#define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
|
||||||
#define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
|
#define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
|
||||||
#define LIBC_CANCEL_HANDLED() /* Nothing. */
|
|
||||||
|
@ -6,4 +6,3 @@
|
|||||||
#define RTLD_SINGLE_THREAD_P (0)
|
#define RTLD_SINGLE_THREAD_P (0)
|
||||||
#define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
|
#define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
|
||||||
#define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
|
#define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
|
||||||
#define LIBC_CANCEL_HANDLED() /* Nothing. */
|
|
||||||
|
@ -38,5 +38,3 @@ __libc_pause (void)
|
|||||||
return __sigsuspend (&set);
|
return __sigsuspend (&set);
|
||||||
}
|
}
|
||||||
weak_alias (__libc_pause, pause)
|
weak_alias (__libc_pause, pause)
|
||||||
|
|
||||||
LIBC_CANCEL_HANDLED (); /* sigsuspend handles our cancellation. */
|
|
||||||
|
@ -70,6 +70,3 @@ __xpg_sigpause (int sig)
|
|||||||
return __sigpause (sig, 1);
|
return __sigpause (sig, 1);
|
||||||
}
|
}
|
||||||
strong_alias (__xpg_sigpause, __libc___xpg_sigpause)
|
strong_alias (__xpg_sigpause, __libc___xpg_sigpause)
|
||||||
|
|
||||||
/* __sigsuspend handles cancellation. */
|
|
||||||
LIBC_CANCEL_HANDLED ();
|
|
||||||
|
@ -35,6 +35,4 @@ __creat (const char *file, mode_t mode)
|
|||||||
}
|
}
|
||||||
weak_alias (__creat, creat)
|
weak_alias (__creat, creat)
|
||||||
|
|
||||||
LIBC_CANCEL_HANDLED ();
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -37,5 +37,3 @@ weak_alias (__creat64, creat64)
|
|||||||
strong_alias (__creat64, __creat)
|
strong_alias (__creat64, __creat)
|
||||||
weak_alias (__creat64, creat)
|
weak_alias (__creat64, creat)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
LIBC_CANCEL_HANDLED ();
|
|
||||||
|
@ -37,6 +37,3 @@ __sigwait (const sigset_t *set, int *sig)
|
|||||||
libc_hidden_def (__sigwait)
|
libc_hidden_def (__sigwait)
|
||||||
weak_alias (__sigwait, sigwait)
|
weak_alias (__sigwait, sigwait)
|
||||||
strong_alias (__sigwait, __libc_sigwait)
|
strong_alias (__sigwait, __libc_sigwait)
|
||||||
|
|
||||||
/* __sigtimedwait handles cancellation. */
|
|
||||||
LIBC_CANCEL_HANDLED ();
|
|
||||||
|
@ -28,6 +28,3 @@ __sigwaitinfo (const sigset_t *set, siginfo_t *info)
|
|||||||
libc_hidden_def (__sigwaitinfo)
|
libc_hidden_def (__sigwaitinfo)
|
||||||
weak_alias (__sigwaitinfo, sigwaitinfo)
|
weak_alias (__sigwaitinfo, sigwaitinfo)
|
||||||
strong_alias (__sigwaitinfo, __libc_sigwaitinfo)
|
strong_alias (__sigwaitinfo, __libc_sigwaitinfo)
|
||||||
|
|
||||||
/* __sigtimedwait handles cancellation. */
|
|
||||||
LIBC_CANCEL_HANDLED ();
|
|
||||||
|
Loading…
Reference in New Issue
Block a user