Mercurial > hg > nginx-quic
annotate auto/cc/conf @ 4460:6299d1c4dbb4
Upstream: fixed "too big header" check.
If header filter postponed processing of a header by returning NGX_AGAIN
and not moved u->buffer->pos, previous check incorrectly assumed there
is additional space and did another recv() with zero-size buffer. This
resulted in "upstream prematurely closed connection" error instead
of correct "upstream sent too big header" one.
Patch by Feibo Li.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 10 Feb 2012 14:31:04 +0000 |
parents | d620f497c50f |
children | 182aee3b1bf5 |
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 | |
46 esac | |
47 | |
48 else | |
49 | |
50 case $NGX_CC_NAME in | |
51 gcc) | |
515 | 52 # gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2 |
53 # 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 | 54 # 4.0.0, 4.0.1, 4.1.0 |
455 | 55 |
56 . auto/cc/gcc | |
57 ;; | |
58 | |
59 icc) | |
515 | 60 # Intel C++ compiler 7.1, 8.0, 8.1 |
455 | 61 |
62 . auto/cc/icc | |
63 ;; | |
64 | |
561 | 65 sunc) |
66 # Sun C 5.7 Patch 117837-04 2005/05/11 | |
67 | |
68 . auto/cc/sunc | |
69 ;; | |
70 | |
467 | 71 ccc) |
515 | 72 # Compaq C V6.5-207 |
73 | |
74 . auto/cc/ccc | |
467 | 75 ;; |
455 | 76 |
515 | 77 acc) |
78 # aCC: HP ANSI C++ B3910B A.03.55.02 | |
79 | |
80 . auto/cc/acc | |
81 ;; | |
455 | 82 |
461 | 83 msvc*) |
84 # MSVC++ 6.0 SP2, MSVC++ Toolkit 2003 | |
455 | 85 |
86 . auto/cc/msvc | |
87 ;; | |
88 | |
89 owc) | |
90 # Open Watcom C 1.0, 1.2 | |
91 | |
92 . auto/cc/owc | |
93 ;; | |
94 | |
95 bcc) | |
96 # Borland C++ 5.5 | |
97 | |
98 . auto/cc/bcc | |
99 ;; | |
100 | |
101 esac | |
102 | |
515 | 103 CC_TEST_FLAGS="$CC_TEST_FLAGS $NGX_CC_OPT" |
455 | 104 |
105 fi | |
106 | |
107 CFLAGS="$CFLAGS $NGX_CC_OPT" | |
3367
568a854383f9
test invalid --with-ld-opt in right place
Igor Sysoev <igor@sysoev.ru>
parents:
3366
diff
changeset
|
108 NGX_TEST_LD_OPT="$NGX_LD_OPT" |
455 | 109 |
469 | 110 if [ "$NGX_PLATFORM" != win32 ]; then |
455 | 111 |
461 | 112 if test -n "$NGX_LD_OPT"; then |
113 ngx_feature=--with-ld-opt=\"$NGX_LD_OPT\" | |
469 | 114 ngx_feature_name= |
461 | 115 ngx_feature_run=no |
116 ngx_feature_incs= | |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
573
diff
changeset
|
117 ngx_feature_path= |
461 | 118 ngx_feature_libs= |
119 ngx_feature_test= | |
120 . auto/feature | |
121 | |
122 if [ $ngx_found = no ]; then | |
123 echo $0: error: the invalid value in --with-ld-opt=\"$NGX_LD_OPT\" | |
124 echo | |
125 exit 1 | |
126 fi | |
127 fi | |
128 | |
3362
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
129 |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
130 ngx_feature="gcc builtin atomic operations" |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
131 ngx_feature_name=NGX_HAVE_GCC_ATOMIC |
3366 | 132 ngx_feature_run=yes |
3362
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
133 ngx_feature_incs= |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
134 ngx_feature_path= |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
135 ngx_feature_libs= |
3366 | 136 ngx_feature_test="long n = 0; |
137 if (!__sync_bool_compare_and_swap(&n, 0, 1)) | |
138 return 1; | |
139 if (__sync_fetch_and_add(&n, 1) != 1) | |
140 return 1; | |
141 if (n != 2) | |
142 return 1; | |
143 __sync_synchronize();" | |
3362
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
144 . auto/feature |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
145 |
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
875
diff
changeset
|
146 |
517 | 147 if [ "$NGX_CC_NAME" = "ccc" ]; then |
515 | 148 echo "checking for C99 variadic macros ... disabled" |
149 else | |
150 ngx_feature="C99 variadic macros" | |
151 ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS" | |
152 ngx_feature_run=yes | |
153 ngx_feature_incs="#include <stdio.h> | |
154 #define var(dummy, ...) sprintf(__VA_ARGS__)" | |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
573
diff
changeset
|
155 ngx_feature_path= |
515 | 156 ngx_feature_libs= |
157 ngx_feature_test="char buf[30]; buf[0] = '0'; | |
158 var(0, buf, \"%d\", 1); | |
159 if (buf[0] != '1') return 1" | |
160 . auto/feature | |
161 fi | |
455 | 162 |
467 | 163 |
3673
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
164 ngx_feature="gcc variadic macros" |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
165 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
|
166 ngx_feature_run=yes |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
167 ngx_feature_incs="#include <stdio.h> |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
168 #define var(dummy, args...) sprintf(args)" |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
169 ngx_feature_path= |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
170 ngx_feature_libs= |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
171 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
|
172 var(0, buf, \"%d\", 1); |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
173 if (buf[0] != '1') return 1" |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
174 . auto/feature |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
175 |
e27070fb6c6b
try to use C99 variadic macros first:
Igor Sysoev <igor@sysoev.ru>
parents:
3367
diff
changeset
|
176 |
467 | 177 # ngx_feature="inline" |
469 | 178 # ngx_feature_name= |
467 | 179 # ngx_feature_run=no |
180 # 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
|
181 # ngx_feature_path= |
467 | 182 # ngx_feature_libs= |
183 # ngx_feature_test= | |
184 # . auto/feature | |
185 # | |
186 # if [ $ngx_found = yes ]; then | |
187 # fi | |
188 | |
455 | 189 fi |