usr/src/cmd/cimserver/patch
author Jon Tibble <meths@btinternet.com>
Mon, 04 May 2015 14:04:39 +0100
branchoi_151a
changeset 254 9c2a4ac793f0
parent 0 b34509ac961f
permissions -rw-r--r--
Bash patch catchup including shellshock

--- old/pegasus/mak/SDKMakefile	2008-11-12 15:37:11.780365000 -0500
+++ new/pegasus/mak/SDKMakefile	2008-11-12 15:37:11.312376000 -0500
@@ -120,6 +120,14 @@
    Pegasus/Provider/Linkage.h \
    Pegasus/Provider/ProviderException.h
 
+## Common Platform Include for SOLARIS platform.
+## Add Platform_SOLARIS_CC.h file
+ifdef PEGASUS_OS_SOLARIS
+    ifeq ($(findstring _CC, $(PEGASUS_PLATFORM)), _CC)
+        INCLUDE_FILES += Pegasus/Common/Platform_SOLARIS_CC.h
+    endif
+endif
+
 # CMPI header files
 INCLUDE_FILES += \
    Pegasus/Provider/CMPI/cmpift.h \
--- old/pegasus/mak/config.mak	2008-11-12 15:37:36.825556000 -0500
+++ new/pegasus/mak/config.mak	2008-11-12 15:37:36.326815000 -0500
@@ -838,15 +838,12 @@
 #
 # PEGASUS_ENABLE_SLP and PEGASUS_DISABLE_SLP
 #
-# PEGASUS_DISABLE_SLP has been depracated. New use model is:
+# PEGASUS_DISABLE_SLP has been deprecated. New use model is:
 #
 # Use PEGASUS_ENABLE_SLP=true  to enable  compilation of SLP functions.
 #
 # Use PEGASUS_ENABLE_SLP=false to disable compilation of SLP functions.
 #
-# Currently (Aug. 12, 2005) Windows is the only platform that enables SLP
-# by default.
-#
 # NOTE. Effective with Bug # 2633 some platforms enable SLP.
 # To see which platforms look for platform make files that set
 # the variable PEGASUS_ENABLE_SLP.
@@ -881,6 +878,14 @@
 #
 # PEGASUS_USE_OPENSLP
 #
+## NOTE:  This variable has been deprecated and superceded by the use of
+## PEGASUS_USE_EXTERNAL_SLP.  The use of this variable may be
+## removed from PEgasus in future releases.  It is converted to the
+## PEGASUS_USE_EXTERNAL_SLP variable in the following function.
+## Do not allow PEGASUS_USE_EXTERNAL_SLP if PEGASUS_ENABLE_SLP not set and
+## insure that PEGASUS_USE_OPENSLP and PEGASUS_USE_EXTERNAL_SLP are not used
+## simultaneously.
+#
 # Environment variable to set openslp as SLP environment to use
 # for SLP Directory and User Agents.
 #
@@ -888,10 +893,7 @@
 # internal pegasus slp agent.  Note that this does not disable the
 # compilation of the internal agent code, etc.  However, it assumes
 # openslp is installed on the platform and changes the interfaces
-# to match this.  At this moment, this is a change specifically for
-# adaptec but we expect to generalize it to provide openslp as a
-# generalized alternative to ldapslp.
-# to use this. To set this function up,
+# to match this.
 #
 # Use this variable in conjunction with PEGASUS_OPENSLP_HOME
 # to enable OpenSlp as the slp implementation.
@@ -900,11 +902,19 @@
 #
 
 ifdef PEGASUS_USE_OPENSLP
+  ifdef PEGASUS_USE_EXTERNAL_SLP
+      $(error Both PEGASUS_USE_OPENSLP and PEGASUS_USE_EXTERNAL_SLP defined. \
+          Please use PEGASUS_USE_EXTERNAL_SLP)
+  endif
+  ## if PEGASUS_USE_OPENSLP used, convert to EXTERNAL_SLP variables
+  ## as defined for openslp
   ifeq ($(PEGASUS_USE_OPENSLP),true)
     ifeq ($(PEGASUS_ENABLE_SLP),true)
-      DEFINES += -DPEGASUS_USE_OPENSLP
+      PEGASUS_USE_EXTERNAL_SLP=openslp
+      PEGASUS_USE_OPENSLP=
     else
-      $(error PEGASUS_USE_OPENSLP defined but PEGASUS_ENABLE_SLP is not true. Please correct this inconsistency)
+      $(error PEGASUS_USE_OPENSLP defined but PEGASUS_ENABLE_SLP is not true. 
+        Please correct this inconsistency)
     endif
   else
     ifneq ($(PEGASUS_USE_OPENSLP), false)
@@ -915,22 +925,72 @@
   endif
 endif
 
+#########################################################################
 # PEP 267
 # SLP reregistration support.
 # PEGASUS_SLP_REG_TIMEOUT is defined as the SLP registration timeout
 # interval, in minutes.
 ifdef PEGASUS_SLP_REG_TIMEOUT
     ifeq ($(PEGASUS_ENABLE_SLP),true)
-       DEFINES += -DPEGASUS_SLP_REG_TIMEOUT=$(PEGASUS_SLP_REG_TIMEOUT)
-     else
-       $(error PEGASUS_SLP_REG_TIMEOUT defined but PEGASUS_ENABLE_SLP is not true. Please correct this inconsistency)
-     endif
- endif
+        DEFINES += -DPEGASUS_SLP_REG_TIMEOUT=$(PEGASUS_SLP_REG_TIMEOUT)
+    else
+        $(error PEGASUS_SLP_REG_TIMEOUT defined but PEGASUS_ENABLE_SLP is not true. \
+          Please correct this inconsistency)
+    endif
+endif
+
+############################################################################
+#
+# PEGASUS_USE_EXTERNAL_SLP
+
+# Environment variable to set an external slp implementation as the SLP
+# environment to use for SLP Directory Agents.
+
+# This allows setting any one of several possible external SLP SAs as the
+# interface for the SLP provider to communicate with in managing SLP templates
+# in place of the internal SLP agent provided with Pegasus.
+# Note: This does not disable the compilation of the internal agent code since
+# this is used for the SLP UA defined with the pegasus client.
+# Pegasus assumes that the external SLP defined is installed on the platform
+# and running when pegasus is started. It changes the interfaces from the SLP
+# provider to match the defined SLP implementation.
+
+# This environment variable superceedes the use of PEGASUS_USE_OPENSLP since
+# openslp is considered one of the valid external SLP environments usable by
+# pegasus.
+
+# The variable uses the value component to define a name for the external SLP
+# environment that must match one of the names defined below.
+
+# This variable is not allowed if the PEGASUS_ENABLE_SLP flag is not set.
+
+# Allow only predefined string values for the variable corresponding
+# to external slp types that pegasus knows.
+# Valid types are openslp (1) and solarisslp (2)
+EXTERNAL_SLP_TYPES = openslp solarisslp
+
+ifdef PEGASUS_USE_EXTERNAL_SLP
+  ifeq ($(PEGASUS_ENABLE_SLP),true)
+    ifeq ($(PEGASUS_USE_EXTERNAL_SLP),openslp)
+	DEFINES += -DPEGASUS_USE_EXTERNAL_SLP_TYPE=1
+    else
+	ifeq ($(PEGASUS_USE_EXTERNAL_SLP),solarisslp)
+	  DEFINES += -DPEGASUS_USE_EXTERNAL_SLP_TYPE=2
+	else
+	 $(error PEGASUS_USE_EXTERNAL_SLP value ($(PEGASUS_USE_EXTERNAL_SLP)) \
+	   invalid. It must be one of valid SLP external types \
+	   ($(EXTERNAL_SLP_TYPES)) )
+	endif
+    endif
+  endif
+endif
 
 ############################################################################
 #
 # PEGASUS_OPENSLP_HOME
 #
+# PEGASUS_OPENSLP_HOME superceeded by PEGASUS_OPEN_EXTERNAL_SLP_HOME. If
+# PEGASUS_OPENSLP_HOME is encountered it will create PEGASUS_OPEN_EXTERNAL_SLP_HOME
 # Environment variable to set home location for OpenSLP include and library
 # files if they are located somewhere other than /usr/include and /usr/lib.
 #
@@ -944,7 +1004,36 @@
 #     then this environment variable should be set to /opt/OpenSLP.
 #
 
+ifdef PEGASUS_OPENSLP_HOME
+  ifdef PEGASUS_OPEN_EXTERNAL_SLP_HOME
+    $(error Both PEGASUS_OPENSLP_HOME and PEGASUS_OPEN_EXTERNAL_SLP_HOME defined. \
+	Please use PEGASUS_OPEN_EXTERNAL_SLP_HOME)
+  else
+	PEGASUS_EXTERNAL_SLP_HOME=$(PEGASUS_OPENSLP_HOME)
+  endif
+endif
 
+############################################################################
+#
+# PEGASUS_EXTERNAL_SLP_HOME
+#
+# Environment variable to set home location for External SLP include and library
+# files if they are located somewhere other than /usr/include and /usr/lib.
+#
+# This variable superceeds PEGASUS_OPENSLP_HOME to match the use of
+# PEGASUS_USE_EXTERNAL_SLP variable.
+#
+# PEGASUS_USE_EXTERNAL_SLP must also be defined for this environment variable
+# to have any effect.
+#
+# This is the directory level within which both the include and lib
+# directories holding the OpenSLP files will be found.
+#
+# EG: If the are located in /opt/OpenSLP/include and /opt/OpenSLP/lib
+#	then this environment variable should be set to /opt/OpenSLP.
+#
+
+############################################################################
 #
 # Enable this flag to allow the handshake to continue regardless of verification result
 #
--- old/pegasus/mak/platform_SOLARIS_SPARC_CC.mak	2008-11-12 15:37:43.792993000 -0500
+++ new/pegasus/mak/platform_SOLARIS_SPARC_CC.mak	2008-11-12 15:37:43.519023000 -0500
@@ -27,137 +27,13 @@
 #// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 #// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #//
-#//==============================================================================
-include $(ROOT)/mak/config-unix.mak
+#//=============================================================================
 
-OS = solaris
+#PEGASUS_SOLARIS_NEED_PTO=1
 
-ARCHITECTURE = sparc
-
-COMPILER = CC
-
-CC = cc
-
-#
-# This is a hack because the Pegasus build system doesn't have a way to specify
-# flags just for the C compiler or just for the C++ compiler.
-#
-CXX = CC -pto
-
-SH = sh
-
-YACC = yacc
-
-RM = rm -f
-
-DIFF = diff
-
-SORT = sort
-
-COPY = cp
-
-MOVE = mv
-
-LIB_SUFFIX = .so
-
-PEGASUS_SUPPORTS_DYNLIB = yes
-
-SYS_INCLUDES = 
-
-DEFINES = -DPEGASUS_PLATFORM_$(PEGASUS_PLATFORM) -D_POSIX_PTHREAD_SEMANTICS
-
-DEFINES += -DPEGASUS_OS_SOLARIS
+LIBBASE=lib
 
