--with-cpu-opt=sparc32 and --with-cpu-opt=sparc64
diff --git a/auto/cc/sunc b/auto/cc/sunc
index f4a1c02..247d92a 100644
--- a/auto/cc/sunc
+++ b/auto/cc/sunc
@@ -35,9 +35,6 @@
;;
sun4u | sun4v)
- # "-xarch=v9" enables the "casa" assembler instruction
- CPU_OPT="-xarch=v9"
- CORE_LINK="$CORE_LINK -xarch=v9"
NGX_AUX=" src/os/unix/ngx_sunpro_sparc64.il"
;;
@@ -81,6 +78,22 @@
CPU_OPT="$CPU_OPT -xcache=64/64/2:1024/64/16"
;;
+ sparc32)
+ # build 32-bit UltraSparc binary
+ CPU_OPT="-m32"
+ CORE_LINK="$CORE_LINK -m32"
+ CC_AUX_FLAGS="$CC_AUX_FLAGS -m32"
+ NGX_CPU_CACHE_LINE=64
+ ;;
+
+ sparc64)
+ # build 64-bit UltraSparc binary
+ CPU_OPT="-m64"
+ CORE_LINK="$CORE_LINK -m64"
+ CC_AUX_FLAGS="$CC_AUX_FLAGS -m64"
+ NGX_CPU_CACHE_LINE=64
+ ;;
+
amd64)
# build 64-bit amd64 binary
CPU_OPT="-xarch=amd64"
diff --git a/src/os/unix/ngx_atomic.h b/src/os/unix/ngx_atomic.h
index c0734e1..ec90855 100644
--- a/src/os/unix/ngx_atomic.h
+++ b/src/os/unix/ngx_atomic.h
@@ -136,7 +136,7 @@
#endif
-#elif ( __sparc__ || __sparcv9 )
+#elif ( __sparc__ || __sparc || __sparcv9 )
#if (NGX_PTR_SIZE == 8)