* configure.in: Avoid variable named BASH.
[glibc.git] / nptl / tst-cancel-wrappers.sh
blob61b9fb52de171f5f4b796daca11f80c3e2ea772f
1 #! /bin/sh
2 # Test whether all cancelable functions are cancelable.
3 # Copyright (C) 2002, 2003, 2007 Free Software Foundation, Inc.
4 # This file is part of the GNU C Library.
5 # Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
7 # The GNU C Library is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU Lesser General Public
9 # License as published by the Free Software Foundation; either
10 # version 2.1 of the License, or (at your option) any later version.
12 # The GNU C Library is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # Lesser General Public License for more details.
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with the GNU C Library; if not, write to the Free
19 # Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20 # 02111-1307 USA.
22 while [ $# -gt 0 ]; do
23 ( nm -P $1; echo 'end[end]:' ) | gawk ' BEGIN {
24 C["accept"]=1
25 C["close"]=1
26 C["connect"]=1
27 C["creat"]=1
28 C["fcntl"]=1
29 C["fdatasync"]=1
30 C["fsync"]=1
31 C["msgrcv"]=1
32 C["msgsnd"]=1
33 C["msync"]=1
34 C["nanosleep"]=1
35 C["open"]=1
36 C["open64"]=1
37 C["pause"]=1
38 C["poll"]=1
39 C["pread"]=1
40 C["pread64"]=1
41 C["pselect"]=1
42 C["pwrite"]=1
43 C["pwrite64"]=1
44 C["read"]=1
45 C["readv"]=1
46 C["recv"]=1
47 C["recvfrom"]=1
48 C["recvmsg"]=1
49 C["select"]=1
50 C["send"]=1
51 C["sendmsg"]=1
52 C["sendto"]=1
53 C["sigpause"]=1
54 C["sigsuspend"]=1
55 C["sigwait"]=1
56 C["sigwaitinfo"]=1
57 C["system"]=1
58 C["tcdrain"]=1
59 C["wait"]=1
60 C["waitid"]=1
61 C["waitpid"]=1
62 C["write"]=1
63 C["writev"]=1
64 C["__xpg_sigpause"]=1
66 /:$/ {
67 if (seen)
69 if (!seen_enable || !seen_disable)
71 printf "in '$1'(%s) %s'\''s cancellation missing\n", object, seen
72 ret = 1
75 seen=""
76 seen_enable=""
77 seen_disable=""
78 object=gensub(/^.*\[(.*)\]:$/,"\\1","",$0)
79 next
82 if (C[$1] && $2 ~ /^[TW]$/)
83 seen=$1
84 else if ($1 ~ /^([.]|)__(libc|pthread)_enable_asynccancel$/ && $2 == "U")
85 seen_enable=1
86 else if ($1 ~ /^([.]|)__(libc|pthread)_disable_asynccancel$/ && $2 == "U")
87 seen_disable=1
89 END {
90 exit ret
91 }' || exit
92 shift
93 done