]> sourceware.org Git - glibc.git/blame - linuxthreads/tst-cancel-wrappers.sh
Update.
[glibc.git] / linuxthreads / tst-cancel-wrappers.sh
CommitLineData
82f81a90
UD
1#! /bin/sh
2# Test whether all cancellable functions are cancellable.
3# Copyright (C) 2002 Free Software Foundation, Inc.
4# This file is part of the GNU C Library.
5# Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
6
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.
11
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.
16
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.
21
22while [ $# -gt 0 ]; do
23 ( nm -P $1; echo 'end[end]:' ) | awk ' BEGIN {
24C["accept"]=1
25C["close"]=1
26C["connect"]=1
27C["creat"]=1
28C["fcntl"]=1
29C["fsync"]=1
30C["llseek"]=1
31C["lseek"]=1
32C["msgrcv"]=1
33C["msgsnd"]=1
34C["msync"]=1
35C["nanosleep"]=1
36C["open"]=1
37C["open64"]=1
38C["pause"]=1
39C["poll"]=1
40C["pread"]=1
41C["pread64"]=1
42C["pselect"]=1
43C["pwrite"]=1
44C["pwrite64"]=1
45C["read"]=1
46C["readv"]=1
47C["recv"]=1
48C["recvfrom"]=1
49C["recvmsg"]=1
50C["select"]=1
51C["send"]=1
52C["sendmsg"]=1
53C["sendto"]=1
54C["sigpause"]=1
55C["sigsuspend"]=1
56C["sigwait"]=1
57C["sigwaitinfo"]=1
58C["system"]=1
59C["tcdrain"]=1
60C["wait"]=1
61C["waitid"]=1
62C["waitpid"]=1
63C["write"]=1
64C["writev"]=1
65C["__xpg_sigpause"]=1
66}
67/:$/ {
68 if (seen)
69 {
70 # signals.c in linuxthreads does the cancellation checks not using
71 # *_{enable,disable}_asynccancel.
270d9d47 72 # Similarly pt-system.o* is allowed to call __libc_system directly.
3b7ed871
UD
73 if ((!seen_enable || !seen_disable) \
74 && !(object ~ /^signals.o/) \
270d9d47 75 && !(object ~ /^pt-system.o/))
82f81a90
UD
76 {
77 printf "in '$1'(%s) %s'\''s cancellation missing\n", object, seen
78 ret = 1
79 }
80 }
81 seen=""
82 seen_enable=""
83 seen_disable=""
84 object=gensub(/^.*\[(.*)\]:$/,"\\1","",$0)
85 next
86}
87{
88 if (C[$1] && $2 ~ /^[TW]$/)
89 seen=$1
90 else if ($1 ~ /^__(libc|pthread)_enable_asynccancel$/ && $2 == "U")
91 seen_enable=1
92 else if ($1 ~ /^__(libc|pthread)_disable_asynccancel$/ && $2 == "U")
93 seen_disable=1
94}
95END {
96 exit ret
97}' || exit
98 shift
99done
This page took 0.040705 seconds and 5 git commands to generate.