Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 61590)
+++ /trunk/Config.kmk	(revision 61591)
@@ -4453,4 +4453,12 @@
 TEMPLATE_VBoxR3Dll-x86_DEFS           = $(filter-out HC_ARCH_BITS%,$(TEMPLATE_VBoxR3Dll_DEFS)) \
 	HC_ARCH_BITS=32 ARCH_BITS=32
+ifeq ($(KBUILD_TARGET),solaris)
+ ifdef VBOX_WITH_RUNPATH
+  TEMPLATE_VBoxR3Dll-x86_LDFLAGS = \
+	$(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)',$(TEMPLATE_VBoxR3Dll_LDFLAGS)) \
+	'$(VBOX_GCC_RPATH_OPT)$(VBOX_PATH_APP_PRIVATE)' \
+	'$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
+ endif
+endif
 
 
@@ -4645,5 +4653,6 @@
  TEMPLATE_VBOXR3HARDENEDEXE_LIBS.x86       = $(NOT_SUCH_VARIABLE)
  TEMPLATE_VBOXR3HARDENEDEXE_LIBS.amd64     = $(NOT_SUCH_VARIABLE)
-else ifn1of ($(KBUILD_TARGET), os2)
+else ifn1of ($(KBUILD_TARGET), os2 solaris)
+ # We want to keep the RPATH on Solaris to be able to find libgcc_1/libstdc++ within $(VBOX_WITH_RUNPATH)
  TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS       = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS))
  TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux))
@@ -5235,4 +5244,12 @@
 	$(subst $(LIB_XPCOM),$(VBOX_LIB_XPCOM_X86),\
 	$(TEMPLATE_VBOXMAINCOMP_LIBS))))
+ifeq ($(KBUILD_TARGET),solaris)
+ ifdef VBOX_WITH_RUNPATH
+  TEMPLATE_VBoxMainComp-x86_LDFLAGS = \
+	$(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)',$(TEMPLATE_VBOXMAINCOMP_LDFLAGS)) \
+	'$(VBOX_GCC_RPATH_OPT)$(VBOX_PATH_APP_PRIVATE)' \
+	'$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
+ endif
+endif
 
 
Index: /trunk/src/VBox/Installer/solaris/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Installer/solaris/Makefile.kmk	(revision 61590)
+++ /trunk/src/VBox/Installer/solaris/Makefile.kmk	(revision 61591)
@@ -251,4 +251,5 @@
 SOLARIS_COMMON = \
 	LICENSE
+
 ## @def SOLARIS_COMMON_EXES
 # List of executable script (and VBoxISAExec) files that are copied directly from INST_BIN to /opt/VirtualBox/.
@@ -266,5 +267,5 @@
 SOLARIS_FILE_LIST_VARS += SOLARIS_COMMON_STRIP_BINS
 SOLARIS_COMMON_STRIP_BINS.SUBDIRS := yes
-SOLARIS_COMMON_STRIP_BINS.STRIP   := no
+SOLARIS_COMMON_STRIP_BINS.STRIP   := yes
 SOLARIS_COMMON_STRIP_BINS.MODE    := 0644
 SOLARIS_COMMON_STRIP_BINS.SRC     := $(PATH_STAGE_BIN)
@@ -567,4 +568,6 @@
 		$(if-expr !defined(VBOX_OSE) && defined(VBOX_WITH_VBOXSDL),$(PATH_DEVTOOLS_TRG)/libsdl/v1.2.13/lib/libSDL-1.2.so.0.11.2,) \
 		\
+		$(foreach arch, x86 amd64, $(foreach lib, libgcc_s.so.1 libstdc++.so.6, $(PATH_DEVTOOLS)/solaris.$(arch)/s10libs/$(lib))) \
+		\
 		$(foreach var, $(SOLARIS_FILE_LIST_VARS),$(foreach file, $($(var)), $($(var).SRC)/$(file))) \
 		\
