Mercurial > hg > nginx
annotate auto/cc/conf @ 5541:fdb67cfc957d
Fixed TCP_DEFER_ACCEPT handling (ticket #353).
Backed out 05a56ebb084a, as it turns out that kernel can return connections
without any delay if syncookies are used. This basically means we can't
assume anything about connections returned with deferred accept set.
To solve original problem the 05a56ebb084a tried to solve, i.e. to don't
wait longer than needed if a connection was accepted after deferred accept
timeout, this patch changes a timeout set with setsockopt(TCP_DEFER_ACCEPT)
to 1 second, unconditionally. This is believed to be enough for speed
improvements, and doesn't imply major changes to timeouts used.
Note that before 2.6.32 connections were dropped after a timeout. Though
it is believed that 1s is still appropriate for kernels before 2.6.32,
as previously tcp_synack_retries controlled the actual timeout and 1s results
in more than 1 minute actual timeout by default.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 28 Jan 2014 15:40:46 +0400 |
parents | 945aa9c7f282 |
children | 85dea406e18f |
rev | line source |
---|---|
455 | 1 |
2 # Copyright (C) Igor Sysoev | |
4412 | 3 # Copyright (C) Nginx, Inc. |
455 | 4 |
5 | |
487 | 6 LINK="\$(CC)" |
7 | |
455 | 8 ngx_include_opt="-I " |
9 ngx_compile_opt="-c" | |
10 ngx_objout="-o " | |
11 ngx_binout="-o " | |
12 ngx_objext="o" | |
13 ngx_binext= | |
14 | |
573 | 15 ngx_long_start= |
16 ngx_long_end= | |
17 | |
455 | 18 ngx_regex_dirsep="\/" |
19 ngx_dirsep='/' | |
20 | |
21 ngx_regex_cont=' \\\ | |
22 ' | |
23 ngx_cont=' \ | |
24 ' | |
25 ngx_tab=' \ | |
26 ' | |
27 ngx_spacer= | |
28 | |
573 | 29 ngx_long_regex_cont=$ngx_regex_cont |
30 ngx_long_cont=$ngx_cont | |
31 | |
455 | 32 . auto/cc/name |
33 | |
34 if test -n "$CFLAGS"; then | |
35 | |
36 CC_TEST_FLAGS="$CFLAGS $NGX_CC_OPT" | |
37 | |
38 case $NGX_CC_NAME in | |
39 | |
40 ccc) | |
41 # Compaq C V6.5-207 | |
42 | |
43 ngx_include_opt="-I" | |
44 ;; | |
45 | |
5366
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
46 sunc) |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
47 |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
48 case "$NGX_MACHINE" in |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
49 |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
50 i86pc) |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
51 NGX_AUX=" src/os/unix/ngx_sunpro_x86.il" |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
52 ;; |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
53 |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
54 sun4u | sun4v) |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
55 NGX_AUX=" src/os/unix/ngx_sunpro_sparc64.il" |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
56 ;; |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
57 |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
58 esac |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
59 |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
60 case $CPU in |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
61 |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
62 amd64) |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
63 NGX_AUX=" src/os/unix/ngx_sunpro_amd64.il" |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
64 ;; |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
65 |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
66 esac |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
67 ;; |
945aa9c7f282
Configure: fixed building with Sun C if CFLAGS set (ticket #65).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4762
diff
changeset
|
68 |
455 | 69 esac |
70 | |
71 else | |
72 | |
73 case $NGX_CC_NAME in | |
74 gcc) | |
515 | 75 # gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2 |
76 # 3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2 | |
561 | 77 # 4.0.0, 4.0.1, 4.1.0 |
455 | 78 |
79 . auto/cc/gcc | |
80 ;; | |
81 | |
4762
182aee3b1bf5
Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
4412
diff
changeset
|
82 clang) |
182aee3b1bf5
Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
4412
diff
changeset
|
83 # Clang C compiler |
182aee3b1bf5
Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
4412
diff
changeset
|
84 |
182aee3b1bf5
Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
4412
diff
changeset
|
85 . auto/cc/clang |
182aee3b1bf5
Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
4412
diff
changeset
|
86 ;; |
182aee3b1bf5
Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
4412
diff
changeset
|
87 |
455 | 88 icc) |
515 | 89 # Intel C++ compiler 7.1, 8.0, 8.1 |
455 | 90 |
91 . auto/cc/icc | |
92 ;; | |
93 | |
561 | 94 sunc) |
95 # Sun C 5.7 Patch 117837-04 2005/05/11 | |
96 | |
97 . auto/cc/sunc | |
98 ;; | |
99 | |
467 | 100 ccc) |
515 | 101 # Compaq C V6.5-207 |
102 | |
103 . auto/cc/ccc | |
467 | 104 ;; |
455 | 105 |
515 | 106 acc) |
107 # aCC: HP ANSI C++ B3910B A.03.55.02 | |
108 | |
109 . auto/cc/acc | |
110 ;; | |
455 | 111 |
461 | 112 msvc*) |
113 # MSVC++ 6.0 SP2, MSVC++ Toolkit 2003 | |
455 | 114 |
115 . auto/cc/msvc | |
116 ;; | |
117 | |
118 owc) | |
119 # Open Watcom C 1.0, 1.2 | |
120 | |
121 . auto/cc/owc | |
122 ;; | |
123 | |
124 bcc) | |
125 # Borland C++ 5.5 | |
126 | |
127 . auto/cc/bcc | |
128 ;; | |
129 | |
130 esac | |
131 | |
515 | 132 CC_TEST_FLAGS="$CC_TEST_FLAGS $NGX_CC_OPT" |
455 | 133 |
134 fi | |
135 | |
136 CFLAGS="$CFLAGS $NGX_CC_OPT" | |
3367
568a854383f9
test invalid --with-ld-opt in right place
Igor Sysoev <igor@sysoev.ru>
parents:
3366
diff
changeset
|
137 NGX_TEST_LD_OPT="$NGX_LD_OPT" |
455 | 138 |
469 | 139 if [ "$NGX_PLATFORM" != win32 ]; then |
455 | 140 |
461 | 141 if test -n "$NGX_LD_OPT"; then |
142 ngx_feature=--with-ld-opt=\"$NGX_LD_OPT\" | |
469 | 143 ngx_feature_name= |
461 | 144 ngx_feature_run=no |
145 ngx_feature_incs= | |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
573
diff
changeset
|
146 ngx_feature_path= |
461 | 147 ngx_feature_libs= |
148 ngx_feature_test= | |
149 . auto/feature | |
150 | |
151 if [ $ngx_found = no ]; then | |
152 echo $0: error: the invalid value in --with-ld-opt=\"$NGX_LD_OPT\" | |
153 echo | |
154 exit 1 | |
155 fi | |
156 fi | |
157 | |
3362
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
158 |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
159 ngx_feature="gcc builtin atomic operations" |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
160 ngx_feature_name=NGX_HAVE_GCC_ATOMIC |
3366 | 161 ngx_feature_run=yes |
3362
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
162 ngx_feature_incs= |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
163 ngx_feature_path= |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
164 ngx_feature_libs= |
3366 | 165 ngx_feature_test="long n = 0; |
166 if (!__sync_bool_compare_and_swap(&n, 0, 1)) | |
167 return 1; | |
168 if (__sync_fetch_and_add(&n, 1) != 1) | |
169 return 1; | |
170 if (n != 2) | |
171 return 1; | |
172 __sync_synchronize();" | |
3362
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
173 . auto/feature |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
174 |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
175 |
517 | 176 if [ "$NGX_CC_NAME" = "ccc" ]; then |
515 | 177 echo "checking for C99 variadic macros ... disabled" |
178 else | |
179 ngx_feature="C99 variadic macros" | |
180 ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS" | |
181 ngx_feature_run=yes | |
182 ngx_feature_incs="#include <stdio.h> | |
183 #define var(dummy, ...) sprintf(__VA_ARGS__)" | |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
573
diff
changeset
|
184 ngx_feature_path= |
515 | 185 ngx_feature_libs= |
186 ngx_feature_test="char buf[30]; buf[0] = '0'; | |
187 var(0, buf, \"%d\", 1); | |
188 if (buf[0] != '1') return 1" | |
189 . auto/feature | |
190 fi | |
455 | 191 |
467 | 192 |
3673
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
193 ngx_feature="gcc variadic macros" |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
194 ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS" |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
195 ngx_feature_run=yes |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
196 ngx_feature_incs="#include <stdio.h> |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
197 #define var(dummy, args...) sprintf(args)" |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
198 ngx_feature_path= |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
199 ngx_feature_libs= |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
200 ngx_feature_test="char buf[30]; buf[0] = '0'; |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
201 var(0, buf, \"%d\", 1); |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
202 if (buf[0] != '1') return 1" |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
203 . auto/feature |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
204 |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
205 |
467 | 206 # ngx_feature="inline" |
469 | 207 # ngx_feature_name= |
467 | 208 # ngx_feature_run=no |
209 # ngx_feature_incs="int inline f(void) { return 1 }" | |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
573
diff
changeset
|
210 # ngx_feature_path= |
467 | 211 # ngx_feature_libs= |
212 # ngx_feature_test= | |
213 # . auto/feature | |
214 # | |
215 # if [ $ngx_found = yes ]; then | |
216 # fi | |
217 | |
455 | 218 fi |