DEVEL15-linux-new-aop-20081108
[openafs.git] / src / cf / fdsetsize.m4
1 AC_DEFUN([FD_SET_OBEYS_FD_SETSIZE], [
2 AC_MSG_CHECKING(for default FD_SETSIZE)
3 AC_CACHE_VAL(ac_cv_default_fdsetsize,
4 [
5 AC_TRY_RUN(
6 changequote(<<, >>)dnl
7 <<
8 #include <stdio.h>
9 #include <sys/types.h>
10 #include <unistd.h>
11 #ifdef HAVE_SYS_SELECT_H
12 #include <sys/select.h>
13 #endif
14 int main(int argc, char *argv[])
15 {
16     FILE *fp;
17     int ac_cv_default_fdsetsize;
18 #if defined(FD_SETSIZE)
19     ac_cv_default_fdsetsize = FD_SETSIZE;
20 #else
21     ac_cv_default_fdsetsize = (sizeof(fd_set)*8);
22 #endif
23     if ((fp = fopen("conftestval", "w")) == NULL)
24         exit(1);
25     fprintf(fp, "%d\n", ac_cv_default_fdsetsize);
26     fclose(fp);
27     exit(0);
28 }
29 >>
30 changequote([, ])dnl
31 ,
32 ac_cv_default_fdsetsize=`cat conftestval`,
33 ac_cv_default_fdsetsize=-1,
34 ac_cv_default_fdsetsize=1024
35 )
36 AC_MSG_RESULT([$ac_cv_default_fdsetsize])
37 ])
38
39 AC_MSG_CHECKING(for default fd_set size)
40 AC_CACHE_VAL(ac_cv_default_fd_set_size,
41 [
42 AC_TRY_RUN(
43 changequote(<<, >>)dnl
44 <<
45 #include <stdio.h>
46 #include <sys/types.h>
47 #include <unistd.h>
48 #ifdef HAVE_SYS_SELECT_H
49 #include <sys/select.h>
50 #endif
51 int main(int argc, char *argv[])
52 {
53     FILE *fp;
54     int ac_cv_default_fd_set_size;
55     ac_cv_default_fd_set_size = (sizeof(fd_set));
56
57     if ((fp = fopen("conftestval", "w")) == NULL)
58         exit(1);
59     fprintf(fp, "%d\n", ac_cv_default_fd_set_size);
60     fclose(fp);
61     exit(0);
62 }
63 >>
64 changequote([, ])dnl
65 ,
66 ac_cv_default_fd_set_size=`cat conftestval`,
67 ac_cv_default_fd_set_size=-1,
68 ac_cv_default_fd_set_size=128
69 )
70 AC_MSG_RESULT([$ac_cv_default_fd_set_size])
71 ])
72
73 AC_MSG_CHECKING(for sizeof fd_set obeying FD_SETSIZE)
74 AC_CACHE_VAL(ac_cv_fd_set_size_obeys,
75 [
76 save_CPPFLAGS="$CPPFLAGS"
77 CPPFLAGS="$CPPFLAGS -DORIG_FD_SETSIZE=$ac_cv_default_fdsetsize -DORIG_fd_set_size=$ac_cv_default_fd_set_size"
78 AC_TRY_RUN([
79 #include <stdio.h>
80 #include <sys/types.h>
81 #include <unistd.h>
82 #if (ORIG_FD_SETSIZE < 2048) 
83 #define FD_SETSIZE 2048
84 #define __FD_SETSIZE 2048
85 #else
86 #define FD_SETSIZE 1024
87 #define __FD_SETSIZE 1024
88 #endif
89 #ifdef HAVE_SYS_SELECT_H
90 #include <sys/select.h>
91 #endif
92 int main() {
93     if ((ORIG_fd_set_size < 0) || (ORIG_FD_SETSIZE < 0))
94        exit(1);       
95     exit((sizeof(fd_set) == ORIG_fd_set_size) ? 1 : 0);
96 }
97 ],
98 ac_cv_fd_set_size_obeys=yes,
99 ac_cv_fd_set_size_obeys=no,
100 ac_cv_fd_set_size_obeys=yes)
101 CPPFLAGS=$save_CPPFLAGS
102 AC_MSG_RESULT([$ac_cv_fd_set_size_obeys])
103 ])
104
105 ])
106