@@ -583,4 +586,7 @@
 		$(VBOX_PATH_SI_SCRATCH_PKG)/opt/ \
 		$(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/ \
+		$(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/legacy \
+		$(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/amd64/ \
+		$(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/amd64/legacy/ \
 		$(VBOX_PATH_SI_SCRATCH_PKG)/platform/ \
 		$(VBOX_PATH_SI_SCRATCH_PKG)/platform/i86pc/ \
@@ -637,6 +643,10 @@
 
 	$(if-expr !defined(VBOX_OSE) && defined(VBOX_WITH_VBOXSDL) \
-	,$(INSTALL) -m 0644 $(PATH_DEVTOOLS_TRG)/libsdl/v1.2.13/lib/libSDL-1.2.so.0.11.2 \
+	,$(INSTALL) -s -m 0644 $(PATH_DEVTOOLS_TRG)/libsdl/v1.2.13/lib/libSDL-1.2.so.0.11.2 \
 		$(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(VBOX_SI_ARCH)/libSDL-1.2.so.0,)
+
+	$(foreach arch, x86 amd64, $(foreach lib, libgcc_s.so.1 libstdc++.so.6 \
+		,$(NLTAB)$(INSTALL) -s -m 0644 $(PATH_DEVTOOLS)/solaris.$(arch)/s10libs/$(lib) \
+		$(VBOX_PATH_SI_SCRATCH_PKG)/opt/VirtualBox/$(if-expr $(arch) == "amd64",amd64/,)legacy/$(lib)))
 
 	$(if-expr defined(VBOX_WITH_EFIFW_PACKING) \
Index: /trunk/src/VBox/Installer/solaris/vboxconfig.sh
===================================================================
--- /trunk/src/VBox/Installer/solaris/vboxconfig.sh	(revision 61590)
+++ /trunk/src/VBox/Installer/solaris/vboxconfig.sh	(revision 61591)
@@ -1151,5 +1151,5 @@
     stop_process "VBoxNetNAT"
 
-   # Stop VBoxSVC quickly using SIGUSR1
+    # Stop VBoxSVC quickly using SIGUSR1
     procname="VBoxSVC"
     procpid=`ps -eo pid,fname | grep $procname | grep -v grep | awk '{ print $1 }'`
@@ -1182,4 +1182,7 @@
         fi
     fi
+
+    # remove the S10 legacy library links
+    for l in `find /opt/VirtualBox -name "lib*" -type l`; do rm $l; done
 }
 
@@ -1248,4 +1251,16 @@
                 subprint "Skipped for targetted installs."
             fi
+        fi
+
+        # Install the S10 legacy library links if necessary
+        if ldd /opt/VirtualBox/amd64/VBoxRT-x86.so | grep "not found" > /dev/null; then
+            for lib in `ls -1 /opt/VirtualBox/legacy/`; do
+                ln -sf legacy/$lib /opt/VirtualBox/$lib
+            done
+        fi
+        if ldd /opt/VirtualBox/amd64/VBoxRT.so | grep "not found" > /dev/null; then
+            for lib in `ls -1 /opt/VirtualBox/amd64/legacy/`; do
+                ln -sf legacy/$lib /opt/VirtualBox/amd64/$lib
+            done
         fi
 
Index: /trunk/src/libs/xpcom18a4/Config.kmk
===================================================================
--- /trunk/src/libs/xpcom18a4/Config.kmk	(revision 61590)
+++ /trunk/src/libs/xpcom18a4/Config.kmk	(revision 61591)
@@ -290,4 +290,12 @@
 TEMPLATE_XPCOM-x86_DEFS             = $(TEMPLATE_XPCOM_DEFS) VBOX_IN_32_ON_64_MAIN_API
 TEMPLATE_XPCOM-x86_LIBS             = $(subst $(LIB_RUNTIME),$(VBOX_LIB_RUNTIME_X86),$(TEMPLATE_XPCOM_LIBS))
+ifeq ($(KBUILD_TARGET),solaris)
+ ifdef VBOX_WITH_RUNPATH
+  TEMPLATE_XPCOM-x86_LDFLAGS = \
+	$(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)',$(TEMPLATE_XPCOM_LDFLAGS)) \
+	'$(VBOX_GCC_RPATH_OPT)$(VBOX_PATH_APP_PRIVATE)' \
+	'$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
+ endif
+endif
 
 
Index: /trunk/src/libs/xpcom18a4/Makefile.kmk
===================================================================
--- /trunk/src/libs/xpcom18a4/Makefile.kmk	(revision 61590)
+++ /trunk/src/libs/xpcom18a4/Makefile.kmk	(revision 61591)
@@ -1106,5 +1106,12 @@
 TEMPLATE_XPCOMIPC-x86_BLD_TRG_ARCH = x86
 TEMPLATE_XPCOMIPC-x86_LIBS         = $(VBoxXPCOM-x86_1_TARGET) $(TEMPLATE_XPCOM-x86_LIBS)
-
+ifeq ($(KBUILD_TARGET),solaris)
+ ifdef VBOX_WITH_RUNPATH
+  TEMPLATE_XPCOMIPC-x86_LDFLAGS = \
+	$(filter-out '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)',$(TEMPLATE_XPCOMIPC_LDFLAGS)) \
+	'$(VBOX_GCC_RPATH_OPT)$(VBOX_PATH_APP_PRIVATE)' \
+	'$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
+ endif
+endif
 
 TEMPLATE_XPCOMIPCEXE               = XPCOM IPC executables
