Skip to content

Commit

Permalink
Lower optimization level for Sun Studio before 12.1.
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
mdounin committed Aug 18, 2011
1 parent b4d9ee2 commit 950b668
Showing 1 changed file with 17 additions and 5 deletions.
22 changes: 17 additions & 5 deletions auto/cc/sunc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
# Sun C 5.8 2005/10/13 Sun Studio 11
# Sun C 5.9 SunOS_i386 2007/05/03 Sun Studio 12
# Sun C 5.9 SunOS_sparc 2007/05/03
# Sun C 5.10 SunOS_i386 2009/06/03 Sun Studio 12.1
# Sun C 5.11 SunOS_i386 2010/08/13 Sun Studio 12.2

NGX_SUNC_VER=`$CC -V 2>&1 | grep 'Sun C' 2>&1 \
| sed -e 's/^.* Sun C \(.*\)/\1/'`
Expand Down Expand Up @@ -57,9 +59,19 @@ esac

# optimizations

# 20736 == 0x5100, Sun Studio 12.1

if [ "$ngx_sunc_ver" -ge 20736 ]; then
ngx_fast="-fast"

else
# older versions had problems with bit-fields
ngx_fast="-fast -xalias_level=any"
fi

IPO=-xipo
CFLAGS="$CFLAGS -fast $IPO"
CORE_LINK="$CORE_LINK -fast $IPO"
CFLAGS="$CFLAGS $ngx_fast $IPO"
CORE_LINK="$CORE_LINK $ngx_fast $IPO"


case $CPU in
Expand Down Expand Up @@ -126,15 +138,15 @@ CFLAGS="$CFLAGS $CPU_OPT"


if [ ".$PCRE_OPT" = "." ]; then
PCRE_OPT="-fast $IPO $CPU_OPT"
PCRE_OPT="$ngx_fast $IPO $CPU_OPT"
fi

if [ ".$MD5_OPT" = "." ]; then
MD5_OPT="-fast $IPO $CPU_OPT"
MD5_OPT="$ngx_fast $IPO $CPU_OPT"
fi

if [ ".$ZLIB_OPT" = "." ]; then
ZLIB_OPT="-fast $IPO $CPU_OPT"
ZLIB_OPT="$ngx_fast $IPO $CPU_OPT"
fi


Expand Down

0 comments on commit 950b668

Please sign in to comment.