diff -aur src/boost_1_36_0.orig/tools/build/v2/tools/sun.jam src/boost_1_36_0/tools/build/v2/tools/sun.jam
--- src/boost_1_36_0.orig/tools/build/v2/tools/sun.jam	2007-11-15 10:31:06.000000000 -0600
+++ src/boost_1_36_0/tools/build/v2/tools/sun.jam	2008-09-08 06:58:04.024149000 -0500
@@ -46,13 +46,15 @@
 generators.register-c-compiler sun.compile.c++ : CPP : OBJ : <toolset>sun ;
 
 # Declare flags and actions for compilation
-flags sun.compile OPTIONS <debug-symbols>on : -g ;
-flags sun.compile OPTIONS <profiling>on : -xprofile=tcov ;
-flags sun.compile OPTIONS <optimization>speed : -fast ;
-flags sun.compile OPTIONS <optimization>space : -xO2 -xspace ;
-flags sun.compile OPTIONS <threading>multi : -mt ;
-
-flags sun.compile.c++ OPTIONS <inlining>off : +d ;
+flags sun.compile BUILD_OPTIONS <threading>multi : -mt ;
+flags sun.compile.c++ BUILD_OPTIONS <inlining>off : +d ;
+flags sun.compile VARIANT_OPTIONS <debug-symbols>on : -g ;
+flags sun.compile VARIANT_OPTIONS <profiling>on : -xprofile=tcov ;
+
+feature.feature optimizeflags :  : free ;
+flags sun.compile OPTIMIZE_OPTIONS <optimizeflags> ;
+flags sun.compile OPTIMIZE_OPTIONS <optimization>speed : -fast ;
+flags sun.compile OPTIMIZE_OPTIONS <optimization>space : -xO2 -xspace ;
 
 # The -m32 and -m64 options are supported starting
 # with Sun Studio 12.  On earlier compilers, the
@@ -61,15 +63,15 @@
 # option.
 # See http://svn.boost.org/trac/boost/ticket/1186
 # for details.
-flags sun OPTIONS <address-model>32 : -m32 ;
-flags sun OPTIONS <address-model>64 : -m64 ;
+flags sun ARCH_OPTIONS <address-model>32 : -m32 ;
+flags sun ARCH_OPTIONS <address-model>64 : -m64 ;
 # On sparc, there's a difference between -Kpic
 # and -KPIC. The first is slightly more efficient,
 # but has the limits on the size of GOT table.
 # For minimal fuss on user side, we use -KPIC here.
 # See http://svn.boost.org/trac/boost/ticket/1186#comment:6
 # for detailed explanation.
-flags sun OPTIONS <link>shared : -KPIC ;
+flags sun ARCH_OPTIONS <link>shared : -KPIC ;
 
 flags sun.compile OPTIONS <cflags> ;
 flags sun.compile.c++ OPTIONS <cxxflags> ;
@@ -78,21 +80,39 @@
 
 actions compile.c
 {
-    "$(CONFIG_C_COMMAND)" $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
+    "$(CONFIG_C_COMMAND)" $(BUILD_OPTIONS) -errtags -erroff=wvarhidemem $(VARIANT_OPTIONS) $(OPTIMIZE_OPTIONS) $(ARCH_OPTIONS) $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
 }
 
 actions compile.c++
 {
-    "$(CONFIG_COMMAND)" $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
+    "$(CONFIG_COMMAND)" $(BUILD_OPTIONS) -errtags -erroff=wvarhidemem $(VARIANT_OPTIONS) $(OPTIMIZE_OPTIONS) $(ARCH_OPTIONS) $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
 }
 
