summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-05-08 09:41:43 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-05-08 09:41:43 +0000
commit4318688cce5dc30a2db7bfe1a734e1ff6782e7f9 (patch)
tree910fef7ed844d04fdad00f137d95b8ae56777af5
parentf794318d6023a06654ba71626db295d0715c4cad (diff)
downloadnginx-4318688cce5dc30a2db7bfe1a734e1ff6782e7f9.tar.gz
preserve Solaris binary hardware capabilities
-rw-r--r--auto/cc/sunc15
-rw-r--r--src/os/unix/ngx_sunpro_x86.il11
-rw-r--r--src/os/unix/ngx_sunpro_x86.map2
3 files changed, 8 insertions, 20 deletions
diff --git a/auto/cc/sunc b/auto/cc/sunc
index 0d7e2b2a7..1d3c68700 100644
--- a/auto/cc/sunc
+++ b/auto/cc/sunc
@@ -45,21 +45,6 @@ fi
case "$NGX_MACHINE" in
i86pc)
- ngx_feature="PAUSE hardware capability bug"
- ngx_feature_name=
- ngx_feature_run=bug
- ngx_feature_incs=
- ngx_feature_path=
- ngx_feature_libs=
- ngx_feature_test='__asm ("pause")'
-
- . auto/feature
-
- if [ $ngx_found = yes ]; then
- # disable [ PAUSE ] hwcap for Sun Studio 11
- CORE_LINK="$CORE_LINK -Msrc/os/unix/ngx_sunpro_x86.map"
- fi
-
NGX_AUX=" src/os/unix/ngx_sunpro_x86.il"
;;
diff --git a/src/os/unix/ngx_sunpro_x86.il b/src/os/unix/ngx_sunpro_x86.il
index b82a2267b..e32ea8cc1 100644
--- a/src/os/unix/ngx_sunpro_x86.il
+++ b/src/os/unix/ngx_sunpro_x86.il
@@ -5,7 +5,7 @@
/ ngx_atomic_uint_t ngx_atomic_cmp_set(ngx_atomic_t *lock,
/ ngx_atomic_uint_t old, ngx_atomic_uint_t set);
/
-/ the arguments are passed on the stack (%esp), 4(%esp), 8(%esp)
+/ the arguments are passed on stack (%esp), 4(%esp), 8(%esp)
.inline ngx_atomic_cmp_set,0
movl (%esp), %ecx
@@ -21,7 +21,7 @@
/ ngx_atomic_int_t ngx_atomic_fetch_add(ngx_atomic_t *value,
/ ngx_atomic_int_t add);
/
-/ the arguments are passed on the stack (%esp), 4(%esp)
+/ the arguments are passed on stack (%esp), 4(%esp)
.inline ngx_atomic_fetch_add,0
movl (%esp), %ecx
@@ -32,7 +32,12 @@
/ ngx_cpu_pause()
+/
+/ the "rep; nop" is used instead of "pause" to avoid the "[ PAUSE ]" hardware
+/ capability added by linker because Solaris/i386 does not know about it:
+/
+/ ld.so.1: nginx: fatal: hardware capability unsupported: 0x2000 [ PAUSE ]
.inline ngx_cpu_pause,0
- pause
+ rep; nop
.end
diff --git a/src/os/unix/ngx_sunpro_x86.map b/src/os/unix/ngx_sunpro_x86.map
deleted file mode 100644
index 971dda649..000000000
--- a/src/os/unix/ngx_sunpro_x86.map
+++ /dev/null
@@ -1,2 +0,0 @@
-# disable { PAUSE ] hwcap for Sun Studio 11
-hwcap_1 = OVERRIDE;