Mercurial > hg > nginx
annotate auto/cc/gcc @ 4192:61e4af19df9f
Autoindex: escape '?' in file names.
For files with '?' in their names autoindex generated links with '?' not
escaped. This resulted in effectively truncated links as '?' indicates
query string start.
This is an updated version of the patch originally posted at [1]. It
introduces generic NGX_ESCAPE_URI_COMPONENT which escapes everything but
unreserved characters as per RFC 3986. This approach also renders unneeded
special colon processing (as colon is percent-encoded now), it's dropped
accordingly.
[1] http://nginx.org/pipermail/nginx-devel/2010-February/000112.html
Reported by Konstantin Leonov.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 11 Oct 2011 17:56:51 +0000 |
parents | 7660f0221cf1 |
children | d620f497c50f |
rev | line source |
---|---|
455 | 1 |
2 # Copyright (C) Igor Sysoev | |
3 | |
4 | |
501 | 5 # gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2 |
497 | 6 # 3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2 |
521 | 7 # 4.0.0, 4.0.1, 4.1.0 |
501 | 8 |
9 | |
10 NGX_GCC_VER=`$CC -v 2>&1 | grep 'gcc version' 2>&1 \ | |
11 | sed -e 's/^.* version \(.*\)/\1/'` | |
12 | |
13 echo " + gcc version: $NGX_GCC_VER" | |
455 | 14 |
557 | 15 have=NGX_COMPILER value="\"gcc $NGX_GCC_VER\"" . auto/define |
16 | |
455 | 17 |
18 # Solaris 7's /usr/ccs/bin/as does not support "-pipe" | |
19 | |
20 CC_TEST_FLAGS="-pipe" | |
21 | |
577 | 22 ngx_feature="gcc -pipe switch" |
455 | 23 ngx_feature_name= |
24 ngx_feature_run=no | |
25 ngx_feature_incs= | |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
743
diff
changeset
|
26 ngx_feature_path= |
455 | 27 ngx_feature_libs= |
28 ngx_feature_test= | |
29 . auto/feature | |
30 | |
31 CC_TEST_FLAGS= | |
32 | |
33 if [ $ngx_found = yes ]; then | |
34 PIPE="-pipe" | |
35 fi | |
36 | |
561 | 37 |
581 | 38 case "$NGX_MACHINE" in |
561 | 39 |
743 | 40 sun4u | sun4v | sparc | sparc64 ) |
563 | 41 # "-mcpu=v9" enables the "casa" assembler instruction |
561 | 42 CFLAGS="$CFLAGS -mcpu=v9" |
43 ;; | |
44 | |
45 esac | |
46 | |
47 | |
455 | 48 # optimizations |
49 | |
487 | 50 #NGX_GCC_OPT="-O2" |
51 #NGX_GCC_OPT="-Os" | |
52 NGX_GCC_OPT="-O" | |
53 | |
54 #CFLAGS="$CFLAGS -fomit-frame-pointer" | |
455 | 55 |
56 case $CPU in | |
57 pentium) | |
58 # optimize for Pentium and Athlon | |
59 CPU_OPT="-march=pentium" | |
589 | 60 NGX_CPU_CACHE_LINE=32 |
455 | 61 ;; |
62 | |
561 | 63 pentiumpro | pentium3) |
455 | 64 # optimize for Pentium Pro, Pentium II and Pentium III |
65 CPU_OPT="-march=pentiumpro" | |
589 | 66 NGX_CPU_CACHE_LINE=32 |
455 | 67 ;; |
68 | |
69 pentium4) | |
70 # optimize for Pentium 4, gcc 3.x | |
71 CPU_OPT="-march=pentium4" | |
589 | 72 NGX_CPU_CACHE_LINE=128 |
455 | 73 ;; |
74 | |
521 | 75 athlon) |
76 # optimize for Athlon, gcc 3.x | |
77 CPU_OPT="-march=athlon" | |
589 | 78 NGX_CPU_CACHE_LINE=64 |
521 | 79 ;; |
80 | |
509 | 81 opteron) |
82 # optimize for Opteron, gcc 3.x | |
83 CPU_OPT="-march=opteron" | |
589 | 84 NGX_CPU_CACHE_LINE=64 |
509 | 85 ;; |
86 | |
581 | 87 sparc32) |
88 # build 32-bit UltraSparc binary | |
89 CPU_OPT="-m32" | |
90 CORE_LINK="$CORE_LINK -m32" | |
589 | 91 NGX_CPU_CACHE_LINE=64 |
581 | 92 ;; |
93 | |
455 | 94 sparc64) |
95 # build 64-bit UltraSparc binary | |
96 CPU_OPT="-m64" | |
97 CORE_LINK="$CORE_LINK -m64" | |
589 | 98 NGX_CPU_CACHE_LINE=64 |
455 | 99 ;; |
100 | |
613 | 101 ppc64) |
102 # build 64-bit PowerPC binary | |
103 CPU_OPT="-m64" | |
104 CPU_OPT="$CPU_OPT -falign-functions=32 -falign-labels=32" | |
105 CPU_OPT="$CPU_OPT -falign-loops=32 -falign-jumps=32" | |
106 CORE_LINK="$CORE_LINK -m64" | |
107 NGX_CPU_CACHE_LINE=128 | |
108 ;; | |
109 | |
455 | 110 esac |
111 | |
3362
b57a4a704f3c
GCC 4.1 builtin atomic operations
Igor Sysoev <igor@sysoev.ru>
parents:
2751
diff
changeset
|
112 CC_AUX_FLAGS="$CC_AUX_FLAGS $CPU_OPT" |
455 | 113 |
501 | 114 case "$NGX_GCC_VER" in |
115 2.7*) | |
116 # batch build | |
117 CPU_OPT= | |
118 ;; | |
119 esac | |
455 | 120 |
121 | |
122 CFLAGS="$CFLAGS $PIPE $CPU_OPT" | |
123 | |
124 if [ ".$PCRE_OPT" = "." ]; then | |
125 PCRE_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT" | |
126 else | |
127 PCRE_OPT="$PCRE_OPT $PIPE" | |
128 fi | |
129 | |
130 if [ ".$MD5_OPT" = "." ]; then | |
131 MD5_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT" | |
132 else | |
133 MD5_OPT="$MD5_OPT $PIPE" | |
134 fi | |
135 | |
136 if [ ".$ZLIB_OPT" = "." ]; then | |
137 ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT" | |
138 else | |
139 ZLIB_OPT="$ZLIB_OPT $PIPE" | |
140 fi | |
141 | |
142 | |
143 # warnings | |
144 | |
487 | 145 # -W requires at least -O |
1010 | 146 CFLAGS="$CFLAGS ${NGX_GCC_OPT:--O} -W" |
487 | 147 |
455 | 148 CFLAGS="$CFLAGS -Wall -Wpointer-arith" |
577 | 149 #CFLAGS="$CFLAGS -Wconversion" |
455 | 150 #CFLAGS="$CFLAGS -Winline" |
151 | |
501 | 152 |
153 case "$NGX_GCC_VER" in | |
154 3.* | 4.* ) | |
155 # we have a lot of the unused function arguments | |
156 CFLAGS="$CFLAGS -Wno-unused-parameter" | |
2751 | 157 CFLAGS="$CFLAGS -Wunused-function" |
563 | 158 CFLAGS="$CFLAGS -Wunused-variable" |
159 CFLAGS="$CFLAGS -Wunused-value" | |
2751 | 160 # 4.2.1 shows the warning in wrong places |
501 | 161 #CFLAGS="$CFLAGS -Wunreachable-code" |
162 ;; | |
163 | |
164 *) | |
165 # we have a lot of the unused function arguments | |
166 CFLAGS="$CFLAGS -Wno-unused" | |
167 ;; | |
168 esac | |
169 | |
455 | 170 |
171 # stop on warning | |
172 CFLAGS="$CFLAGS -Werror" | |
173 | |
174 # debug | |
175 CFLAGS="$CFLAGS -g" | |
176 | |
177 # DragonFly's gcc3 generates DWARF | |
178 #CFLAGS="$CFLAGS -g -gstabs" | |
179 | |
180 if [ ".$CPP" = "." ]; then | |
181 CPP="$CC -E" | |
182 fi |