-# PEGASUS_SNIA_INTEROP_TEST is currently (1/27/06) tested  and set in these 
-# platform files:
-#
-#    platform_SOLARIS_SPARC_CC.mak
-#    platform_WIN32_IX86_MSVC.mak
-#
-ifdef PEGASUS_SNIA_INTEROP_TEST
-DEFINES += -DPEGASUS_SNIA_INTEROP_TEST
-endif
+include $(ROOT)/mak/platform_SOLARIS_CC.mak
 
-#
-# This is needed for SPARC.  It shouldn't be needed for x86
-# or x86-64 if a port is ever done for Solaris on those
-# platforms.
-#
-DEFINES += -DTYPE_CONV
-
-# "READBUG" forces fstream.read to read 1 char at a time to
-# overcome a bug in Wshop 6.2
-# There are patches for this now.
-#
-# DEFINES += -DPEGASUS_OS_SOLARIS_READBUG
-
-SUNOS_VERSION = $(shell uname -r)
-
-
-# Pegasus requires the kernel LWP thread model.
-# It doesn't exist on SunOS 5.6 or 5.7 so thery are no longer supported.
-#
-ifeq ($(SUNOS_VERSION), 5.6)
-DEFINES += -DSUNOS_5_6
-    $(error SunOS version 5.6 is not supportted)
-endif
-
-# Pegasus requires the kernel LWP thread model.
-# It doesn't exist on SunOS 5.6 or 5.7 so thery are no longer supported.
-#
-ifeq ($(SUNOS_VERSION), 5.7)
-DEFINES += -DSUNOS_5_7
-    $(error SunOS version 5.7 is not supportted)
-endif
-
-ifeq ($(SUNOS_VERSION), 5.8)
-DEFINES += -DSUNOS_5_8
-endif
-
-ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS 
-FLAGS = -g -KPIC -mt -xs -xildoff
-else
-FLAGS = -O4 -KPIC -mt -xildoff -s -xipo=1
-endif
-
-# Need warnings:
-FLAGS += +w
-
-##==============================================================================
-##
-## COMMON_SYS_LIBS
-##
-##     Build the common list of libraries used in linking both libraries and
-##     programs.
-##
-##==============================================================================
-
-COMMON_SYS_LIBS = -lpthread -ldl -lsocket -lnsl -lxnet -lCstd
-
-ifeq ($(SUNOS_VERSION), 5.6)
-COMMON_SYS_LIBS += -lposix4
-else
-COMMON_SYS_LIBS += -lrt
-endif
-
-# on SunOS 5.8 use the alternate (kernel LWP) thread model that is standard on 
-# SunOS 5.9 and 5.10
-# 
-ifeq ($(SUNOS_VERSION), 5.8)
-COMMON_SYS_LIBS += -R /usr/lib/lwp
-endif
-
-##==============================================================================
-##
-## SYS_LIBS (system libraries needed to build programs)
-##
-##==============================================================================
-SYS_LIBS = $(COMMON_SYS_LIBS) $(EXTRA_LIBRARIES)
-
-##==============================================================================
-##
-## LIBRARY_SYS_LIBS (system libraries needed to build other libraries)
-##
-##==============================================================================
-LIBRARY_SYS_LIBS = $(COMMON_SYS_LIBS)
+ARCHITECTURE = sparc
 
--- /dev/null	2008-11-12 15:37:48.000000000 -0500
+++ new/pegasus/mak/platform_SOLARIS_IX86_CC.mak	2008-11-12 15:37:48.596863000 -0500
@@ -0,0 +1,37 @@
+#//%2006////////////////////////////////////////////////////////////////////////
+#//
+#// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+#// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+#// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation, The Open Group.
+#// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; Symantec Corporation; The Open Group.
+#//
+#// Permission is hereby granted, free of charge, to any person obtaining a copy
+#// of this software and associated documentation files (the "Software"), to
+#// deal in the Software without restriction, including without limitation the
+#// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+#// sell copies of the Software, and to permit persons to whom the Software is
+#// furnished to do so, subject to the following conditions:
+#//
+#// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
+#// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
+#// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+#// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+#// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+#// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+#// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+#// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#//
+#//=============================================================================
+
+LIBBASE=lib
+
+include $(ROOT)/mak/platform_SOLARIS_CC.mak
+
+ARCHITECTURE = ix86
+
--- /dev/null	2008-11-12 15:37:59.000000000 -0500
+++ new/pegasus/mak/platform_SOLARIS_SPARC_64_CC.mak	2008-11-12 15:37:58.901241000 -0500
@@ -0,0 +1,43 @@
+#//%2006////////////////////////////////////////////////////////////////////////
+#//
+#// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+#// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+#// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation, The Open Group.
+#// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; Symantec Corporation; The Open Group.
+#//
+#// Permission is hereby granted, free of charge, to any person obtaining a copy
+#// of this software and associated documentation files (the "Software"), to
+#// deal in the Software without restriction, including without limitation the
+#// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+#// sell copies of the Software, and to permit persons to whom the Software is
+#// furnished to do so, subject to the following conditions:
+#//
+#// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
+#// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
+#// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+#// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+#// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+#// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+#// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+#// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#//
+#//=============================================================================
+
+#PEGASUS_SOLARIS_NEED_PTO=1
+
+LIBBASE=lib/64
+
+include $(ROOT)/mak/platform_SOLARIS_CC.mak
+
+ARCHITECTURE = sparc
+
+LINK_MACHINE_OPTIONS += -m64
+
+FLAGS += -m64
+
--- /dev/null	2008-11-12 15:38:04.000000000 -0500
+++ new/pegasus/mak/platform_SOLARIS_CC.mak	2008-11-12 15:38:04.647310000 -0500
@@ -0,0 +1,190 @@
+#//%2006////////////////////////////////////////////////////////////////////////
+#//
+#// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+#// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+#// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation, The Open Group.
+#// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; Symantec Corporation; The Open Group.
+#//
+#// Permission is hereby granted, free of charge, to any person obtaining a copy
+#// of this software and associated documentation files (the "Software"), to
+#// deal in the Software without restriction, including without limitation the
+#// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+#// sell copies of the Software, and to permit persons to whom the Software is
+#// furnished to do so, subject to the following conditions:
+#//
+#// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
+#// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
+#// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+#// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+#// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+#// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+#// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+#// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#//
+#//=============================================================================
+
+include $(ROOT)/mak/config-unix.mak
+
+OS = solaris
+
+ifdef CXX_COMPILER_COMMAND
+	CXX = $(CXX_COMPILER_COMMAND)
+else
+	CXX = CC
+endif
+
+ifdef C_COMPILER_COMMAND
+	CC = $(C_COMPILER_COMMAND)
+else
+	CC = cc
+endif
+
+COMPILER = CC
+
+SH = sh
+
+YACC = yacc
+
+RM = rm -f
+
+DIFF = diff
+
+SORT = sort
+
+COPY = cp
+
+MOVE = mv
+
+LIB_SUFFIX = .so
+
+PEGASUS_SUPPORTS_DYNLIB = yes
+
+SYS_INCLUDES =
+
+EXTRA_LINK_FLAGS =
+
+EXTRA_LIBRARIES =
+
+##==============================================================================
+##
+## DEFINES
+##
+##==============================================================================
+
+DEFINES += -DPEGASUS_PLATFORM_$(PEGASUS_PLATFORM)
+DEFINES += -D_POSIX_PTHREAD_SEMANTICS
+DEFINES += -DPEGASUS_OS_SOLARIS
+
+ifndef PEGASUS_ARCH_LIB
+  PEGASUS_ARCH_LIB = "lib"
+endif
+
+DEFINES += -DPEGASUS_ARCH_LIB=\"$(PEGASUS_ARCH_LIB)\"
+
+##==============================================================================
+##
+## FLAGS
+##
+##==============================================================================
+
+ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS
+  FLAGS = -g -xs
+else
+  FLAGS = -O2 -s
+  EXTRA_LINK_FLAGS += -norunpath
+endif
+
+ifdef PEGASUS_SOLARIS_NEED_PTO
+  FLAGS += -pto
+endif
+
+FLAGS += -KPIC -mt -xildoff -norunpath
+
+##==============================================================================
+##
+## COMMON_SYS_LIBS
+##
+##==============================================================================
+
+COMMON_SYS_LIBS = -lpthread -ldl -lsocket -lnsl -lxnet -lCstd -lrt
+
+##==============================================================================
+##
+## SYS_LIBS (system libraries needed to build programs)
+##
+##==============================================================================
+
+SYS_LIBS = $(COMMON_SYS_LIBS) $(EXTRA_LIBRARIES)
+
+##==============================================================================
+##
+## LIBRARY_SYS_LIBS (system libraries needed to build other libraries)
+##
+##==============================================================================
+
+LIBRARY_SYS_LIBS = $(COMMON_SYS_LIBS)
+
+##==============================================================================
+# Enable OOP by default if preference not already set in the environment
+##==============================================================================
+ifndef PEGASUS_DEFAULT_ENABLE_OOP
+  PEGASUS_DEFAULT_ENABLE_OOP = true
+endif
+
+##==============================================================================
+##
+## OpenSSL Settings
+##
+##	To build for SSL, add PEGASUS_HAS_SSL=1 to environment
+##
+##==============================================================================
+
+ifndef OPENSSL_HOME
+  OPENSSL_HOME=/usr/sfw
+endif
+
+ifndef OPENSSL_BIN
+  OPENSSL_BIN=/usr/sfw/bin
+endif
+
+ifndef OPENSSL_COMMAND
+  OPENSSL_COMMAND=/usr/sfw/bin/openssl
+endif
+
+ifndef PEGASUS_ENABLE_SSL_CRL_VERIFICATION
+  PEGASUS_ENABLE_SSL_CRL_VERIFICATION=true
+endif
+
+ifndef PEGASUS_USE_SSL_RANDOMFILE
+  PEGASUS_USE_SSL_RANDOMFILE=true
+endif
+
+ifdef PEGASUS_HAS_SSL
+  FLAGS += -L$(OPENSSL_HOME)/$(LIBBASE)
+  EXTRA_LIBRARIES += -L$(OPENSSL_HOME)/$(LIBBASE)
+  EXTRA_LINK_FLAGS += -R$(OPENSSL_HOME)/$(LIBBASE)
+endif
+
+##==============================================================================
+##
+## OpenSPL Settings
+##
+##	Build for either OpenSlp or SolarisSLP.
+##
+##==============================================================================
+
+ifndef PEGASUS_EXTERNAL_SLP_HOME
+  PEGASUS_EXTERNAL_SLP_HOME=/usr
+endif
+
+ifeq ($(PEGASUS_USE_EXTERNAL_SLP),openslp)
+  FLAGS += -L$(PEGASUS_EXTERNAL_SLP_HOME)/$(LIBBASE)
+  EXTRA_LINK_FLAGS += -R$(PEGASUS_EXTERNAL_SLP_HOME)/$(LIBBASE)
+endif
+
--- /dev/null	2008-11-12 15:38:10.000000000 -0500
+++ new/pegasus/mak/platform_SOLARIS_X86_64_CC.mak	2008-11-12 15:38:10.537965000 -0500
@@ -0,0 +1,41 @@
+#//%2006////////////////////////////////////////////////////////////////////////
+#//
+#// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+#// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+#// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation, The Open Group.
+#// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; Symantec Corporation; The Open Group.
+#//
+#// Permission is hereby granted, free of charge, to any person obtaining a copy
+#// of this software and associated documentation files (the "Software"), to
+#// deal in the Software without restriction, including without limitation the
+#// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+#// sell copies of the Software, and to permit persons to whom the Software is
+#// furnished to do so, subject to the following conditions:
+#//
+#// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
+#// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
+#// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+#// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+#// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+#// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+#// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+#// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#//
+#//=============================================================================
+
+LIBBASE=lib/64
+
+include $(ROOT)/mak/platform_SOLARIS_CC.mak
+
+ARCHITECTURE = ix86
+
+LINK_MACHINE_OPTIONS += -m64
+
+FLAGS += -m64
+
--- old/pegasus/mak/shared-library-unix.mak	2008-11-12 15:38:14.731290000 -0500
+++ new/pegasus/mak/shared-library-unix.mak	2008-11-12 15:38:13.728613000 -0500
@@ -154,8 +154,12 @@
 ##==============================================================================
 
 ifeq ($(COMPILER),CC)
