annotate auto/cc/clang @ 5418:6961d52ebc49 stable-1.4

Core: fix misallocation at ngx_crypt_apr1 (ticket #412). Found by using auth_basic.t from mdounin nginx-tests under valgrind. ==10470== Invalid write of size 1 ==10470== at 0x43603D: ngx_crypt_to64 (ngx_crypt.c:168) ==10470== by 0x43648E: ngx_crypt (ngx_crypt.c:153) ==10470== by 0x489D8B: ngx_http_auth_basic_crypt_handler (ngx_http_auth_basic_module.c:297) ==10470== by 0x48A24A: ngx_http_auth_basic_handler (ngx_http_auth_basic_module.c:240) ==10470== by 0x44EAB9: ngx_http_core_access_phase (ngx_http_core_module.c:1121) ==10470== by 0x44A822: ngx_http_core_run_phases (ngx_http_core_module.c:895) ==10470== by 0x44A932: ngx_http_handler (ngx_http_core_module.c:878) ==10470== by 0x455EEF: ngx_http_process_request (ngx_http_request.c:1852) ==10470== by 0x456527: ngx_http_process_request_headers (ngx_http_request.c:1283) ==10470== by 0x456A91: ngx_http_process_request_line (ngx_http_request.c:964) ==10470== by 0x457097: ngx_http_wait_request_handler (ngx_http_request.c:486) ==10470== by 0x4411EE: ngx_epoll_process_events (ngx_epoll_module.c:691) ==10470== Address 0x5866fab is 0 bytes after a block of size 27 alloc'd ==10470== at 0x4A074CD: malloc (vg_replace_malloc.c:236) ==10470== by 0x43B251: ngx_alloc (ngx_alloc.c:22) ==10470== by 0x421B0D: ngx_malloc (ngx_palloc.c:119) ==10470== by 0x421B65: ngx_pnalloc (ngx_palloc.c:147) ==10470== by 0x436368: ngx_crypt (ngx_crypt.c:140) ==10470== by 0x489D8B: ngx_http_auth_basic_crypt_handler (ngx_http_auth_basic_module.c:297) ==10470== by 0x48A24A: ngx_http_auth_basic_handler (ngx_http_auth_basic_module.c:240) ==10470== by 0x44EAB9: ngx_http_core_access_phase (ngx_http_core_module.c:1121) ==10470== by 0x44A822: ngx_http_core_run_phases (ngx_http_core_module.c:895) ==10470== by 0x44A932: ngx_http_handler (ngx_http_core_module.c:878) ==10470== by 0x455EEF: ngx_http_process_request (ngx_http_request.c:1852) ==10470== by 0x456527: ngx_http_process_request_headers (ngx_http_request.c:1283) ==10470==
author Markus Linnala <Markus.Linnala@cybercom.com>
date Fri, 20 Sep 2013 17:57:21 +0300
parents 182aee3b1bf5
children f1daa0356a1d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4762
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
1
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
2 # Copyright (C) Nginx, Inc.
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
3
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
4
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
5 # clang
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
6
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
7
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
8 NGX_CLANG_VER=`$CC -v 2>&1 | grep 'clang version' 2>&1 \
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
9 | sed -e 's/^.*clang version \(.*\)/\1/'`
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
10
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
11 echo " + clang version: $NGX_CLANG_VER"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
12
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
13 have=NGX_COMPILER value="\"clang $NGX_CLANG_VER\"" . auto/define
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
14
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
15
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
16 CC_TEST_FLAGS="-pipe"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
17
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
18
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
19 # optimizations
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
20
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
21 #NGX_CLANG_OPT="-O2"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
22 #NGX_CLANG_OPT="-Oz"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
23 NGX_CLANG_OPT="-O"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
24
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
25 case $CPU in
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
26 pentium)
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
27 # optimize for Pentium
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
28 CPU_OPT="-march=pentium"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
29 NGX_CPU_CACHE_LINE=32
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
30 ;;
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
31
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
32 pentiumpro | pentium3)
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
33 # optimize for Pentium Pro, Pentium II and Pentium III
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
34 CPU_OPT="-march=pentiumpro"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
35 NGX_CPU_CACHE_LINE=32
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
36 ;;
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
37
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
38 pentium4)
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
39 # optimize for Pentium 4
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
40 CPU_OPT="-march=pentium4"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
41 NGX_CPU_CACHE_LINE=128
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
42 ;;
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
43
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
44 athlon)
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
45 # optimize for Athlon
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
46 CPU_OPT="-march=athlon"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
47 NGX_CPU_CACHE_LINE=64
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
48 ;;
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
49
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
50 opteron)
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
51 # optimize for Opteron
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
52 CPU_OPT="-march=opteron"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
53 NGX_CPU_CACHE_LINE=64
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
54 ;;
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
55
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
56 esac
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
57
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
58 CC_AUX_FLAGS="$CC_AUX_FLAGS $CPU_OPT"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
59
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
60
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
61 CFLAGS="$CFLAGS -pipe $CPU_OPT"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
62
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
63 if [ ".$PCRE_OPT" = "." ]; then
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
64 PCRE_OPT="-O2 -pipe $CPU_OPT"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
65 else
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
66 PCRE_OPT="$PCRE_OPT -pipe"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
67 fi
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
68
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
69 if [ ".$MD5_OPT" = "." ]; then
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
70 MD5_OPT="-O2 -pipe $CPU_OPT"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
71 else
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
72 MD5_OPT="$MD5_OPT -pipe"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
73 fi
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
74
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
75 if [ ".$ZLIB_OPT" = "." ]; then
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
76 ZLIB_OPT="-O2 -pipe $CPU_OPT"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
77 else
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
78 ZLIB_OPT="$ZLIB_OPT -pipe"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
79 fi
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
80
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
81
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
82 # warnings
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
83
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
84 CFLAGS="$CFLAGS $NGX_CLANG_OPT -Wall -Wextra -Wpointer-arith"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
85 #CFLAGS="$CFLAGS -Wmissing-prototypes"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
86
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
87 # we have a lot of unused function arguments
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
88 CFLAGS="$CFLAGS -Wno-unused-parameter"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
89
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
90 # stop on warning
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
91 #CFLAGS="$CFLAGS -Werror"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
92
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
93 # debug
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
94 CFLAGS="$CFLAGS -g"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
95
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
96 if [ ".$CPP" = "." ]; then
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
97 CPP="$CC -E"
182aee3b1bf5 Added the Clang compiler support.
Ruslan Ermilov <ru@nginx.com>
parents:
diff changeset
98 fi