From 4318688cce5dc30a2db7bfe1a734e1ff6782e7f9 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Fri, 8 May 2009 09:41:43 +0000 Subject: [PATCH] preserve Solaris binary hardware capabilities --- auto/cc/sunc | 15 --------------- src/os/unix/ngx_sunpro_x86.il | 11 ++++++++--- src/os/unix/ngx_sunpro_x86.map | 2 -- 3 files changed, 8 insertions(+), 20 deletions(-) delete mode 100644 src/os/unix/ngx_sunpro_x86.map 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;