-  LINK_COMMAND = CC
-  LINK_ARGUMENTS = -G -KPIC -mt -h lib$(LIBRARY).so
+  ifdef CXX_COMPILER_COMMAND
+    LINK_COMMAND = $(CXX_COMPILER_COMMAND)
+  else
+    LINK_COMMAND = CC
+  endif
+  LINK_ARGUMENTS = -G -KPIC -mt -h lib$(LIBRARY).so $(LINK_MACHINE_OPTIONS)
   LINK_OUT = -o
   EXTRA_LIBRARIES += $(LIBRARY_SYS_LIBS)
 endif
--- old/pegasus/src/Pegasus/Client/tests/slp/Makefile	2008-11-12 15:38:23.707089000 -0500
+++ new/pegasus/src/Pegasus/Client/tests/slp/Makefile	2008-11-12 15:38:23.152757000 -0500
@@ -28,7 +28,7 @@
 #// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #//
 #//==============================================================================
-ROOT = $(PEGASUS_ROOT)
+ROOT = ../../../../..
 DIRCLIENT = Pegasus/Client
 DIR = Pegasus/Client/tests/slp
 include $(ROOT)/mak/config.mak
--- old/pegasus/src/Pegasus/Common/tests/Abstract/Makefile	2008-11-12 15:38:30.503004000 -0500
+++ new/pegasus/src/Pegasus/Common/tests/Abstract/Makefile	2008-11-12 15:38:29.956850000 -0500
@@ -28,7 +28,7 @@
 #// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #//
 #//==============================================================================
-ROOT = $(PEGASUS_ROOT)
+ROOT = ../../../../..
 DIR = Pegasus/Common/tests/Abstract
 include $(ROOT)/mak/config.mak
 include ../libraries.mak
--- old/pegasus/src/Pegasus/Common/tests/AsyncQueue/TestAsyncQueue.cpp	2008-11-12 15:38:45.389272000 -0500
+++ new/pegasus/src/Pegasus/Common/tests/AsyncQueue/TestAsyncQueue.cpp	2008-11-12 15:38:45.054487000 -0500
@@ -68,14 +68,19 @@
             printf("iterations: %05u\n", message->x);
         }
 
-#ifdef PEGASUS_OS_SOLARIS
+// The following was a noted issue for earlier versions of
+// Solaris (ex. 5.8) It has been commented out for later
+// version (ex. 10 and 11). NOTE: if we are to guarantee
+// compatibility with earlier versions this may have to be
+// reinstated for those versions.
+//#ifdef PEGASUS_OS_SOLARIS
         // special dish of the day for Sun Solaris
         // reports say that running as root causes
         // the thread not being scheduled-out
         // until this is resolved the yield()
         // will stay here just for Solaris
-        Threads::yield();
-#endif
+//        Threads::yield();
+//#endif
 
         delete message;
     }
@@ -91,14 +96,19 @@
     for (Uint32 i = 0; i < ITERATIONS; i++)
     {
         queue->enqueue_wait(new TestMessage(i));
+// The following was a noted issue for earlier versions of
+// Solaris (ex. 5.8) It has been commented out for later
+// version (ex. 10 and 11). NOTE: if we are to guarantee
+// compatibility with earlier versions this may have to be
+// reinstated for those versions.
 // special dish of the day for Sun Solaris
 // reports say that running as root causes
 // the thread not being scheduled-out
 // until this is resolved the yield()
 // will stay here just for Solaris
-#ifdef PEGASUS_OS_SOLARIS
-        Threads::yield();
-#endif
+//#ifdef PEGASUS_OS_SOLARIS
+//        Threads::yield();
+//#endif
     }
 
     return ThreadReturnType(0);
