annotate auto/cc/msvc @ 4115:70a45a504905

Workaround for cpu hog on errors with cached connections. Just doing another connect isn't safe as peer.get() may expect peer.tries to be strictly positive (this is the case e.g. with round robin with multiple upstream servers). Increment peer.tries to at least avoid cpu hog in round robin balancer (with the patch alert will be seen instead). This is not enough to fully address the problem though, hence TODO. We should be able to inform balancer that the error wasn't considered fatal and it may make sense to retry the same peer.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 15 Sep 2011 18:12:58 +0000
parents 22719ff8986f
children d620f497c50f
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
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
3
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
4
2630
73a132c47076 link staticaly with libcmt
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
5 # MSVC 6.0 SP2
73a132c47076 link staticaly with libcmt
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
6 # MSVC Toolkit 2003 (7.1)
73a132c47076 link staticaly with libcmt
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
7 # MSVC 2005 Express Edition SP1 (8.0)
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 # optimizations
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
11 # maximize speed, equivalent to -Og -Oi -Ot -Oy -Ob2 -Gs -GF -Gy
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 CFLAGS="$CFLAGS -O2"
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
13
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14 # enable global optimization
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
15 #CFLAGS="$CFLAGS -Og"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
16 # enable intrinsic functions
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
17 #CFLAGS="$CFLAGS -Oi"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
18
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
19 # disable inline expansion
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
20 #CFLAGS="$CFLAGS -Ob0"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
21 # explicit inline expansion
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
22 #CFLAGS="$CFLAGS -Ob1"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
23 # explicit and implicit inline expansion
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
24 #CFLAGS="$CFLAGS -Ob2"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
25
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
26 # enable frame pointer omission
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
27 #CFLAGS="$CFLAGS -Oy"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
28 # disable stack checking calls
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
29 #CFLAGS="$CFLAGS -Gs"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
30
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
31 # pools strings as read/write
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
32 #CFLAGS="$CFLAGS -Gf"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
33 # pools strings as read-only
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
34 #CFLAGS="$CFLAGS -GF"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
35
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
36
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
37 case $CPU in
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
38 pentium)
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
39 # optimize for Pentium and Athlon
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
40 CPU_OPT="-G5"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
41 ;;
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 pentiumpro)
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
44 # optimize for Pentium Pro, Pentium II and Pentium III
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
45 CPU_OPT="-G6"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
46 ;;
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 pentium4)
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
49 # optimize for Pentium 4, MSVC 7
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
50 CPU_OPT="-G7"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
51 ;;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
52 esac
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
53
2712
41f993457021 OpenSSL building by MSVC and BCC from sources
Igor Sysoev <igor@sysoev.ru>
parents: 2630
diff changeset
54 # __cdecl, default, must be used with OpenSSL, md5 asm, and sha1 asm
583
4e296b7d25bf nginx-0.3.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
55 #CPU_OPT="$CPU_OPT -Gd"
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
56 # __stdcall
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
57 #CPU_OPT="$CPU_OPT -Gz"
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
58 # __fastcall
2712
41f993457021 OpenSSL building by MSVC and BCC from sources
Igor Sysoev <igor@sysoev.ru>
parents: 2630
diff changeset
59 #CPU_OPT="$CPU_OPT -Gr"
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
60
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
61
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
62 CFLAGS="$CFLAGS $CPU_OPT"
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
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
65 # warnings
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
66
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
67 CFLAGS="$CFLAGS -W4"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
68
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
69 # stop on warning
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
70 CFLAGS="$CFLAGS -WX"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
71
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
72 # disable logo
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
73 CFLAGS="$CFLAGS -nologo"
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
74
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
75
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
76 LINK="\$(CC)"
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
77
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
78 # the link flags
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
79 CORE_LINK="$CORE_LINK -link -verbose:lib"
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
80
2630
73a132c47076 link staticaly with libcmt
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
81 # link with libcmt.lib, multithreaded
73a132c47076 link staticaly with libcmt
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
82 LIBC="-MT"
73a132c47076 link staticaly with libcmt
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
83 # link with msvcrt.dll
73a132c47076 link staticaly with libcmt
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
84 # however, MSVC Toolkit 2003 has no MSVCRT.LIB
73a132c47076 link staticaly with libcmt
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
85 #LIBC="-MD"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
86
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
87 CFLAGS="$CFLAGS $LIBC"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
88
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 2723
diff changeset
89 CORE_LIBS="$CORE_LIBS kernel32.lib user32.lib"
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 2723
diff changeset
90
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
91 # Win32 GUI mode application
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 2723
diff changeset
92 #CORE_LINK="$CORE_LINK -subsystem:windows -entry:mainCRTStartup"
455
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 # debug
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 2723
diff changeset
95 # msvc8 under Wine issues
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 2723
diff changeset
96 # Program database manager mismatch; please check your installation
1639
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 1638
diff changeset
97 if [ $NGX_CC_NAME != msvc8 ]; then
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 1638
diff changeset
98 CFLAGS="$CFLAGS -Zi"
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 1638
diff changeset
99 CORE_LINK="$CORE_LINK -debug"
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 1638
diff changeset
100 fi
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
101
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
102
2723
53be1d485af9 add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents: 2712
diff changeset
103 # MSVC 2005 supports C99 variadic macros
53be1d485af9 add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents: 2712
diff changeset
104 if [ $NGX_CC_NAME = msvc8 ]; then
53be1d485af9 add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents: 2712
diff changeset
105 have=NGX_HAVE_C99_VARIADIC_MACROS . auto/have
53be1d485af9 add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents: 2712
diff changeset
106 fi
53be1d485af9 add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents: 2712
diff changeset
107
53be1d485af9 add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents: 2712
diff changeset
108
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
109 # precompiled headers
1636
f2cf053d14fb enable precompiled headers for msvc7,
Igor Sysoev <igor@sysoev.ru>
parents: 653
diff changeset
110 CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.pch"
f2cf053d14fb enable precompiled headers for msvc7,
Igor Sysoev <igor@sysoev.ru>
parents: 653
diff changeset
111 NGX_PCH="$NGX_OBJS/ngx_config.pch"
f2cf053d14fb enable precompiled headers for msvc7,
Igor Sysoev <igor@sysoev.ru>
parents: 653
diff changeset
112 NGX_BUILD_PCH="-Ycngx_config.h -Fp$NGX_OBJS/ngx_config.pch"
f2cf053d14fb enable precompiled headers for msvc7,
Igor Sysoev <igor@sysoev.ru>
parents: 653
diff changeset
113 NGX_USE_PCH="-Yungx_config.h -Fp$NGX_OBJS/ngx_config.pch"
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
114
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
115
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
116 # the resource file
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
117 NGX_RES="$NGX_OBJS/nginx.res"
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
118 NGX_RCC="rc -fo$NGX_RES \$(CORE_INCS) $NGX_WIN32_RC"
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
119 CORE_LINK="$NGX_RES $CORE_LINK"
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
120
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
121
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
122 ngx_objout="-Fo"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
123 ngx_binout="-Fe"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
124 ngx_objext="obj"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
125 ngx_binext=".exe"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
126
2825
bb05c0834c8c remove BMAKE (build make): a cc compiler should use own make
Igor Sysoev <igor@sysoev.ru>
parents: 2725
diff changeset
127 ngx_long_start='@<<
2896
22719ff8986f use tab in Makefile
Igor Sysoev <igor@sysoev.ru>
parents: 2825
diff changeset
128 '
2825
bb05c0834c8c remove BMAKE (build make): a cc compiler should use own make
Igor Sysoev <igor@sysoev.ru>
parents: 2725
diff changeset
129 ngx_long_end='<<'
bb05c0834c8c remove BMAKE (build make): a cc compiler should use own make
Igor Sysoev <igor@sysoev.ru>
parents: 2725
diff changeset
130 ngx_long_regex_cont=' \
633
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 631
diff changeset
131 '
2825
bb05c0834c8c remove BMAKE (build make): a cc compiler should use own make
Igor Sysoev <igor@sysoev.ru>
parents: 2725
diff changeset
132 ngx_long_cont='
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
133 '
633
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 631
diff changeset
134
631
5d2b8078c1c2 nginx-0.3.37-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
135 # MSVC understand / in path
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
136 #ngx_regex_dirsep='\\'
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
137 #ngx_dirsep="\\"