-# Declare flags and actions for linking
-flags sun.link OPTIONS <debug-symbols>on : -g ;
-# Strip the binary when no debugging is needed
-flags sun.link OPTIONS <debug-symbols>off : -s ;
-flags sun.link OPTIONS <profiling>on : -xprofile=tcov ;
-flags sun.link OPTIONS <threading>multi : -mt ;
+# All linking
+flags sun.link VARIANT_OPTIONS <debug-symbols>on : -g ;
+flags sun.link VARIANT_OPTIONS <debug-symbols>off : -s ;
+flags sun.link VARIANT_OPTIONS <profiling>on : -xprofile=tcov ;
+flags sun.link BUILD_OPTIONS <threading>multi : -mt ;
+flags sun.link OPTIMIZE_OPTIONS <optimizeflags> ;
+flags sun.link OPTIMIZE_OPTIONS <optimization>speed : -fast ;
+flags sun.link OPTIMIZE_OPTIONS <optimization>space : -xO2 -xspace ;
+flags sun.link ARCH_OPTIONS <address-model>32 : -m32 ;
+flags sun.link ARCH_OPTIONS <address-model>64 : -m64 ;
 flags sun.link OPTIONS <linkflags> ;
+
+# Static linking
+flags sun.archive VARIANT_OPTIONS <debug-symbols>on : -g ;
+flags sun.archive VARIANT_OPTIONS <debug-symbols>off : -s ;
+flags sun.archive VARIANT_OPTIONS <profiling>on : -xprofile=tcov ;
+flags sun.archive BUILD_OPTIONS <threading>multi : -mt ;
+flags sun.archive OPTIMIZE_OPTIONS <optimizeflags> ;
+flags sun.archive OPTIMIZE_OPTIONS <optimization>speed : -fast ;
+flags sun.archive OPTIMIZE_OPTIONS <optimization>space : -xO2 -xspace ;
+flags sun.archive ARCH_OPTIONS <address-model>32 : -m32 ;
+flags sun.archive ARCH_OPTIONS <address-model>64 : -m64 ;
+flags sun.archive OPTIONS <linkflags> ;
+
+# Dynamic linking
 flags sun.link LINKPATH <library-path> ;
 flags sun.link FINDLIBS-ST <find-static-library> ;
 flags sun.link FINDLIBS-SA <find-shared-library> ;
@@ -115,7 +135,7 @@
 
 actions link bind LIBRARIES
 {
-    "$(CONFIG_COMMAND)" $(OPTIONS) -L"$(LINKPATH)" -R"$(RPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" -Bdynamic -l$(FINDLIBS-SA) -Bstatic -l$(FINDLIBS-ST) -B$(LINK-RUNTIME)
+    "$(CONFIG_COMMAND)" $(BUILD_OPTIONS) $(STLPORT_FLAGS) $(VARIANT_OPTIONS) $(OPTIMIZE_OPTIONS) $(ARCH_OPTIONS) $(OPTIONS) -L"$(LINKPATH)" -R"$(RPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" -Bdynamic -l$(FINDLIBS-SA) -Bstatic -l$(FINDLIBS-ST) -B$(LINK-RUNTIME)
 }
 
 # Slight mods for dlls
@@ -126,12 +146,12 @@
 
 actions link.dll bind LIBRARIES
 {
-    "$(CONFIG_COMMAND)" $(OPTIONS) -L"$(LINKPATH)" -R"$(RPATH)" -o "$(<)" -h$(<[1]:D=) -G "$(>)" "$(LIBRARIES)" -Bdynamic -l$(FINDLIBS-SA) -Bstatic -l$(FINDLIBS-ST) -B$(LINK-RUNTIME)
+    "$(CONFIG_COMMAND)" $(BUILD_OPTIONS) $(STLPORT_FLAGS) $(VARIANT_OPTIONS) $(OPTIMIZE_OPTIONS) $(ARCH_OPTIONS) $(OPTIONS) -L"$(LINKPATH)" -R"$(RPATH)" -o "$(<)" -h$(<[1]:D=) -G "$(>)" "$(LIBRARIES)" -Bdynamic -l$(FINDLIBS-SA) -Bstatic -l$(FINDLIBS-ST) -B$(LINK-RUNTIME)
 }
 
 # Declare action for creating static libraries
 actions piecemeal archive
 {
-    "$(CONFIG_COMMAND)" -xar -o "$(<)" "$(>)"
+    "$(CONFIG_COMMAND)" $(BUILD_OPTIONS) $(STLPORT_FLAGS) $(VARIANT_OPTIONS) $(OPTIMIZE_OPTIONS) $(ARCH_OPTIONS) $(OPTIONS) -xar -o "$(<)" "$(>)"
 }
 