--- old/pegasus/src/Pegasus/Common/tests/IPC/IPC.cpp	2008-11-12 15:38:52.592066000 -0500
+++ new/pegasus/src/Pegasus/Common/tests/IPC/IPC.cpp	2008-11-12 15:38:52.174533000 -0500
@@ -125,10 +125,8 @@
     while (type != CLOSE_CONNECTION_MESSAGE)
     {
         message = mq->dequeue();
-        while (!message) {
-#if defined PEGASUS_OS_SOLARIS && defined SUNOS_5_6
-        Threads::sleep(1);
-#endif
+        while (!message)
+	{
             message = mq->dequeue();
         }
 
--- old/pegasus/src/Pegasus/Common/tests/FileSystem/FileSystem.cpp	2008-11-12 15:38:59.057270000 -0500
+++ new/pegasus/src/Pegasus/Common/tests/FileSystem/FileSystem.cpp	2008-11-12 15:38:58.704202000 -0500
@@ -113,9 +113,10 @@
     // files in the directory.
     Array<String> globList;
 
-    PEGASUS_TEST_ASSERT(FileSystem::glob(path ,  "*", globList));
-    _printArray("glob 1 . *" , globList);
-    PEGASUS_TEST_ASSERT(globList.size() >= 4);
+    // Bad test -- assumes the presence of the CVS tree
+    // PEGASUS_TEST_ASSERT(FileSystem::glob(path ,  "*", globList));
+    // _printArray("glob 1 . *" , globList);
+    // PEGASUS_TEST_ASSERT(globList.size() >= 4);
 
     PEGASUS_TEST_ASSERT(FileSystem::glob( ".",  "*.cpp", globList));
     PEGASUS_TEST_ASSERT(globList.size() == 1);
--- old/pegasus/src/Pegasus/Common/tests/TimeValue/TimeValue.cpp	2008-11-12 15:39:05.892695000 -0500
+++ new/pegasus/src/Pegasus/Common/tests/TimeValue/TimeValue.cpp	2008-11-12 15:39:05.508229000 -0500
@@ -50,7 +50,7 @@
     verbose = getenv("PEGASUS_TEST_VERBOSE") ? true : false;
 
     TimeValue tv0( 3, 100000);   // set to 3 sec, 100,000 microseconds
-    Uint32 ms = tv0.toMilliseconds();
+    Uint64 ms = tv0.toMilliseconds();
     if (verbose)
     {
         cout << "milliseconds=" << ms << endl;
@@ -91,7 +91,7 @@
              << " total milliseconds" <<  endl;
     }
 
-    Uint32 milliseconds = tv2.toMilliseconds() - tv1.toMilliseconds();
+    Uint64 milliseconds = tv2.toMilliseconds() - tv1.toMilliseconds();
 
     if (verbose)
         cout << "milliseconds=" << milliseconds << endl;
--- old/pegasus/src/Pegasus/Common/AtomicInt.h	2008-11-12 15:39:11.453560000 -0500
+++ new/pegasus/src/Pegasus/Common/AtomicInt.h	2008-11-12 15:39:11.084580000 -0500
@@ -842,10 +842,74 @@
 
 //==============================================================================
 //
-// Generic Implementation
+// PEGASUS_OS_SOLARIS
 //
 //==============================================================================
 
+#if defined(PEGASUS_OS_SOLARIS)
+# define PEGASUS_ATOMIC_INT_DEFINED
+
+#include <atomic.h>
+
+PEGASUS_NAMESPACE_BEGIN
+
+struct AtomicType
+{
+    volatile uint32_t n;
+};
+
+PEGASUS_TEMPLATE_SPECIALIZATION
+inline AtomicIntTemplate<AtomicType>::AtomicIntTemplate(Uint32 n)
+{
+    _rep.n = n;
+}
+
+PEGASUS_TEMPLATE_SPECIALIZATION
+inline AtomicIntTemplate<AtomicType>::~AtomicIntTemplate()
+{
+}
+
+PEGASUS_TEMPLATE_SPECIALIZATION
+inline Uint32 AtomicIntTemplate<AtomicType>::get() const
+{
+    return _rep.n;
+}
+
+PEGASUS_TEMPLATE_SPECIALIZATION
+inline void AtomicIntTemplate<AtomicType>::set(Uint32 n)
+{
+    _rep.n = n;
+}
+
+PEGASUS_TEMPLATE_SPECIALIZATION
+inline void AtomicIntTemplate<AtomicType>::inc()
+{
+    atomic_inc_32(&_rep.n);
+}
+
+PEGASUS_TEMPLATE_SPECIALIZATION
+inline void AtomicIntTemplate<AtomicType>::dec()
+{
+    atomic_dec_32(&_rep.n);
+}
+
+PEGASUS_TEMPLATE_SPECIALIZATION
+inline bool AtomicIntTemplate<AtomicType>::decAndTestIfZero()
+{
+    return atomic_dec_32_nv(&_rep.n) == 0;
+}
+
+typedef AtomicIntTemplate<AtomicType> AtomicInt;
+
+PEGASUS_NAMESPACE_END
+
+#endif
+
+//==============================================================================
+//
+// Generic Implementation
+// //==============================================================================
+
 #if !defined(PEGASUS_ATOMIC_INT_DEFINED)
 # define PEGASUS_ATOMIC_INT_DEFINED
 
--- old/pegasus/src/Pegasus/Common/AuditLoggerToLog.cpp	2008-11-12 15:39:18.908717000 -0500
+++ new/pegasus/src/Pegasus/Common/AuditLoggerToLog.cpp	2008-11-12 15:39:18.214126000 -0500
@@ -56,6 +56,10 @@
 
 #ifdef PEGASUS_ENABLE_AUDIT_LOGGER
 
+#if defined(PEGASUS_OS_SOLARIS)
+extern char** environ;
+#endif
+
 PEGASUS_USING_STD;
 
 PEGASUS_NAMESPACE_BEGIN
--- old/pegasus/src/Pegasus/Common/Config.h	2008-11-12 15:39:29.565679000 -0500
+++ new/pegasus/src/Pegasus/Common/Config.h	2008-11-12 15:39:28.728257000 -0500
@@ -60,6 +60,12 @@
 # include <Pegasus/Common/Platform_SOLARIS_SPARC_GNU.h>
 #elif defined (PEGASUS_PLATFORM_SOLARIS_SPARC_CC)
 # include <Pegasus/Common/Platform_SOLARIS_SPARC_CC.h>
+#elif defined (PEGASUS_PLATFORM_SOLARIS_SPARC_64_CC)
+# include <Pegasus/Common/Platform_SOLARIS_SPARC_CC_64.h>
+#elif defined (PEGASUS_PLATFORM_SOLARIS_IX86_CC)
+# include <Pegasus/Common/Platform_SOLARIS_IX86_CC.h>
+#elif defined (PEGASUS_PLATFORM_SOLARIS_X86_64_CC)
+# include <Pegasus/Common/Platform_SOLARIS_X86_64_CC.h>
 #elif defined (PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)
 # include <Pegasus/Common/Platform_ZOS_ZSERIES_IBM.h>
 #elif defined (PEGASUS_PLATFORM_LINUX_IA64_GNU)
--- old/pegasus/src/Pegasus/Common/Constants.h	2008-11-12 15:39:36.822342000 -0500
+++ new/pegasus/src/Pegasus/Common/Constants.h	2008-11-12 15:39:36.345039000 -0500
@@ -281,6 +281,21 @@
 #  define PEGASUS_PAM_STANDALONE_PROC_NAME  "/opt/tog-pegasus/sbin/cimservera"
 #  define PEGASUS_PROVIDER_AGENT_PROC_NAME  "/opt/tog-pegasus/sbin/cimprovagt"
 #  undef PEGASUS_DEFAULT_MESSAGE_SOURCE     /* Not defined */
+# elif defined(PEGASUS_OS_SOLARIS)
+#  define PEGASUS_CIMSERVER_START_FILE      "/var/Pegasus/cimserver.pid"
+#  define PEGASUS_CIMSERVER_START_LOCK_FILE "/var/Pegasus/cimserver_start.lock"
+#  define PEGASUS_REPOSITORY_DIR            "/var/Pegasus/repository"
+#  define PEGASUS_CURRENT_CONFIG_FILE_PATH  "/var/Pegasus/cimserver_current.conf"
+#  define PEGASUS_PLANNED_CONFIG_FILE_PATH  "/var/Pegasus/cimserver_planned.conf"
+#  define PEGASUS_SSLCLIENT_CERTIFICATEFILE "/etc/Pegasus/ssl/client.pem"
+#  define PEGASUS_SSLCLIENT_RANDOMFILE      "/var/Pegasus/ssl.rnd"
+#  define PEGASUS_SSLSERVER_RANDOMFILE      "/var/Pegasus/cimserver.rnd"
+#  define PEGASUS_LOCAL_AUTH_DIR            "/var/Pegasus/localauth"
+#  define PEGASUS_LOCAL_DOMAIN_SOCKET_PATH  "/var/Pegasus/cimxml.socket"
+#  define PEGASUS_CORE_DIR                  "/var/Pegasus"
+#  define PEGASUS_PAM_STANDALONE_PROC_NAME  "/usr/sbin/cimservera"
+#  define PEGASUS_PROVIDER_AGENT_PROC_NAME  "/usr/sbin/cimprovagt"
+#  undef PEGASUS_DEFAULT_MESSAGE_SOURCE     /* Not defined */
 # elif defined(PEGASUS_OS_VMS)
 #  define PEGASUS_CIMSERVER_START_FILE      \
     "/wbem_var/opt/wbem/cimserver_start.conf"
@@ -336,6 +351,8 @@
 #else  // Not PEGASUS_USE_RELEASE_DIRS
 # if defined(PEGASUS_OS_LINUX)
 #  define PEGASUS_CIMSERVER_STARTFILES_DIR "/var/tmp"
+# elif defined(PEGASUS_OS_SOLARIS)
+#  define PEGASUS_CIMSERVER_STARTFILES_DIR "/var/Pegasus"
 # else
 #  define PEGASUS_CIMSERVER_STARTFILES_DIR "/tmp"
 # endif
--- old/pegasus/src/Pegasus/Common/FileSystem.cpp	2008-11-12 15:39:42.875699000 -0500
+++ new/pegasus/src/Pegasus/Common/FileSystem.cpp	2008-11-12 15:39:42.345527000 -0500
@@ -522,7 +522,7 @@
     PEG_METHOD_ENTER(TRC_AUTHENTICATION, "FileSystem::changeFileOwner()");
 
     struct passwd* userPasswd;
-#if defined(PEGASUS_PLATFORM_SOLARIS_SPARC_CC) || \
+#if defined(PEGASUS_OS_SOLARIS) || \
     defined(PEGASUS_OS_HPUX) || \
     defined(PEGASUS_OS_LINUX) || \
     defined (PEGASUS_OS_VMS)
--- old/pegasus/src/Pegasus/Common/Network.h	2008-11-12 15:39:50.887872000 -0500
+++ new/pegasus/src/Pegasus/Common/Network.h	2008-11-12 15:39:50.489451000 -0500
@@ -250,7 +250,7 @@
 //
 //------------------------------------------------------------------------------
 
-#if defined(PEGASUS_PLATFORM_SOLARIS_SPARC_GNU) || \
+#if defined(PEGASUS_OS_SOLARIS) || \
     defined(PEGASUS_PLATFORM_TRU64_ALPHA_DECCXX) || \
     defined(PEGASUS_PLATFORM_WIN64_IA64_MSVC) || \
     defined(PEGASUS_PLATFORM_WIN64_X86_64_MSVC) || \
@@ -266,9 +266,6 @@
 #elif defined(PEGASUS_PLATFORM_HPUX_PARISC_ACC) && \
     !defined(_XOPEN_SOURCE_EXTENDED)
     typedef int SocketLength;
-#elif defined(PEGASUS_PLATFORM_SOLARIS_SPARC_CC) && \
-    defined(SUNOS_5_6)
-    typedef int SocketLength;
 #else
     typedef socklen_t SocketLength;
 #endif
--- old/pegasus/src/Pegasus/Common/OrderedSet.h	2008-11-12 15:39:56.426967000 -0500
+++ new/pegasus/src/Pegasus/Common/OrderedSet.h	2008-11-12 15:39:56.139214000 -0500
@@ -111,7 +111,7 @@
 
     void reserveCapacity(Uint32 capacity)
     {
-        _array.reserveCapacity(capacity * sizeof(Node));
+        _array.reserveCapacity(capacity * Uint32(sizeof(Node)));
     }
 
     Uint32 find(const CIMName& name, Uint32 nameTag) const;
@@ -257,7 +257,7 @@
     // which following have to be _reorganized
     Boolean reOrg = (_array.capacity() < sizeof(Node) + _array.size());
     if (reOrg)
-        reserveCapacity((_size + 1) << 1);
+        reserveCapacity(Uint32((_size + 1) << 1));
 
     // First append to _array(dynamic, ordered list):
     {
@@ -266,7 +266,7 @@
         node.index = _size;
         node.next = (*_table)[code];
 
-        _array.append((const char*) &node, sizeof(node));
+        _array.append((const char*) &node, Uint32(sizeof(node)));
     }
         
     // Now add to hash table
@@ -296,7 +296,7 @@
         Node* node = (Node*) _array.getData() + index;
         node->rep->decreaseOwnerCount();
         Dec(node->rep);
-        _array.remove(index * sizeof(Node), sizeof(Node));
+        _array.remove(index * sizeof(Node), Uint32(sizeof(Node)));
         _size--;
     }
 
@@ -335,7 +335,8 @@
         Node node;
         node.rep = layout->rep;
         node.index = _size;
-        _array.insert(index * sizeof(Node), (const char*) &node, sizeof(node));
+        _array.insert(index * Uint32(sizeof(Node)), (const char*) &node,
+	    Uint32(sizeof(node)));
         layout->rep->increaseOwnerCount();
         Inc(layout->rep);
         _size++;
--- old/pegasus/src/Pegasus/Common/Platform_SOLARIS_SPARC_CC.h	2008-11-12 15:40:02.240590000 -0500
+++ new/pegasus/src/Pegasus/Common/Platform_SOLARIS_SPARC_CC.h	2008-11-12 15:40:01.881598000 -0500
@@ -34,43 +34,8 @@
 #ifndef Pegasus_Platform_SOLARIS_SPARC_CC_h
 #define Pegasus_Platform_SOLARIS_SPARC_CC_h
 
-//++EMC Solaris Port
-#include <limits.h>
-#ifdef __cplusplus
-#include <cstdio>
-//--EMC Solaris Port
-
-#include <cstddef>
-
-#ifdef PEGASUS_INTERNALONLY 
-using namespace std;
-#endif
-
-#endif
-
-#define PEGASUS_OS_TYPE_UNIX
+#include <Pegasus/Common/Platform_SOLARIS_CC.h>
 
 #define PEGASUS_ARCHITECTURE_SPARC
 
-#define PEGASUS_COMPILER_CC
-
-#define PEGASUS_UINT64 unsigned long long
-
-#define PEGASUS_SINT64 long long
-
-#define SEM_VALUE_MAX _POSIX_SEM_VALUE_MAX
-
-#define PEGASUS_HAVE_NAMESPACES
-
-#define PEGASUS_HAVE_FOR_SCOPE
-
-#define PEGASUS_HAVE_TEMPLATE_SPECIALIZATION
-
-#define PEGASUS_DISABLE_INTERNAL_INLINES
-
-
-#define PEGASUS_HAVE_PTHREADS
-
-#define PEGASUS_HAS_SIGNALS
-
 #endif /* Pegasus_Platform_SOLARIS_SPARC_CC_h */
--- old/pegasus/src/Pegasus/Common/Platform_SOLARIS_SPARC_GNU.h	2008-11-12 15:40:09.840382000 -0500
+++ new/pegasus/src/Pegasus/Common/Platform_SOLARIS_SPARC_GNU.h	2008-11-12 15:40:09.515336000 -0500
@@ -34,6 +34,10 @@
 #ifndef Pegasus_Platform_SOLARIS_SPARC_GNU_h
 #define Pegasus_Platform_SOLARIS_SPARC_GNU_h
 
+#ifndef PEGASUS_OS_SOLARIS
+# define PEGASUS_OS_SOLARIS
+#endif
+
 #include <limits.h>
 #ifdef __cplusplus
 #include <cstdio>
--- old/pegasus/src/Pegasus/Common/ReadWriteSem.h	2008-11-12 15:40:14.946168000 -0500
+++ new/pegasus/src/Pegasus/Common/ReadWriteSem.h	2008-11-12 15:40:14.673422000 -0500
@@ -60,7 +60,7 @@
 # define PEGASUS_USE_POSIX_RWLOCK
 #elif defined(PEGASUS_PLATFORM_HPUX_ACC)
 # define PEGASUS_USE_POSIX_RWLOCK
-#elif defined(PEGASUS_PLATFORM_SOLARIS_SPARC_CC)
+#elif defined(PEGASUS_OS_SOLARIS)
 # define PEGASUS_USE_POSIX_RWLOCK
 #elif defined(PEGASUS_PLATFORM_TRU64_ALPHA_DECCXX)
 # define PEGASUS_USE_POSIX_RWLOCK
--- old/pegasus/src/Pegasus/Common/System.cpp	2008-11-12 15:40:20.521972000 -0500
+++ new/pegasus/src/Pegasus/Common/System.cpp	2008-11-12 15:40:20.139887000 -0500
@@ -596,8 +596,14 @@
             return !memcmp(&ip6, binIPAddress, sizeof (ip6));
 #endif
         case AF_INET:
-            Uint32 n = ntohl( *(Uint32*)binIPAddress);
-            return !memcmp(&ip4, &n, sizeof (ip4));       
+	{
+		Uint32 tmp;
+		Uint32 n;
+
+		memcpy(&tmp, binIPAddress, sizeof(Uint32));
+		n = ntohl(tmp);
+		return !memcmp(&ip4, &n, sizeof (ip4));
+	}
     }
 
     return false;
