]> git.kaiwu.me - nginx.git/commitdiff
Merge of r4004, r4005:
authorIgor Sysoev <igor@sysoev.ru>
Mon, 29 Aug 2011 12:50:35 +0000 (12:50 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Mon, 29 Aug 2011 12:50:35 +0000 (12:50 +0000)
Solaris related fixes:

*) Detect POSIX semaphores in librt on Solaris (ticket #3).
   Patch by Denis Ivanov.
*) 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.

auto/cc/sunc
auto/unix

index 1d3c687007dd16473044567b554193fc35ad6a92..69e6c2c7128fd49e9a7fa1d650f277eff4bbcc45 100644 (file)
@@ -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/'`
@@ -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
@@ -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
 
 
index 190d4a43fbe05fcf5fb444c01a6e064109cd6131..b3541c56e7264de8669263bd68599cdef2107996 100755 (executable)
--- a/auto/unix
+++ b/auto/unix
@@ -620,6 +620,19 @@ if [ $ngx_found = no ]; then
 fi
 
 
+if [ $ngx_found = no ]; then
+
+    # Solaris has POSIX semaphores in librt
+    ngx_feature="POSIX semaphores in librt"
+    ngx_feature_libs=-lrt
+    . auto/feature
+
+    if [ $ngx_found = yes ]; then
+        CORE_LIBS="$CORE_LIBS -lrt"
+    fi
+fi
+
+
 ngx_feature="struct msghdr.msg_control"
 ngx_feature_name="NGX_HAVE_MSGHDR_MSG_CONTROL"
 ngx_feature_run=no