Imported from ../bash-1.14.7.tar.gz.
[platform/upstream/bash.git] / portbash / signals.sh
1 #! /bin/sh
2 #
3 CC=cc
4 export CC
5
6 cat > x.c <<EOF
7 #include <signal.h>
8
9 main()
10 {
11 }
12 EOF
13
14 ${CC} -E x.c > x.i || { rm -f x.c x.i ; exit 1; }
15
16 if egrep 'void.*signal' x.i >/dev/null 2>&1
17 then
18         echo '#define VOID_SIGHANDLER'
19 fi
20 rm -f x.c x.i
21
22 cat > x.c << EOF
23 #include <signal.h>
24 sigset_t set, oset;
25 main()
26 {
27         sigemptyset(&set);
28         sigemptyset(&oset);
29         sigaddset(&set, 2);
30         sigprocmask(SIG_BLOCK, &set, &oset);
31 }
32 EOF
33 if ${CC} x.c >/dev/null 2>&1; then
34         echo '#define HAVE_POSIX_SIGNALS'
35 else
36         cat > x.c << EOF
37 #include <signal.h>
38 main()
39 {
40         long omask = sigblock(sigmask(2));
41         sigsetmask(omask);
42 }
43 EOF
44         if ${CC} x.c >/dev/null 2>&1; then
45                 echo '#define HAVE_BSD_SIGNALS'
46         else
47                 cat > x.c << EOF
48 #include <signal.h>
49 main()
50 {
51         int n;
52         n = sighold(2);
53         sigrelse(2);
54 }
55 EOF
56                 if ${CC} x.c >/dev/null 2>&1; then
57                         echo '#define HAVE_USG_SIGHOLD'
58                 fi
59         fi
60 fi
61
62 rm -f x.c x.o a.out
63
64 exit 0