annotate auto/cc/msvc @ 9112:d59277dd3d8c

QUIC: fixed post-close use-after-free. Previously, ngx_quic_close_connection() could be called in a way that QUIC connection was accessed after the call. In most cases the connection is not closed right away, but close timeout is scheduled. However, it's not always the case. Also, if the close process started earlier for a different reason, calling ngx_quic_close_connection() may actually close the connection. The connection object should not be accessed after that. Now, when possible, return statement is added to eliminate post-close connection object access. In other places ngx_quic_close_connection() is substituted with posting close event. Also, the new way of closing connection in ngx_quic_stream_cleanup_handler() fixes another problem in this function. Previously it passed stream connection instead of QUIC connection to ngx_quic_close_connection(). This could result in incomplete connection shutdown. One consequence of that could be that QUIC streams were freed without shutting down their application contexts. This could result in another use-after-free. Found by Coverity (CID 1530402).
author Roman Arutyunyan <arut@nginx.com>
date Mon, 22 May 2023 15:59:42 +0400
parents 3c4d81ea1338
children
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: 2896
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
6397
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
6 # MSVC 6.0 SP2 cl 12.00
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
7 # MSVC Toolkit 2003 (7.1) cl 13.10
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
8 # MSVC 2005 Express Edition SP1 (8.0) cl 14.00
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
9 # MSVC 2008 Express Edition (9.0) cl 15.00
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
10 # MSVC 2010 (10.0) cl 16.00
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
11 # MSVC 2015 (14.0) cl 19.00
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
12
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
13
8127
17b3efb45b17 Win32: handling of localized MSVC cl output.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7488
diff changeset
14 NGX_MSVC_VER=`$NGX_WINE $CC 2>&1 | grep 'C/C++.* [0-9][0-9]*\.[0-9]' 2>&1 \
17b3efb45b17 Win32: handling of localized MSVC cl output.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7488
diff changeset
15 | sed -e 's/^.* \([0-9][0-9]*\.[0-9].*\)/\1/'`
6397
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
16
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
17 echo " + cl version: $NGX_MSVC_VER"
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
18
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
19 have=NGX_COMPILER value="\"cl $NGX_MSVC_VER\"" . auto/define
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
20
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
21
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
22 ngx_msvc_ver=`echo $NGX_MSVC_VER | sed -e 's/^\([0-9]*\).*/\1/'`
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
23
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
24
8129
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
25 # detect x64 builds
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
26
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
27 case "$NGX_MSVC_VER" in
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
28
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
29 *x64)
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
30 NGX_MACHINE=amd64
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
31 ;;
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
32
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
33 *)
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
34 NGX_MACHINE=i386
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
35 ;;
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
36
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
37 esac
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
38
3c4d81ea1338 Win32: OpenSSL compilation for x64 targets with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8127
diff changeset
39
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
40 # optimizations
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
41
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
42 # 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
43 CFLAGS="$CFLAGS -O2"
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
44
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
45 # enable global optimization
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
46 #CFLAGS="$CFLAGS -Og"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
47 # enable intrinsic functions
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
48 #CFLAGS="$CFLAGS -Oi"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
49
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
50 # disable inline expansion
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
51 #CFLAGS="$CFLAGS -Ob0"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
52 # explicit inline expansion
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
53 #CFLAGS="$CFLAGS -Ob1"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
54 # explicit and implicit inline expansion
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
55 #CFLAGS="$CFLAGS -Ob2"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
56
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
57 # enable frame pointer omission
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
58 #CFLAGS="$CFLAGS -Oy"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
59 # disable stack checking calls
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
60 #CFLAGS="$CFLAGS -Gs"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
61
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
62 # pools strings as read/write
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
63 #CFLAGS="$CFLAGS -Gf"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
64 # pools strings as read-only
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
65 #CFLAGS="$CFLAGS -GF"
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
66
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
67
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
68 case $CPU in
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
69 pentium)
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
70 # optimize for Pentium and Athlon
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
71 CPU_OPT="-G5"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
72 ;;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
73
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
74 pentiumpro)
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
75 # optimize for Pentium Pro, Pentium II and Pentium III
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
76 CPU_OPT="-G6"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
77 ;;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
78
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
79 pentium4)
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
80 # optimize for Pentium 4, MSVC 7
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
81 CPU_OPT="-G7"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
82 ;;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
83 esac
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
84
2712
41f993457021 OpenSSL building by MSVC and BCC from sources
Igor Sysoev <igor@sysoev.ru>
parents: 2630
diff changeset
85 # __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
86 #CPU_OPT="$CPU_OPT -Gd"
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
87 # __stdcall
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
88 #CPU_OPT="$CPU_OPT -Gz"
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
89 # __fastcall
2712
41f993457021 OpenSSL building by MSVC and BCC from sources
Igor Sysoev <igor@sysoev.ru>
parents: 2630
diff changeset
90 #CPU_OPT="$CPU_OPT -Gr"
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
91
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
92
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
93 CFLAGS="$CFLAGS $CPU_OPT"
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
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
96 # warnings
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 CFLAGS="$CFLAGS -W4"
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 # stop on warning
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
101 CFLAGS="$CFLAGS -WX"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
102
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
103 # disable logo
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
104 CFLAGS="$CFLAGS -nologo"
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
105
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
106 # the link flags
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
107 CORE_LINK="$CORE_LINK -link -verbose:lib"
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
108
2630
73a132c47076 link staticaly with libcmt
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
109 # link with libcmt.lib, multithreaded
73a132c47076 link staticaly with libcmt
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
110 LIBC="-MT"
73a132c47076 link staticaly with libcmt
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
111 # link with msvcrt.dll
73a132c47076 link staticaly with libcmt
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
112 # however, MSVC Toolkit 2003 has no MSVCRT.LIB
73a132c47076 link staticaly with libcmt
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
113 #LIBC="-MD"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
114
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
115 CFLAGS="$CFLAGS $LIBC"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
116
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 2723
diff changeset
117 CORE_LIBS="$CORE_LIBS kernel32.lib user32.lib"
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 2723
diff changeset
118
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
119 # Win32 GUI mode application
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 2723
diff changeset
120 #CORE_LINK="$CORE_LINK -subsystem:windows -entry:mainCRTStartup"
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 # debug
6397
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
123 # msvc under Wine issues
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
124 # C1902: Program database manager mismatch; please check your installation
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
125 if [ -z "$NGX_WINE" ]; then
7488
955c4b186354 Win32: defined pdb path.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7031
diff changeset
126 CFLAGS="$CFLAGS -Zi -Fd$NGX_OBJS/nginx.pdb"
1639
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 1638
diff changeset
127 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
128 fi
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
129
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
130
2723
53be1d485af9 add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents: 2712
diff changeset
131 # MSVC 2005 supports C99 variadic macros
6397
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
132 if [ "$ngx_msvc_ver" -ge 14 ]; then
78f8ac479735 Win32: simplified and improved handling of MSVC versions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6383
diff changeset
133 have=NGX_HAVE_C99_VARIADIC_MACROS . auto/have
2723
53be1d485af9 add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents: 2712
diff changeset
134 fi
53be1d485af9 add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents: 2712
diff changeset
135
53be1d485af9 add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents: 2712
diff changeset
136
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
137 # precompiled headers
1636
f2cf053d14fb enable precompiled headers for msvc7,
Igor Sysoev <igor@sysoev.ru>
parents: 653
diff changeset
138 CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.pch"
5639
ce98b460606e Win32: fixed link flags with MSVC, broken by bfe536716dbf.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5577
diff changeset
139 CORE_LINK="$CORE_LINK $NGX_OBJS/ngx_pch.obj"
1636
f2cf053d14fb enable precompiled headers for msvc7,
Igor Sysoev <igor@sysoev.ru>
parents: 653
diff changeset
140 NGX_PCH="$NGX_OBJS/ngx_config.pch"
f2cf053d14fb enable precompiled headers for msvc7,
Igor Sysoev <igor@sysoev.ru>
parents: 653
diff changeset
141 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
142 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
143
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
144
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
145 # the resource file
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
146 NGX_RES="$NGX_OBJS/nginx.res"
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
147 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
148 CORE_LINK="$NGX_RES $CORE_LINK"
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
149
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
150
6383
85dea406e18f Dynamic modules.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5639
diff changeset
151 # dynamic modules
85dea406e18f Dynamic modules.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5639
diff changeset
152 #MAIN_LINK="-link -def:$NGX_OBJS/nginx.def"
85dea406e18f Dynamic modules.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5639
diff changeset
153 #MODULE_LINK="-LD $NGX_OBJS/nginx.lib"
85dea406e18f Dynamic modules.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5639
diff changeset
154
85dea406e18f Dynamic modules.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5639
diff changeset
155
85dea406e18f Dynamic modules.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5639
diff changeset
156 ngx_pic_opt=
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
157 ngx_objout="-Fo"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
158 ngx_binout="-Fe"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
159 ngx_objext="obj"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
160
2825
bb05c0834c8c remove BMAKE (build make): a cc compiler should use own make
Igor Sysoev <igor@sysoev.ru>
parents: 2725
diff changeset
161 ngx_long_start='@<<
2896
22719ff8986f use tab in Makefile
Igor Sysoev <igor@sysoev.ru>
parents: 2825
diff changeset
162 '
2825
bb05c0834c8c remove BMAKE (build make): a cc compiler should use own make
Igor Sysoev <igor@sysoev.ru>
parents: 2725
diff changeset
163 ngx_long_end='<<'
bb05c0834c8c remove BMAKE (build make): a cc compiler should use own make
Igor Sysoev <igor@sysoev.ru>
parents: 2725
diff changeset
164 ngx_long_regex_cont=' \
633
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 631
diff changeset
165 '
2825
bb05c0834c8c remove BMAKE (build make): a cc compiler should use own make
Igor Sysoev <igor@sysoev.ru>
parents: 2725
diff changeset
166 ngx_long_cont='
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
167 '
633
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 631
diff changeset
168
631
5d2b8078c1c2 nginx-0.3.37-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
169 # MSVC understand / in path
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
170 #ngx_regex_dirsep='\\'
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
171 #ngx_dirsep="\\"