@@ -898,7 +904,7 @@
     int rc = 0;
     unsigned int maxTries = 5; 
 
-#ifdef PEGASUS_OS_PASE
+#if defined(PEGASUS_OS_PASE) || defined(PEGASUS_OS_SOLARIS)
     CString hostNameCString;
     if (String::equalNoCase(hostname, "localhost"))
     {
--- old/pegasus/src/Pegasus/Common/ThreadPool.cpp	2008-11-12 15:40:27.135206000 -0500
+++ new/pegasus/src/Pegasus/Common/ThreadPool.cpp	2008-11-12 15:40:26.822604000 -0500
@@ -466,7 +466,8 @@
     struct timeval now, finish, remaining;
     Uint32 usec;
     Time::gettimeofday(&now);
-    Time::gettimeofday(&remaining);     // Avoid valgrind error
+
+    memset(&remaining, 0, sizeof (remaining));
 
     finish.tv_sec = start->tv_sec + interval->tv_sec;
     usec = start->tv_usec + interval->tv_usec;
--- old/pegasus/src/Pegasus/Common/Threads.cpp	2008-11-12 15:40:34.484438000 -0500
+++ new/pegasus/src/Pegasus/Common/Threads.cpp	2008-11-12 15:40:34.082409000 -0500
@@ -44,6 +44,10 @@
 # include <unistd.h>
 #endif
 
+#if defined(PEGASUS_OS_SOLARIS)
+# include <unistd.h>
+#endif
+
 PEGASUS_NAMESPACE_BEGIN
 
 void Threads::sleep(int msec)
@@ -199,14 +203,9 @@
 
     // Scheduling policy:
 
-#if defined(PEGASUS_PLATFORM_SOLARIS_SPARC_GNU) || \
-    defined(PEGASUS_PLATFORM_SOLARIS_SPARC_CC)
-# if defined SUNOS_5_7
-    pthread_attr_setschedpolicy(&attr, SCHED_RR);
-# else
+#if defined(PEGASUS_OS_SOLARIS)
     pthread_attr_setschedpolicy(&attr, SCHED_OTHER);
-# endif
-#endif // PEGASUS_PLATFORM_SOLARIS_SPARC_GNU
+#endif
 
     // Create thread:
 
--- old/pegasus/src/Pegasus/Common/Threads.h	2008-11-12 15:40:40.438948000 -0500
+++ new/pegasus/src/Pegasus/Common/Threads.h	2008-11-12 15:40:40.130082000 -0500
@@ -56,6 +56,11 @@
 # error "<Pegasus/Common/Threads.h>: not implemented"
 #endif
 
+#if defined(PEGASUS_OS_SOLARIS)
+# include <string.h>
+# include <stdio.h>
+#endif
+
 PEGASUS_NAMESPACE_BEGIN
 
 //==============================================================================
@@ -241,7 +246,7 @@
 
 inline ThreadId Threads::id(const ThreadType& x)
 {
-    ThreadId tid;
+    ThreadId tid = { { 0 } };
 
 #if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)
     const char* s = x.thread.__;
--- /dev/null	2008-11-12 15:40:45.000000000 -0500
+++ new/pegasus/src/Pegasus/Common/Platform_SOLARIS_CC.h	2008-11-12 15:40:45.317809000 -0500
@@ -0,0 +1,76 @@
+//%2006//////////////////////////////////////////////////////////////////////// 
+//
+// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation, The Open Group.
+// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; Symantec Corporation; The Open Group.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
+// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
+// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//==============================================================================
+//
+//%/////////////////////////////////////////////////////////////////////////////
+
+#ifndef Pegasus_Platform_SOLARIS_CC_h
+#define Pegasus_Platform_SOLARIS_CC_h
+
+#ifndef PEGASUS_OS_SOLARIS
+# define PEGASUS_OS_SOLARIS
+#endif
+
+#include <limits.h>
+
+#ifdef __cplusplus
+# include <cstdio>
+# include <cstddef>
+# ifdef PEGASUS_INTERNALONLY
+  using namespace std;
+# endif
+#endif
+
+#define PEGASUS_OS_TYPE_UNIX
+
+#define PEGASUS_COMPILER_CC
+
+#define PEGASUS_UINT64 unsigned long long
+
+#define PEGASUS_SINT64 long long
+
+#define SEM_VALUE_MAX _POSIX_SEM_VALUE_MAX
+
+#define PEGASUS_HAVE_NAMESPACES
+
+#define PEGASUS_HAVE_FOR_SCOPE
+
+#define PEGASUS_HAVE_TEMPLATE_SPECIALIZATION
+
+#define PEGASUS_DISABLE_INTERNAL_INLINES
+
+#define PEGASUS_HAVE_PTHREADS
+
+#define PEGASUS_HAS_SIGNALS
+
+/* use POSIX read-write locks on this platform */
+#define PEGASUS_USE_POSIX_RWLOCK
+
+#endif /* Pegasus_Platform_SOLARIS_CC_h */
--- /dev/null	2008-11-12 15:40:46.000000000 -0500
+++ new/pegasus/src/Pegasus/Common/Platform_SOLARIS_IX86_CC.h	2008-11-12 15:40:46.766496000 -0500
@@ -0,0 +1,41 @@
+//%2006////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation, The Open Group.
+// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; Symantec Corporation; The Open Group.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
+// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
+// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//==============================================================================
+//
+//%/////////////////////////////////////////////////////////////////////////////
+
+#ifndef Pegasus_Platform_SOLARIS_IX86_CC_h
+#define Pegasus_Platform_SOLARIS_IX86_CC_h
+
+#include <Pegasus/Common/Platform_SOLARIS_CC.h>
+
+#define PEGASUS_ARCHITECTURE_IX86
+
+#endif /* Pegasus_Platform_SOLARIS_IX86_CC_h */
--- /dev/null	2008-11-12 15:40:49.000000000 -0500
+++ new/pegasus/src/Pegasus/Common/Platform_SOLARIS_SPARC_CC_64.h	2008-11-12 15:40:48.962146000 -0500
@@ -0,0 +1,43 @@
+//%2006////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation, The Open Group.
+// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; Symantec Corporation; The Open Group.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
+// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
+// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//==============================================================================
+//
+//%/////////////////////////////////////////////////////////////////////////////
+
+#ifndef Pegasus_Platform_SOLARIS_SPARC_CC_64_h
+#define Pegasus_Platform_SOLARIS_SPARC_CC_64_h
+
+#include <Pegasus/Common/Platform_SOLARIS_CC.h>
+
+#define PEGASUS_ARCHITECTURE_SPARC
+
+#define PEGASUS_POINTER_64BIT
+
+#endif /* Pegasus_Platform_SOLARIS_SPARC_CC_64_h */
--- /dev/null	2008-11-12 15:40:50.000000000 -0500
+++ new/pegasus/src/Pegasus/Common/Platform_SOLARIS_X86_64_CC.h	2008-11-12 15:40:50.442344000 -0500
@@ -0,0 +1,43 @@
+//%2006////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation, The Open Group.
+// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; Symantec Corporation; The Open Group.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
+// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
+// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//==============================================================================
+//
+//%/////////////////////////////////////////////////////////////////////////////
+
+#ifndef Pegasus_Platform_SOLARIS_X86_64_CC_h
+#define Pegasus_Platform_SOLARIS_X86_64_CC_h
+
+#include <Pegasus/Common/Platform_SOLARIS_CC.h>
+
+#define PEGASUS_ARCHITECTURE_IX86
+
+#define PEGASUS_POINTER_64BIT
+
+#endif /* Pegasus_Platform_SOLARIS_X86_64_CC_h */
--- old/pegasus/src/Pegasus/Config/DefaultPropertyTable.h	2008-11-12 15:40:53.676137000 -0500
+++ new/pegasus/src/Pegasus/Config/DefaultPropertyTable.h	2008-11-12 15:40:53.321676000 -0500
@@ -39,6 +39,8 @@
     {"idleConnectionTimeout", "0", IS_STATIC, 0, 0, IS_VISIBLE},
 #if defined(PEGASUS_PLATFORM_LINUX_GENERIC_GNU)
 # include "DefaultPropertyTableLinux.h"
+#elif defined(PEGASUS_OS_SOLARIS)
+# include "DefaultPropertyTableSolaris.h"
 #elif PEGASUS_PLATFORM_HPUX_ACC
 # include "DefaultPropertyTableHpux.h"
 #elif defined(PEGASUS_PLATFORM_PASE_ISERIES_IBMCXX)
--- old/pegasus/src/Pegasus/Config/FixedPropertyTable.h	2008-11-12 15:40:58.860285000 -0500
+++ new/pegasus/src/Pegasus/Config/FixedPropertyTable.h	2008-11-12 15:40:58.596546000 -0500
@@ -38,6 +38,8 @@
 
 #if defined(PEGASUS_PLATFORM_LINUX_GENERIC_GNU)
 #include "FixedPropertyTableLinux.h"
+#elif defined(PEGASUS_OS_SOLARIS)
+# include "FixedPropertyTableSolaris.h"
 #elif PEGASUS_PLATFORM_HPUX_ACC
 #include "FixedPropertyTableHpux.h"
 #elif defined(PEGASUS_PLATFORM_PASE_ISERIES_IBMCXX)
--- /dev/null	2008-11-12 15:41:04.000000000 -0500
+++ new/pegasus/src/Pegasus/Config/DefaultPropertyTableSolaris.h	2008-11-12 15:41:03.966843000 -0500
@@ -0,0 +1,77 @@
+//%2006////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation, The Open Group.
+// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; Symantec Corporation; The Open Group.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
+// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
+// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//==============================================================================
+//
+//%/////////////////////////////////////////////////////////////////////////////
+
+#ifndef Pegasus_DefaultPropertyTableSolaris_h
+#define Pegasus_DefaultPropertyTableSolaris_h
+
+#ifdef PEGASUS_USE_RELEASE_CONFIG_OPTIONS
+    {"httpPort", "", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"httpsPort", "", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"enableHttpConnection", "false", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"enableHttpsConnection", "true", IS_STATIC, 0, 0, IS_VISIBLE},
+   {"home", "", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"daemon", "true", IS_STATIC, 0, 0, IS_HIDDEN},
+    {"slp", "false", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"enableAssociationTraversal", "true", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"enableIndicationService", "true", IS_STATIC, 0, 0, IS_VISIBLE},
+# ifdef PEGASUS_DEFAULT_ENABLE_OOP
+    {"forceProviderProcesses", "true", IS_STATIC, 0, 0, IS_VISIBLE},
+# else
+    {"forceProviderProcesses", "false", IS_STATIC, 0, 0, IS_VISIBLE},
+# endif
+# ifdef PEGASUS_ENABLE_AUDIT_LOGGER
+    {"enableAuditLog", "false", IS_DYNAMIC, 0, 0, IS_VISIBLE},
+# endif
+    {"maxProviderProcesses", "0", IS_STATIC, 0, 0, IS_VISIBLE}
+#else
+    {"httpPort", "", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"httpsPort", "", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"enableHttpConnection", "true", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"enableHttpsConnection", "true", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"home", "./", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"daemon", "true", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"slp", "false", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"enableAssociationTraversal", "true", IS_STATIC, 0, 0, IS_VISIBLE},
+    {"enableIndicationService", "true", IS_STATIC, 0, 0, IS_VISIBLE},
+# ifdef PEGASUS_DEFAULT_ENABLE_OOP
+    {"forceProviderProcesses", "true", IS_STATIC, 0, 0, IS_VISIBLE},
+# else
+    {"forceProviderProcesses", "false", IS_STATIC, 0, 0, IS_VISIBLE},
+# endif
+# ifdef PEGASUS_ENABLE_AUDIT_LOGGER
+    {"enableAuditLog", "false", IS_DYNAMIC, 0, 0, IS_VISIBLE},
+# endif
+    {"maxProviderProcesses", "0", IS_STATIC, 0, 0, IS_VISIBLE}
+#endif
+
+#endif /* Pegasus_DefaultPropertyTableSolaris_h */
--- /dev/null	2008-11-12 15:41:05.000000000 -0500
+++ new/pegasus/src/Pegasus/Config/FixedPropertyTableSolaris.h	2008-11-12 15:41:05.699363000 -0500
@@ -0,0 +1,89 @@
+/*
+//%2006////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation, The Open Group.
+// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; Symantec Corporation; The Open Group.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
+// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
+// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//==============================================================================
+//
+//%/////////////////////////////////////////////////////////////////////////////
+*/
+
+#if defined(PEGASUS_USE_RELEASE_DIRS) && \
+    defined(PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS)
+# include <Pegasus/Config/ProductDirectoryStructure.h>
+#endif
+
+#ifdef PEGASUS_USE_RELEASE_CONFIG_OPTIONS
+    {"httpPort",	  "5988"},
+    {"httpsPort",	  "5989"},
+    {"home",		  ""},
+    {"slp",		  "false"},
+    {"enableAuthentication", "true"},
+    {"httpAuthType",	  "Basic"},
+    {"enableBinaryRepository", "false"},
+#endif
+#if defined(PEGASUS_USE_RELEASE_DIRS)
+# if defined(PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS)
+    {"traceFilePath",	  PEGASUS_TRACE_FILE_PATH},
+#  if !defined(PEGASUS_USE_SYSLOGS)
+    {"logdir",		  PEGASUS_LOG_DIR},
+#  endif
+    {"passwordFilePath", PEGASUS_CONFIG_DIR"/cimserver.passwd"},
+    {"sslCertificateFilePath", PEGASUS_SSL_CERT_FILE_PATH},
+    {"sslKeyFilePath",	  PEGASUS_SSL_KEY_FILE_PATH},
+    {"sslTrustStore",	  PEGASUS_SSL_SERVER_TRUSTSTORE},
+#  ifdef PEGASUS_ENABLE_SSL_CRL_VERIFICATION
+    {"crlStore",	  PEGASUS_SSL_SERVER_CRL},
+#  endif
+    {"repositoryDir",	  PEGASUS_REPOSITORY_DIR},
+    {"providerDir", PEGASUS_PROVIDER_LIB_DIR ":/usr/" PEGASUS_ARCH_LIB},
+    {"providerManagerDir",   PEGASUS_PROVIDER_MANAGER_LIB_DIR},
+# else /* PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS */
+    {"traceFilePath",	  "/var/Pegasus/cimserver.trc"},
+#  if !defined(PEGASUS_USE_SYSLOGS)
+    {"logdir",		  "/var/Pegasus/log"},
+#  endif
+    {"passwordFilePath",    "/etc/Pegasus/cimserver.passwd"},
+    {"sslCertificateFilePath", "/etc/Pegasus/ssl/server.pem"},
+    {"sslKeyFilePath",	  "/etc/Pegasus/ssl/file.pem"},
+    {"sslTrustStore",	  "/etc/Pegasus/ssl/client.pem"},
+    {"crlStore",	  "/etc/Pegasus/ssl/crl"},
+    {"repositoryDir",	  PEGASUS_REPOSITORY_DIR},
+#  if defined(PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER)
+    {"providerDir",	  "/usr/" PEGASUS_ARCH_LIB},
+#  else
+    {"providerDir",	  "/usr/" PEGASUS_ARCH_LIB},
+#  endif
+    {"providerManagerDir",  "/usr/" PEGASUS_ARCH_LIB},
+    {"messageDir",	  "/usr/share/locale/ICU_Messages"},
+# endif /* PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS */
+#endif /* defined(PEGASUS_USE_RELEASE_DIRS) */
+#if !defined(PEGASUS_USE_RELEASE_CONFIG_OPTIONS) && \
+    !defined(PEGASUS_USE_RELEASE_DIRS)
+    {"bogus", "MyBogusValue"} /* Remove this line if others are added */
+#endif
--- old/pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.cpp	2008-11-12 15:41:08.587065000 -0500
+++ new/pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.cpp	2008-11-12 15:41:08.058066000 -0500
@@ -44,6 +44,8 @@
 #  include "PAMBasicAuthenticatorUnix.cpp"
 # elif defined(PEGASUS_OS_PASE)
 #  include "PAMBasicAuthenticatorUnix.cpp"
+# elif defined(PEGASUS_OS_SOLARIS)
+#  include "PAMBasicAuthenticatorUnix.cpp"
 # else
 #  include "PAMBasicAuthenticatorStub.cpp"
 # endif
--- old/pegasus/src/Pegasus/Server/tests/Makefile	2008-11-12 15:41:15.606232000 -0500
+++ new/pegasus/src/Pegasus/Server/tests/Makefile	2008-11-12 15:41:15.167968000 -0500
@@ -40,11 +40,13 @@
 MASTERRESULTFILE = $(ROOT)/src/$(DIR)/result.master
 
 tests:
-ifdef PEGASUS_HAS_SSL
-	- cimserver "enableHttpsConnection=true" "sslTrustStore=" "sslClientVerificationMode=optional" 2>$(RESULTFILE) 
-	$(DIFF) $(MASTERRESULTFILE) $(RESULTFILE)
-	$(RM) $(RESULTFILE)
-endif
+#  BAD TEST - 'sslTrustStore' is not a valid config op in 2.8.0
+#ifdef PEGASUS_HAS_SSL
+#	- cimserver "enableHttpsConnection=true" "sslTrustStore=" "sslClientVerificationMode=optional" 2>$(RESULTFILE) 
+#	$(DIFF) $(MASTERRESULTFILE) $(RESULTFILE)
+#	$(RM) $(RESULTFILE)
+#endif
+
 poststarttests:
 
 depend:
--- old/pegasus/src/Pegasus/Server/CIMServer.cpp	2008-11-12 15:41:21.131538000 -0500
+++ new/pegasus/src/Pegasus/Server/CIMServer.cpp	2008-11-12 15:41:20.730250000 -0500
@@ -224,7 +224,8 @@
 {
     _monitor.reset(new Monitor());
 
-#if (defined(PEGASUS_OS_HPUX) || defined(PEGASUS_OS_LINUX)) \
+#if (defined(PEGASUS_OS_HPUX) || defined(PEGASUS_OS_LINUX) || \
+    defined(PEGASUS_OS_SOLARIS)) \
     && defined(PEGASUS_USE_RELEASE_DIRS)
     if (chdir(PEGASUS_CORE_DIR) != 0)
     {
--- old/pegasus/src/Providers/ManagedSystem/OperatingSystem/tests/Makefile	2008-11-12 15:41:28.407063000 -0500
+++ new/pegasus/src/Providers/ManagedSystem/OperatingSystem/tests/Makefile	2008-11-12 15:41:27.893178000 -0500
@@ -38,13 +38,13 @@
 PORT = -p 5988
 HTTPMETHOD = -m M-POST
 HTTPVERSION = -v 1.1
-USER = -u $(PEGASUS_TEST_USER_ID)
+PUSER = -u $(PEGASUS_TEST_USER_ID)
 PASSWORD = -w $(PEGASUS_TEST_USER_PASS)
 
 XMLREQUESTS = $(foreach i, $(XMLSCRIPTS), $i.xml)
 XMLRESPONSES = $(XMLREQUESTS:.xml=.rsp)
 
-WBEMEXECOPTIONS = $(HOSTNAME) $(PORT) $(HTTPMETHOD) $(HTTPVERSION) $(USER) $(PASSWORD)
+WBEMEXECOPTIONS = $(HOSTNAME) $(PORT) $(HTTPMETHOD) $(HTTPVERSION) $(PUSER) $(PASSWORD)
 
 %.rsp: %.xml
 
--- old/pegasus/src/Providers/sample/CMPI/TestCMPI_CXX/TestCMPI_CXX.cpp	2008-11-12 15:41:34.846035000 -0500
+++ new/pegasus/src/Providers/sample/CMPI/TestCMPI_CXX/TestCMPI_CXX.cpp	2008-11-12 15:41:34.314337000 -0500
@@ -416,7 +416,13 @@
         L;CMPIReal32     r32Data1   = 10;
         L;CMPIReal64     r64Data1   = 11;
         L;CmpiString     strData1   = "12";
-        L;const char     achData1[] = { '1', '3', '\0' };
+        union
+	{
+	    CMPIUint64 alignment;
+	    char achData1[3];
+	};
+	strcpy(achData1, "13");
+
         L;CmpiDateTime   dtData1;
         L;CmpiObjectPath copData1 ("root/SampleProvider", "CWS_PlainFile_CXX");
         L;CmpiInstance   ciData1 (copData1);
--- old/pegasus/src/Providers/slp/SLPProvider.cpp	2008-11-12 15:41:40.652838000 -0500
+++ new/pegasus/src/Providers/slp/SLPProvider.cpp	2008-11-12 15:41:40.180896000 -0500
@@ -109,7 +109,7 @@
 
 PEGASUS_NAMESPACE_BEGIN
 
-    PEGASUS_USING_PEGASUS;
+PEGASUS_USING_PEGASUS;
 PEGASUS_USING_STD;
 
 //******************************************************************
@@ -1324,8 +1324,9 @@
 
     // Test the registration
 
-    CDEBUG("TEST_REG: " << (const char *)CServiceID 
-                        << " serviceName: " << serviceName);
+    CDEBUG("TEST_REG: ServiceId " << (const char *)CServiceID
+		<< "\n serviceName: " << (const char *) serviceName
+		<< "\n TEMPLATE = " << (const char *) CstrRegistration);
 
     Uint32 errorCode = slp_agent.test_registration((const char *)CServiceID ,
         (const char *)CstrRegistration,
@@ -1340,13 +1341,13 @@
         return(false);
     }
 
-    CDEBUG("Tested Registration of instancd Good");
+    CDEBUG("Tested Registration of instance Good");
     // register this information.
     Boolean goodRtn = slp_agent.srv_register((const char *)CServiceID ,
         (const char *)CstrRegistration,
         (const char *)CfullServiceName,
         "DEFAULT",
-#if defined( PEGASUS_USE_OPENSLP ) && defined ( PEGASUS_SLP_REG_TIMEOUT )
+#if defined( PEGASUS_USE_EXTERNAL_SLP ) && defined ( PEGASUS_SLP_REG_TIMEOUT )
         PEGASUS_SLP_REG_TIMEOUT  * 60);
 #else
         0xffff);
@@ -1360,11 +1361,14 @@
         return(false);
     }
     
-    // register for service-agent on each ip interface with Embedded SA
+    // register for service-agent on each ip interface with SA
 #ifndef PEGASUS_SLP_REG_TIMEOUT
     HostLocator locator(IPAddress);
     String agentURL = "service:service-agent://";
     agentURL.append(locator.getHost());
+
+    CDEBUG("REGISTER SVC " << (const char *) agentURL.getCString());
+
     slp_agent.srv_register((const char *)agentURL.getCString(),
         (const char *)"(service-type=*)",
         (const char *)"service:service-agent",
@@ -1721,7 +1725,7 @@
                 {
                 // PEP 267 ifdef is added to allow reregistrations.
                 // issueRegistration sets initFlag to true.   
-#if defined( PEGASUS_USE_OPENSLP ) && defined ( PEGASUS_SLP_REG_TIMEOUT )
+#if defined( PEGASUS_USE_EXTERNAL_SLP ) && defined ( PEGASUS_SLP_REG_TIMEOUT )
                    initFlag = false;
 #endif
                     response = 0;
--- old/pegasus/src/SDK/samples/mak/config.mak	2008-11-12 15:41:47.519430000 -0500
+++ new/pegasus/src/SDK/samples/mak/config.mak	2008-11-12 15:41:47.140599000 -0500
@@ -30,6 +30,10 @@
 #//==============================================================================
 
 VALID_PLATFORMS = \
+    SOLARIS_X86_CC \
+    SOLARIS_X86_64_CC \
+    SOLARIS_SPARC_CC \
+    SOLARIS_SPARC_64_CC \
     WIN32_IX86_MSVC \
     WIN64_IA64_MSVC \
     WIN64_X86_64_MSVC \
@@ -49,6 +53,22 @@
         one of the following:$(VALID_PLATFORMS))
 endif
 
+ifeq ($(PEGASUS_PLATFORM),SOLARIS_X86_CC)
+  include $(ROOT)/mak/$(PEGASUS_PLATFORM).mak
+endif
+
+ifeq ($(PEGASUS_PLATFORM),SOLARIS_X86_64_CC)
+  include $(ROOT)/mak/$(PEGASUS_PLATFORM).mak
+endif
+
+ifeq ($(PEGASUS_PLATFORM),SOLARIS_SPARC_CC)
+  include $(ROOT)/mak/$(PEGASUS_PLATFORM).mak
+endif
+
+ifeq ($(PEGASUS_PLATFORM),SOLARIS_SPARC_64_CC)
+  include $(ROOT)/mak/$(PEGASUS_PLATFORM).mak
+endif
+
 ifeq ($(PEGASUS_PLATFORM),WIN32_IX86_MSVC)
   include $(ROOT)/mak/$(PEGASUS_PLATFORM).mak
 endif
--- /dev/null	2008-11-12 15:41:52.000000000 -0500
+++ new/pegasus/src/SDK/samples/mak/SOLARIS_IX86_CC.mak	2008-11-12 15:41:52.879787000 -0500
@@ -0,0 +1,65 @@
+#//%2006////////////////////////////////////////////////////////////////////////
+#//
+#// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+#// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+#// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation, The Open Group.
+#// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; Symantec Corporation; The Open Group.
+#//
+#// Permission is hereby granted, free of charge, to any person obtaining a copy
+#// of this software and associated documentation files (the "Software"), to
+#// deal in the Software without restriction, including without limitation the
+#// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+#// sell copies of the Software, and to permit persons to whom the Software is
+#// furnished to do so, subject to the following conditions:
+#//
+#// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
+#// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
+#// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+#// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+#// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+#// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+#// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+#// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#//
+#//=============================================================================
+
+ECHO = echo
+MKDIRHIER = mkdir -p
+RM = rm -f
+TOUCH = touch
+
+
+SYM_LINK_LIB = $(PEGASUS_PROVIDER_LIB_DIR)/lib$(LIBRARY)
+
+SYS_LIBS = -lpthread -lrt
+
+OBJ_SUFFIX = .o
+LINK_OUT = -o
+PLATFORM_LIB_SUFFIX = so
+
+ifdef PEGASUS_DEBUG
+FLAGS = -g -KPIC -mt -xs -xildoff +w
+else
+FLAGS = -O4 -KPIC -mt -xildoff -s -xipo=1 +w
+endif
+
+DEFINES = -DPEGASUS_PLATFORM_$(PEGASUS_PLATFORM)
+
+PROGRAM_COMPILE_OPTIONS = $(FLAGS)
+
+PROGRAM_LINK_OPTIONS = $(PROGRAM_COMPILE_OPTIONS)
+
+COMPILE_CXX_COMMAND = CC
+COMPILE_C_COMMAND = cc
+LIBRARY_LINK_COMMAND = $(COMPILE_CXX_COMMAND)
+PROGRAM_LINK_COMMAND =	 $(COMPILE_CXX_COMMAND)
+
+LIBRARY_COMPILE_OPTIONS = $(PROGRAM_COMPILE_OPTIONS)
+LIBRARY_LINK_OPTIONS = $(PROGRAM_LINK_OPTIONS) -G
+
--- /dev/null	2008-11-12 15:41:55.000000000 -0500
+++ new/pegasus/src/SDK/samples/mak/SOLARIS_SPARC_64_CC.mak	2008-11-12 15:41:55.091932000 -0500
@@ -0,0 +1,65 @@
+#//%2006////////////////////////////////////////////////////////////////////////
+#//
+#// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+#// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+#// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation, The Open Group.
+#// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; Symantec Corporation; The Open Group.
+#//
+#// Permission is hereby granted, free of charge, to any person obtaining a copy
+#// of this software and associated documentation files (the "Software"), to
+#// deal in the Software without restriction, including without limitation the
+#// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+#// sell copies of the Software, and to permit persons to whom the Software is
+#// furnished to do so, subject to the following conditions:
+#//
+#// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
+#// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
+#// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+#// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+#// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+#// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+#// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+#// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#//
+#//=============================================================================
+
+ECHO = echo
+MKDIRHIER = mkdir -p
+RM = rm -f
+TOUCH = touch
+
+
+SYM_LINK_LIB = $(PEGASUS_PROVIDER_LIB_DIR)/lib$(LIBRARY)
+
+SYS_LIBS = -lpthread -lrt
+
+OBJ_SUFFIX = .o
+LINK_OUT = -o
+PLATFORM_LIB_SUFFIX = so
+
+ifdef PEGASUS_DEBUG
+FLAGS = -g -KPIC -mt -xs -xildoff +w -m64
+else
+FLAGS = -O4 -KPIC -mt -xildoff -s -xipo=1 +w -m64
+endif
+
+DEFINES = -DPEGASUS_PLATFORM_$(PEGASUS_PLATFORM)
+
+PROGRAM_COMPILE_OPTIONS = $(FLAGS)
+
+PROGRAM_LINK_OPTIONS = $(PROGRAM_COMPILE_OPTIONS)
+
+COMPILE_CXX_COMMAND = CC
+COMPILE_C_COMMAND = cc
+LIBRARY_LINK_COMMAND = $(COMPILE_CXX_COMMAND)
+PROGRAM_LINK_COMMAND =	 $(COMPILE_CXX_COMMAND)
+
+LIBRARY_COMPILE_OPTIONS = $(PROGRAM_COMPILE_OPTIONS)
+LIBRARY_LINK_OPTIONS = $(PROGRAM_LINK_OPTIONS) -G
+
--- /dev/null	2008-11-12 15:41:56.000000000 -0500
+++ new/pegasus/src/SDK/samples/mak/SOLARIS_X86_64_CC.mak	2008-11-12 15:41:56.684246000 -0500
@@ -0,0 +1,65 @@
+#//%2006////////////////////////////////////////////////////////////////////////
+#//
+#// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+#// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+#// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation, The Open Group.
+#// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+#// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; VERITAS Software Corporation; The Open Group.
+#// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+#// EMC Corporation; Symantec Corporation; The Open Group.
+#//
+#// Permission is hereby granted, free of charge, to any person obtaining a copy
+#// of this software and associated documentation files (the "Software"), to
+#// deal in the Software without restriction, including without limitation the
+#// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+#// sell copies of the Software, and to permit persons to whom the Software is
+#// furnished to do so, subject to the following conditions:
+#//
+#// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
+#// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
+#// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+#// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+#// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+#// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+#// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+#// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#//
+#//=============================================================================
+
+ECHO = echo
+MKDIRHIER = mkdir -p
+RM = rm -f
+TOUCH = touch
+
+
+SYM_LINK_LIB = $(PEGASUS_PROVIDER_LIB_DIR)/lib$(LIBRARY)
+
+SYS_LIBS = -lpthread -lrt
+
+OBJ_SUFFIX = .o
+LINK_OUT = -o
+PLATFORM_LIB_SUFFIX = so
+
+ifdef PEGASUS_DEBUG
+FLAGS = -g -KPIC -mt -xs -xildoff +w -m64
+else
+FLAGS = -O4 -KPIC -mt -xildoff -s -xipo=1 +w -m64
+endif
+
+DEFINES = -DPEGASUS_PLATFORM_$(PEGASUS_PLATFORM)
+
+PROGRAM_COMPILE_OPTIONS = $(FLAGS)
+
+PROGRAM_LINK_OPTIONS = $(PROGRAM_COMPILE_OPTIONS)
+
+COMPILE_CXX_COMMAND = CC
+COMPILE_C_COMMAND = cc
+LIBRARY_LINK_COMMAND = $(COMPILE_CXX_COMMAND)
+PROGRAM_LINK_COMMAND =	 $(COMPILE_CXX_COMMAND)
+
+LIBRARY_COMPILE_OPTIONS = $(PROGRAM_COMPILE_OPTIONS)
+LIBRARY_LINK_OPTIONS = $(PROGRAM_LINK_OPTIONS) -G
+
--- old/pegasus/src/Service/ServerProcessUnix.cpp	2008-11-12 15:41:58.843159000 -0500
+++ new/pegasus/src/Service/ServerProcessUnix.cpp	2008-11-12 15:41:58.542360000 -0500
@@ -80,7 +80,7 @@
     errno = 0;
     do
     {
-#if defined(PEGASUS_OS_ZOS) || defined(PEGASUS_OS_SOLARIS)
+#if defined(PEGASUS_OS_ZOS)
         sig = sigwait(&set);
 #else // else for platforms = LINUX, HPUX, AIX
         sigwait(&set, &sig);
--- old/pegasus/src/slp/slp_agent/Makefile	2008-11-12 15:42:04.707304000 -0500
+++ new/pegasus/src/slp/slp_agent/Makefile	2008-11-12 15:42:04.331138000 -0500
@@ -37,11 +37,11 @@
 EXTRA_INCLUDES = $(SYS_INCLUDES)
 
 ########################################################################
-ifeq ($(PEGASUS_USE_OPENSLP), true)
-ifdef PEGASUS_OPENSLP_HOME
-	EXTRA_INCLUDES += -I$(PEGASUS_OPENSLP_HOME)/include
+ifdef PEGASUS_USE_EXTERNAL_SLP
+ifdef PEGASUS_EXTERNAL_SLP_HOME
+	EXTRA_INCLUDES += -I$(PEGASUS_EXTERNAL_SLP_HOME)/include
 
-	EXTRA_LIBRARIES += -L$(PEGASUS_OPENSLP_HOME)/lib
+	EXTRA_LIBRARIES += -L$(PEGASUS_EXTERNAL_SLP_HOME)/lib
 endif
 	EXTRA_LIBRARIES += -lslp
 endif
--- old/pegasus/src/slp/slp_agent/peg_slp_agent.cpp	2008-11-12 15:42:09.528728000 -0500
+++ new/pegasus/src/slp/slp_agent/peg_slp_agent.cpp	2008-11-12 15:42:09.235818000 -0500
@@ -35,13 +35,33 @@
 #include <Pegasus/Common/FileSystem.h>
 #include "peg_slp_agent.h"
 
-#ifdef PEGASUS_USE_OPENSLP
+#ifdef PEGASUS_USE_EXTERNAL_SLP_TYPE
 #include <slp.h>
-#endif  /* PEGASUS_USE_OPENSLP */
+#endif  /* PEGASUS_USE_EXTERNAL_SLP_TYPE */
 
 PEGASUS_USING_STD;
 PEGASUS_NAMESPACE_BEGIN
 
+// The Solaris version of  external SLP requires the locale parameter to be set.
+// OpenSLP allows NULL so that it can select the locale.
+
+#ifdef PEGASUS_USE_EXTERNAL_SLP_TYPE
+// language typing for slp call only applies to SOLARIS
+#ifdef PEGASUS_OS_SOLARIS
+	 // If 2 (i.e. solarisslp). Set language.
+#if	 PEGASUS_USE_EXTERNAL_SLP_TYPE == 2
+	 const char* slp_service_agent::slp_lang = "en";
+	 // if 1, openslp and let slp set language
+#elif PEGASUS_USE_EXTERNAL_SLP_TYPE == 1
+    _	 const char* slp_serviceagent::slp_lang = NULL;
+#else	 // Some other implementation
+	 const char* slp_service_agent::slp_lang = NULL;
+#endif	 // End PEGASUS_USE_EXTERNAL_SLP_TYPE
+#else	 // NOT PEGASUS_OS_SOLARIS
+    const char* slp_service_agent::slp_lang = NULL;
+#endif
+#endif	 // PEGASUS_USE_EXTERNAL_SLP_TYPE
+
 class sa_reg_params
 {
 public:
@@ -118,7 +138,7 @@
     }
 }
 
-#ifdef PEGASUS_USE_OPENSLP
+#ifdef PEGASUS_USE_EXTERNAL_SLP_TYPE
 void SLPRegCallback(SLPHandle slp_handle, SLPError errcode, void* cookie)
 {
     /* return the error code in the cookie */
@@ -132,7 +152,7 @@
         reading slp packets from the wire.
     */
 }
-#endif /* PEGASUS_USE_OPENSLP */
+#endif /* PEGASUS_USE_EXTERNAL_SLP_TYPE */
 
 
 slp_service_agent::slp_service_agent()
@@ -342,11 +362,11 @@
 
     _internal_regs.insert(url, rp);
 
-#if defined(PEGASUS_USE_OPENSLP) && !defined(PEGASUS_SLP_REG_TIMEOUT)
+#if defined(PEGASUS_USE_EXTERNAL_SLP_TYPE) && !defined(PEGASUS_SLP_REG_TIMEOUT)
     SLPHandle slp_handle = 0;
     SLPError  slpErr = SLP_OK;
     SLPError  callbackErr = SLP_OK;
-    if ((slpErr = SLPOpen(NULL, SLP_FALSE, &slp_handle)) == SLP_OK)
+    if ((slpErr = SLPOpen(slp_lang, SLP_FALSE, &slp_handle)) == SLP_OK)
     {
         slpErr = SLPReg(
             slp_handle,
@@ -368,7 +388,7 @@
     {
         return false;
     }
-#endif /* PEGASUS_USE_OPENSLP */
+#endif /* PEGASUS_USE_EXTERNAL_SLP_TYPE */
 
     return true;
 }
@@ -392,13 +412,13 @@
         throw UninitializedObjectException();
     }
 
-#ifndef PEGASUS_USE_OPENSLP
+#ifndef PEGASUS_USE_EXTERNAL_SLP_TYPE
     _should_listen = 0;
 #ifdef PEGASUS_SLP_REG_TIMEOUT
     _update_reg_semaphore.signal();
 #endif
     _listen_thread.join();
-#endif  /* PEGASUS_USE_OPENSLP */
+#endif  /* PEGASUS_USE_EXTERNAL_SLP_TYPE */
 
     while (slp_reg_table::Iterator i = _internal_regs.start())
     {
@@ -407,7 +427,7 @@
         SLPHandle slp_handle = 0;
         SLPError slpErr = SLP_OK;
         SLPError callbackErr=SLP_OK;
-        if ((slpErr = SLPOpen(NULL, SLP_FALSE, &slp_handle)) == SLP_OK)
+        if ((slpErr = SLPOpen(slp_lang, SLP_FALSE, &slp_handle)) == SLP_OK)
         {
             slpErr = SLPDereg(
                 slp_handle,
@@ -501,12 +521,12 @@
     {
         throw UninitializedObjectException();
     }
-#ifndef PEGASUS_USE_OPENSLP
+#ifndef PEGASUS_USE_EXTERNAL_SLP_TYPE
     _using_das = _find_das(_rep, NULL, "DEFAULT");
 
     _should_listen = 1;
     _listen_thread.run();
-#endif /* PEGASUS_USE_OPENSLP */
+#endif /* PEGASUS_USE_EXTERNAL_SLP_TYPE */
 
 }
 
@@ -519,8 +539,8 @@
 ThreadReturnType
 PEGASUS_THREAD_CDECL slp_service_agent::service_listener(void *parm)
 {
-#if !defined(PEGASUS_USE_OPENSLP) ||  \
-    (defined(PEGASUS_USE_OPENSLP) && defined(PEGASUS_SLP_REG_TIMEOUT))
+#if !defined(PEGASUS_USE_EXTERNAL_SLP_TYPE) ||  \
+    (defined(PEGASUS_USE_EXTERNAL_SLP_TYPE) && defined(PEGASUS_SLP_REG_TIMEOUT))
     Thread *myself = (Thread *)parm;
     if (myself == 0)
     {
@@ -544,11 +564,11 @@
         {
             sa_reg_params *rp = i.value();
 
-#ifdef PEGASUS_USE_OPENSLP
+#ifdef PEGASUS_USE_EXTERNAL_SLP_TYPE
             SLPHandle slp_handle = 0;
             SLPError slpErr = SLP_OK;
             SLPError callbackErr=SLP_OK;
-            if ((slpErr = SLPOpen(NULL, SLP_FALSE, &slp_handle)) == SLP_OK)
+            if ((slpErr = SLPOpen(slp_lang, SLP_FALSE, &slp_handle)) == SLP_OK)
             {
                 slpErr = SLPReg(
                     slp_handle,
@@ -631,7 +651,7 @@
         }
 #endif
     }
-#endif /* PEGASUS_USE_OPENSLP */
+#endif /* PEGASUS_USE_EXTERNAL_SLP_TYPE */
     return ThreadReturnType(0);
 }
 
--- old/pegasus/src/slp/slp_agent/peg_slp_agent.h	2008-11-12 15:42:14.999138000 -0500
+++ new/pegasus/src/slp/slp_agent/peg_slp_agent.h	2008-11-12 15:42:14.697213000 -0500
@@ -196,6 +196,7 @@
 #else
     AtomicInt _update_reg_count;
 #endif
+    static const char* slp_lang;
 };
 
 PEGASUS_NAMESPACE_END
--- old/pegasus/src/slp/slp_client/src/cmd-utils/slp_client/lslp-solaris.h	2008-11-12 15:42:21.415027000 -0500
+++ new/pegasus/src/slp/slp_client/src/cmd-utils/slp_client/lslp-solaris.h	2008-11-12 15:42:20.908887000 -0500
@@ -69,11 +69,7 @@
 /*** unix include files ***/
 #include <sys/sockio.h>
 
-/*** typedefs ***/
-typedef size_t socklen_t;
-
 /*** defines ***/
-#define INADDR_NONE ((in_addr_t) -1)
 #define _LSLP_SETSOCKOPT(a, b, c, d, e) \
     setsockopt((int)(a), (int)(b), (int)(c), (const char *)(d), (socklen_t)(e))
 #define _LSLP_SENDTO(a, b, c, d, e, f) \
--- old/pegasus/src/utils/chksrc/Makefile	2008-11-12 15:42:29.071948000 -0500
+++ new/pegasus/src/utils/chksrc/Makefile	2008-11-12 15:42:28.714345000 -0500
@@ -34,6 +34,14 @@
 
 include $(ROOT)/mak/config.mak
 
+ifeq ($(PEGASUS_PLATFORM), SOLARIS_IX86_CC)
+  CC=CC
+endif
+
+ifeq ($(PEGASUS_PLATFORM), SOLARIS_X86_64_CC)
+  CC=CC
+endif
+
 PROGRAM = chksrc
 SOURCES = chksrc.c
 
--- old/pegasus/test/config.mak	2008-11-12 15:42:34.625910000 -0500
+++ new/pegasus/test/config.mak	2008-11-12 15:42:34.313423000 -0500
@@ -34,7 +34,7 @@
 PORT =
 HTTPMETHOD = -m M-POST
 HTTPVERSION = -v 1.1
-USER = -u $(PEGASUS_TEST_USER_ID)
+PUSER = -u $(PEGASUS_TEST_USER_ID)
 PASSWORD = -w $(PEGASUS_TEST_USER_PASS)
 SSL =
 
@@ -45,7 +45,7 @@
 XMLRESPONSES_DS = $(XMLREQUESTS_DS:.xml=.rsp_ds)
 
 
-WBEMEXECOPTIONS = $(HOSTNAME) $(PORT) $(HTTPMETHOD) $(HTTPVERSION) $(USER) $(PASSWORD) $(SSL)
+WBEMEXECOPTIONS = $(HOSTNAME) $(PORT) $(HTTPMETHOD) $(HTTPVERSION) $(PUSER) $(PASSWORD) $(SSL)
 
 %.rsp: %.xml
 	@ wbemexec $(WBEMEXECOPTIONS) $*.xml > $(TMP_DIR)/$*.rsp || cd .