comparison auto/cc/sunc @ 1309:08c6ee7a1b11

Sun Studio 12 compatibility
author Igor Sysoev <igor@sysoev.ru>
date Mon, 16 Jul 2007 08:54:04 +0000
parents 63fa39cf8bd0
children d01f9856e3a0
comparison
equal deleted inserted replaced
1308:63fa39cf8bd0 1309:08c6ee7a1b11
1 1
2 # Copyright (C) Igor Sysoev 2 # Copyright (C) Igor Sysoev
3 3
4 4
5 # Sun C 5.7 Patch 117837-04 2005/05/11 5 # Sun C 5.7 Patch 117837-04 2005/05/11 Sun Studio 10
6 # Sun C 5.8 2005/10/13 6 # Sun C 5.8 2005/10/13 Sun Studio 11
7 # Sun C 5.9 SunOS_i386 2007/05/03 Sun Studio 12
8 # Sun C 5.9 SunOS_sparc 2007/05/03
7 9
8 NGX_SUNC_VER=`$CC -V 2>&1 | grep 'Sun C' 2>&1 \ 10 NGX_SUNC_VER=`$CC -V 2>&1 | grep 'Sun C' 2>&1 \
9 | sed -e 's/^.* Sun C \(.*\)/\1/'` 11 | sed -e 's/^.* Sun C \(.*\)/\1/'`
10 12
11 echo " + Sun C version: $NGX_SUNC_VER" 13 echo " + Sun C version: $NGX_SUNC_VER"
12 14
13 have=NGX_COMPILER value="\"Sun C $NGX_SUNC_VER\"" . auto/define 15 have=NGX_COMPILER value="\"Sun C $NGX_SUNC_VER\"" . auto/define
14 16
17
18 cat << END > $NGX_AUTOTEST.c
19
20 int main() { printf("%d", __SUNPRO_C); }
21
22 END
23
24 eval "$CC -o $NGX_AUTOTEST $NGX_AUTOTEST.c >> $NGX_ERR 2>&1"
25
26 if [ -x $NGX_AUTOTEST ]; then
27 ngx_sunc_ver=`$NGX_AUTOTEST`
28 fi
29
30 rm $NGX_AUTOTEST*
31
32 # 1424 == 0x590, Sun Studio 12
33
34 if [ "$ngx_sunc_ver" -ge 1424 ]; then
35 ngx_sparc32="-m32"
36 ngx_sparc64="-m64"
37 ngx_amd64="-m64"
38
39 else
40 ngx_sparc32="-xarch=v8plus"
41 ngx_sparc64="-xarch=v9"
42 ngx_amd64="-amd64"
43 fi
15 44
16 case "$NGX_MACHINE" in 45 case "$NGX_MACHINE" in
17 46
18 i86pc) 47 i86pc)
19 ngx_feature="PAUSE hardware capability bug" 48 ngx_feature="PAUSE hardware capability bug"
41 esac 70 esac
42 71
43 72
44 # optimizations 73 # optimizations
45 74
46 CFLAGS="$CFLAGS -fast" 75 IPO=-xipo
76 CFLAGS="$CFLAGS -fast $IPO"
47 77
48 78
49 case $CPU in 79 case $CPU in
50 pentium) 80 pentium)
51 # optimize for Pentium and Athlon 81 # optimize for Pentium and Athlon
78 CPU_OPT="$CPU_OPT -xcache=64/64/2:1024/64/16" 108 CPU_OPT="$CPU_OPT -xcache=64/64/2:1024/64/16"
79 ;; 109 ;;
80 110
81 sparc32) 111 sparc32)
82 # build 32-bit UltraSparc binary 112 # build 32-bit UltraSparc binary
83 CPU_OPT="-m32" 113 CPU_OPT="$ngx_sparc32"
84 CORE_LINK="$CORE_LINK -m32" 114 CORE_LINK="$CORE_LINK $ngx_sparc32"
85 CC_AUX_FLAGS="$CC_AUX_FLAGS -m32" 115 CC_AUX_FLAGS="$CC_AUX_FLAGS $ngx_sparc32"
86 NGX_CPU_CACHE_LINE=64 116 NGX_CPU_CACHE_LINE=64
87 ;; 117 ;;
88 118
89 sparc64) 119 sparc64)
90 # build 64-bit UltraSparc binary 120 # build 64-bit UltraSparc binary
91 CPU_OPT="-m64" 121 CPU_OPT="$ngx_sparc64"
92 CORE_LINK="$CORE_LINK -m64" 122 CORE_LINK="$CORE_LINK $ngx_sparc64"
93 CC_AUX_FLAGS="$CC_AUX_FLAGS -m64" 123 CC_AUX_FLAGS="$CC_AUX_FLAGS $ngx_sparc64"
94 NGX_CPU_CACHE_LINE=64 124 NGX_CPU_CACHE_LINE=64
95 ;; 125 ;;
96 126
97 amd64) 127 amd64)
98 # build 64-bit amd64 binary 128 # build 64-bit amd64 binary
99 CPU_OPT="-xarch=amd64" 129 CPU_OPT="$ngx_amd64"
100 CORE_LINK="$CORE_LINK -xarch=amd64" 130 CORE_LINK="$CORE_LINK $ngx_amd64"
131 CC_AUX_FLAGS="$CC_AUX_FLAGS $ngx_amd4"
101 NGX_AUX=" src/os/unix/ngx_sunpro_amd64.il" 132 NGX_AUX=" src/os/unix/ngx_sunpro_amd64.il"
133 NGX_CPU_CACHE_LINE=64
102 ;; 134 ;;
103 135
104 esac 136 esac
105 137
106 138
107 CFLAGS="$CFLAGS $CPU_OPT" 139 CFLAGS="$CFLAGS $CPU_OPT"
108 140
109 141
110 if [ ".$PCRE_OPT" = "." ]; then 142 if [ ".$PCRE_OPT" = "." ]; then
111 PCRE_OPT="-fast $CPU_OPT" 143 PCRE_OPT="-fast $IPO $CPU_OPT"
112 fi 144 fi
113 145
114 if [ ".$MD5_OPT" = "." ]; then 146 if [ ".$MD5_OPT" = "." ]; then
115 MD5_OPT="-fast $CPU_OPT" 147 MD5_OPT="-fast $IPO $CPU_OPT"
116 fi 148 fi
117 149
118 if [ ".$ZLIB_OPT" = "." ]; then 150 if [ ".$ZLIB_OPT" = "." ]; then
119 ZLIB_OPT="-fast $CPU_OPT" 151 ZLIB_OPT="-fast $IPO $CPU_OPT"
120 fi 152 fi
121 153
122 154
123 # stop on warning 155 # stop on warning
124 CFLAGS="$CFLAGS -errwarn=%all" 156 CFLAGS="$CFLAGS -errwarn=%all"