annotate auto/cc/conf @ 4617:972642646f06

Rewrite: fixed escaping and possible segfault (ticket #162). The following code resulted in incorrect escaping of uri and possible segfault: location / { rewrite ^(.*) $1?c=$1; return 200 "$uri"; } If there were arguments in a rewrite's replacement string, and length was actually calculated (due to duplicate captures as in the example above, or variables present), the is_args flag was set and incorrectly copied after length calculation. This resulted in escaping applied to the uri part of the replacement, resulting in incorrect escaping. Additionally, buffer was allocated without escaping expected, thus this also resulted in buffer overrun and possible segfault.
author Maxim Dounin <mdounin@mdounin.ru>
date Fri, 11 May 2012 13:19:22 +0000
parents d620f497c50f
children 182aee3b1bf5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
2 # Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 3673
diff changeset
3 # Copyright (C) Nginx, Inc.
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
4
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5
487
31ff3e943e16 nginx-0.1.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
6 LINK="\$(CC)"
31ff3e943e16 nginx-0.1.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
7
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 ngx_include_opt="-I "
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 ngx_compile_opt="-c"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10 ngx_objout="-o "
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11 ngx_binout="-o "
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 ngx_objext="o"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13 ngx_binext=
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 561
diff changeset
15 ngx_long_start=
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 561
diff changeset
16 ngx_long_end=
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 561
diff changeset
17
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
18 ngx_regex_dirsep="\/"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
19 ngx_dirsep='/'
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
20
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
21 ngx_regex_cont=' \\\
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
22 '
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
23 ngx_cont=' \
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
24 '
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
25 ngx_tab=' \
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
26 '
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
27 ngx_spacer=
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
28
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 561
diff changeset
29 ngx_long_regex_cont=$ngx_regex_cont
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 561
diff changeset
30 ngx_long_cont=$ngx_cont
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 561
diff changeset
31
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
32 . auto/cc/name
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
33
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
34 if test -n "$CFLAGS"; then
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
35
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
36 CC_TEST_FLAGS="$CFLAGS $NGX_CC_OPT"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
37
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
38 case $NGX_CC_NAME in
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
39
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
40 ccc)
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
41 # Compaq C V6.5-207
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
42
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
43 ngx_include_opt="-I"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
44 ;;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
45
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
46 esac
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
47
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
48 else
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
49
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
50 case $NGX_CC_NAME in
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
51 gcc)
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
52 # gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
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
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
54 # 4.0.0, 4.0.1, 4.1.0
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
55
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
56 . auto/cc/gcc
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
57 ;;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
58
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
59 icc)
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
60 # Intel C++ compiler 7.1, 8.0, 8.1
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
61
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
62 . auto/cc/icc
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
63 ;;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
64
561
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
65 sunc)
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
66 # Sun C 5.7 Patch 117837-04 2005/05/11
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
67
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
68 . auto/cc/sunc
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
69 ;;
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
70
467
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
71 ccc)
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
72 # Compaq C V6.5-207
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
73
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
74 . auto/cc/ccc
467
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
75 ;;
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
76
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
77 acc)
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
78 # aCC: HP ANSI C++ B3910B A.03.55.02
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
79
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
80 . auto/cc/acc
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
81 ;;
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
82
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
83 msvc*)
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
84 # MSVC++ 6.0 SP2, MSVC++ Toolkit 2003
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
85
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
86 . auto/cc/msvc
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
87 ;;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
88
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
89 owc)
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
90 # Open Watcom C 1.0, 1.2
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
91
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
92 . auto/cc/owc
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
93 ;;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
94
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
95 bcc)
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
96 # Borland C++ 5.5
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
97
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
98 . auto/cc/bcc
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
99 ;;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
100
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
101 esac
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
102
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
103 CC_TEST_FLAGS="$CC_TEST_FLAGS $NGX_CC_OPT"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
104
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
105 fi
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
106
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
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
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
109
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
110 if [ "$NGX_PLATFORM" != win32 ]; then
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
111
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
112 if test -n "$NGX_LD_OPT"; then
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
113 ngx_feature=--with-ld-opt=\"$NGX_LD_OPT\"
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
114 ngx_feature_name=
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
115 ngx_feature_run=no
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
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
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
118 ngx_feature_libs=
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
119 ngx_feature_test=
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
120 . auto/feature
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
121
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
122 if [ $ngx_found = no ]; then
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
123 echo $0: error: the invalid value in --with-ld-opt=\"$NGX_LD_OPT\"
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
124 echo
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
125 exit 1
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
126 fi
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
127 fi
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
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
b44a7159c5fb atomic operations test-run
Igor Sysoev <igor@sysoev.ru>
parents: 3362
diff changeset
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
b44a7159c5fb atomic operations test-run
Igor Sysoev <igor@sysoev.ru>
parents: 3362
diff changeset
136 ngx_feature_test="long n = 0;
b44a7159c5fb atomic operations test-run
Igor Sysoev <igor@sysoev.ru>
parents: 3362
diff changeset
137 if (!__sync_bool_compare_and_swap(&n, 0, 1))
b44a7159c5fb atomic operations test-run
Igor Sysoev <igor@sysoev.ru>
parents: 3362
diff changeset
138 return 1;
b44a7159c5fb atomic operations test-run
Igor Sysoev <igor@sysoev.ru>
parents: 3362
diff changeset
139 if (__sync_fetch_and_add(&n, 1) != 1)
b44a7159c5fb atomic operations test-run
Igor Sysoev <igor@sysoev.ru>
parents: 3362
diff changeset
140 return 1;
b44a7159c5fb atomic operations test-run
Igor Sysoev <igor@sysoev.ru>
parents: 3362
diff changeset
141 if (n != 2)
b44a7159c5fb atomic operations test-run
Igor Sysoev <igor@sysoev.ru>
parents: 3362
diff changeset
142 return 1;
b44a7159c5fb atomic operations test-run
Igor Sysoev <igor@sysoev.ru>
parents: 3362
diff changeset
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
dadfa78d2270 nginx-0.1.33-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
147 if [ "$NGX_CC_NAME" = "ccc" ]; then
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
148 echo "checking for C99 variadic macros ... disabled"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
149 else
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
150 ngx_feature="C99 variadic macros"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
151 ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
152 ngx_feature_run=yes
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
153 ngx_feature_incs="#include <stdio.h>
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
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
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
156 ngx_feature_libs=
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
157 ngx_feature_test="char buf[30]; buf[0] = '0';
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
158 var(0, buf, \"%d\", 1);
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
159 if (buf[0] != '1') return 1"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
160 . auto/feature
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
161 fi
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
162
467
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
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
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
177 # ngx_feature="inline"
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
178 # ngx_feature_name=
467
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
179 # ngx_feature_run=no
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
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
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
182 # ngx_feature_libs=
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
183 # ngx_feature_test=
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
184 # . auto/feature
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
185 #
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
186 # if [ $ngx_found = yes ]; then
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
187 # fi
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
188
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
189 fi