comparison auto/cc/sunc @ 4004:84bd993b8cd3

Lower optimization level for Sun Studio before 12.1. At least Sun Studio 12 has problems with bit-fields exposed by nginx code (caught by test suite). They seems to be fixed in Sun Studio 12.1. As a workaround use "-fast -xalias_level=any" for older versions, it resolves the problem.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 18 Aug 2011 15:10:23 +0000
parents 7e02df612521
children d620f497c50f
comparison
equal deleted inserted replaced
4003:8cca96abbc3e 4004:84bd993b8cd3
4 4
5 # Sun C 5.7 Patch 117837-04 2005/05/11 Sun Studio 10 5 # Sun C 5.7 Patch 117837-04 2005/05/11 Sun Studio 10
6 # Sun C 5.8 2005/10/13 Sun Studio 11 6 # Sun C 5.8 2005/10/13 Sun Studio 11
7 # Sun C 5.9 SunOS_i386 2007/05/03 Sun Studio 12 7 # Sun C 5.9 SunOS_i386 2007/05/03 Sun Studio 12
8 # Sun C 5.9 SunOS_sparc 2007/05/03 8 # Sun C 5.9 SunOS_sparc 2007/05/03
9 # Sun C 5.10 SunOS_i386 2009/06/03 Sun Studio 12.1
10 # Sun C 5.11 SunOS_i386 2010/08/13 Sun Studio 12.2
9 11
10 NGX_SUNC_VER=`$CC -V 2>&1 | grep 'Sun C' 2>&1 \ 12 NGX_SUNC_VER=`$CC -V 2>&1 | grep 'Sun C' 2>&1 \
11 | sed -e 's/^.* Sun C \(.*\)/\1/'` 13 | sed -e 's/^.* Sun C \(.*\)/\1/'`
12 14
13 echo " + Sun C version: $NGX_SUNC_VER" 15 echo " + Sun C version: $NGX_SUNC_VER"
55 esac 57 esac
56 58
57 59
58 # optimizations 60 # optimizations
59 61
62 # 20736 == 0x5100, Sun Studio 12.1
63
64 if [ "$ngx_sunc_ver" -ge 20736 ]; then
65 ngx_fast="-fast"
66
67 else
68 # older versions had problems with bit-fields
69 ngx_fast="-fast -xalias_level=any"
70 fi
71
60 IPO=-xipo 72 IPO=-xipo
61 CFLAGS="$CFLAGS -fast $IPO" 73 CFLAGS="$CFLAGS $ngx_fast $IPO"
62 CORE_LINK="$CORE_LINK -fast $IPO" 74 CORE_LINK="$CORE_LINK $ngx_fast $IPO"
63 75
64 76
65 case $CPU in 77 case $CPU in
66 pentium) 78 pentium)
67 # optimize for Pentium and Athlon 79 # optimize for Pentium and Athlon
124 136
125 CFLAGS="$CFLAGS $CPU_OPT" 137 CFLAGS="$CFLAGS $CPU_OPT"
126 138
127 139
128 if [ ".$PCRE_OPT" = "." ]; then 140 if [ ".$PCRE_OPT" = "." ]; then
129 PCRE_OPT="-fast $IPO $CPU_OPT" 141 PCRE_OPT="$ngx_fast $IPO $CPU_OPT"
130 fi 142 fi
131 143
132 if [ ".$MD5_OPT" = "." ]; then 144 if [ ".$MD5_OPT" = "." ]; then
133 MD5_OPT="-fast $IPO $CPU_OPT" 145 MD5_OPT="$ngx_fast $IPO $CPU_OPT"
134 fi 146 fi
135 147
136 if [ ".$ZLIB_OPT" = "." ]; then 148 if [ ".$ZLIB_OPT" = "." ]; then
137 ZLIB_OPT="-fast $IPO $CPU_OPT" 149 ZLIB_OPT="$ngx_fast $IPO $CPU_OPT"
138 fi 150 fi
139 151
140 152
141 # stop on warning 153 # stop on warning
142 CFLAGS="$CFLAGS -errwarn=%all" 154 CFLAGS="$CFLAGS -errwarn=%all"