Import sfw build 151 sfwnv_151
authorCyril Plisko <cyril.plisko@grigale.com>
Fri, 15 Oct 2010 22:35:17 -0700
changeset 50 6100357dc4bc
parent 49 b12abbf8fdb9
child 51 7b594ad77bce
Import sfw build 151 Bugs Fixed ---------- 6854633 sudo in the pkginfo NAME field is not helpful. 6955626 OFED user Verbs libraries and utilities need to be supported 6959032 [CVE-2010-1646] security issue; upgrade sudo to 1.7.2p7 6982618 sudo security issue, CVE-2010-2956 6984559 Update Samba to 3.5.5 6987146 Samba vulnerability CVE-2010-3069 6988901 apr-util vulnerable for CVE-2010-1623 6989479 gdlib-config --ldflags STILL emits sunpro flags 6989480 libgd was built with libpng14 headers but is linked with libpng12
usr/src/Makefile.master
usr/src/cmd/Makefile
usr/src/cmd/apr-util/apr-util-1.3/patches/CVE-2010-1623.patch
usr/src/cmd/ofusr/Makefile.sfw
usr/src/cmd/ofusr/ibutils/METADATA
usr/src/cmd/ofusr/ibutils/Makefile.sfw
usr/src/cmd/ofusr/ibutils/base.patch
usr/src/cmd/ofusr/ibutils/ibutils-1.2.tar.gz
usr/src/cmd/ofusr/infiniband-diags/METADATA
usr/src/cmd/ofusr/infiniband-diags/Makefile.sfw
usr/src/cmd/ofusr/infiniband-diags/base.patch
usr/src/cmd/ofusr/infiniband-diags/infiniband-diags-1.3.6.tar.gz
usr/src/cmd/ofusr/infiniband-diags/solaris_set_nodedesc.tar.gz
usr/src/cmd/ofusr/libibcommon/METADATA
usr/src/cmd/ofusr/libibcommon/Makefile.sfw
usr/src/cmd/ofusr/libibcommon/base.patch
usr/src/cmd/ofusr/libibcommon/libibcommon-1.0.8.tar.gz
usr/src/cmd/ofusr/libibmad/METADATA
usr/src/cmd/ofusr/libibmad/Makefile.sfw
usr/src/cmd/ofusr/libibmad/base.patch
usr/src/cmd/ofusr/libibmad/libibmad-1.1.6.tar.gz
usr/src/cmd/ofusr/libibumad/METADATA
usr/src/cmd/ofusr/libibumad/Makefile.sfw
usr/src/cmd/ofusr/libibumad/base.patch
usr/src/cmd/ofusr/libibumad/libibumad-1.1.7.tar.gz
usr/src/cmd/ofusr/libibverbs/METADATA
usr/src/cmd/ofusr/libibverbs/Makefile.sfw
usr/src/cmd/ofusr/libibverbs/base.patch
usr/src/cmd/ofusr/libibverbs/libibverbs-1.1.1.tar.gz
usr/src/cmd/ofusr/libibverbs/solaris_compat.tar.gz
usr/src/cmd/ofusr/libmlx4/METADATA
usr/src/cmd/ofusr/libmlx4/Makefile.sfw
usr/src/cmd/ofusr/libmlx4/base.patch
usr/src/cmd/ofusr/libmlx4/libmlx4-1.0.tar.gz
usr/src/cmd/ofusr/libmthca/METADATA
usr/src/cmd/ofusr/libmthca/Makefile.sfw
usr/src/cmd/ofusr/libmthca/base.patch
usr/src/cmd/ofusr/libmthca/libmthca-1.0.4.tar.gz
usr/src/cmd/ofusr/librdmacm/METADATA
usr/src/cmd/ofusr/librdmacm/Makefile.sfw
usr/src/cmd/ofusr/librdmacm/base.patch
usr/src/cmd/ofusr/librdmacm/librdmacm-1.0.6.tar.gz
usr/src/cmd/ofusr/libsdp/METADATA
usr/src/cmd/ofusr/libsdp/Makefile.sfw
usr/src/cmd/ofusr/libsdp/base.patch
usr/src/cmd/ofusr/libsdp/libsdp-1.1.99.tar.gz
usr/src/cmd/ofusr/libsdp/solaris_man.tar.gz
usr/src/cmd/ofusr/lic_of
usr/src/cmd/ofusr/manscript
usr/src/cmd/ofusr/opensm/METADATA
usr/src/cmd/ofusr/opensm/Makefile.sfw
usr/src/cmd/ofusr/opensm/base.patch
usr/src/cmd/ofusr/opensm/opensm-3.1.10.tar.gz
usr/src/cmd/ofusr/perftest/METADATA
usr/src/cmd/ofusr/perftest/Makefile.sfw
usr/src/cmd/ofusr/perftest/base.patch
usr/src/cmd/ofusr/perftest/perftest-1.2.tar.gz
usr/src/cmd/ofusr/qperf/METADATA
usr/src/cmd/ofusr/qperf/Makefile.sfw
usr/src/cmd/ofusr/qperf/base.patch
usr/src/cmd/ofusr/qperf/qperf-0.4.0.tar.gz
usr/src/cmd/ofusr/rds-tools/METADATA
usr/src/cmd/ofusr/rds-tools/Makefile.sfw
usr/src/cmd/ofusr/rds-tools/base.patch
usr/src/cmd/ofusr/rds-tools/rds-tools-2.0.4.tar.gz
usr/src/cmd/samba/METADATA
usr/src/cmd/samba/samba-3.5.4.tar.gz
usr/src/cmd/samba/samba-3.5.5.tar.gz
usr/src/cmd/sudo/METADATA
usr/src/cmd/sudo/Makefile.sfw
usr/src/cmd/sudo/install.sfw
usr/src/cmd/sudo/solaris.patch
usr/src/cmd/sudo/sudo-1.7.0.tar.gz
usr/src/cmd/sudo/sudo-1.7.4p4.tar.gz
usr/src/cmd/sudo/sunman-sedscript
usr/src/cmd/vim/runtime.patch
usr/src/lib/gd2/Makefile.sfw
usr/src/lib/gd2/Solaris/configure.2.diff
usr/src/lib/gd2/install-sfw
usr/src/lib/gd2/install-sfw-64
usr/src/pkgdefs/Makefile
usr/src/pkgdefs/SUNWofusr/Makefile
usr/src/pkgdefs/SUNWofusr/copyright
usr/src/pkgdefs/SUNWofusr/depend
usr/src/pkgdefs/SUNWofusr/pkginfo.tmpl
usr/src/pkgdefs/SUNWofusr/prototype_com
usr/src/pkgdefs/SUNWofusr/prototype_i386
usr/src/pkgdefs/SUNWofusr/prototype_sparc
usr/src/pkgdefs/SUNWsudor/copyright
usr/src/pkgdefs/SUNWsudor/pkginfo.tmpl
usr/src/pkgdefs/SUNWsudor/prototype_com
usr/src/pkgdefs/SUNWsudou/copyright
usr/src/pkgdefs/SUNWsudou/pkginfo.tmpl
usr/src/pkgdefs/SUNWsudou/prototype_com
--- a/usr/src/Makefile.master	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/Makefile.master	Fri Oct 15 22:35:17 2010 -0700
@@ -20,7 +20,7 @@
 #
 # Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-#pragma ident	"@(#)Makefile.master	1.47	10/03/31 SMI"
+#pragma ident	"@(#)Makefile.master	1.48	10/10/07 SMI"
 #
 # Makefile.master, global definitions for system source
 #
@@ -280,6 +280,8 @@
 SFW_MAKE=	$(CCSMAKE)
 
 # default env settings if you need them
+ENV =		/usr/bin/env
+
 SFW_ENV =	PATH=$(SFW_PATH)
 SFW_ENV +=	CONFIG_SHELL=$(CONFIG_SHELL)
 SFW_ENV +=	MAKE=$(SFW_MAKE)
--- a/usr/src/cmd/Makefile	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/cmd/Makefile	Fri Oct 15 22:35:17 2010 -0700
@@ -22,7 +22,7 @@
 #
 # Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-# ident	"@(#)Makefile	1.192	10/08/31 SMI"
+# ident	"@(#)Makefile	1.193	10/10/07 SMI"
 #
 
 #
@@ -156,6 +156,7 @@
 	nmap \
 	ntpd \
 	ocaml \
+	ofusr \
 	openldap \
 	openwsman \
 	p7zip \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/apr-util/apr-util-1.3/patches/CVE-2010-1623.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,22 @@
+--- buckets/apr_brigade.c	2010/10/01 11:42:57	1003493
++++ buckets/apr_brigade.c	2010/10/01 11:43:26	1003494
+@@ -331,7 +331,18 @@
+             return APR_SUCCESS;
+         }
+         APR_BUCKET_REMOVE(e);
+-        APR_BRIGADE_INSERT_TAIL(bbOut, e);
++        if (APR_BUCKET_IS_METADATA(e) || len > APR_BUCKET_BUFF_SIZE/4) {
++            APR_BRIGADE_INSERT_TAIL(bbOut, e);
++        }
++        else {
++            if (len > 0) {
++                rv = apr_brigade_write(bbOut, NULL, NULL, str, len);
++                if (rv != APR_SUCCESS) {
++                    return rv;
++                }
++            }
++            apr_bucket_destroy(e);
++        }
+         readbytes += len;
+         /* We didn't find an APR_ASCII_LF within the maximum line length. */
+         if (readbytes >= maxbytes) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,114 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.2	10/10/11 SMI"
+#
+
+#
+# cmd/ofuv/Makefile
+#
+# include global definitions
+include ../Makefile.cmd
+
+OFUSR=$(SRC)/cmd/ofusr
+
+COMMON_SUBDIRS= \
+	libibverbs \
+	libmlx4 \
+	libmthca \
+	libibcommon \
+	libibumad \
+	libibmad \
+	opensm \
+	ibutils \
+	infiniband-diags \
+	librdmacm \
+	qperf \
+	rds-tools \
+	libsdp \
+	perftest
+
+i386_SUBDIRS= 
+sparc_SUBDIRS=
+
+all :=		TARGET= all
+install :=	TARGET= install
+clean :=	TARGET= clean
+clobber :=	TARGET= clobber
+lint :=		TARGET= lint
+meta-check :=		TARGET= meta-check
+component-hook :=	TARGET= component-hook
+
+SUBDIRS = $(COMMON_SUBDIRS) $($(MACH)_SUBDIRS)
+
+.PARALLEL:	$(SUBDIRS)
+
+CLEANUP_FILES = $(ROOTINCLUDE)/infiniband/mad.h \
+	$(ROOTINCLUDE)/infiniband/marshall.h \
+	$(ROOTINCLUDE)/infiniband/opcode.h \
+	$(ROOTINCLUDE)/infiniband/sa-kern-abi.h \
+	$(ROOTINCLUDE)/infiniband/umad.h \
+	$(ROOTLIB)/libibverbs.la $(ROOTLIB64)/libibverbs.la \
+	$(ROOTLIB)/libibcommon.so $(ROOTLIB64)/libibcommon.so \
+	$(ROOTLIB)/libibmad.so $(ROOTLIB64)/libibmad.so \
+	$(ROOTLIB)/libibumad.so $(ROOTLIB64)/libibumad.so \
+	$(ROOTLIB)/libmlx4.so $(ROOTLIB64)/libmlx4.so \
+	$(ROOTLIB)/libmthca.so $(ROOTLIB64)/libmthca.so \
+	$(ROOTLIB)/libopensm.so $(ROOTLIB)/libopensm-3.1.10.so \
+	$(ROOTLIB64)/libopensm.so $(ROOTLIB64)/libopensm-3.1.10.so \
+	$(ROOTLIB)/libosmcomp.so $(ROOTLIB)/libosmcomp-3.1.10.so \
+	$(ROOTLIB64)/libosmcomp-3.1.10.so $(ROOTLIB64)/libosmcomp.so \
+	$(ROOTLIB)/libosmvendor.so $(ROOTLIB)/libosmvendor-3.1.10.so \
+	$(ROOTLIB)/libosmvendor_openib.so $(ROOTLIB64)/libosmvendor.so \
+	$(ROOTLIB64)/libosmvendor-3.1.10.so \
+	$(ROOTLIB64)/libosmvendor_openib.so
+
+CLEANUP_DIRS = $(ROOTINCLUDE)/infiniband/iba \
+	$(ROOTINCLUDE)/infiniband/complib $(ROOTINCLUDE)/infiniband/opensm \
+	$(ROOTINCLUDE)/infiniband/vendor
+
+# this depends on %.prep because ibverbs needs unpacked source from other bits.
+install all:	libibverbs.prep .WAIT $(SUBDIRS)
+	$(RM) $(CLEANUP_FILES)
+	$(RM) -r $(CLEANUP_DIRS)
+
+clean clobber lint meta-check component-hook: $(FIRST_SUBDIRS) .WAIT $(SUBDIRS)
+
+$(FIRST_SUBDIRS) $(SUBDIRS): FRC
+	@cd $@; echo "$(TARGET) \c"; pwd; $(MAKE) $(MAKEFILE) $(TARGET)
+
+libmlx4.prep libmthca.prep librdmacm.prep:
+	@cd $(@:%.prep=%); echo "prep \c"; pwd; $(MAKE) $(MAKEFILE) prep
+
+libibverbs.prep:	libmlx4.prep libmthca.prep librdmacm.prep
+
+libmthca libmlx4 librdmacm libibcommon qperf perftest rds-tools:	libibverbs
+libibumad:		libibcommon
+libibmad:		libibumad
+opensm:			libibumad libibmad
+infiniband-diags:	opensm
+ibutils:		opensm
+perftest:		librdmacm
+
+FRC:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/ibutils/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,12 @@
+NAME:             ibutils
+VERSION:          1.2
+DESCRIPTION:      Infiniband Open Fabrics ibutils
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/OFED/ofed-1.3.1/OFED-1.3.1.tgz/ibutils-1.2.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/ofuv_tools
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
+                  ibutils-1.2.tar.gz is part of the SRPMS in OFED-1.3.1.tgz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/ibutils/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,117 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.2	10/10/08 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+CPPFLAGS +=	"-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+CONFIGURE_ENV +=	INSTALL_DATA="$(INSTALL_PROTO) -m 644"
+
+CONFIGURE_OPTIONS +=	--with-osm=$(ROOT)/usr
+
+$(VER)/build-32/config.status:=	CONFIGURE_OPTIONS +=	--sbindir=$(CFGUSRSBIN)
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB)"
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m32 -std=gnu99 -D_REENTRANT"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	CXXFLAGS="-m32"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_LIBRARY_PATH="/usr/sfw/lib:$(ROOTLIB)"
+
+CPPFLAGS +=	-I$(ROOT)/usr/include
+CPPFLAGS +=	-I$(ROOT)/usr/include/infiniband
+
+LIBS +=		-lsocket -lnsl -lopensm -losmvendor -losmcomp -libumad -libmad -libcommon
+
+COMMON_ENV +=	MAKE=$(GMAKE)
+
+BUILD_ENV +=		CPPFLAGS="$(CPPFLAGS)"
+BUILD_ENV +=		LIBS="$(LIBS)"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+CLEANUP_FILES = $(ROOTLIB)/libosmcomp.la $(ROOTLIB64)/libosmcomp.la \
+	$(ROOTLIB)/libosmvendor.la $(ROOTLIB64)/libosmvendor.la \
+	$(ROOTLIB)/libopensm.la $(ROOTLIB64)/libopensm.la \
+	$(ROOTLIB)/libibdm.la $(ROOTLIB64)/libibdm.la \
+	$(ROOTLIB)/libibdmcom.la $(ROOTLIB64)/libibdmcom.la \
+	$(ROOTUSRSBIN)/ibdmsh $(ROOTUSRSBIN)/ibdmtr \
+	$(ROOTUSRSBIN)/ibdmchk $(ROOTUSRSBIN)/ibdiagui \
+	$(ROOTUSRSBIN)/ibnlparse $(ROOTUSRSBIN)/ibdiagpath \
+	$(ROOTUSRSBIN)/ibtopodiff $(ROOTUSRSBIN)/git_version.tcl \
+	$(ROOTLIB)/libibdm.a $(ROOTLIB)/libibdm.so $(ROOTLIB)/libibdm.so.1 \
+	$(ROOTLIB)/libibdmcom.a $(ROOTLIB)/libibdm.so.1.1.1 \
+	$(ROOTLIB)/libibdmcom.so $(ROOTLIB)/libibdmcom.so.1 \
+	$(ROOTLIB)/libibdmcom.so.1.1.1 $(ROOTMAN1)/ibdmsh.1 \
+	$(ROOTMAN1)/ibdmtr.1 $(ROOTMAN1)/ibdmchk.1 $(ROOTMAN1)/ibdiagui.1 \
+	$(ROOTMAN1)/ibdiagpath.1 $(ROOTMAN1)/ibtopodiff.1 \
+	$(ROOTMAN1)/ibdm-ibnl-file.1 $(ROOTMAN1)/ibdm-topo-file.1
+
+CLEANUP_DIRS = $(ROOTINCLUDE)/ibdm $(ROOTLIB)/ibdiagui1.2 \
+	$(ROOTLIB)/ibdiagpath1.2
+
+all:		$(VER)/build-32/.built
+
+install:	$(VER)/build-32/.installed
+	$(RM) $(ROOTLIB)/$(COMPONENT_NAME:sh).la \
+		$(ROOTLIB64)/$(COMPONENT_NAME:sh).la
+	$(RM) $(CLEANUP_FILES)
+	$(RM) -r $(CLEANUP_DIRS)
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	$(SYMLINK) ../include $(@D)/include
+	(cd $(@D) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ../configure $(CONFIGURE_OPTIONS))
+	$(SYMLINK) ../../scripts/IBswcountlimits.pm $(@D)/scripts
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/ibutils/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,1061 @@
+diff -r -u /tmp/771985/ibutils-1.2/config/osm.m4 ibutils-1.2/config/osm.m4
+--- /tmp/771985/ibutils-1.2/config/osm.m4	Tue Jun  3 03:20:53 2008
++++ ibutils-1.2/config/osm.m4	Thu Sep 30 08:16:57 2010
+@@ -178,7 +178,7 @@
+       osm_debug_flags=
+    fi
+    
+-   OSM_CFLAGS="-I$osm_include_dir $osm_extra_includes $osm_debug_flags $osm_vendor_sel -D_XOPEN_SOURCE=600 -D_BSD_SOURCE=1"
++   OSM_CFLAGS="-I$osm_include_dir $osm_extra_includes $osm_debug_flags $osm_vendor_sel -D_BSD_SOURCE=1"
+ else
+    dnl dummy values
+    with_osm=disabled
+diff -r -u /tmp/771985/ibutils-1.2/ibdiag/doc/Makefile.in ibutils-1.2/ibdiag/doc/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibdiag/doc/Makefile.in	Tue Jun  3 03:20:58 2008
++++ ibutils-1.2/ibdiag/doc/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -56,7 +56,7 @@
+ top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+diff -r -u /tmp/771985/ibutils-1.2/ibdiag/src/Makefile.in ibutils-1.2/ibdiag/src/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibdiag/src/Makefile.in	Tue Jun  3 03:20:58 2008
++++ ibutils-1.2/ibdiag/src/Makefile.in	Thu Oct  7 11:48:05 2010
+@@ -57,7 +57,7 @@
+ top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+@@ -78,8 +78,8 @@
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+ CONFIG_CLEAN_FILES =
+-am__installdirs = "$(DESTDIR)$(bindir)"
+-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
++am__installdirs = "$(DESTDIR)$(sbindir)"
++binSCRIPT_INSTALL = $(INSTALL_SCRIPT) -m 755
+ SCRIPTS = $(bin_SCRIPTS)
+ SOURCES =
+ DIST_SOURCES =
+@@ -190,13 +190,13 @@
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ install-binSCRIPTS: $(bin_SCRIPTS)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
++	test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
+ 	@list='$(bin_SCRIPTS)'; for p in $$list; do \
+ 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 	  if test -f $$d$$p; then \
+ 	    f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+-	    echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+-	    $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
++	    echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
++	    $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(sbindir)/$$f"; \
+ 	  else :; fi; \
+ 	done
+ 
+@@ -204,8 +204,8 @@
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(bin_SCRIPTS)'; for p in $$list; do \
+ 	  f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
++	  echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(sbindir)/$$f"; \
+ 	done
+ uninstall-info-am:
+ tags: TAGS
+@@ -246,7 +246,7 @@
+ check: check-am
+ all-am: Makefile $(SCRIPTS)
+ installdirs:
+-	for dir in "$(DESTDIR)$(bindir)"; do \
++	for dir in "$(DESTDIR)$(sbindir)"; do \
+ 	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ 	done
+ install: install-am
+diff -r -u /tmp/771985/ibutils-1.2/ibdiag/Makefile.in ibutils-1.2/ibdiag/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibdiag/Makefile.in	Tue Jun  3 03:20:58 2008
++++ ibutils-1.2/ibdiag/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -58,7 +58,7 @@
+ top_builddir = .
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+diff -r -u /tmp/771985/ibutils-1.2/ibdiag/configure ibutils-1.2/ibdiag/configure
+--- /tmp/771985/ibutils-1.2/ibdiag/configure	Tue Jun  3 03:20:58 2008
++++ ibutils-1.2/ibdiag/configure	Thu Sep 30 08:16:57 2010
+@@ -1353,7 +1353,7 @@
+ 
+ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ 
+-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 744'
+ 
+ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+ echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+@@ -1820,7 +1820,7 @@
+ 
+ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ 
+-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 744'
+ 
+ echo "$as_me:$LINENO: checking whether ln -s works" >&5
+ echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+diff -r -u /tmp/771985/ibutils-1.2/ibdm/Clusters/Makefile.in ibutils-1.2/ibdm/Clusters/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibdm/Clusters/Makefile.in	Tue Jun  3 03:21:03 2008
++++ ibutils-1.2/ibdm/Clusters/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -23,7 +23,7 @@
+ top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+diff -r -u /tmp/771985/ibutils-1.2/ibdm/Makefile.am ibutils-1.2/ibdm/Makefile.am
+--- /tmp/771985/ibutils-1.2/ibdm/Makefile.am	Tue Jun  3 03:20:53 2008
++++ ibutils-1.2/ibdm/Makefile.am	Thu Sep 30 08:16:57 2010
+@@ -35,7 +35,7 @@
+ #AUTOMAKE_OPTIONS 	= gnits
+ 
+ # note that order matters: make the lib first then use it
+-SUBDIRS 		= replace datamodel src Clusters ibnl doc
++SUBDIRS 		= datamodel src Clusters ibnl doc
+ 
+ # this will control the update of the files in order
+ MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure config-h.in 
+diff -r -u /tmp/771985/ibutils-1.2/ibdm/datamodel/Fabric.h ibutils-1.2/ibdm/datamodel/Fabric.h
+--- /tmp/771985/ibutils-1.2/ibdm/datamodel/Fabric.h	Tue Jun  3 03:20:53 2008
++++ ibutils-1.2/ibdm/datamodel/Fabric.h	Thu Sep 30 08:16:57 2010
+@@ -55,6 +55,7 @@
+ #include <iostream>
+ #include <sstream>
+ #include <string>
++#include <cstring>
+ #include <stdio.h>
+ 
+ #include <sys/types.h>
+@@ -66,7 +67,7 @@
+ 
+ #if __WORDSIZE == 64
+ #define PRIx64 "lx"
+-#else
++#elseif !defined(__SVR4) || !defined(__sun)
+ #define PRIx64 "llx"
+ #endif
+ using namespace std;
+diff -r -u /tmp/771985/ibutils-1.2/ibdm/datamodel/LinkCover.cpp ibutils-1.2/ibdm/datamodel/LinkCover.cpp
+--- /tmp/771985/ibutils-1.2/ibdm/datamodel/LinkCover.cpp	Tue Jun  3 03:20:53 2008
++++ ibutils-1.2/ibdm/datamodel/LinkCover.cpp	Thu Sep 30 08:16:57 2010
+@@ -39,6 +39,7 @@
+ #include <fstream>
+ #include <sstream>
+ #include <map>
++#include <algorithm>
+ using namespace std;
+ 
+ /*
+diff -r -u /tmp/771985/ibutils-1.2/ibdm/datamodel/Makefile.in ibutils-1.2/ibdm/datamodel/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibdm/datamodel/Makefile.in	Tue Jun  3 03:21:03 2008
++++ ibutils-1.2/ibdm/datamodel/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -91,7 +91,7 @@
+     *) f=$$p;; \
+   esac;
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
++am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(sbindir)" \
+ 	"$(DESTDIR)$(pkgincludedir)"
+ libLTLIBRARIES_INSTALL = $(INSTALL)
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+@@ -286,10 +286,11 @@
+ AM_CFLAGS = $(DBG) $(IBNL_PATH) $(TCL_CFLAGS) $(REGEXP_INCLUDE)
+ lib_LTLIBRARIES = libibdmcom.la libibdm.la
+ libibdmcom_la_SOURCES = $(common_SOURCES)
+-libibdmcom_la_LIBADD = -L../replace -lreplace
++#libibdmcom_la_LIBADD = -L../replace -lreplace
+ libibdmcom_la_LDFLAGS = -version-info $(LIB_VER_TRIPLET) 
+ libibdm_la_SOURCES = ibdm_wrap.cpp ibdm.i $(common_SOURCES)
+-libibdm_la_LIBADD = $(TCL_LIBS) -L../replace -lreplace
++#libibdm_la_LIBADD = $(TCL_LIBS) -L../replace -lreplace
++libibdm_la_LIBADD = $(TCL_LIBS)
+ libibdm_la_LDFLAGS = -Wl,-rpath -Wl,$(TCL_PREFIX)/lib -version-info $(LIB_VER_TRIPLET) -no-undefined
+ ibdmsh_SOURCES = ibdmsh_wrap.cpp 
+ ibdmsh_LDADD = -libdmcom $(TCL_LIBS)
+@@ -366,7 +367,7 @@
+ 	$(CXXLINK) -rpath $(libdir) $(libibdmcom_la_LDFLAGS) $(libibdmcom_la_OBJECTS) $(libibdmcom_la_LIBADD) $(LIBS)
+ install-binPROGRAMS: $(bin_PROGRAMS)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
++	test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ 	  if test -f $$p \
+@@ -373,8 +374,8 @@
+ 	     || test -f $$p1 \
+ 	  ; then \
+ 	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+-	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+-	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
++	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
++	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
+ 	  else :; fi; \
+ 	done
+ 
+@@ -382,8 +383,8 @@
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
++	  echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(sbindir)/$$f"; \
+ 	done
+ 
+ clean-binPROGRAMS:
+@@ -569,7 +570,7 @@
+ install-binPROGRAMS: install-libLTLIBRARIES
+ 
+ installdirs:
+-	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgincludedir)"; do \
++	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(pkgincludedir)"; do \
+ 	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ 	done
+ install: install-am
+diff -r -u /tmp/771985/ibutils-1.2/ibdm/doc/Makefile.in ibutils-1.2/ibdm/doc/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibdm/doc/Makefile.in	Tue Jun  3 03:21:03 2008
++++ ibutils-1.2/ibdm/doc/Makefile.in	Thu Oct  7 11:37:06 2010
+@@ -56,7 +56,7 @@
+ top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+diff -r -u /tmp/771985/ibutils-1.2/ibdm/ibnl/Makefile.in ibutils-1.2/ibdm/ibnl/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibdm/ibnl/Makefile.in	Tue Jun  3 03:21:04 2008
++++ ibutils-1.2/ibdm/ibnl/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -23,7 +23,7 @@
+ top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+diff -r -u /tmp/771985/ibutils-1.2/ibdm/replace/Makefile.am ibutils-1.2/ibdm/replace/Makefile.am
+--- /tmp/771985/ibutils-1.2/ibdm/replace/Makefile.am	Tue Jun  3 03:20:53 2008
++++ ibutils-1.2/ibdm/replace/Makefile.am	Thu Sep 30 08:16:57 2010
+@@ -3,5 +3,5 @@
+ INCLUDES                =  -I$(top_builddir) -I$(top_srcdir)
+ 
+ noinst_LIBRARIES        = libreplace.a
+-libreplace_a_SOURCES       = 
++libreplace_a_SOURCES =  memset.c regex.c malloc.c realloc.c regex.h
+ libreplace_a_LIBADD        = @LIBOBJS@
+diff -r -u /tmp/771985/ibutils-1.2/ibdm/replace/Makefile.in ibutils-1.2/ibdm/replace/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibdm/replace/Makefile.in	Tue Jun  3 03:21:04 2008
++++ ibutils-1.2/ibdm/replace/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -52,7 +52,7 @@
+ ARFLAGS = cru
+ libreplace_a_AR = $(AR) $(ARFLAGS)
+ libreplace_a_DEPENDENCIES = @LIBOBJS@
+-am_libreplace_a_OBJECTS =
++am_libreplace_a_OBJECTS = memset.o regex.o malloc.o realloc.o
+ libreplace_a_OBJECTS = $(am_libreplace_a_OBJECTS)
+ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+ depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+@@ -190,7 +190,7 @@
+ with_final_prefix = @with_final_prefix@
+ INCLUDES = -I$(top_builddir) -I$(top_srcdir)
+ noinst_LIBRARIES = libreplace.a
+-libreplace_a_SOURCES = 
++libreplace_a_SOURCES = memset.c regex.c malloc.c realloc.c regex.h 
+ libreplace_a_LIBADD = @LIBOBJS@
+ all: all-am
+ 
+diff -r -u /tmp/771985/ibutils-1.2/ibdm/src/Makefile.in ibutils-1.2/ibdm/src/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibdm/src/Makefile.in	Tue Jun  3 03:21:04 2008
++++ ibutils-1.2/ibdm/src/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -61,7 +61,7 @@
+ top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+@@ -87,7 +87,7 @@
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES =
+-am__installdirs = "$(DESTDIR)$(bindir)"
++am__installdirs = "$(DESTDIR)$(sbindir)"
+ binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+ PROGRAMS = $(bin_PROGRAMS)
+ am_ibdmchk_OBJECTS = osm_check.$(OBJEXT)
+@@ -289,7 +289,7 @@
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ install-binPROGRAMS: $(bin_PROGRAMS)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
++	test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ 	  if test -f $$p \
+@@ -296,8 +296,8 @@
+ 	     || test -f $$p1 \
+ 	  ; then \
+ 	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+-	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+-	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
++	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
++	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
+ 	  else :; fi; \
+ 	done
+ 
+@@ -305,8 +305,8 @@
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
++	  echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(sbindir)/$$f"; \
+ 	done
+ 
+ clean-binPROGRAMS:
+@@ -452,7 +452,7 @@
+ check: check-am
+ all-am: Makefile $(PROGRAMS)
+ installdirs:
+-	for dir in "$(DESTDIR)$(bindir)"; do \
++	for dir in "$(DESTDIR)$(sbindir)"; do \
+ 	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ 	done
+ install: install-am
+diff -r -u /tmp/771985/ibutils-1.2/ibdm/aclocal.m4 ibutils-1.2/ibdm/aclocal.m4
+--- /tmp/771985/ibutils-1.2/ibdm/aclocal.m4	Tue Jun  3 03:21:01 2008
++++ ibutils-1.2/ibdm/aclocal.m4	Thu Sep 30 08:16:57 2010
+@@ -177,7 +177,7 @@
+ 
+ # Determine commands to create old-style static archives.
+ old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+-old_postinstall_cmds='chmod 644 $oldlib'
++old_postinstall_cmds='chmod 744 $oldlib'
+ old_postuninstall_cmds=
+ 
+ if test -n "$RANLIB"; then
+@@ -1709,6 +1709,24 @@
+   hardcode_into_libs=yes
+   # ldd complains unless libraries are executable
+   postinstall_cmds='chmod +x $lib'
++
++  if echo "$CFLAGS" | grep '\-m64' >/dev/null ; then
++    sys_lib_search_path_spec=`$CC -m64 -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
++    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
++
++    solaris_arch=`uname -p`
++    if [ $solaris_arch = "i386" ]; then
++      lib64=amd64
++    else
++      lib64=sparcv9
++    fi
++
++    if ! echo "$sys_lib_search_path_spec" | grep $lib64 >/dev/null  ; then
++      solaris_lib64path=`echo "$sys_lib_search_path_spec" | $SED  -e "s/ /$lib64\/ /g" | cut -d " " -f2-`
++      solaris_lib64path="$solaris_lib64path""$lib64"/
++      sys_lib_search_path_spec="$solaris_lib64path $sys_lib_search_path_spec"
++    fi
++  fi
+   ;;
+ 
+ sunos4*)
+diff -r -u /tmp/771985/ibutils-1.2/ibdm/Makefile.in ibutils-1.2/ibdm/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibdm/Makefile.in	Tue Jun  3 03:21:04 2008
++++ ibutils-1.2/ibdm/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -58,7 +58,7 @@
+ top_builddir = .
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+@@ -231,7 +231,8 @@
+ with_final_prefix = @with_final_prefix@
+ 
+ # note that order matters: make the lib first then use it
+-SUBDIRS = replace datamodel src Clusters ibnl doc
++#SUBDIRS = replace datamodel src Clusters ibnl doc
++SUBDIRS = datamodel src Clusters ibnl doc
+ 
+ # this will control the update of the files in order
+ MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure config-h.in 
+diff -r -u /tmp/771985/ibutils-1.2/ibdm/configure ibutils-1.2/ibdm/configure
+--- /tmp/771985/ibutils-1.2/ibdm/configure	Tue Jun  3 03:21:05 2008
++++ ibutils-1.2/ibdm/configure	Thu Sep 30 08:16:57 2010
+@@ -1619,7 +1619,7 @@
+ 
+ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ 
+-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 744'
+ 
+ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+ echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+@@ -3878,7 +3878,7 @@
+ 
+ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ 
+-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 744'
+ 
+ echo "$as_me:$LINENO: checking whether ln -s works" >&5
+ echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+@@ -6688,7 +6688,7 @@
+ 
+ # Determine commands to create old-style static archives.
+ old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+-old_postinstall_cmds='chmod 644 $oldlib'
++old_postinstall_cmds='chmod 744 $oldlib'
+ old_postuninstall_cmds=
+ 
+ if test -n "$RANLIB"; then
+@@ -8225,6 +8225,7 @@
+  	esac ;;
+       esac
+       link_all_deplibs=yes
++      hardcode_libdir_flag_spec=
+       ;;
+ 
+     sunos4*)
+@@ -8918,6 +8919,24 @@
+   hardcode_into_libs=yes
+   # ldd complains unless libraries are executable
+   postinstall_cmds='chmod +x $lib'
++
++  if echo "$CFLAGS" | grep '\-m64' >/dev/null ; then
++    sys_lib_search_path_spec=`$CC -m64 -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
++    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
++
++    solaris_arch=`uname -p`
++    if [ $solaris_arch = "i386" ]; then
++      lib64=amd64
++    else
++      lib64=sparcv9
++    fi
++
++    if ! echo "$sys_lib_search_path_spec" | grep $lib64 >/dev/null  ; then
++      solaris_lib64path=`echo "$sys_lib_search_path_spec" | $SED  -e "s/ /$lib64\/ /g" | cut -d " " -f2-`
++      solaris_lib64path="$solaris_lib64path""$lib64"/
++      sys_lib_search_path_spec="$solaris_lib64path $sys_lib_search_path_spec"
++    fi
++  fi
+   ;;
+ 
+ sunos4*)
+@@ -11593,6 +11612,7 @@
+ 	fi
+ 	;;
+     esac
++    hardcode_libdir_flag_spec_CXX=
+     ;;
+   sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+     no_undefined_flag_CXX='${wl}-z,text'
+@@ -12883,6 +12903,24 @@
+   hardcode_into_libs=yes
+   # ldd complains unless libraries are executable
+   postinstall_cmds='chmod +x $lib'
++
++  if echo "$CXXFLAGS" | grep '\-m64' >/dev/null ; then
++    sys_lib_search_path_spec=`$CC -m64 -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
++    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
++
++    solaris_arch=`uname -p`
++    if [ $solaris_arch = "i386" ]; then
++      lib64=amd64
++    else
++      lib64=sparcv9
++    fi
++
++    if ! echo "$sys_lib_search_path_spec" | grep $lib64 >/dev/null  ; then
++      solaris_lib64path=`echo "$sys_lib_search_path_spec" | $SED  -e "s/ /$lib64\/ /g" | cut -d " " -f2-`
++      solaris_lib64path="$solaris_lib64path""$lib64"/
++      sys_lib_search_path_spec="$solaris_lib64path $sys_lib_search_path_spec"
++    fi
++  fi
+   ;;
+ 
+ sunos4*)
+diff -r -u /tmp/771985/ibutils-1.2/ibis/doc/Makefile.in ibutils-1.2/ibis/doc/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibis/doc/Makefile.in	Tue Jun  3 03:21:09 2008
++++ ibutils-1.2/ibis/doc/Makefile.in	Thu Oct  7 11:37:34 2010
+@@ -56,7 +56,7 @@
+ top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+diff -r -u /tmp/771985/ibutils-1.2/ibis/src/ibbbm_base.h ibutils-1.2/ibis/src/ibbbm_base.h
+--- /tmp/771985/ibutils-1.2/ibis/src/ibbbm_base.h	Tue Jun  3 03:20:53 2008
++++ ibutils-1.2/ibis/src/ibbbm_base.h	Thu Sep 30 08:16:57 2010
+@@ -34,7 +34,11 @@
+ #ifndef _IBBBM_BASE_H_
+ #define _IBBBM_BASE_H_
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
++#else
++#include <ofa_solaris.h>
++#endif
+ 
+ #define BBM_CLASS         0x05
+ #define BBM_ATTR_BKEYINFO 0x10
+diff -r -u /tmp/771985/ibutils-1.2/ibis/src/ibcr_base.h ibutils-1.2/ibis/src/ibcr_base.h
+--- /tmp/771985/ibutils-1.2/ibis/src/ibcr_base.h	Tue Jun  3 03:20:53 2008
++++ ibutils-1.2/ibis/src/ibcr_base.h	Thu Oct  7 11:31:10 2010
+@@ -34,7 +34,11 @@
+ #ifndef _IBCR_BASE_H_
+ #define _IBCR_BASE_H_
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
++#else
++#include <infiniband/ofa_solaris.h>
++#endif
+ 
+ #define CR_CLASS        0x09
+ #define CR_ATTR_50      0x50
+diff -r -u /tmp/771985/ibutils-1.2/ibis/src/ibissh_wrap.cpp ibutils-1.2/ibis/src/ibissh_wrap.cpp
+--- /tmp/771985/ibutils-1.2/ibis/src/ibissh_wrap.cpp	Tue Jun  3 03:20:53 2008
++++ ibutils-1.2/ibis/src/ibissh_wrap.cpp	Thu Sep 30 08:16:57 2010
+@@ -13,6 +13,11 @@
+  * Do not make changes to this file--changes will be lost!
+  *
+  */
++#if defined(__SVR4) && defined(__sun)
++#include <sys/types.h>
++#define	TRUE	_B_TRUE
++#define	FALSE 	_B_FALSE
++#endif
+ 
+ 
+ #define SWIGCODE
+@@ -822,7 +827,7 @@
+ 	  // Write response - no data
+ 	  // Note: The trailing space here is important !
+ 	  sprintf(buff, "ACK ");
+-	  space_in_resp = 0;
++	  space_in_resp = (boolean_t)0;
+       }
+ 
+       if (is_multi && space_in_resp)
+diff -r -u /tmp/771985/ibutils-1.2/ibis/src/ibpm_base.h ibutils-1.2/ibis/src/ibpm_base.h
+--- /tmp/771985/ibutils-1.2/ibis/src/ibpm_base.h	Tue Jun  3 03:20:53 2008
++++ ibutils-1.2/ibis/src/ibpm_base.h	Thu Oct  7 11:31:12 2010
+@@ -35,7 +35,11 @@
+ #ifndef _IBPM_BASE_H_
+ #define _IBPM_BASE_H_
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
++#else
++#include <infiniband/ofa_solaris.h>
++#endif
+ 
+ #define PERF_CLASS      0x04
+ #define PERF_CLASS_PORT_INFO 0x01
+diff -r -u /tmp/771985/ibutils-1.2/ibis/src/ibvs_base.h ibutils-1.2/ibis/src/ibvs_base.h
+--- /tmp/771985/ibutils-1.2/ibis/src/ibvs_base.h	Tue Jun  3 03:20:53 2008
++++ ibutils-1.2/ibis/src/ibvs_base.h	Thu Sep 30 08:16:57 2010
+@@ -35,7 +35,11 @@
+ #ifndef _IBVS_BASE_H_
+ #define _IBVS_BASE_H_
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
++#else
++#include <infiniband/ofa_solaris.h>
++#endif
+ 
+ #define VS_CLASS             0x0a
+ #define VS_CLASS_PORT_INFO   0x01
+diff -r -u /tmp/771985/ibutils-1.2/ibis/src/swig_extended_obj.c ibutils-1.2/ibis/src/swig_extended_obj.c
+--- /tmp/771985/ibutils-1.2/ibis/src/swig_extended_obj.c	Tue Jun  3 03:20:53 2008
++++ ibutils-1.2/ibis/src/swig_extended_obj.c	Thu Oct  7 11:31:15 2010
+@@ -31,6 +31,9 @@
+  *
+  * $Id$
+  */
++#if defined(__SVR4) && defined(__sun)
++#include <strings.h>
++#endif
+ 
+ /*--------------------------------------------------------------------
+  * This file holds an extended implementation for SWIG TCL Objects.
+diff -r -u /tmp/771985/ibutils-1.2/ibis/src/Makefile.in ibutils-1.2/ibis/src/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibis/src/Makefile.in	Tue Jun  3 03:21:10 2008
++++ ibutils-1.2/ibis/src/Makefile.in	Thu Oct  7 11:29:53 2010
+@@ -58,7 +58,7 @@
+ top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+@@ -89,7 +89,7 @@
+     *) f=$$p;; \
+   esac;
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)"
++am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(sbindir)"
+ libLTLIBRARIES_INSTALL = $(INSTALL)
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+ libibis_la_LIBADD =
+@@ -100,7 +100,7 @@
+ am_libibiscom_la_OBJECTS = ibbbm.lo ibcr.lo ibis.lo \
+ 	ibis_gsi_mad_ctrl.lo ibpm.lo ibsac.lo ibsm.lo ibvs.lo
+ libibiscom_la_OBJECTS = $(am_libibiscom_la_OBJECTS)
+-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
++binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -m 755
+ PROGRAMS = $(bin_PROGRAMS)
+ am_ibis_OBJECTS = ibissh_wrap.$(OBJEXT)
+ ibis_OBJECTS = $(am_ibis_OBJECTS)
+@@ -379,7 +379,7 @@
+ 	$(LINK) -rpath $(libdir) $(libibiscom_la_LDFLAGS) $(libibiscom_la_OBJECTS) $(libibiscom_la_LIBADD) $(LIBS)
+ install-binPROGRAMS: $(bin_PROGRAMS)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
++	test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ 	  if test -f $$p \
+@@ -386,8 +386,8 @@
+ 	     || test -f $$p1 \
+ 	  ; then \
+ 	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+-	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+-	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
++	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
++	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
+ 	  else :; fi; \
+ 	done
+ 
+@@ -395,8 +395,8 @@
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
++	  echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(sbindir)/$$f"; \
+ 	done
+ 
+ clean-binPROGRAMS:
+@@ -559,7 +559,7 @@
+ install-binPROGRAMS: install-libLTLIBRARIES
+ 
+ installdirs:
+-	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)"; do \
++	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(sbindir)"; do \
+ 	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ 	done
+ install: install-am
+diff -r -u /tmp/771985/ibutils-1.2/ibis/tests/Makefile.in ibutils-1.2/ibis/tests/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibis/tests/Makefile.in	Tue Jun  3 03:21:10 2008
++++ ibutils-1.2/ibis/tests/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -23,7 +23,7 @@
+ top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+diff -r -u /tmp/771985/ibutils-1.2/ibis/aclocal.m4 ibutils-1.2/ibis/aclocal.m4
+--- /tmp/771985/ibutils-1.2/ibis/aclocal.m4	Tue Jun  3 03:21:07 2008
++++ ibutils-1.2/ibis/aclocal.m4	Thu Sep 30 08:16:57 2010
+@@ -177,7 +177,7 @@
+ 
+ # Determine commands to create old-style static archives.
+ old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+-old_postinstall_cmds='chmod 644 $oldlib'
++old_postinstall_cmds='chmod 744 $oldlib'
+ old_postuninstall_cmds=
+ 
+ if test -n "$RANLIB"; then
+diff -r -u /tmp/771985/ibutils-1.2/ibis/Makefile.in ibutils-1.2/ibis/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibis/Makefile.in	Tue Jun  3 03:21:10 2008
++++ ibutils-1.2/ibis/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -58,7 +58,7 @@
+ top_builddir = .
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+diff -r -u /tmp/771985/ibutils-1.2/ibis/configure ibutils-1.2/ibis/configure
+--- /tmp/771985/ibutils-1.2/ibis/configure	Tue Jun  3 03:21:11 2008
++++ ibutils-1.2/ibis/configure	Thu Sep 30 08:16:57 2010
+@@ -1620,7 +1620,7 @@
+ 
+ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ 
+-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 744'
+ 
+ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+ echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+@@ -2087,7 +2087,7 @@
+ 
+ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ 
+-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 744'
+ 
+ echo "$as_me:$LINENO: checking whether ln -s works" >&5
+ echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+@@ -6345,7 +6345,7 @@
+ 
+ # Determine commands to create old-style static archives.
+ old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+-old_postinstall_cmds='chmod 644 $oldlib'
++old_postinstall_cmds='chmod 744 $oldlib'
+ old_postuninstall_cmds=
+ 
+ if test -n "$RANLIB"; then
+@@ -7882,6 +7882,7 @@
+  	esac ;;
+       esac
+       link_all_deplibs=yes
++      hardcode_libdir_flag_spec=
+       ;;
+ 
+     sunos4*)
+@@ -11250,6 +11251,7 @@
+ 	fi
+ 	;;
+     esac
++      hardcode_libdir_flag_spec_CXX=
+     ;;
+   sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+     no_undefined_flag_CXX='${wl}-z,text'
+@@ -19836,7 +19838,7 @@
+    { echo "$as_me:$LINENO: OSM: build type $OSM_BUILD" >&5
+ echo "$as_me: OSM: build type $OSM_BUILD" >&6;}
+ 
+-   OSM_LDFLAGS="-Wl,-rpath -Wl,$with_osm_libs -L$with_osm_libs"
++   OSM_LDFLAGS="-L$with_osm_libs"
+          if test $OSM_BUILD = openib; then
+             osm_include_dir="$with_osm/include/infiniband"
+       osm_extra_includes="-I$with_osm/include"
+@@ -19924,7 +19926,7 @@
+       osm_debug_flags=
+    fi
+ 
+-   OSM_CFLAGS="-I$osm_include_dir $osm_extra_includes $osm_debug_flags $osm_vendor_sel -D_XOPEN_SOURCE=600 -D_BSD_SOURCE=1"
++   OSM_CFLAGS="-I$osm_include_dir $osm_extra_includes $osm_debug_flags $osm_vendor_sel -D_BSD_SOURCE=1"
+ else
+       with_osm=disabled
+    OSM_CLFAGS=disabled
+diff -r -u /tmp/771985/ibutils-1.2/ibmgtsim/doc/Makefile.in ibutils-1.2/ibmgtsim/doc/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibmgtsim/doc/Makefile.in	Tue Jun  3 03:21:15 2008
++++ ibutils-1.2/ibmgtsim/doc/Makefile.in	Thu Oct  7 11:38:16 2010
+@@ -56,7 +56,7 @@
+ top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+diff -r -u /tmp/771985/ibutils-1.2/ibmgtsim/src/Makefile.in ibutils-1.2/ibmgtsim/src/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibmgtsim/src/Makefile.in	Tue Jun  3 03:21:16 2008
++++ ibutils-1.2/ibmgtsim/src/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -59,7 +59,7 @@
+ top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+@@ -91,7 +91,7 @@
+     *) f=$$p;; \
+   esac;
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
++am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(sbindir)" \
+ 	"$(DESTDIR)$(pkgincludedir)"
+ libLTLIBRARIES_INSTALL = $(INSTALL)
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+@@ -404,7 +404,7 @@
+ 	$(CXXLINK) -rpath $(libdir) $(libibmscli_la_LDFLAGS) $(libibmscli_la_OBJECTS) $(libibmscli_la_LIBADD) $(LIBS)
+ install-binPROGRAMS: $(bin_PROGRAMS)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
++	test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ 	  if test -f $$p \
+@@ -411,8 +411,8 @@
+ 	     || test -f $$p1 \
+ 	  ; then \
+ 	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+-	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+-	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
++	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
++	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
+ 	  else :; fi; \
+ 	done
+ 
+@@ -420,8 +420,8 @@
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
++	  echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(sbindir)/$$f"; \
+ 	done
+ 
+ clean-binPROGRAMS:
+@@ -646,7 +646,7 @@
+ install-binPROGRAMS: install-libLTLIBRARIES
+ 
+ installdirs:
+-	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgincludedir)"; do \
++	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(pkgincludedir)"; do \
+ 	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ 	done
+ install: install-am
+diff -r -u /tmp/771985/ibutils-1.2/ibmgtsim/tests/Makefile.in ibutils-1.2/ibmgtsim/tests/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibmgtsim/tests/Makefile.in	Tue Jun  3 03:21:16 2008
++++ ibutils-1.2/ibmgtsim/tests/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -57,7 +57,7 @@
+ top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+diff -r -u /tmp/771985/ibutils-1.2/ibmgtsim/utils/Makefile.in ibutils-1.2/ibmgtsim/utils/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibmgtsim/utils/Makefile.in	Tue Jun  3 03:21:16 2008
++++ ibutils-1.2/ibmgtsim/utils/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -57,7 +57,7 @@
+ top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+@@ -81,7 +81,7 @@
+ mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES =
+-am__installdirs = "$(DESTDIR)$(bindir)"
++am__installdirs = "$(DESTDIR)$(sbindir)"
+ binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
+ SCRIPTS = $(bin_SCRIPTS)
+ SOURCES =
+@@ -253,13 +253,13 @@
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ install-binSCRIPTS: $(bin_SCRIPTS)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
++	test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
+ 	@list='$(bin_SCRIPTS)'; for p in $$list; do \
+ 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 	  if test -f $$d$$p; then \
+ 	    f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+-	    echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+-	    $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
++	    echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
++	    $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(sbindir)/$$f"; \
+ 	  else :; fi; \
+ 	done
+ 
+@@ -267,8 +267,8 @@
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(bin_SCRIPTS)'; for p in $$list; do \
+ 	  f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
++	  echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(sbindir)/$$f"; \
+ 	done
+ 
+ mostlyclean-libtool:
+@@ -318,7 +318,7 @@
+ check: check-am
+ all-am: Makefile $(SCRIPTS)
+ installdirs:
+-	for dir in "$(DESTDIR)$(bindir)"; do \
++	for dir in "$(DESTDIR)$(sbindir)"; do \
+ 	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ 	done
+ install: install-am
+diff -r -u /tmp/771985/ibutils-1.2/ibmgtsim/aclocal.m4 ibutils-1.2/ibmgtsim/aclocal.m4
+--- /tmp/771985/ibutils-1.2/ibmgtsim/aclocal.m4	Tue Jun  3 03:21:13 2008
++++ ibutils-1.2/ibmgtsim/aclocal.m4	Thu Sep 30 08:16:57 2010
+@@ -177,7 +177,7 @@
+ 
+ # Determine commands to create old-style static archives.
+ old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+-old_postinstall_cmds='chmod 644 $oldlib'
++old_postinstall_cmds='chmod 744 $oldlib'
+ old_postuninstall_cmds=
+ 
+ if test -n "$RANLIB"; then
+diff -r -u /tmp/771985/ibutils-1.2/ibmgtsim/Makefile.in ibutils-1.2/ibmgtsim/Makefile.in
+--- /tmp/771985/ibutils-1.2/ibmgtsim/Makefile.in	Tue Jun  3 03:21:16 2008
++++ ibutils-1.2/ibmgtsim/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -58,7 +58,7 @@
+ top_builddir = .
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+diff -r -u /tmp/771985/ibutils-1.2/ibmgtsim/configure ibutils-1.2/ibmgtsim/configure
+--- /tmp/771985/ibutils-1.2/ibmgtsim/configure	Tue Jun  3 03:21:17 2008
++++ ibutils-1.2/ibmgtsim/configure	Thu Sep 30 08:16:57 2010
+@@ -1621,7 +1621,7 @@
+ 
+ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ 
+-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 744'
+ 
+ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+ echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+@@ -3883,7 +3883,7 @@
+ 
+ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ 
+-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 744'
+ 
+ echo "$as_me:$LINENO: checking whether ln -s works" >&5
+ echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+@@ -6381,7 +6381,7 @@
+ 
+ # Determine commands to create old-style static archives.
+ old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+-old_postinstall_cmds='chmod 644 $oldlib'
++old_postinstall_cmds='chmod 744 $oldlib'
+ old_postuninstall_cmds=
+ 
+ if test -n "$RANLIB"; then
+@@ -7918,6 +7918,7 @@
+  	esac ;;
+       esac
+       link_all_deplibs=yes
++      hardcode_libdir_flag_spec=
+       ;;
+ 
+     sunos4*)
+@@ -11286,6 +11287,7 @@
+ 	fi
+ 	;;
+     esac
++    hardcode_libdir_flag_spec_CXX=
+     ;;
+   sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+     no_undefined_flag_CXX='${wl}-z,text'
+@@ -19854,7 +19856,7 @@
+       osm_debug_flags=
+    fi
+ 
+-   OSM_CFLAGS="-I$osm_include_dir $osm_extra_includes $osm_debug_flags $osm_vendor_sel -D_XOPEN_SOURCE=600 -D_BSD_SOURCE=1"
++   OSM_CFLAGS="-I$osm_include_dir $osm_extra_includes $osm_debug_flags $osm_vendor_sel -D_BSD_SOURCE=1"
+ else
+       with_osm=disabled
+    OSM_CLFAGS=disabled
+diff -r -u /tmp/771985/ibutils-1.2/Makefile.in ibutils-1.2/Makefile.in
+--- /tmp/771985/ibutils-1.2/Makefile.in	Tue Jun  3 03:20:56 2008
++++ ibutils-1.2/Makefile.in	Thu Sep 30 08:16:57 2010
+@@ -58,7 +58,7 @@
+ top_builddir = .
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
++install_sh_DATA = $(install_sh) -c -m 744
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+diff -r -u /tmp/771985/ibutils-1.2/configure ibutils-1.2/configure
+--- /tmp/771985/ibutils-1.2/configure	Tue Jun  3 03:20:56 2008
++++ ibutils-1.2/configure	Thu Sep 30 08:16:57 2010
+@@ -1355,7 +1355,9 @@
+ 
+ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ 
++echo "BJD-1 configure - INSTALL_DATA:$INSTALL_DATA" > /tmp/bjd
+ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++echo "BJD-1 configure - INSTALL_DATA:$INSTALL_DATA" >> /tmp/bjd
+ 
+ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+ echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+@@ -1783,7 +1785,6 @@
+ 
+ # --- BEGIN OPENIB_APP_OSM ---
+ 
+-
+ # Check whether --with-osm or --without-osm was given.
+ if test "${with_osm+set}" = set; then
+   withval="$with_osm"
+@@ -1940,7 +1941,7 @@
+       osm_debug_flags=
+    fi
+ 
+-   OSM_CFLAGS="-I$osm_include_dir $osm_extra_includes $osm_debug_flags $osm_vendor_sel -D_XOPEN_SOURCE=600 -D_BSD_SOURCE=1"
++   OSM_CFLAGS="-I$osm_include_dir $osm_extra_includes $osm_debug_flags $osm_vendor_sel -D_BSD_SOURCE=1"
+ else
+       with_osm=disabled
+    OSM_CLFAGS=disabled
+@@ -1949,8 +1950,6 @@
+    OSM_BUILD=disabled
+ fi
+ 
+-
+-
+ if test "x$OSM_VENDOR" = xts; then
+   OSM_VENDOR_TS_TRUE=
+   OSM_VENDOR_TS_FALSE='#'
Binary file usr/src/cmd/ofusr/ibutils/ibutils-1.2.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/infiniband-diags/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,12 @@
+NAME:             infiniband-diags
+VERSION:          1.3.6
+DESCRIPTION:      Infiniband Open Fabrics infiniband-diags
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/OFED/ofed-1.3/OFED-1.3.tgz/infiniband-diags-1.3.6.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/ofuv_tools
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
+                  infiniband-diags-1.3.6.tar.gz is part of the SPRMS in OFED-1.3.tgz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/infiniband-diags/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,109 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.1	10/10/07 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+CPPFLAGS += "-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+CONFIGURE_ENV +=	PERL=$(PERL)
+
+CONFIGURE_OPTIONS +=	--disable-libcheck
+CONFIGURE_OPTIONS +=	--disable-static
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB)"
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m32 -D_REENTRANT -std=gnu99"
+$(VER)/build-32/config.status:=	CONFIGURE_OPTIONS +=	--sbindir=$(CFGUSRSBIN)
+
+
+CPPFLAGS +=	-I$(ROOT)/usr/include
+CPPFLAGS +=	-I$(ROOT)/usr/include/infiniband
+
+LIBS +=		-lsocket -lnsl -lopensm -losmvendor -losmcomp -libumad -libmad -libcommon -ldevinfo
+
+COMMON_ENV +=	MAKE=$(GMAKE)
+
+BUILD_ENV +=		CPPFLAGS="$(CPPFLAGS)"
+BUILD_ENV +=		LIBS="$(LIBS)"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		PERL=$(PERL)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+ROOTMAN1M = $(ROOT)/usr/share/man/man1m
+
+CLEANUP_FILES = $(ROOTLIB)/libosmcomp.la $(ROOTLIB64)/libosmcomp.la \
+	$(ROOTLIB)/libosmvendor.la $(ROOTLIB64)/libosmvendor.la \
+	$(ROOTLIB)/libopensm.la $(ROOTLIB64)/libopensm.la \
+	$(ROOTUSRSBIN)/vendstat $(ROOTUSRSBIN)/dump_lfts.sh \
+	$(ROOTUSRSBIN)/dump_mfts.sh $(ROOTUSRSBIN)/ibidsverify.pl \
+	$(ROOTUSRSBIN)/ibfindnodesusing.pl $(ROOTMAN1M)/vendstat.1m \
+	$(ROOTMAN1M)/dump_lfts.1m $(ROOTMAN1M)/dump_mfts.1m \
+	$(ROOTMAN1M)/ibidsverify.1m $(ROOTMAN1M)/ibfindnodesusing.1m
+
+all:		$(VER)/build-32/.built
+
+install:	$(VER)/build-32/.installed
+	$(RM) $(ROOTLIB)/$(COMPONENT_NAME:sh).la \
+		$(ROOTLIB64)/$(COMPONENT_NAME:sh).la
+	$(RM) $(CLEANUP_FILES)
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	$(SYMLINK) ../include $(@D)/include
+	(cd $(@D) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ../configure $(CONFIGURE_OPTIONS))
+	$(SYMLINK) ../../scripts/IBswcountlimits.pm $(@D)/scripts
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(GTAR) zxpf solaris_set_nodedesc.tar.gz
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/infiniband-diags/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,1784 @@
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/Makefile.am infiniband-diags-1.3.6/Makefile.am
+--- /tmp/763676/infiniband-diags-1.3.6/Makefile.am	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/Makefile.am	Thu Sep 30 08:16:57 2010
+@@ -10,7 +10,7 @@
+ sbin_PROGRAMS = src/ibaddr src/ibnetdiscover src/ibping src/ibportstate \
+ 	        src/ibroute src/ibstat src/ibsysstat src/ibtracert \
+ 	        src/perfquery src/sminfo src/smpdump src/smpquery \
+-	        src/saquery src/vendstat
++	        src/saquery src/vendstat src/solaris_set_nodedesc
+ 
+ sbin_SCRIPTS = scripts/ibcheckerrs scripts/ibchecknet scripts/ibchecknode \
+                scripts/ibcheckport scripts/ibhosts scripts/ibstatus \
+@@ -32,7 +32,7 @@
+ 
+ src_ibnetdiscover_SOURCES = src/ibnetdiscover.c src/grouping.c src/ibdiag_common.c
+ src_ibnetdiscover_CFLAGS = -Wall $(DBGFLAGS)
+-src_ibnetdiscover_LDFLAGS = -Wl,--rpath -Wl,$(libdir)
++src_ibnetdiscover_LDFLAGS =
+ 
+ src_ibping_SOURCES = src/ibping.c src/ibdiag_common.c
+ src_ibping_CFLAGS = -Wall $(DBGFLAGS)
+@@ -51,7 +51,7 @@
+ 
+ src_ibtracert_SOURCES = src/ibtracert.c src/ibdiag_common.c
+ src_ibtracert_CFLAGS = -Wall $(DBGFLAGS)
+-src_ibtracert_LDFLAGS = -Wl,--rpath -Wl,$(libdir)
++src_ibtracert_LDFLAGS =
+ 
+ src_perfquery_SOURCES = src/perfquery.c src/ibdiag_common.c
+ src_perfquery_CFLAGS = -Wall $(DBGFLAGS)
+@@ -64,15 +64,18 @@
+ 
+ src_smpquery_SOURCES = src/smpquery.c src/ibdiag_common.c
+ src_smpquery_CFLAGS = -Wall $(DBGFLAGS)
+-src_smpquery_LDFLAGS = -Wl,--rpath -Wl,$(libdir)
++src_smpquery_LDFLAGS =
+ 
+ src_saquery_SOURCES = src/saquery.c src/ibdiag_common.c
+ src_saquery_CFLAGS = -Wall -DOSM_VENDOR_INTF_OPENIB -DVENDOR_RMPP_SUPPORT -DDUAL_SIDED_RMPP $(DBGFLAGS)
+-src_saquery_LDFLAGS = -Wl,--rpath -Wl,$(libdir)
++src_saquery_LDFLAGS =
+ 
+ src_vendstat_SOURCES = src/vendstat.c src/ibdiag_common.c
+ src_vendstat_CFLAGS = -Wall $(DBGFLAGS)
+ 
++src_solaris_set_nodedesc_SOURCES = src/solaris_set_nodedesc.c
++src_solaris_set_nodedesc_CFLAGS = -Wall $(DBGFLAGS)
++
+ #src_mcm_rereg_test_SOURCES = src/mcm_rereg_test.c
+ #src_mcm_rereg_test_CFLAGS = -Wall $(DBGFLAGS)
+ #sbin_PROGRAMS += src/mcm_rereg_test
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/infiniband-diags.spec.in infiniband-diags-1.3.6/infiniband-diags.spec.in
+--- /tmp/763676/infiniband-diags-1.3.6/infiniband-diags.spec.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/infiniband-diags.spec.in	Thu Sep 30 08:16:57 2010
+@@ -52,7 +52,7 @@
+ %{_sbindir}/sm*
+ %define _perldir %(perl -e 'use Config; $T=$Config{installsitearch}; $T=~/(.*)\\/site_perl.*/; print $1;')
+ %{_perldir}/*
+-%{_mandir}/man8/*
++%{_mandir}/man1m/*
+ %doc README COPYING ChangeLog
+ 
+ %changelog
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/dump_lfts.8 infiniband-diags-1.3.6/man/dump_lfts.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/dump_lfts.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/dump_lfts.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH DUMP_LFTS.SH 8 "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH DUMP_LFTS.SH 1m "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ dump_lfts.sh \- dump InfiniBand unicast forwarding tables
+@@ -36,10 +36,10 @@
+ override the default timeout for the solicited mads.
+ 
+ .SH SEE ALSO
+-.BR dump_mfts(8),
+-.BR ibroute(8),
+-.BR ibswitches(8),
+-.BR opensm(8)
++.BR dump_mfts(1m),
++.BR ibroute(1m),
++.BR ibswitches(1m),
++.BR opensm(1m)
+ 
+ .SH AUTHORS
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/dump_mfts.8 infiniband-diags-1.3.6/man/dump_mfts.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/dump_mfts.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/dump_mfts.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH DUMP_MFTS.SH 8 "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH DUMP_MFTS.SH 1m "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ dump_lfts.sh \- dump InfiniBand multicast forwarding tables
+@@ -34,10 +34,10 @@
+ 
+ 
+ .SH SEE ALSO
+-.BR dump_lfts(8),
+-.BR ibroute(8),
+-.BR ibswitches(8),
+-.BR opensm(8)
++.BR dump_lfts(1m),
++.BR ibroute(1m),
++.BR ibswitches(1m),
++.BR opensm(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibaddr.8 infiniband-diags-1.3.6/man/ibaddr.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibaddr.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibaddr.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBADDR 8 "June 18, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBADDR 1m "June 18, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibaddr \- query InfiniBand address(es)
+@@ -100,8 +100,8 @@
+ ibaddr -g 32            # show gid address only
+ 
+ .SH SEE ALSO
+-.BR ibroute (8),
+-.BR ibtracert (8)
++.BR ibroute (1m),
++.BR ibtracert (1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibcheckerrors.8 infiniband-diags-1.3.6/man/ibcheckerrors.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibcheckerrors.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibcheckerrors.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBCHECKERRORS 8 "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBCHECKERRORS 1m "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibcheckerrors \- validate IB subnet and report errors
+@@ -30,10 +30,10 @@
+ \-t <timeout_ms> override the default timeout for the solicited mads.
+ 
+ .SH SEE ALSO
+-.BR ibnetdiscover(8),
+-.BR ibchecknode(8),
+-.BR ibcheckport(8),
+-.BR ibcheckerrs(8)
++.BR ibnetdiscover(1m),
++.BR ibchecknode(1m),
++.BR ibcheckport(1m),
++.BR ibcheckerrs(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibcheckerrs.8 infiniband-diags-1.3.6/man/ibcheckerrs.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibcheckerrs.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibcheckerrs.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBCHECKERRS 8 "May 30, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBCHECKERRS 1m "May 30, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibcheckerrs \- validate IB port (or node) and report errors in counters above threshold
+@@ -50,8 +50,8 @@
+ ibcheckerrs -T xxx 2    # check node using xxx threshold file
+ 
+ .SH SEE ALSO
+-.BR perfquery(8),
+-.BR ibaddr(8)
++.BR perfquery(1m),
++.BR ibaddr(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibchecknet.8 infiniband-diags-1.3.6/man/ibchecknet.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibchecknet.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibchecknet.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBCHECKNET 8 "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBCHECKNET 1m "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibchecknet \- validate IB subnet and report errors
+@@ -25,10 +25,10 @@
+ \-t <timeout_ms> override the default timeout for the solicited mads.
+ 
+ .SH SEE ALSO
+-.BR ibnetdiscover(8),
+-.BR ibchecknode(8),
+-.BR ibcheckport(8),
+-.BR ibcheckerrs(8)
++.BR ibnetdiscover(1m),
++.BR ibchecknode(1m),
++.BR ibcheckport(1m),
++.BR ibcheckerrs(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibchecknode.8 infiniband-diags-1.3.6/man/ibchecknode.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibchecknode.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibchecknode.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH IBCHECKNODE 8 "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBCHECKNODE 1m "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibchecknode \- validate IB node and report errors
+@@ -34,8 +34,8 @@
+ ibchecknode 2           # check node via lid 2
+ 
+ .SH SEE ALSO
+-.BR smpquery(8),
+-.BR ibaddr(8)
++.BR smpquery(1m),
++.BR ibaddr(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibcheckport.8 infiniband-diags-1.3.6/man/ibcheckport.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibcheckport.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibcheckport.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH IBCHECKPORT 8 "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBCHECKPORT 1m "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibcheckport \- validate IB port and report errors
+@@ -34,8 +34,8 @@
+ ibcheckport 2 3         # check lid 2 port 3
+ 
+ .SH SEE ALSO
+-.BR smpquery(8),
+-.BR ibaddr(8)
++.BR smpquery(1m),
++.BR ibaddr(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibcheckportstate.8 infiniband-diags-1.3.6/man/ibcheckportstate.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibcheckportstate.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibcheckportstate.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH IBCHECKPORTSTATE 8 "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBCHECKPORTSTATE 1m "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibcheckportstate \- validate IB port for LinkUp and not Active state
+@@ -35,8 +35,8 @@
+ ibcheckportstate 2 3         # check lid 2 port 3
+ 
+ .SH SEE ALSO
+-.BR smpquery(8),
+-.BR ibaddr(8)
++.BR smpquery(1m),
++.BR ibaddr(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibcheckportwidth.8 infiniband-diags-1.3.6/man/ibcheckportwidth.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibcheckportwidth.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibcheckportwidth.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBCHECKPORTWIDTH 8 "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBCHECKPORTWIDTH 1m "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibcheckportwidth \- validate IB port for 1x link width
+@@ -34,8 +34,8 @@
+ ibcheckportwidth 2 3         # check lid 2 port 3
+ 
+ .SH SEE ALSO
+-.BR smpquery(8),
+-.BR ibaddr(8)
++.BR smpquery(1m),
++.BR ibaddr(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibcheckstate.8 infiniband-diags-1.3.6/man/ibcheckstate.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibcheckstate.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibcheckstate.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH IBCHECKSTATE 8 "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBCHECKSTATE 1m "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibcheckstate \- find ports in IB subnet which are link up but not active
+@@ -26,9 +26,9 @@
+ \-t <timeout_ms> override the default timeout for the solicited mads.
+ 
+ .SH SEE ALSO
+-.BR ibnetdiscover(8),
+-.BR ibchecknode(8),
+-.BR ibcheckportstate(8)
++.BR ibnetdiscover(1m),
++.BR ibchecknode(1m),
++.BR ibcheckportstate(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibcheckwidth.8 infiniband-diags-1.3.6/man/ibcheckwidth.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibcheckwidth.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibcheckwidth.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBCHECKWIDTH 8 "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBCHECKWIDTH 1m "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibcheckwidth \- find 1x links in IB subnet
+@@ -26,9 +26,9 @@
+ \-t <timeout_ms> override the default timeout for the solicited mads.
+ 
+ .SH SEE ALSO
+-.BR ibnetdiscover(8),
+-.BR ibchecknode(8),
+-.BR ibcheckportwidth(8)
++.BR ibnetdiscover(1m),
++.BR ibchecknode(1m),
++.BR ibcheckportwidth(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibclearcounters.8 infiniband-diags-1.3.6/man/ibclearcounters.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibclearcounters.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibclearcounters.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH IBCLEARCOUNTERS 8 "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBCLEARCOUNTERS 1m "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibclearcounters \- clear port counters in IB subnet
+@@ -24,8 +24,8 @@
+ \-t <timeout_ms> override the default timeout for the solicited mads.
+ 
+ .SH SEE ALSO
+-.BR ibnetdiscover(8),
+-.BR perfquery(8)
++.BR ibnetdiscover(1m),
++.BR perfquery(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibclearerrors.8 infiniband-diags-1.3.6/man/ibclearerrors.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibclearerrors.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibclearerrors.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBCLEARERRORS 8 "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBCLEARERRORS 1m "May 21, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibclearerrors \- clear error counters in IB subnet
+@@ -25,8 +25,8 @@
+ \-t <timeout_ms> override the default timeout for the solicited mads.
+ 
+ .SH SEE ALSO
+-.BR ibnetdiscover(8),
+-.BR perfquery(8)
++.BR ibnetdiscover(1m),
++.BR perfquery(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibdatacounters.8 infiniband-diags-1.3.6/man/ibdatacounters.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibdatacounters.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibdatacounters.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH IBDATACOUNTERS 8 "May 31, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBDATACOUNTERS 1m "May 31, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibdatacounters \- query IB subnet for data counters
+@@ -29,8 +29,8 @@
+ \-t <timeout_ms> override the default timeout for the solicited mads.
+ 
+ .SH SEE ALSO
+-.BR ibnetdiscover(8),
+-.BR ibdatacounts(8)
++.BR ibnetdiscover(1m),
++.BR ibdatacounts(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibdatacounts.8 infiniband-diags-1.3.6/man/ibdatacounts.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibdatacounts.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibdatacounts.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBDATACOUNTS 8 "May 30, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBDATACOUNTS 1m "May 30, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibdatacounts \- get IB port data counters
+@@ -39,8 +39,8 @@
+ ibdatacounts 2   4       # show data counters for lid 2 port 4
+ 
+ .SH SEE ALSO
+-.BR perfquery(8),
+-.BR ibaddr(8)
++.BR perfquery(1m),
++.BR ibaddr(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibdiscover.8 infiniband-diags-1.3.6/man/ibdiscover.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibdiscover.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibdiscover.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH IBDISCOVER.PL 8 "September 21, 2006" "OpenIB" "OpenIB Diagnostics"
++.TH IBDISCOVER.PL 1m "September 21, 2006" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibdiscover.pl \- annotate and compare InfiniBand topology
+@@ -42,7 +42,7 @@
+ ibnetdiscover | ibdiscover.pl
+ 
+ .SH SEE ALSO
+-.BR ibnetdiscover(8)
++.BR ibnetdiscover(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibfindnodesusing.8 infiniband-diags-1.3.6/man/ibfindnodesusing.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibfindnodesusing.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibfindnodesusing.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBFINDNODESUSING 8 "May 22, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBFINDNODESUSING 1m "May 22, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibfindnodesusing.pl \- find a list of end nodes which are routed through the specified switch and port
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibhosts.8 infiniband-diags-1.3.6/man/ibhosts.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibhosts.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibhosts.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBHOSTS 8 "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
++.TH IBHOSTS 1m "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibhosts \- show InfiniBand host nodes in topology
+@@ -23,7 +23,7 @@
+ \-t <timeout_ms> override the default timeout for the solicited mads.
+ 
+ .SH SEE ALSO
+-.BR ibnetdiscover(8)
++.BR ibnetdiscover(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibidsverify.8 infiniband-diags-1.3.6/man/ibidsverify.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibidsverify.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibidsverify.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH IBIDSVERIFY 8 "June 1, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBIDSVERIFY 1m "June 1, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibidsverify.pl \- validate IB identifiers in subnet and report errors
+@@ -28,7 +28,7 @@
+ fabric has changed.
+ 
+ .SH SEE ALSO
+-.BR ibnetdiscover(8)
++.BR ibnetdiscover(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/iblinkinfo.8 infiniband-diags-1.3.6/man/iblinkinfo.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/iblinkinfo.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/iblinkinfo.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH IBLINKINFO 8 "Jan 24, 2008" "OpenIB" "OpenIB Diagnostics"
++.TH IBLINKINFO 1m "Jan 24, 2008" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ iblinkinfo.pl \- report link info for all links in the fabric
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibnetdiscover.8 infiniband-diags-1.3.6/man/ibnetdiscover.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibnetdiscover.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibnetdiscover.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBNETDISCOVER 8 "January 3, 2008" "OpenIB" "OpenIB Diagnostics"
++.TH IBNETDISCOVER 1m "January 3, 2008" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibnetdiscover \- discover InfiniBand topology
+@@ -138,17 +138,17 @@
+ sysimgguid=0x5442ba00003000
+ switchguid=0x5442ba00003080(5442ba00003080)
+ Switch  24 "S-005442ba00003080"         # "ISR9024 Voltaire" base port 0 lid 6 lmc 0
+-[22]    "H-0008f10403961354"[1](8f10403961355)         # "MT23108 InfiniHost Mellanox Technologies" lid 4 4xSDR
++[22]    "H-0008f10403961354"[1](1mf10403961355)         # "MT23108 InfiniHost Mellanox Technologies" lid 4 4xSDR
+ [10]    "S-0008f10400410015"[1]         # "SW-6IB4 Voltaire" lid 3 4xSDR
+-[8]     "H-0008f10403960558"[2](8f1040396055a)         # "MT23108 InfiniHost Mellanox Technologies" lid 14 4xSDR
++[8]     "H-0008f10403960558"[2](1mf1040396055a)         # "MT23108 InfiniHost Mellanox Technologies" lid 14 4xSDR
+ [6]     "S-0008f10400410015"[3]         # "SW-6IB4 Voltaire" lid 3 4xSDR
+-[12]    "H-0008f10403960558"[1](8f10403960559)         # "MT23108 InfiniHost Mellanox Technologies" lid 10 4xSDR
++[12]    "H-0008f10403960558"[1](1mf10403960559)         # "MT23108 InfiniHost Mellanox Technologies" lid 10 4xSDR
+ 
+ vendid=0x8f1
+ devid=0x5a05
+-switchguid=0x8f10400410015(8f10400410015)
++switchguid=0x8f10400410015(1mf10400410015)
+ Switch  8 "S-0008f10400410015"          # "SW-6IB4 Voltaire" base port 0 lid 3 lmc 0
+-[6]     "H-0008f10403960984"[1](8f10403960985)         # "MT23108 InfiniHost Mellanox Technologies" lid 16 4xSDR
++[6]     "H-0008f10403960984"[1](1mf10403960985)         # "MT23108 InfiniHost Mellanox Technologies" lid 16 4xSDR
+ [4]     "H-005442b100004900"[1](5442b100004901)        # "MT23108 InfiniHost Mellanox Technologies" lid 12 4xSDR
+ [1]     "S-005442ba00003080"[10]                # "ISR9024 Voltaire" lid 6 1xSDR
+ [3]     "S-005442ba00003080"[6]         # "ISR9024 Voltaire" lid 6 4xSDR
+@@ -157,7 +157,7 @@
+ devid=0x5a44
+ caguid=0x8f10403960984
+ Ca      2 "H-0008f10403960984"          # "MT23108 InfiniHost Mellanox Technologies"
+-[1](8f10403960985)     "S-0008f10400410015"[6]         # lid 16 lmc 1 "SW-6IB4 Voltaire" lid 3 4xSDR
++[1](1mf10403960985)     "S-0008f10400410015"[6]         # lid 16 lmc 1 "SW-6IB4 Voltaire" lid 3 4xSDR
+ 
+ vendid=0x2c9
+ devid=0x5a44
+@@ -169,14 +169,14 @@
+ devid=0x5a44
+ caguid=0x8f10403961354
+ Ca      2 "H-0008f10403961354"          # "MT23108 InfiniHost Mellanox Technologies"
+-[1](8f10403961355)     "S-005442ba00003080"[22]                # lid 4 lmc 1 "ISR9024 Voltaire" lid 6 4xSDR
++[1](1mf10403961355)     "S-005442ba00003080"[22]                # lid 4 lmc 1 "ISR9024 Voltaire" lid 6 4xSDR
+ 
+ vendid=0x2c9
+ devid=0x5a44
+ caguid=0x8f10403960558
+ Ca      2 "H-0008f10403960558"          # "MT23108 InfiniHost Mellanox Technologies"
+-[2](8f1040396055a)     "S-005442ba00003080"[8]         # lid 14 lmc 1 "ISR9024 Voltaire" lid 6 4xSDR
+-[1](8f10403960559)     "S-005442ba00003080"[12]                # lid 10 lmc 1 "ISR9024 Voltaire" lid 6 1xSDR
++[2](1mf1040396055a)     "S-005442ba00003080"[8]         # lid 14 lmc 1 "ISR9024 Voltaire" lid 6 4xSDR
++[1](1mf10403960559)     "S-005442ba00003080"[12]                # lid 10 lmc 1 "ISR9024 Voltaire" lid 6 1xSDR
+ .fi
+ 
+ When grouping is used, IB nodes are organized into chasses which are
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibnodes.8 infiniband-diags-1.3.6/man/ibnodes.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibnodes.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibnodes.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBNODES 8 "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
++.TH IBNODES 1m "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibnodes \- show InfiniBand nodes in topology
+@@ -23,7 +23,7 @@
+ \-t <timeout_ms> override the default timeout for the solicited mads.
+ .SH SEE ALSO
+ 
+-.BR ibnetdiscover(8)
++.BR ibnetdiscover(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibping.8 infiniband-diags-1.3.6/man/ibping.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibping.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibping.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBPING 8 "August 11, 2006" "OpenIB" "OpenIB Diagnostics"
++.TH IBPING 1m "August 11, 2006" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibping \- ping an InfiniBand address
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibportstate.8 infiniband-diags-1.3.6/man/ibportstate.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibportstate.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibportstate.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBPORTSTATE 8 "October 19, 2006" "OpenIB" "OpenIB Diagnostics"
++.TH IBPORTSTATE 1m "October 19, 2006" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibportstate \- handle port (physical) state and link speed of an InfiniBand port
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibprintca.8 infiniband-diags-1.3.6/man/ibprintca.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibprintca.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibprintca.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBPRINTCA 8 "May 31, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBPRINTCA 1m "May 31, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibprintca.pl \- print either the ca specified or the list of cas from the ibnetdiscover output
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibprintrt.8 infiniband-diags-1.3.6/man/ibprintrt.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibprintrt.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibprintrt.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBPRINTRT 8 "May 31, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBPRINTRT 1m "May 31, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibprintrt.pl \- print either only the router specified or a list of routers from the ibnetdiscover output
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibprintswitch.8 infiniband-diags-1.3.6/man/ibprintswitch.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibprintswitch.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibprintswitch.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBPRINTSWITCH 8 "May 31, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBPRINTSWITCH 1m "May 31, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibprintswitch.pl \- print either the switch specified or a list of switches from the ibnetdiscover output
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibqueryerrors.8 infiniband-diags-1.3.6/man/ibqueryerrors.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibqueryerrors.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibqueryerrors.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBQUERYERRORS 8 "Jan 24, 2008" "OpenIB" "OpenIB Diagnostics"
++.TH IBQUERYERRORS 1m "Jan 24, 2008" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibqueryerrors.pl \- query and report non-zero IB port counters
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibroute.8 infiniband-diags-1.3.6/man/ibroute.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibroute.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibroute.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBROUTE 8 "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
++.TH IBROUTE 1m "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibroute \- query InfiniBand switch forwarding tables
+@@ -111,7 +111,7 @@
+ ibroute -M -n 4 # simple dump format
+ 
+ .SH SEE ALSO
+-.BR ibtracert (8)
++.BR ibtracert (1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibrouters.8 infiniband-diags-1.3.6/man/ibrouters.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibrouters.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibrouters.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBROUTERS 8 "May 30, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBROUTERS 1m "May 30, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibrouters \- show InfiniBand router nodes in topology
+@@ -23,7 +23,7 @@
+ \-t <timeout_ms> override the default timeout for the solicited mads.
+ 
+ .SH SEE ALSO
+-.BR ibnetdiscover(8)
++.BR ibnetdiscover(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibstat.8 infiniband-diags-1.3.6/man/ibstat.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibstat.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibstat.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH IBSTAT 8 "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
++.TH IBSTAT 1m "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibstat \- query basic status of InfiniBand device(s)
+@@ -102,7 +102,7 @@
+ ibstat mthca0 2   # show status of port 2 of 'mthca0'
+ 
+ .SH SEE ALSO
+-.BR ibstatus (8)
++.BR ibstatus (1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibstatus.8 infiniband-diags-1.3.6/man/ibstatus.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibstatus.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibstatus.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH IBSTATUS 8 "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
++.TH IBSTATUS 1m "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibstatus \- query basic status of InfiniBand device(s)
+@@ -33,7 +33,7 @@
+ ibstatus mthca1:1 mthca0:2      # show status of specified ports
+ 
+ .SH SEE ALSO
+-.BR ibstat (8)
++.BR ibstat (1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibswitches.8 infiniband-diags-1.3.6/man/ibswitches.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibswitches.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibswitches.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH IBSWITCHES 8 "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
++.TH IBSWITCHES 1m "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibswitches\- show InfiniBand switch nodes in topology
+@@ -23,7 +23,7 @@
+ \-t <timeout_ms> override the default timeout for the solicited mads.
+ 
+ .SH SEE ALSO
+-.BR ibnetdiscover(8)
++.BR ibnetdiscover(1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibswportwatch.8 infiniband-diags-1.3.6/man/ibswportwatch.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibswportwatch.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibswportwatch.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBSWPORTWATCH 8 "September 27, 2006" "OpenIB" "OpenIB Diagnostics"
++.TH IBSWPORTWATCH 1m "September 27, 2006" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibswportwatch.pl \- poll the counters on the specified switch/port and report rate
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibsysstat.8 infiniband-diags-1.3.6/man/ibsysstat.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibsysstat.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibsysstat.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH IBSYSSTAT 8 "August 11, 2006" "OpenIB" "OpenIB Diagnostics"
++.TH IBSYSSTAT 1m "August 11, 2006" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibsysstat \- system status on an InfiniBand address
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/ibtracert.8 infiniband-diags-1.3.6/man/ibtracert.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/ibtracert.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/ibtracert.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH IBTRACERT 8 "April 14, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH IBTRACERT 1m "April 14, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ ibtracert\- trace InfiniBand path
+@@ -29,7 +29,7 @@
+ \fB\-\-node\-name\-map\fR <node-name-map>
+ Specify a node name map.  The node name map file maps GUIDs to more user friendly
+ names.  See
+-.B ibnetdiscover(8)
++.B ibnetdiscover(1m)
+ for node name map file format.
+ 
+ .SH COMMON OPTIONS
+@@ -103,7 +103,7 @@
+ ibtracert -m 0xc000 4 16    # show multicast path of mlid 0xc000 between lids 4 and 16
+ 
+ .SH SEE ALSO
+-.BR ibroute (8)
++.BR ibroute (1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/perfquery.8 infiniband-diags-1.3.6/man/perfquery.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/perfquery.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/perfquery.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH PERFQUERY 8 "March 29, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH PERFQUERY 1m "March 29, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ perfquery \- query InfiniBand port counters
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/saquery.8 infiniband-diags-1.3.6/man/saquery.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/saquery.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/saquery.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH SAQUERY 8 "April 13, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH SAQUERY 1m "April 13, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ saquery \- query InfiniBand subnet administration attributes
+@@ -94,7 +94,7 @@
+ \fB\-\-node\-name\-map\fR <node-name-map>
+ Specify a node name map.  The node name map file maps GUIDs to more user friendly
+ names.  See
+-.B ibnetdiscover(8)
++.B ibnetdiscover(1m)
+ for node name map file format.  Only used with the \fB\-O\fR and \fB\-U\fR options.
+ .TP
+ \fB\-d\fR
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/sminfo.8 infiniband-diags-1.3.6/man/sminfo.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/sminfo.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/sminfo.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH SMINFO 8 "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
++.TH SMINFO 1m "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ sminfo \- query InfiniBand SMInfo attribute
+@@ -97,7 +97,7 @@
+ sminfo  -G 0x8f1040023  # same but using guid address
+ 
+ .SH SEE ALSO
+-.BR smpdump (8)
++.BR smpdump (1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/smpdump.8 infiniband-diags-1.3.6/man/smpdump.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/smpdump.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/smpdump.8	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-.TH SMPDUMP 8 "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
++.TH SMPDUMP 1m "July 25, 2006" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ smpdump \- dump InfiniBand subnet management attributes
+@@ -90,7 +90,7 @@
+ smpdump 0xa0 0x11       # NODE INFO, lid 0xa0
+ 
+ .SH SEE ALSO
+-.BR smpquery (8)
++.BR smpquery (1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/smpquery.8 infiniband-diags-1.3.6/man/smpquery.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/smpquery.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/smpquery.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH SMPQUERY 8 "March 14, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH SMPQUERY 1m "March 14, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ smpquery \- query InfiniBand subnet management attributes
+@@ -31,7 +31,7 @@
+ \fB\-\-node\-name\-map\fR <node-name-map>
+ Specify a node name map.  The node name map file maps GUIDs to more user friendly
+ names.  See
+-.B ibnetdiscover(8)
++.B ibnetdiscover(1m)
+ for node name map file format.
+ 
+ .SH COMMON OPTIONS
+@@ -105,7 +105,7 @@
+ smpquery -c nodeinfo 6 0,12  # nodeinfo by combined route
+ 
+ .SH SEE ALSO
+-.BR smpdump (8)
++.BR smpdump (1m)
+ 
+ .SH AUTHOR
+ .TP
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/man/vendstat.8 infiniband-diags-1.3.6/man/vendstat.8
+--- /tmp/763676/infiniband-diags-1.3.6/man/vendstat.8	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/man/vendstat.8	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-.TH VENDSTAT 8 "February 15, 2007" "OpenIB" "OpenIB Diagnostics"
++.TH VENDSTAT 1m "February 15, 2007" "OpenIB" "OpenIB Diagnostics"
+ 
+ .SH NAME
+ vendstat \- query InfiniBand vendor specific functions
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckerrors.in infiniband-diags-1.3.6/scripts/ibcheckerrors.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckerrors.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibcheckerrors.in	Thu Oct  7 11:43:06 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -74,7 +74,7 @@
+ 
+ text="`eval $netcmd`"
+ rv=$?
+-echo "$text" | awk '
++echo "$text" | gawk '
+ BEGIN {
+ 	ne=0
+ }
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckerrs.in infiniband-diags-1.3.6/scripts/ibcheckerrs.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckerrs.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibcheckerrs.in	Thu Oct  7 11:43:05 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -136,7 +136,7 @@
+ fi
+ 
+ if [ "$guid_addr" ]; then
+-	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | awk '/failed/{exit -1} {print $3}'`; then
++	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | gawk '/failed/{exit -1} {print $3}'`; then
+ 		echo -n "guid $1 address resolution: "
+ 		red "FAILED"
+ 		exit -1
+@@ -144,7 +144,7 @@
+ 	guid=$1
+ else
+ 	lid=$1
+-	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | awk '/failed/{exit -1} {print $1}'`; then
++	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | gawk '/failed/{exit -1} {print $1}'`; then
+ 		echo -n "lid $1 address resolution: "
+ 		red "FAILED"
+ 		exit -1
+@@ -155,7 +155,7 @@
+ 
+ text="`eval $IBPATH/perfquery $ca_info $lid $portnum`"
+ rv=$?
+-if echo "$text" | awk -v mono=$bw -v brief=$brief -F '[.:]*' '
++if echo "$text" | gawk -v mono=$bw -v brief=$brief -F '[.:]*' '
+ function blue(s)
+ {
+ 	if (brief == "yes") {
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibchecknet.in infiniband-diags-1.3.6/scripts/ibchecknet.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibchecknet.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibchecknet.in	Thu Oct  7 11:43:05 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -67,7 +67,7 @@
+ 
+ text="`eval $netcmd`"
+ rv=$?
+-echo "$text" | awk '
++echo "$text" | gawk '
+ BEGIN {
+ 	ne=0
+ 	pe=0
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibchecknode.in infiniband-diags-1.3.6/scripts/ibchecknode.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibchecknode.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibchecknode.in	Thu Oct  7 11:43:05 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -71,7 +71,7 @@
+ fi
+ 
+ if [ "$guid_addr" ]; then
+-	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | awk '/failed/{exit -1} {print $3}'`; then
++	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | gawk '/failed/{exit -1} {print $3}'`; then
+ 		echo -n "guid $1 address resolution: "
+ 		red "FAILED"
+ 		exit -1
+@@ -78,7 +78,7 @@
+ 	fi
+ else
+ 	lid=$1
+-	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | awk '/failed/{exit -1} {print $1}'`; then
++	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | gawk '/failed/{exit -1} {print $1}'`; then
+ 		echo -n "lid $1 address resolution: "
+ 		red "FAILED"
+ 		exit -1
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckport.in infiniband-diags-1.3.6/scripts/ibcheckport.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckport.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibcheckport.in	Thu Oct  7 11:43:06 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -73,7 +73,7 @@
+ portnum=$2
+ 
+ if [ "$guid_addr" ]; then
+-	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | awk '/failed/{exit -1} {print $3}'`; then
++	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | gawk '/failed/{exit -1} {print $3}'`; then
+ 		echo -n "guid $1 address resolution: "
+ 		red "FAILED"
+ 		exit -1
+@@ -81,7 +81,7 @@
+ 	guid=$1
+ else
+ 	lid=$1
+-	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | awk '/failed/{exit -1} {print $1}'`; then
++	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | gawk '/failed/{exit -1} {print $1}'`; then
+ 		echo -n "lid $1 address resolution: "
+ 		red "FAILED"
+ 		exit -1
+@@ -91,7 +91,7 @@
+ 
+ text="`eval $IBPATH/smpquery $ca_info portinfo $lid $portnum`"
+ rv=$?
+-if echo "$text" | awk -v mono=$bw -F '[.:]*' '
++if echo "$text" | gawk -v mono=$bw -F '[.:]*' '
+ function blue(s)
+ {
+ 	if (mono)
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckportstate.in infiniband-diags-1.3.6/scripts/ibcheckportstate.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckportstate.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibcheckportstate.in	Thu Oct  7 11:43:06 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -73,7 +73,7 @@
+ portnum=$2
+ 
+ if [ "$guid_addr" ]; then
+-	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | awk '/failed/{exit -1} {print $3}'`; then
++	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | gawk '/failed/{exit -1} {print $3}'`; then
+ 		echo -n "guid $1 address resolution: "
+ 		red "FAILED"
+ 		exit -1
+@@ -81,7 +81,7 @@
+ 	guid=$1
+ else
+ 	lid=$1
+-	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | awk '/failed/{exit -1} {print $1}'`; then
++	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | gawk '/failed/{exit -1} {print $1}'`; then
+ 		echo -n "lid $1 address resolution: "
+ 		red "FAILED"
+ 		exit -1
+@@ -91,7 +91,7 @@
+ 
+ text="`eval $IBPATH/smpquery $ca_info portinfo $lid $portnum`"
+ rv=$?
+-if echo "$text" | awk -v mono=$bw -F '[.:]*' '
++if echo "$text" | gawk -v mono=$bw -F '[.:]*' '
+ function blue(s)
+ {
+ 	if (mono)
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckportwidth.in infiniband-diags-1.3.6/scripts/ibcheckportwidth.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckportwidth.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibcheckportwidth.in	Thu Oct  7 11:43:06 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -73,7 +73,7 @@
+ portnum=$2
+ 
+ if [ "$guid_addr" ]; then
+-	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | awk '/failed/{exit -1} {print $3}'`; then
++	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | gawk '/failed/{exit -1} {print $3}'`; then
+ 		echo -n "guid $1 address resolution: "
+ 		red "FAILED"
+ 		exit -1
+@@ -81,7 +81,7 @@
+ 	guid=$1
+ else
+ 	lid=$1
+-	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | awk '/failed/{exit -1} {print $1}'`; then
++	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | gawk '/failed/{exit -1} {print $1}'`; then
+ 		echo -n "lid $1 address resolution: "
+ 		red "FAILED"
+ 		exit -1
+@@ -91,7 +91,7 @@
+ 
+ text="`eval $IBPATH/smpquery $ca_info portinfo $lid $portnum`"
+ rv=$?
+-if echo "$text" | awk -v mono=$bw -F '[.:]*' '
++if echo "$text" | gawk -v mono=$bw -F '[.:]*' '
+ function blue(s)
+ {
+ 	if (mono)
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckstate.in infiniband-diags-1.3.6/scripts/ibcheckstate.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckstate.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibcheckstate.in	Thu Oct  7 11:43:06 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -69,7 +69,7 @@
+ 
+ text="`eval $netcmd`"
+ rv=$?
+-echo "$text" | awk '
++echo "$text" | gawk '
+ BEGIN {
+ 	ne=0
+ 	pe=0
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckwidth.in infiniband-diags-1.3.6/scripts/ibcheckwidth.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibcheckwidth.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibcheckwidth.in	Thu Oct  7 11:43:06 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -69,7 +69,7 @@
+ 
+ text="`eval $netcmd`"
+ rv=$?
+-echo "$text" | awk '
++echo "$text" | gawk '
+ BEGIN {
+ 	ne=0
+ 	pe=0
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibclearcounters.in infiniband-diags-1.3.6/scripts/ibclearcounters.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibclearcounters.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibclearcounters.in	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -62,7 +62,7 @@
+ 
+ text="`eval $netcmd`"
+ rv=$?
+-echo "$text" | awk '
++echo "$text" | gawk '
+ 
+ function clear_counters(lid)
+ {
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibclearerrors.in infiniband-diags-1.3.6/scripts/ibclearerrors.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibclearerrors.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibclearerrors.in	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -63,7 +63,7 @@
+ 
+ text="`eval $netcmd`"
+ rv=$?
+-echo "$text" | awk '
++echo "$text" | gawk '
+ 
+ function clear_errors(lid, port)
+ {
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibdatacounters.in infiniband-diags-1.3.6/scripts/ibdatacounters.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibdatacounters.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibdatacounters.in	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -74,7 +74,7 @@
+ 
+ text="`eval $netcmd`"
+ rv=$?
+-echo "$text" | awk '
++echo "$text" | gawk '
+ BEGIN {
+ 	ne=0
+ }
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibdatacounts.in infiniband-diags-1.3.6/scripts/ibdatacounts.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibdatacounts.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibdatacounts.in	Thu Oct  7 11:43:07 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -91,7 +91,7 @@
+ fi
+ 
+ if [ "$guid_addr" ]; then
+-	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | awk '/failed/{exit -1} {print $3}'`; then
++	if ! lid=`$IBPATH/ibaddr $ca_info -G -L $1 | gawk '/failed/{exit -1} {print $3}'`; then
+ 		echo -n "guid $1 address resolution: "
+ 		red "FAILED"
+ 		exit -1
+@@ -99,7 +99,7 @@
+ 	guid=$1
+ else
+ 	lid=$1
+-	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | awk '/failed/{exit -1} {print $1}'`; then
++	if ! temp=`$IBPATH/ibaddr $ca_info -L $1 | gawk '/failed/{exit -1} {print $1}'`; then
+ 		echo -n "lid $1 address resolution: "
+ 		red "FAILED"
+ 		exit -1
+@@ -110,7 +110,7 @@
+ 
+ text="`eval $IBPATH/perfquery $ca_info $lid $portnum`"
+ rv=$?
+-if echo "$text" | awk -v mono=$bw -v brief=$brief -F '[.:]*' '
++if echo "$text" | gawk -v mono=$bw -v brief=$brief -F '[.:]*' '
+ function blue(s)
+ {
+ 	if (brief == "yes") {
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibdiscover.pl infiniband-diags-1.3.6/scripts/ibdiscover.pl
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibdiscover.pl	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibdiscover.pl	Thu Sep 30 08:16:57 2010
+@@ -49,9 +49,10 @@
+ 		$localGuid = $local;
+ 	} else {
+ 		($localPort, $type, $remoteGuid, $remotePort) =
+-		  /([\s\S]*)"([SH])\-000([a-f\d]*)"([\s\S]*)\n/;
++		  /([\s\S]*)"([SH])\-([a-f\d]*)"([\s\S]*)\n/;
+ 		($localPort)  = $localPort  =~ /\[(\d*)]/;
+ 		($remotePort) = $remotePort =~ /\[(\d*)]/;
++		$remoteGuid =~ s/^0*//;
+ 		if ($remoteGuid ne "" && $localPort ne "") {
+ 			printf(TOPO2 "%d|%s|%d|%s\n",
+ 				$localPort, $localGuid, $remotePort, $remoteGuid);
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibhosts.in infiniband-diags-1.3.6/scripts/ibhosts.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibhosts.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibhosts.in	Thu Oct  7 11:43:06 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -49,7 +49,7 @@
+ 
+ text="`eval $netcmd`"
+ rv=$?
+-echo "$text" | awk '
++echo "$text" | gawk '
+ /^Ca/	{print $1 "\t: 0x" substr($3, 4, 16) " ports " $2 " "\
+ 		substr($0, match($0, "#[ \t]*")+RLENGTH)}
+ /^ib/	{print $0; next}
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibnodes.in infiniband-diags-1.3.6/scripts/ibnodes.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibnodes.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibnodes.in	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibprintca.pl infiniband-diags-1.3.6/scripts/ibprintca.pl
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibprintca.pl	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibprintca.pl	Thu Oct  7 11:43:07 2010
+@@ -77,7 +77,7 @@
+ 
+ if ($list_hcas) {
+ 	system("ibhosts $cache_file");
+-	exit 1;
++	exit $?;
+ }
+ 
+ if ($target_hca eq "") {
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibprintrt.pl infiniband-diags-1.3.6/scripts/ibprintrt.pl
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibprintrt.pl	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibprintrt.pl	Thu Sep 30 08:16:57 2010
+@@ -77,7 +77,7 @@
+ 
+ if ($list_rts) {
+ 	system("ibrouters $cache_file");
+-	exit 1;
++	exit $?;
+ }
+ 
+ if ($target_rt eq "") {
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibprintswitch.pl infiniband-diags-1.3.6/scripts/ibprintswitch.pl
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibprintswitch.pl	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibprintswitch.pl	Thu Sep 30 08:16:57 2010
+@@ -76,7 +76,7 @@
+ 
+ if ($list_switches) {
+ 	system("ibswitches $cache_file");
+-	exit 1;
++	exit $?;
+ }
+ 
+ if ($target_switch eq "") {
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibrouters.in infiniband-diags-1.3.6/scripts/ibrouters.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibrouters.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibrouters.in	Thu Oct  7 11:43:06 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -49,7 +49,7 @@
+ 
+ text="`eval $netcmd`"
+ rv=$?
+-echo "$text" | awk '
++echo "$text" | gawk '
+ /^Rt/	{print $1 "\t: 0x" substr($3, 4, 16) " ports " $2 " "\
+ 		substr($0, match($0, "#[ \t]*")+RLENGTH)}
+ /^ib/	{print $0; next}
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibstatus infiniband-diags-1.3.6/scripts/ibstatus
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibstatus	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibstatus	Thu Oct  7 11:43:06 2010
+@@ -2,8 +2,9 @@
+ 
+ # Usage ibstatus [devname[:port]]
+ 
+-infiniband_base="/sys/class/infiniband"
+-def_ibdev="mthca0"
++ibvdevinfo="/usr/bin/ibv_devinfo"
++ibvdevinfo_results="/tmp/ibvdevinfo.output"
++tmpout="/tmp/tmpout"
+ 
+ usage() {
+ 	prog=`basename $0`
+@@ -10,57 +11,116 @@
+ 	echo "Usage: " $prog " [-h] [devname[:portnum]]"
+ 	echo "	-h:	this help screen"
+ 	echo "	Examples:"
+-	echo "		$prog mthca1		# shows status of all ports of 'mthca1'"
+-	echo "		$prog mthca0:2	# shows status port number 2 of 'mthca0'"
+-	echo "		$prog		# default: shows status of all '$def_ibdev' ports"
+-	exit -1
++	echo "		$prog mlx4_1		# shows status of all ports of 'mlx4_1'"
++	echo "		$prog mlx4_0:2	# shows status port number 2 of 'mlx4_0'"
++	echo "		$prog		# default: shows status of all IB ports"
++	exit 0
+ }
+ 
+-fatal() {
+-	echo "Fatal error: " $*
+-	exit -1
++get_status_ports() {
++	nawk '
++	BEGIN {
++		hcaid_in="'"$1"'"
++		port_in="'"$2"'"
++		if (hcaid_in == "+") {
++			hcaid_hit=1
++			if (port_in == "+")
++				port_hit=1
++		}
++	}
++	{
++		if ($0 ~ "hca_id") {
++			if (hcaid_in == "+") {
++				cur_hcaid = $2
++			} else if (hcaid_in == $2) {
++				hcaid_hit=1
++				if (port_in == "+")
++					port_hit=1
++			} else if (hcaid_hit == 1)
++				exit 0
++		}
++		if (hcaid_hit == 1) {
++			if ($0 ~ "port:") {
++				if (port_in == "+") {
++					cur_port=$2;
++				} else if (port_in == $2) {
++					port_hit=1
++				} else if (port_hit == 1)
++					exit 0
++			}
++		}
++		if (hcaid_hit == 1 && port_hit == 1) {
++			if ($0 ~ "state:" && $0 !~ "phys_state:") {
++				state=$2;
++				staten=$3
++			} else if ($0 ~ "sm_lid:") {
++				sm_lid=$2
++			} else if ($0 ~ "port_lid:") {
++				port_lid=$2
++			} else if ($0 ~ "active_width:") {
++				width = $2
++				sub("X$", "", width)
++			} else if ($0 ~ "active_speed:") {
++				speed=$2
++			} else if ($0 ~ "phys_state:") {
++				pstate=$2
++				pstaten=$3
++			} else if ($0 ~ "GID"){
++				gid=$NF
++				if (hcaid_in == "+") {
++					printf("Infiniband device '\''%s'\'' port %d status:\n", cur_hcaid, cur_port);
++				} else if (port_in == "+") {
++					printf("Infiniband device '\''%s'\'' port %d status:\n", hcaid_in, cur_port);
++				} else {
++					printf("Infiniband device '\''%s'\'' port %d status:\n", hcaid_in, port_in);
++				}
++				printf("\tdefault gid:\t%s\n", gid)
++				printf("\tstate:\t\t%d: %s\n", staten, state); 
++				printf("\tphys state:\t%d: %s\n", pstaten, pstate);
++				printf("\tsm lid:\t\t0x%x\n", sm_lid)
++				printf("\tbase lid:\t0x%x\n", port_lid)
++				printf("\trate:\t\t%d Gb/sec (%dX)\n\n", width * speed, width)
++			}
++		}
++	}
++	END {
++		if (hcaid_in != "+" && port_in == "+" && hcaid_hit == 0)
++ 			printf("Fatal error: device '\''%s'\'' not found\n\n", hcaid_in)
++		if (hacid_in != "+" && port_in != "+" && port_hit == 0)
++ 			printf("Fatal error: port '\''%s:%d'\'' not found\n\n", hcaid_in, port_in)
++	}' $tmpout
+ }
+ 
++if [ "$1" = "-h" ]; then
++	usage
++fi
+ 
+-port_status() {
+-	port_dir="$infiniband_base/$1/ports/$2"
+-	echo "Infiniband device '$1' port $2 status:"
+-	echo "	default gid:	" `[ -r $port_dir/gids/0 ] && cat $port_dir/gids/0 || echo unknown`
+-	echo "	base lid:	" `[ -r $port_dir/lid ] && cat $port_dir/lid || echo unknown`
+-	echo "	sm lid:		" `[ -r $port_dir/sm_lid ] && cat $port_dir/sm_lid || echo unknown`
+-	echo "	state:		" `[ -r $port_dir/state ] && cat $port_dir/state || echo unknown`
+-	echo "	phys state:	" `[ -r $port_dir/phys_state ] && cat $port_dir/phys_state || echo unknown`
+-	echo "	rate:		" `[ -r $port_dir/rate ] && cat $port_dir/rate || echo unknown`
+-	echo
+-}
++# Check to see if /usr/bin/ibv_devinfo exists.
++if [ ! -x $ibvdevinfo ]; then
++	echo "$ibvdevinfo doesn't exist!"
++	exit 0
++fi
+ 
+-ib_status() {
+-	ports_dir="$infiniband_base/$1/ports"
++rm -rf $ibvdevinfo_results
+ 
+-	if ! [ -d "$ports_dir" ]; then
+-		fatal "device '$1': sys files not found ($ports_dir)"
+-	fi
++# Run ibv_devinfo and direct the output to $ibvdevinfo_results.
++$ibvdevinfo -v > $ibvdevinfo_results
++if [ $? != 0 ]; then
++	echo "$ibvdevinfo failed!"
++	exit 0
++fi
++#
+ 
+-	if [ "$2" = "+" ]; then
+-		ports=`(cd "$infiniband_base/$1/ports"; echo *)`
+-	else
+-		ports=$2
+-	fi
+-
+-	for i in $ports; do
+-		port_status $1 $i
+-	done
+-}
+-
+-if [ "$1" = "-h" ]; then
+-	usage
++nhcas=`$ibvdevinfo -l | awk '/HCA/{print $1}'`
++if [ -z $nhcas ]; then
++        echo "No HCAs!"
++	exit 0
+ fi
+ 
++egrep "port:|hca_id:|_lid|GID|state:|active_" $ibvdevinfo_results |grep -v _mtu | sed -e 's/(//' -e 's/)//' > $tmpout
++
+ if [ -z "$1" ]; then
+-	cd $infiniband_base
+-	for dev in *; do
+-		ib_status $dev "+";
+-	done
++	get_status_ports "+" "+"
+ 	exit 0
+ fi
+ 
+@@ -72,6 +132,7 @@
+ 		port="+"
+ 	fi
+ 
+-	ib_status $dev $port
++	get_status_ports $dev $port
++
+ 	shift
+ done
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/ibswitches.in infiniband-diags-1.3.6/scripts/ibswitches.in
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/ibswitches.in	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/ibswitches.in	Thu Sep 30 08:16:57 2010
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ IBPATH=${IBPATH:-@IBSCRIPTPATH@}
+ 
+@@ -49,7 +49,7 @@
+ 
+ text="`eval $netcmd`"
+ rv=$?
+-echo "$text" | awk '
++echo "$text" | gawk '
+ /^Switch/	{
+ 			l=$0
+ 			desc=substr(l, match(l, "#[ \t]*")+RLENGTH)
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/scripts/set_nodedesc.sh infiniband-diags-1.3.6/scripts/set_nodedesc.sh
+--- /tmp/763676/infiniband-diags-1.3.6/scripts/set_nodedesc.sh	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/scripts/set_nodedesc.sh	Thu Sep 30 08:16:57 2010
+@@ -1,5 +1,13 @@
+ #!/bin/sh
+ 
++# Call solaris_set_nodedesc, if operating system is SunOS
++os=`uname -s`
++if [ $os == "SunOS" ]; then
++	solaris_set_nodedesc
++	rc=$?
++	exit $rc
++fi
++
+ # set the node_desc field of any hca found to the defined hostname
+ 
+ . /etc/sysconfig/network
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/src/ibdiag_common.c infiniband-diags-1.3.6/src/ibdiag_common.c
+--- /tmp/763676/infiniband-diags-1.3.6/src/ibdiag_common.c	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/src/ibdiag_common.c	Thu Oct  7 11:42:56 2010
+@@ -67,7 +67,7 @@
+ 		argv0 = s + 1;
+ 
+ 	if (ibdebug)
+-		printf("%s: iberror: [pid %d] %s: failed: %s\n", argv0, getpid(), fn, buf);
++		printf("%s: iberror: [pid %d] %s: failed: %s\n", argv0, (int)getpid(), fn, buf);
+ 	else
+ 		printf("%s: iberror: failed: %s\n", argv0, buf);
+ 
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/src/ibnetdiscover.c infiniband-diags-1.3.6/src/ibnetdiscover.c
+--- /tmp/763676/infiniband-diags-1.3.6/src/ibnetdiscover.c	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/src/ibnetdiscover.c	Thu Sep 30 08:16:57 2010
+@@ -718,7 +718,7 @@
+ 			}
+ 
+ 			fprintf(f, "\n# Spine Nodes");
+-			for (n = 1; n <= (SPINES_MAX_NUM+1); n++) {
++			for (n = 0; n < (SPINES_MAX_NUM+1); n++) {
+ 				if (ch->spinenode[n]) {
+ 					out_switch(ch->spinenode[n], group, chname);
+ 					for (port = ch->spinenode[n]->ports; port; port = port->next, i++)
+@@ -727,7 +727,7 @@
+ 				}
+ 			}
+ 			fprintf(f, "\n# Line Nodes");
+-			for (n = 1; n <= (LINES_MAX_NUM+1); n++) {
++			for (n = 0; n < (LINES_MAX_NUM+1); n++) {
+ 				if (ch->linenode[n]) {
+ 					out_switch(ch->linenode[n], group, chname);
+ 					for (port = ch->linenode[n]->ports; port; port = port->next, i++)
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/src/ibportstate.c infiniband-diags-1.3.6/src/ibportstate.c
+--- /tmp/763676/infiniband-diags-1.3.6/src/ibportstate.c	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/src/ibportstate.c	Thu Sep 30 08:16:57 2010
+@@ -241,6 +241,7 @@
+ 	int portnum = 0;
+ 	ib_portid_t selfportid = {0};
+ 	int selfport = 0;
++	int switch_lid = 0;
+ 
+ 	static char const str_opts[] = "C:P:t:s:devDGVhu";
+ 	static const struct option long_opts[] = {
+@@ -398,6 +399,12 @@
+ 					mad_decode_field(data, IB_PORT_LINK_SPEED_ACTIVE_F, &lsa);
+ 					mad_decode_field(data, IB_PORT_LINK_SPEED_ENABLED_F, &lse);
+ 
++					/* Get Switch LID from the default switch port */
++					if (!smp_query(data, &portid, IB_ATTR_PORT_INFO, 0, 0))
++						IBERROR("could not get port LID");
++
++					switch_lid = mad_get_field(data, 0, IB_PORT_LID_F);
++
+ 					/* Setup portid for peer port */
+ 					memcpy(&peerportid, &portid, sizeof(peerportid));
+ 					peerportid.drpath.cnt = 1;
+@@ -406,6 +413,7 @@
+ 					/* Set DrSLID to local lid */
+ 					if (ib_resolve_self(&selfportid, &selfport, 0) < 0)
+ 						IBERROR("could not resolve self");
++					peerportid.lid = switch_lid;
+ 					peerportid.drpath.drslid = selfportid.lid;
+ 					peerportid.drpath.drdlid = 0xffff;
+ 
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/src/ibstat.c infiniband-diags-1.3.6/src/ibstat.c
+--- /tmp/763676/infiniband-diags-1.3.6/src/ibstat.c	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/src/ibstat.c	Thu Sep 30 08:16:57 2010
+@@ -51,8 +51,10 @@
+ #include <unistd.h>
+ #include <string.h>
+ #include <getopt.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
+ #include <byteswap.h>
++#endif
+ #include <sys/poll.h>
+ #include <syslog.h>
+ #include <netinet/in.h>
+@@ -264,7 +266,7 @@
+ 		if (i >= n)
+ 			IBPANIC("'%s' IB device can't be found", argv[0]);
+ 
+-		strncpy(names[i], argv[0], sizeof names[i]);
++		strncpy(names[0], argv[0], sizeof names[i]);
+ 		n = 1;
+ 	}
+ 
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/src/saquery.c infiniband-diags-1.3.6/src/saquery.c
+--- /tmp/763676/infiniband-diags-1.3.6/src/saquery.c	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/src/saquery.c	Thu Oct  7 11:43:03 2010
+@@ -210,8 +210,7 @@
+ 	       "\t\trate....................0x%X\n"
+ 	       "\t\tpkt_life................0x%X\n"
+ 	       "\t\tpreference..............0x%X\n"
+-	       "\t\tresv2...................0x%X\n"
+-	       "\t\tresv3...................0x%X\n"
++	       "\t\tresv2...................0x%02x%02x%02x%02x%02x%02x\n"
+ 	       "",
+ 	       cl_ntoh64( p_pr->service_id ),
+ 	       cl_ntoh64( p_pr->dgid.unicast.prefix ),
+@@ -230,8 +229,12 @@
+ 	       p_pr->rate,
+ 	       p_pr->pkt_life,
+ 	       p_pr->preference,
+-	       *(uint32_t*)&p_pr->resv2,
+-	       *((uint16_t*)&p_pr->resv2 + 2)
++	       p_pr->resv2[0],
++	       p_pr->resv2[1],
++	       p_pr->resv2[2],
++	       p_pr->resv2[3],
++	       p_pr->resv2[4],
++	       p_pr->resv2[5]
+ 	       );
+ }
+ 
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/src/smpdump.c infiniband-diags-1.3.6/src/smpdump.c
+--- /tmp/763676/infiniband-diags-1.3.6/src/smpdump.c	Thu Feb 28 00:58:36 2008
++++ infiniband-diags-1.3.6/src/smpdump.c	Thu Sep 30 08:16:57 2010
+@@ -50,8 +50,10 @@
+ #include <sys/ioctl.h>
+ #include <unistd.h>
+ #include <getopt.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
+ #include <byteswap.h>
++#endif
+ #include <sys/poll.h>
+ #include <syslog.h>
+ #include <netinet/in.h>
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/Makefile.in infiniband-diags-1.3.6/Makefile.in
+--- /tmp/763676/infiniband-diags-1.3.6/Makefile.in	Thu Feb 28 00:59:19 2008
++++ infiniband-diags-1.3.6/Makefile.in	Thu Oct  7 11:42:07 2010
+@@ -43,7 +43,8 @@
+ 	src/ibsysstat$(EXEEXT) src/ibtracert$(EXEEXT) \
+ 	src/perfquery$(EXEEXT) src/sminfo$(EXEEXT) \
+ 	src/smpdump$(EXEEXT) src/smpquery$(EXEEXT) \
+-	src/saquery$(EXEEXT) src/vendstat$(EXEEXT)
++	src/saquery$(EXEEXT) src/vendstat$(EXEEXT) \
++	src/solaris_set_nodedesc$(EXEEXT)
+ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+ 	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
+ 	$(srcdir)/infiniband-diags.spec.in $(top_srcdir)/configure \
+@@ -87,7 +88,7 @@
+ 	scripts/ibnodes scripts/ibswitches scripts/ibrouters
+ am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(sbindir)" \
+ 	"$(DESTDIR)$(man8dir)"
+-sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
++sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -m 755
+ PROGRAMS = $(sbin_PROGRAMS)
+ am_src_ibaddr_OBJECTS = src_ibaddr-ibaddr.$(OBJEXT) \
+ 	src_ibaddr-ibdiag_common.$(OBJEXT)
+@@ -146,7 +147,11 @@
+ 	src_vendstat-ibdiag_common.$(OBJEXT)
+ src_vendstat_OBJECTS = $(am_src_vendstat_OBJECTS)
+ src_vendstat_LDADD = $(LDADD)
+-sbinSCRIPT_INSTALL = $(INSTALL_SCRIPT)
++am_src_solaris_set_nodedesc_OBJECTS = src_solaris_set_nodedesc-solaris_set_nodedesc.$(OBJEXT) \
++	src_solaris_set_nodedesc-ibdiag_common.$(OBJEXT)
++src_solaris_set_nodedesc_OBJECTS = $(am_src_solaris_set_nodedesc_OBJECTS)
++src_solaris_set_nodedesc_LDADD = $(LDADD)
++sbinSCRIPT_INSTALL = $(INSTALL_SCRIPT) -m 755
+ SCRIPTS = $(sbin_SCRIPTS)
+ DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
+ depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+@@ -165,7 +170,8 @@
+ 	$(src_ibsysstat_SOURCES) $(src_ibtracert_SOURCES) \
+ 	$(src_perfquery_SOURCES) $(src_saquery_SOURCES) \
+ 	$(src_sminfo_SOURCES) $(src_smpdump_SOURCES) \
+-	$(src_smpquery_SOURCES) $(src_vendstat_SOURCES)
++	$(src_smpquery_SOURCES) $(src_vendstat_SOURCES) \
++	$(src_solaris_set_nodedesc_SOURCES)
+ DIST_SOURCES = $(src_ibaddr_SOURCES) $(src_ibnetdiscover_SOURCES) \
+ 	$(src_ibping_SOURCES) $(src_ibportstate_SOURCES) \
+ 	$(src_ibroute_SOURCES) $(src_ibstat_SOURCES) \
+@@ -172,8 +178,9 @@
+ 	$(src_ibsysstat_SOURCES) $(src_ibtracert_SOURCES) \
+ 	$(src_perfquery_SOURCES) $(src_saquery_SOURCES) \
+ 	$(src_sminfo_SOURCES) $(src_smpdump_SOURCES) \
+-	$(src_smpquery_SOURCES) $(src_vendstat_SOURCES)
+-man8dir = $(mandir)/man8
++	$(src_smpquery_SOURCES) $(src_vendstat_SOURCES) \
++	$(src_solaris_set_nodedesc_SOURCES)
++man8dir = $(mandir)/man1m
+ NROFF = nroff
+ MANS = $(man_MANS)
+ ETAGS = etags
+@@ -316,7 +323,7 @@
+ src_ibaddr_CFLAGS = -Wall $(DBGFLAGS)
+ src_ibnetdiscover_SOURCES = src/ibnetdiscover.c src/grouping.c src/ibdiag_common.c
+ src_ibnetdiscover_CFLAGS = -Wall $(DBGFLAGS)
+-src_ibnetdiscover_LDFLAGS = -Wl,--rpath -Wl,$(libdir)
++src_ibnetdiscover_LDFLAGS =
+ src_ibping_SOURCES = src/ibping.c src/ibdiag_common.c
+ src_ibping_CFLAGS = -Wall $(DBGFLAGS)
+ src_ibportstate_SOURCES = src/ibportstate.c src/ibdiag_common.c
+@@ -329,7 +336,7 @@
+ src_ibsysstat_CFLAGS = -Wall $(DBGFLAGS)
+ src_ibtracert_SOURCES = src/ibtracert.c src/ibdiag_common.c
+ src_ibtracert_CFLAGS = -Wall $(DBGFLAGS)
+-src_ibtracert_LDFLAGS = -Wl,--rpath -Wl,$(libdir)
++src_ibtracert_LDFLAGS =
+ src_perfquery_SOURCES = src/perfquery.c src/ibdiag_common.c
+ src_perfquery_CFLAGS = -Wall $(DBGFLAGS)
+ src_sminfo_SOURCES = src/sminfo.c src/ibdiag_common.c
+@@ -338,12 +345,15 @@
+ src_smpdump_CFLAGS = -Wall $(DBGFLAGS)
+ src_smpquery_SOURCES = src/smpquery.c src/ibdiag_common.c
+ src_smpquery_CFLAGS = -Wall $(DBGFLAGS)
+-src_smpquery_LDFLAGS = -Wl,--rpath -Wl,$(libdir)
++src_smpquery_LDFLAGS =
+ src_saquery_SOURCES = src/saquery.c src/ibdiag_common.c
+ src_saquery_CFLAGS = -Wall -DOSM_VENDOR_INTF_OPENIB -DVENDOR_RMPP_SUPPORT -DDUAL_SIDED_RMPP $(DBGFLAGS)
+-src_saquery_LDFLAGS = -Wl,--rpath -Wl,$(libdir)
++src_saquery_LDFLAGS =
+ src_vendstat_SOURCES = src/vendstat.c src/ibdiag_common.c
+ src_vendstat_CFLAGS = -Wall $(DBGFLAGS)
++src_solaris_set_nodedesc_SOURCES = src/solaris_set_nodedesc.c src/ibdiag_common.c
++src_solaris_set_nodedesc_CFLAGS = -Wall $(DBGFLAGS)
++src_solaris_set_nodedesc_LDFLAGS =
+ 
+ #src_mcm_rereg_test_SOURCES = src/mcm_rereg_test.c
+ #src_mcm_rereg_test_CFLAGS = -Wall $(DBGFLAGS)
+@@ -532,6 +542,9 @@
+ src/vendstat$(EXEEXT): $(src_vendstat_OBJECTS) $(src_vendstat_DEPENDENCIES) src/$(am__dirstamp)
+ 	@rm -f src/vendstat$(EXEEXT)
+ 	$(LINK) $(src_vendstat_LDFLAGS) $(src_vendstat_OBJECTS) $(src_vendstat_LDADD) $(LIBS)
++src/solaris_set_nodedesc$(EXEEXT): $(src_solaris_set_nodedesc_OBJECTS) $(src_solaris_set_nodedesc_DEPENDENCIES) src/$(am__dirstamp)
++	@rm -f src/solaris_set_nodedesc$(EXEEXT)
++	$(LINK) $(src_solaris_set_nodedesc_LDFLAGS) $(src_solaris_set_nodedesc_OBJECTS) $(src_solaris_set_nodedesc_LDADD) $(LIBS)
+ install-sbinSCRIPTS: $(sbin_SCRIPTS)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
+@@ -585,6 +598,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/src_smpquery-smpquery.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/src_vendstat-ibdiag_common.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/src_vendstat-vendstat.Po@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/src_solaris_set_nodedesc-ibdiag_common.Po@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/src_solaris_set_nodedesc-solaris_set_nodedesc.Po@am__quote@
+ 
+ .c.o:
+ @am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@@ -985,6 +1000,34 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_vendstat_CFLAGS) $(CFLAGS) -c -o src_vendstat-ibdiag_common.obj `if test -f 'src/ibdiag_common.c'; then $(CYGPATH_W) 'src/ibdiag_common.c'; else $(CYGPATH_W) '$(srcdir)/src/ibdiag_common.c'; fi`
+ 
++src_solaris_set_nodedesc-solaris_set_nodedesc.o: src/solaris_set_nodedesc.c
++@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_solaris_set_nodedesc_CFLAGS) $(CFLAGS) -MT src_solaris_set_nodedesc-solaris_set_nodedesc.o -MD -MP -MF "$(DEPDIR)/src_solaris_set_nodedesc-solaris_set_nodedesc.Tpo" -c -o src_solaris_set_nodedesc-solaris_set_nodedesc.o `test -f 'src/solaris_set_nodedesc.c' || echo '$(srcdir)/'`src/solaris_set_nodedesc.c; \
++@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/src_solaris_set_nodedesc-solaris_set_nodedesc.Tpo" "$(DEPDIR)/src_solaris_set_nodedesc-solaris_set_nodedesc.Po"; else rm -f "$(DEPDIR)/src_solaris_set_nodedesc-solaris_set_nodedesc.Tpo"; exit 1; fi
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/solaris_set_nodedesc.c' object='src_solaris_set_nodedesc-solaris_set_nodedesc.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_solaris_set_nodedesc_CFLAGS) $(CFLAGS) -c -o src_solaris_set_nodedesc-solaris_set_nodedesc.o `test -f 'src/solaris_set_nodedesc.c' || echo '$(srcdir)/'`src/solaris_set_nodedesc.c
++
++src_solaris_set_nodedesc-solaris_set_nodedesc.obj: src/solaris_set_nodedesc.c
++@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_solaris_set_nodedesc_CFLAGS) $(CFLAGS) -MT src_solaris_set_nodedesc-solaris_set_nodedesc.obj -MD -MP -MF "$(DEPDIR)/src_solaris_set_nodedesc-solaris_set_nodedesc.Tpo" -c -o src_solaris_set_nodedesc-solaris_set_nodedesc.obj `if test -f 'src/solaris_set_nodedesc.c'; then $(CYGPATH_W) 'src/solaris_set_nodedesc.c'; else $(CYGPATH_W) '$(srcdir)/src/solaris_set_nodedesc.c'; fi`; \
++@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/src_solaris_set_nodedesc-solaris_set_nodedesc.Tpo" "$(DEPDIR)/src_solaris_set_nodedesc-solaris_set_nodedesc.Po"; else rm -f "$(DEPDIR)/src_solaris_set_nodedesc-solaris_set_nodedesc.Tpo"; exit 1; fi
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/solaris_set_nodedesc.c' object='src_solaris_set_nodedesc-solaris_set_nodedesc.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_solaris_set_nodedesc_CFLAGS) $(CFLAGS) -c -o src_solaris_set_nodedesc-solaris_set_nodedesc.obj `if test -f 'src/solaris_set_nodedesc.c'; then $(CYGPATH_W) 'src/solaris_set_nodedesc.c'; else $(CYGPATH_W) '$(srcdir)/src/solaris_set_nodedesc.c'; fi`
++
++src_solaris_set_nodedesc-ibdiag_common.o: src/ibdiag_common.c
++@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_solaris_set_nodedesc_CFLAGS) $(CFLAGS) -MT src_solaris_set_nodedesc-ibdiag_common.o -MD -MP -MF "$(DEPDIR)/src_solaris_set_nodedesc-ibdiag_common.Tpo" -c -o src_solaris_set_nodedesc-ibdiag_common.o `test -f 'src/ibdiag_common.c' || echo '$(srcdir)/'`src/ibdiag_common.c; \
++@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/src_solaris_set_nodedesc-ibdiag_common.Tpo" "$(DEPDIR)/src_solaris_set_nodedesc-ibdiag_common.Po"; else rm -f "$(DEPDIR)/src_solaris_set_nodedesc-ibdiag_common.Tpo"; exit 1; fi
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/ibdiag_common.c' object='src_solaris_set_nodedesc-ibdiag_common.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_solaris_set_nodedesc_CFLAGS) $(CFLAGS) -c -o src_solaris_set_nodedesc-ibdiag_common.o `test -f 'src/ibdiag_common.c' || echo '$(srcdir)/'`src/ibdiag_common.c
++
++src_solaris_set_nodedesc-ibdiag_common.obj: src/ibdiag_common.c
++@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_solaris_set_nodedesc_CFLAGS) $(CFLAGS) -MT src_solaris_set_nodedesc-ibdiag_common.obj -MD -MP -MF "$(DEPDIR)/src_solaris_set_nodedesc-ibdiag_common.Tpo" -c -o src_solaris_set_nodedesc-ibdiag_common.obj `if test -f 'src/ibdiag_common.c'; then $(CYGPATH_W) 'src/ibdiag_common.c'; else $(CYGPATH_W) '$(srcdir)/src/ibdiag_common.c'; fi`; \
++@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/src_solaris_set_nodedesc-ibdiag_common.Tpo" "$(DEPDIR)/src_solaris_set_nodedesc-ibdiag_common.Po"; else rm -f "$(DEPDIR)/src_solaris_set_nodedesc-ibdiag_common.Tpo"; exit 1; fi
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/ibdiag_common.c' object='src_solaris_set_nodedesc-ibdiag_common.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_solaris_set_nodedesc_CFLAGS) $(CFLAGS) -c -o src_solaris_set_nodedesc-ibdiag_common.obj `if test -f 'src/ibdiag_common.c'; then $(CYGPATH_W) 'src/ibdiag_common.c'; else $(CYGPATH_W) '$(srcdir)/src/ibdiag_common.c'; fi`
++
+ mostlyclean-libtool:
+ 	-rm -f *.lo
+ 
+@@ -1009,8 +1052,8 @@
+ 	  else file=$$i; fi; \
+ 	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ 	  case "$$ext" in \
+-	    8*) ;; \
+-	    *) ext='8' ;; \
++	    8*) ext='1m' ;; \
++	    *) ext='1m' ;; \
+ 	  esac; \
+ 	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ 	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
+diff -r -u /tmp/763676/infiniband-diags-1.3.6/configure infiniband-diags-1.3.6/configure
+--- /tmp/763676/infiniband-diags-1.3.6/configure	Thu Feb 28 00:59:20 2008
++++ infiniband-diags-1.3.6/configure	Thu Sep 30 08:16:57 2010
+@@ -7644,6 +7644,7 @@
+  	esac ;;
+       esac
+       link_all_deplibs=yes
++      hardcode_libdir_flag_spec=
+       ;;
+ 
+     sunos4*)
Binary file usr/src/cmd/ofusr/infiniband-diags/infiniband-diags-1.3.6.tar.gz has changed
Binary file usr/src/cmd/ofusr/infiniband-diags/solaris_set_nodedesc.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libibcommon/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,12 @@
+NAME:             libibcommon
+VERSION:          1.0.8
+DESCRIPTION:      Infiniband Open Fabrics libibcommon
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/OFED/ofed-1.3/OFED-1.3.tgz/libibcommon-1.0.8.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/ofuv_lib
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
+                  libibcommon-1.0.8.tar.gz is part of the SPRMS in OFED-1.3.tgz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libibcommon/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,93 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.1	10/10/07 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+CPPFLAGS +=	"-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+
+CONFIGURE_OPTIONS +=	--disable-libcheck
+CONFIGURE_OPTIONS +=	--disable-static
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m32 -D_REENTRANT"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LIBS="-L$(ROOTLIB)"
+
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m64 -D_REENTRANT"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LIBS="-L$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN64)
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--libdir=$(CFGLIB64)
+
+CPPFLAGS +=	-I$(ROOT)/usr/include
+
+LIBS +=	-L$(ROOTLIB)
+
+COMMON_ENV +=	MAKE=$(GMAKE)
+
+BUILD_ENV +=		CPPFLAGS="$(CPPFLAGS)"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+all:		$(VER)/build-32/.built $(VER)/build-64/.built
+
+install:	$(VER)/build-32/.installed $(VER)/build-64/.installed
+	$(RM) $(ROOTLIB)/$(COMPONENT_NAME:sh).la \
+	$(ROOTLIB64)/$(COMPONENT_NAME:sh).la
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	(cd $(@D) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ../configure $(CONFIGURE_OPTIONS))
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libibcommon/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,180 @@
+diff -r -u /tmp/903140/libibcommon-1.0.8/include/infiniband/common.h libibcommon-1.0.8/include/infiniband/common.h
+--- /tmp/903140/libibcommon-1.0.8/include/infiniband/common.h	Thu Feb 28 00:58:36 2008
++++ libibcommon-1.0.8/include/infiniband/common.h	Thu Oct  7 12:19:57 2010
+@@ -37,7 +37,11 @@
+ #include <sys/select.h>
+ #include <sys/types.h>
+ #include <stdint.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#else
++#include <infiniband/ofa_solaris.h>
++#endif
+ 
+ #ifdef __cplusplus
+ #  define BEGIN_C_DECLS extern "C" {
+@@ -49,6 +53,7 @@
+ 
+ BEGIN_C_DECLS
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ #if __BYTE_ORDER == __LITTLE_ENDIAN
+ #ifndef ntohll
+ static inline uint64_t ntohll(uint64_t x) {
+@@ -72,6 +77,7 @@
+ }
+ #endif
+ #endif	/* __BYTE_ORDER == __BIG_ENDIAN */
++#endif /* !(defined(__SVR4) && defined(__sun)) */
+ 
+ /*****************************
+  * COMMON MACHINE INDEPENDENT
+diff -r -u /tmp/903140/libibcommon-1.0.8/src/stack.c libibcommon-1.0.8/src/stack.c
+--- /tmp/903140/libibcommon-1.0.8/src/stack.c	Thu Feb 28 00:58:36 2008
++++ libibcommon-1.0.8/src/stack.c	Thu Sep 30 08:16:32 2010
+@@ -50,8 +50,10 @@
+ #include <sys/ioctl.h>
+ #include <unistd.h>
+ #include <string.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
+ #include <byteswap.h>
++#endif
+ #include <sys/poll.h>
+ #include <syslog.h>
+ #include <time.h>
+@@ -153,13 +155,13 @@
+ 
+ 		tm = time(0);
+ 		fprintf(stderr, "%s *** exception handler: died with signal %d pid %d\n",
+-				ctime(&tm), x, getpid());
++				ctime(&tm), x, (int)getpid());
+ 
+ 		fflush(NULL);
+ 	}
+ 
+ 	if (loop_on_panic) {
+-		fprintf(stderr, "exception handler: entering tight loop ... pid %d\n",getpid());
++		fprintf(stderr, "exception handler: entering tight loop ... pid %d\n",(int)getpid());
+ 		for (; ; )
+ 			;
+ 	}
+diff -r -u /tmp/903140/libibcommon-1.0.8/src/sysfs.c libibcommon-1.0.8/src/sysfs.c
+--- /tmp/903140/libibcommon-1.0.8/src/sysfs.c	Thu Feb 28 00:58:36 2008
++++ libibcommon-1.0.8/src/sysfs.c	Thu Sep 30 08:16:32 2010
+@@ -50,13 +50,20 @@
+ #include <sys/ioctl.h>
+ #include <unistd.h>
+ #include <string.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
+ #include <byteswap.h>
++#endif
+ #include <sys/poll.h>
+ #include <syslog.h>
+ #include <netinet/in.h>
+ #include <errno.h>
+ 
++#if defined(__SVR4) && defined(__sun)
++int
++ibv_read_sysfs_file(const char *dir, const char *file, char *buf, size_t size);
++#endif
++
+ #include "common.h"
+ 
+ static int
+@@ -75,6 +82,16 @@
+ 	char path[256], *s;
+ 	int fd, r;
+ 
++#if defined(__SVR4) && defined(__sun)
++	if ((r = ibv_read_sysfs_file(dir_name, file_name, str, max_len)) < 0) {
++		return -EINVAL;
++	}
++
++	str[(r < max_len) ? r : max_len - 1] = 0;
++
++	if ((s = strrchr(str, '\n')))
++		*s = 0;
++#else
+ 	snprintf(path, sizeof path - 1, "%s/%s", dir_name, file_name);
+ 	path[sizeof path - 1] = 0;
+ 
+@@ -94,6 +111,8 @@
+ 		*s = 0;
+ 
+ 	close(fd);
++#endif
++
+ 	return 0;
+ }
+ 
+diff -r -u /tmp/903140/libibcommon-1.0.8/src/util.c libibcommon-1.0.8/src/util.c
+--- /tmp/903140/libibcommon-1.0.8/src/util.c	Thu Feb 28 00:58:36 2008
++++ libibcommon-1.0.8/src/util.c	Thu Sep 30 08:16:32 2010
+@@ -50,8 +50,10 @@
+ #include <sys/ioctl.h>
+ #include <unistd.h>
+ #include <string.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
+ #include <byteswap.h>
++#endif
+ #include <sys/poll.h>
+ #include <syslog.h>
+ #include <netinet/in.h>
+@@ -70,7 +72,7 @@
+ 	va_end(va);
+ 	buf[n] = 0;
+ 
+-	printf("ibwarn: [%d] %s: %s\n", getpid(), fn, buf);
++	printf("ibwarn: [%d] %s: %s\n", (int)getpid(), fn, buf);
+ }
+ 
+ void
+@@ -85,8 +87,10 @@
+ 	va_end(va);
+ 	buf[n] = 0;
+ 
+-	printf("ibpanic: [%d] %s: %s: (%m)\n", getpid(), fn, buf);
+-	syslog(LOG_ALERT, "ibpanic: [%d] %s: %s: (%m)\n", getpid(), fn, buf);
++	printf("ibpanic: [%d] %s: %s: (%s)\n",
++		(int)getpid(), fn, buf, strerror(errno));
++	syslog(LOG_ALERT, "ibpanic: [%d] %s: %s: (%s)\n",
++		getpid(), fn, buf, strerror(errno));
+ 
+ 	exit(-1);
+ }
+@@ -103,7 +107,8 @@
+ 	va_end(va);
+ 	buf[n] = 0;
+ 
+-	syslog(LOG_ALERT, "[%d] %s: %s: (%m)\n", getpid(), fn, buf);
++	syslog(LOG_ALERT, "[%d] %s: %s: (%s)\n",
++		getpid(), fn, buf, strerror(errno));
+ }
+ 
+ void
+diff -r -u /tmp/903140/libibcommon-1.0.8/Makefile.in libibcommon-1.0.8/Makefile.in
+--- /tmp/903140/libibcommon-1.0.8/Makefile.in	Thu Feb 28 00:58:43 2008
++++ libibcommon-1.0.8/Makefile.in	Thu Oct  7 12:19:41 2010
+@@ -62,7 +62,7 @@
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+ am__installdirs = "$(DESTDIR)$(libdir)" \
+ 	"$(DESTDIR)$(libibcommonincludedir)"
+-libLTLIBRARIES_INSTALL = $(INSTALL)
++libLTLIBRARIES_INSTALL = $(INSTALL) -m 755
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+ libibcommon_la_LIBADD =
+ am_libibcommon_la_OBJECTS = libibcommon_la-stack.lo \
+diff -r -u /tmp/903140/libibcommon-1.0.8/configure libibcommon-1.0.8/configure
+--- /tmp/903140/libibcommon-1.0.8/configure	Thu Feb 28 00:58:44 2008
++++ libibcommon-1.0.8/configure	Thu Sep 30 08:16:32 2010
+@@ -7722,6 +7722,7 @@
+  	esac ;;
+       esac
+       link_all_deplibs=yes
++      hardcode_libdir_flag_spec=
+       ;;
+ 
+     sunos4*)
Binary file usr/src/cmd/ofusr/libibcommon/libibcommon-1.0.8.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libibmad/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,12 @@
+NAME:             libibmad
+VERSION:          1.1.6
+DESCRIPTION:      Infiniband Open Fabrics libibmad
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/OFED/ofed-1.3/OFED-1.3.tgz/libibmad-1.1.6.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/ofuv_lib
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
+                  libibmad-1.1.6.tar.gz is part of the SPRMS in OFED-1.3.tgz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libibmad/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,94 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.1	10/10/07 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+CPPFLAGS +=	"-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+
+CONFIGURE_OPTIONS +=	--disable-libcheck
+CONFIGURE_OPTIONS +=	--disable-static
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m32 -D_REENTRANT"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB)"
+
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m64 -D_REENTRANT"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN64)
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--libdir=$(CFGLIB64)
+
+CPPFLAGS +=	-I$(ROOT)/usr/include
+
+LIBS +=		-lsocket -lnsl -libcommon -libverbs
+
+COMMON_ENV +=	MAKE=$(GMAKE)
+
+BUILD_ENV +=		CPPFLAGS="$(CPPFLAGS)"
+BUILD_ENV +=		LIBS="$(LIBS)"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+all:		$(VER)/build-32/.built $(VER)/build-64/.built
+
+install:	$(VER)/build-32/.installed $(VER)/build-64/.installed
+	$(RM) $(ROOTLIB)/$(COMPONENT_NAME:sh).la \
+	$(ROOTLIB64)/$(COMPONENT_NAME:sh).la
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	(cd $(@D) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ../configure $(CONFIGURE_OPTIONS))
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libibmad/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,228 @@
+diff -r -u /tmp/797907/libibmad-1.1.6/src/dump.c libibmad-1.1.6/src/dump.c
+--- /tmp/797907/libibmad-1.1.6/src/dump.c	Thu Feb 28 00:58:36 2008
++++ libibmad-1.1.6/src/dump.c	Thu Sep 30 08:16:32 2010
+@@ -49,11 +49,23 @@
+ void
+ mad_dump_int(char *buf, int bufsz, void *val, int valsz)
+ {
++	/*
++	 * the val pointer passed to the dump routines are always 32 bit
++	 * integers for valsz <= 4 and 64 bit integer for the rest. It is never
++	 * uint8_t or uint16_t. This is because mad_decode_field always returns
++	 * the values as 32 bit integer even if they are 8 bit or 16 bit fields.
++	 */
+ 	switch (valsz) {
+ 	case 1:
++#if defined(_BIG_ENDIAN)
++		val = ((uint8_t *)val) + 3;
++#endif /* _BIG_ENDIAN */
+ 		snprintf(buf, bufsz, "%d", *(uint8_t *)val);
+ 		break;
+ 	case 2:
++#if defined(_BIG_ENDIAN)
++		val = ((uint16_t *)val) + 1;
++#endif /* _BIG_ENDIAN */
+ 		snprintf(buf, bufsz, "%d", *(uint16_t *)val);
+ 		break;
+ 	case 3:
+@@ -75,11 +87,23 @@
+ void
+ mad_dump_uint(char *buf, int bufsz, void *val, int valsz)
+ {
++	/*
++	 * the val pointer passed to the dump routines are always 32 bit
++	 * integers for valsz <= 4 and 64 bit integer for the rest. It is never
++	 * uint8_t or uint16_t. This is because mad_decode_field always returns
++	 * the values as 32 bit integer even if they are 8 bit or 16 bit fields.
++	 */
+ 	switch (valsz) {
+ 	case 1:
++#if defined(_BIG_ENDIAN)
++		val = ((uint8_t *)val) + 3;
++#endif /* _BIG_ENDIAN */
+ 		snprintf(buf, bufsz, "%u", *(uint8_t *)val);
+ 		break;
+ 	case 2:
++#if defined(_BIG_ENDIAN)
++		val = ((uint16_t *)val) + 1;
++#endif /* _BIG_ENDIAN */
+ 		snprintf(buf, bufsz, "%u", *(uint16_t *)val);
+ 		break;
+ 	case 3:
+@@ -101,15 +125,28 @@
+ void
+ mad_dump_hex(char *buf, int bufsz, void *val, int valsz)
+ {
++	/*
++	 * the val pointer passed to the dump routines are always 32 bit
++	 * integers for valsz <= 4 and 64 bit integer for the rest. It is never
++	 * uint8_t or uint16_t. This is because mad_decode_field always returns
++	 * the values as 32 bit integer even if they are 8 bit or 16 bit fields.
++	 */
+ 	switch (valsz) {
+ 	case 1:
++#if defined(_BIG_ENDIAN)
++		val = ((uint8_t *)val) + 3;
++#endif /* _BIG_ENDIAN */
+ 		snprintf(buf, bufsz, "0x%02x", *(uint8_t *)val);
+ 		break;
+ 	case 2:
++#if defined(_BIG_ENDIAN)
++		val = ((uint16_t *)val) + 1;
++#endif /* _BIG_ENDIAN */
+ 		snprintf(buf, bufsz, "0x%04x", *(uint16_t *)val);
+ 		break;
+ 	case 3:
+-		snprintf(buf, bufsz, "0x%06x", *(uint32_t *)val & 0xffffff);
++		//snprintf(buf, bufsz, "0x%06x", *(uint32_t *)val & 0xffffff);
++		snprintf(buf, bufsz, "0x%x", *(uint32_t *)val & 0xffffff);
+ 		break;
+ 	case 4:
+ 		snprintf(buf, bufsz, "0x%08x", *(uint32_t *)val);
+@@ -135,11 +172,23 @@
+ void
+ mad_dump_rhex(char *buf, int bufsz, void *val, int valsz)
+ {
++	/*
++	 * the val pointer passed to the dump routines are always 32 bit
++	 * integers for valsz <= 4 and 64 bit integer for the rest. It is never
++	 * uint8_t or uint16_t. This is because mad_decode_field always returns
++	 * the values as 32 bit integer even if they are 8 bit or 16 bit fields.
++	 */
+ 	switch (valsz) {
+ 	case 1:
++#if defined(_BIG_ENDIAN)
++		val = ((uint8_t *)val) + 3;
++#endif /* _BIG_ENDIAN */
+ 		snprintf(buf, bufsz, "%02x", *(uint8_t *)val);
+ 		break;
+ 	case 2:
++#if defined(_BIG_ENDIAN)
++		val = ((uint16_t *)val) + 1;
++#endif /* _BIG_ENDIAN */
+ 		snprintf(buf, bufsz, "%04x", *(uint16_t *)val);
+ 		break;
+ 	case 3:
+diff -r -u /tmp/797907/libibmad-1.1.6/src/fields.c libibmad-1.1.6/src/fields.c
+--- /tmp/797907/libibmad-1.1.6/src/fields.c	Thu Feb 28 00:58:36 2008
++++ libibmad-1.1.6/src/fields.c	Thu Sep 30 08:16:32 2010
+@@ -366,13 +366,19 @@
+ void
+ _set_field64(void *buf, int base_offs, ib_field_t *f, uint64_t val)
+ {
+-	*(uint64_t *)((char *)buf + base_offs + f->bitoffs / 8) = htonll(val);
++	uint64_t nval = htonll(val);
++	memcpy( (void *)((char *)buf + base_offs + f->bitoffs / 8),
++		(void *)&nval,
++		sizeof(uint64_t));
+ }
+ 
+ uint64_t
+ _get_field64(void *buf, int base_offs, ib_field_t *f)
+ {
+-	uint64_t val = *(uint64_t *)((char *)buf + base_offs + f->bitoffs / 8);
++	uint64_t val;
++	memcpy( (void *)&val,
++		(void *)((char *)buf + base_offs + f->bitoffs / 8),
++		sizeof(uint64_t));
+ 	return ntohll(val);
+ }
+ 
+diff -r -u /tmp/797907/libibmad-1.1.6/src/rpc.c libibmad-1.1.6/src/rpc.c
+--- /tmp/797907/libibmad-1.1.6/src/rpc.c	Thu Feb 28 00:58:36 2008
++++ libibmad-1.1.6/src/rpc.c	Thu Sep 30 08:16:32 2010
+@@ -140,7 +140,7 @@
+ 
+ 		length = len;
+ 		if (umad_send(port_id, agentid, sndbuf, length, timeout, 0) < 0) {
+-			IBWARN("send failed; %m");
++			IBWARN("send failed; %s", strerror(errno));
+ 			return -1;
+ 		}
+ 
+@@ -147,8 +147,9 @@
+ 		/* Use same timeout on receive side just in case */
+ 		/* send packet is lost somewhere. */
+ 		do {
++			length = len;
+ 			if (umad_recv(port_id, rcvbuf, &length, timeout) < 0) {
+-				IBWARN("recv failed: %m");
++				IBWARN("recv failed: %s", strerror(errno));
+ 				return -1;
+ 			}
+ 
+@@ -301,8 +302,13 @@
+ 	if (umad_init() < 0)
+ 		IBPANIC("can't init UMAD library");
+ 
++#if defined(__SVR4) && defined(__sun)
+ 	if ((mad_portid = umad_open_port(dev_name, dev_port)) < 0)
++		IBPANIC("can't open UMAD port (%s:%d)", dev_name?dev_name:"(nil)", dev_port);
++#else
++	if ((mad_portid = umad_open_port(dev_name, dev_port)) < 0)
+ 		IBPANIC("can't open UMAD port (%s:%d)", dev_name, dev_port);
++#endif
+ 
+ 	if (num_classes >= MAX_CLASS)
+ 		IBPANIC("too many classes %d requested", num_classes);
+diff -r -u /tmp/797907/libibmad-1.1.6/src/serv.c libibmad-1.1.6/src/serv.c
+--- /tmp/797907/libibmad-1.1.6/src/serv.c	Thu Feb 28 00:58:36 2008
++++ libibmad-1.1.6/src/serv.c	Thu Sep 30 08:16:32 2010
+@@ -42,6 +42,7 @@
+ #include <sys/time.h>
+ #include <string.h>
+ #include <netinet/in.h>
++#include <errno.h>
+ 
+ #include <infiniband/common.h>
+ #include <infiniband/umad.h>
+@@ -71,7 +72,7 @@
+ 
+ 	if (umad_send(madrpc_portid(), mad_class_agent(rpc->mgtclass),
+ 		      umad, IB_MAD_SIZE, rpc->timeout, 0) < 0) {
+-		IBWARN("send failed; %m");
++		IBWARN("send failed; %s", strerror(errno));
+ 		return -1;
+ 	}
+ 
+@@ -145,7 +146,7 @@
+ 
+ 	if (umad_send(madrpc_portid(), mad_class_agent(rpc.mgtclass), umad,
+ 		      IB_MAD_SIZE, rpc.timeout, 0) < 0) {
+-		DEBUG("send failed; %m");
++		DEBUG("send failed; %s", strerror(errno));
+ 		return -1;
+ 	}
+ 
+@@ -163,7 +164,7 @@
+ 			       &length, timeout)) < 0) {
+ 		if (!umad)
+ 			umad_free(mad);
+-		DEBUG("recv failed: %m");
++		DEBUG("recv failed: %s", strerror(errno));
+ 		return 0;
+ 	}
+ 
+diff -r -u /tmp/797907/libibmad-1.1.6/Makefile.in libibmad-1.1.6/Makefile.in
+--- /tmp/797907/libibmad-1.1.6/Makefile.in	Thu Feb 28 00:58:59 2008
++++ libibmad-1.1.6/Makefile.in	Thu Oct  7 11:55:31 2010
+@@ -62,7 +62,7 @@
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+ am__installdirs = "$(DESTDIR)$(libdir)" \
+ 	"$(DESTDIR)$(libibmadincludedir)"
+-libLTLIBRARIES_INSTALL = $(INSTALL)
++libLTLIBRARIES_INSTALL = $(INSTALL) -m 755
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+ libibmad_la_LIBADD =
+ am_libibmad_la_OBJECTS = libibmad_la-dump.lo libibmad_la-fields.lo \
+diff -r -u /tmp/797907/libibmad-1.1.6/configure libibmad-1.1.6/configure
+--- /tmp/797907/libibmad-1.1.6/configure	Thu Feb 28 00:59:00 2008
++++ libibmad-1.1.6/configure	Thu Sep 30 08:16:32 2010
+@@ -7624,6 +7624,7 @@
+  	esac ;;
+       esac
+       link_all_deplibs=yes
++      hardcode_libdir_flag_spec=
+       ;;
+ 
+     sunos4*)
Binary file usr/src/cmd/ofusr/libibmad/libibmad-1.1.6.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libibumad/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,12 @@
+NAME:             libibumad
+VERSION:          1.1.7
+DESCRIPTION:      Infiniband Open Fabrics libibumad
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/OFED/ofed-1.3/OFED-1.3.tgz/libibumad-1.1.7.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/ofuv_lib
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
+                  libibumad-1.1.7.tar.gz is part of the SPRMS in OFED-1.3.tgz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libibumad/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,114 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.1	10/10/07 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+
+CPPFLAGS += "-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+
+CONFIGURE_OPTIONS +=	--disable-libcheck
+CONFIGURE_OPTIONS +=	--disable-static
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m32 -D_REENTRANT"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB)"
+
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m64 -D_REENTRANT"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN64)
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--libdir=$(CFGLIB64)
+
+CPPFLAGS +=	-I$(ROOT)/usr/include
+
+LIBS +=		-lsocket -lnsl
+
+COMMON_ENV +=	MAKE=$(GMAKE)
+
+BUILD_ENV +=		CPPFLAGS="$(CPPFLAGS)"
+BUILD_ENV +=		LIBS="$(LIBS)"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+CLEANUP_FILES = $(ROOTMAN3)/umad_free.3 $(ROOTMAN3)/umad_done.3 \
+	$(ROOTMAN3)/umad_send.3 $(ROOTMAN3)/umad_recv.3 \
+	$(ROOTMAN3)/umad_init.3 $(ROOTMAN3)/umad_dump.3 \
+	$(ROOTMAN3)/umad_poll.3 $(ROOTMAN3)/umad_size.3 \
+	$(ROOTMAN3)/umad_debug.3 $(ROOTMAN3)/umad_alloc.3 \
+	$(ROOTMAN3)/umad_get_ca.3 $(ROOTMAN3)/umad_get_fd.3 \
+	$(ROOTMAN3)/umad_status.3 $(ROOTMAN3)/umad_get_mad.3 \
+	$(ROOTMAN3)/umad_set_grh.3 $(ROOTMAN3)/umad_set_addr.3 \
+	$(ROOTMAN3)/umad_get_pkey.3 $(ROOTMAN3)/umad_get_port.3 \
+	$(ROOTMAN3)/umad_set_pkey.3 $(ROOTMAN3)/umad_register.3 \
+	$(ROOTMAN3)/umad_addr_dump.3 $(ROOTMAN3)/umad_open_port.3 \
+	$(ROOTMAN3)/umad_release_ca.3 $(ROOTMAN3)/umad_close_port.3 \
+	$(ROOTMAN3)/umad_unregister.3 $(ROOTMAN3)/umad_set_grh_net.3 \
+	$(ROOTMAN3)/umad_get_mad_addr.3 $(ROOTMAN3)/umad_set_addr_net.3 \
+	$(ROOTMAN3)/umad_release_port.3 $(ROOTMAN3)/umad_register_oui.3 \
+	$(ROOTMAN3)/umad_get_cas_names.3 $(ROOTMAN3)/umad_get_issm_path.3 \
+	$(ROOTMAN3)/umad_get_ca_portguids.3
+
+all:		$(VER)/build-32/.built $(VER)/build-64/.built
+
+install:	$(VER)/build-32/.installed $(VER)/build-64/.installed
+	$(RM) $(ROOTLIB)/$(COMPONENT_NAME:sh).la \
+		$(ROOTLIB64)/$(COMPONENT_NAME:sh).la
+	$(RM) $(CLEANUP_FILES)
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	(cd $(@D) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ../configure $(CONFIGURE_OPTIONS))
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libibumad/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,300 @@
+diff -r -u /tmp/814542/libibumad-1.1.7/include/infiniband/umad.h libibumad-1.1.7/include/infiniband/umad.h
+--- /tmp/814542/libibumad-1.1.7/include/infiniband/umad.h	Thu Feb 28 00:58:36 2008
++++ libibumad-1.1.7/include/infiniband/umad.h	Thu Sep 30 08:16:32 2010
+@@ -97,7 +97,11 @@
+ 
+ #define UMAD_MAX_PORTS		64
+ 
++#if defined(__SVR4) && defined(__sun)
++#define UMAD_DEV_DIR            "/devices/ib"
++#else
+ #define UMAD_DEV_DIR		"/dev/infiniband"
++#endif
+ 
+ #define SYS_CA_PORTS_DIR	"ports"
+ 
+diff -r -u /tmp/814542/libibumad-1.1.7/src/umad.c libibumad-1.1.7/src/umad.c
+--- /tmp/814542/libibumad-1.1.7/src/umad.c	Thu Feb 28 00:58:36 2008
++++ libibumad-1.1.7/src/umad.c	Thu Sep 30 08:16:32 2010
+@@ -50,6 +50,15 @@
+ 
+ #include "umad.h"
+ 
++#if defined(__SVR4) && defined(__sun)
++#include <infiniband/verbs.h>
++int
++get_port_info(const char *devname, uint8_t port_num,
++         struct ibv_port_attr *port_attr, union ibv_gid **gid_table,
++         uint16_t **pkey_table);
++#endif
++
++
+ #define IB_OPENIB_OUI                 (0x001405)
+ 
+ #ifdef HAVE_VALGRIND_MEMCHECK_H
+@@ -113,6 +122,7 @@
+ 	return 0;
+ }
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ static int check_for_digit_name(const struct dirent *dent)
+ {
+ 	const char *p = dent->d_name;
+@@ -120,6 +130,7 @@
+ 		p++;
+ 	return *p ? 0 : 1;
+ }
++#endif
+ 
+ static int
+ get_port(char *ca_name, char *dir, int portnum, umad_port_t *port)
+@@ -161,6 +172,22 @@
+ 	memcpy(&port->port_guid, gid + 8, sizeof port->port_guid);
+ 
+ 	snprintf(port_dir + len, sizeof(port_dir) - len, "/pkeys");
++
++#if defined(__SVR4) && defined(__sun)
++	{
++		int ret;
++		uint16_t *pkeys;
++		struct ibv_port_attr port_attr;
++
++		ret = get_port_info(ca_name, portnum, &port_attr, NULL, &pkeys);
++		if (ret) {
++			IBWARN("Could not retrieve pkeys for \"%s\"", ca_name);
++			goto clean;
++		}
++		port->pkeys = pkeys;
++		port->pkeys_size = port_attr.pkey_tbl_len;
++	}
++#else
+ 	ret = scandir(port_dir, &namelist, check_for_digit_name, NULL);
+ 	if (ret <= 0) {
+ 		IBWARN("no pkeys found for %s:%u (at dir %s)...",
+@@ -182,6 +209,8 @@
+ 	port->pkeys_size = ret;
+ 	free(namelist);
+ 	namelist = NULL;
++#endif
++
+ 	port_dir[len] = '\0';
+ 
+ 	/* FIXME: handle gids */
+@@ -344,9 +373,13 @@
+ static int
+ get_ca(char *ca_name, umad_ca_t *ca)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	DIR *dir;
++#endif
+ 	char dir_name[256];
++#if !(defined(__SVR4) && defined(__sun))
+ 	struct dirent **namelist;
++#endif
+ 	int r, i, ret;
+ 	int portnum;
+ 
+@@ -376,6 +409,7 @@
+ 		SYS_INFINIBAND, ca->ca_name, SYS_CA_PORTS_DIR);
+ 	dir_name[sizeof dir_name - 1] = 0;
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 	if (!(dir = opendir(dir_name)))
+ 		return -ENOENT;
+ 
+@@ -417,15 +451,41 @@
+ 	free(namelist);
+ 
+ 	closedir(dir);
++#else
++	// TODO: hardcoded 2 ports
++	ca->numports = 0;
++	memset(ca->ports, 0, sizeof ca->ports);
++
++	for (portnum = 1 /* HERE */; portnum <= 2 /* HERE */; portnum++) {
++
++		if (!(ca->ports[portnum] = calloc(1, sizeof(*ca->ports[portnum])))) {
++			ret = -ENOMEM;
++			goto clean;
++		}
++		if (get_port(ca_name, dir_name, portnum, ca->ports[portnum]) < 0) {
++			free(ca->ports[portnum]);
++			ca->ports[portnum] = NULL;
++			ret = -EIO;
++			goto clean;
++		}
++		if (ca->numports < portnum)
++			ca->numports = portnum;
++	}
++#endif
++
+ 	put_ca(ca);
+ 	return 0;
+ 
+ clean:
++#if !(defined(__SVR4) && defined(__sun))
+ 	for (i = 0; i < r; i++)
+ 		free(namelist[i]);
+ 	free(namelist);
++#endif
+ error:
++#if !(defined(__SVR4) && defined(__sun))
+ 	closedir(dir);
++#endif
+ 	release_ca(ca);
+ 
+ 	return ret;
+@@ -479,8 +539,8 @@
+ {
+ 	TRACE("umad_init");
+ 	if (sys_read_uint(IB_UMAD_ABI_DIR, IB_UMAD_ABI_FILE, &abi_version) < 0) {
+-		IBWARN("can't read ABI version from %s/%s (%m): is ib_umad module loaded?",
+-			IB_UMAD_ABI_DIR, IB_UMAD_ABI_FILE);
++		IBWARN("can't read ABI version from %s/%s (%s): is ib_umad module loaded?",
++			IB_UMAD_ABI_DIR, IB_UMAD_ABI_FILE, strerror(errno));
+ 		return -1;
+ 	}
+ 	if (abi_version < IB_UMAD_ABI_VERSION) {
+@@ -502,6 +562,28 @@
+ int
+ umad_get_cas_names(char cas[][UMAD_CA_NAME_LEN], int max)
+ {
++#if defined(__SVR4) && defined(__sun)
++	struct ibv_device **devlist = ibv_get_device_list(NULL);
++	int j = 0;
++
++	TRACE("max %d", max);
++
++	if (devlist) {
++		while (devlist[j] && j < max) {
++			strncpy(cas[j], ibv_get_device_name(devlist[j]),
++						UMAD_CA_NAME_LEN);
++			j++;
++		}
++		ibv_free_device_list(devlist);
++		DEBUG("return %d cas", j);
++	}
++	if (j == 0 && max > 0) {
++		/* Is this still needed ? */
++		strncpy((char *)cas, def_ca_name, UMAD_CA_NAME_LEN);
++		DEBUG("return 1 ca");
++		j = 1;
++	}
++#else
+ 	struct dirent **namelist;
+ 	int n, i, j = 0;
+ 
+@@ -527,6 +609,7 @@
+ 	}
+ 	if (n >= 0)
+ 		free(namelist);
++#endif
+ 	return j;
+ }
+ 
+@@ -572,7 +655,11 @@
+ 	if ((umad_id = dev_to_umad_id(ca_name, portnum)) < 0)
+ 		return -EINVAL;
+ 
++#if defined(__SVR4) && defined(__sun)
++	snprintf(path, max - 1, "%s/sol_umad@0:issm%u", UMAD_DEV_DIR , umad_id);
++#else
+ 	snprintf(path, max - 1, "%s/issm%u", UMAD_DEV_DIR , umad_id);
++#endif
+ 
+ 	return 0;
+ }
+@@ -583,7 +670,11 @@
+ 	char dev_file[UMAD_DEV_FILE_SZ];
+ 	int umad_id, fd;
+ 
++#if defined(__SVR4) && defined(__sun)
++        TRACE("ca %s port %d", ca_name?ca_name:"(nil)", portnum);
++#else
+ 	TRACE("ca %s port %d", ca_name, portnum);
++#endif
+ 
+ 	if (!(ca_name = resolve_ca_name(ca_name, &portnum)))
+ 		return -ENODEV;
+@@ -593,8 +684,13 @@
+ 	if ((umad_id = dev_to_umad_id(ca_name, portnum)) < 0)
+ 		return -EINVAL;
+ 
++#if defined(__SVR4) && defined(__sun)
++	snprintf(dev_file, sizeof dev_file - 1, "%s/sol_umad@0:umad%d",
++		 UMAD_DEV_DIR , umad_id);
++#else
+ 	snprintf(dev_file, sizeof dev_file - 1, "%s/umad%d",
+ 		 UMAD_DEV_DIR , umad_id);
++#endif
+ 
+ 	if ((fd = open(dev_file, O_RDWR|O_NONBLOCK)) < 0) {
+ 		DEBUG("open %s failed: %s", dev_file, strerror(errno));
+@@ -790,8 +886,8 @@
+ 	if (n == length + umad_size())
+ 		return 0;
+ 
+-	DEBUG("write returned %d != sizeof umad %zu + length %d (%m)",
+-	      n, umad_size(), length);
++	DEBUG("write returned %d != sizeof umad %zu + length %d (%s)",
++	      n, umad_size(), length, strerror(errno));
+ 	if (!errno)
+ 		errno = EIO;
+ 	return -EIO;
+@@ -854,8 +950,8 @@
+ 		return n;
+ 	}
+ 
+-	DEBUG("read returned %zu > sizeof umad %zu + length %d (%m)",
+-	      mad->length - umad_size(), umad_size(), *length);
++	DEBUG("read returned %zu > sizeof umad %zu + length %d (%s)",
++	      mad->length - umad_size(), umad_size(), *length, strerror(errno));
+ 
+ 	*length = mad->length - umad_size();
+ 	if (!errno)
+@@ -911,8 +1007,9 @@
+ 		return req.id; 		/* return agentid */
+ 	}
+ 
+-	DEBUG("fd %d registering qp %d class 0x%x version %d oui %p failed: %m",
+-		fd, req.qpn, req.mgmt_class, req.mgmt_class_version, oui);
++	DEBUG("fd %d registering qp %d class 0x%x version %d oui %p failed: %s",
++		fd, req.qpn, req.mgmt_class, req.mgmt_class_version, oui,
++		strerror(errno));
+ 	return -EPERM;
+ }
+ 
+@@ -947,8 +1044,8 @@
+ 		return req.id; 		/* return agentid */
+ 	}
+ 
+-	DEBUG("fd %d registering qp %d class 0x%x version %d failed: %m",
+-		fd, qp, mgmt_class, mgmt_version);
++	DEBUG("fd %d registering qp %d class 0x%x version %d failed: %s",
++		fd, qp, mgmt_class, mgmt_version, strerror(errno));
+ 	return -EPERM;
+ }
+ 
+diff -r -u /tmp/814542/libibumad-1.1.7/Makefile.in libibumad-1.1.7/Makefile.in
+--- /tmp/814542/libibumad-1.1.7/Makefile.in	Thu Feb 28 00:58:51 2008
++++ libibumad-1.1.7/Makefile.in	Thu Oct  7 12:01:19 2010
+@@ -62,7 +62,7 @@
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man3dir)" \
+ 	"$(DESTDIR)$(libibumadincludedir)"
+-libLTLIBRARIES_INSTALL = $(INSTALL)
++libLTLIBRARIES_INSTALL = $(INSTALL) -m 755
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+ libibumad_la_LIBADD =
+ am_libibumad_la_OBJECTS = libibumad_la-umad.lo
+diff -r -u /tmp/814542/libibumad-1.1.7/configure libibumad-1.1.7/configure
+--- /tmp/814542/libibumad-1.1.7/configure	Thu Feb 28 00:58:52 2008
++++ libibumad-1.1.7/configure	Thu Sep 30 08:16:32 2010
+@@ -7754,6 +7754,7 @@
+  	esac ;;
+       esac
+       link_all_deplibs=yes
++      hardcode_libdir_flag_spec=
+       ;;
+ 
+     sunos4*)
Binary file usr/src/cmd/ofusr/libibumad/libibumad-1.1.7.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libibverbs/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,12 @@
+NAME:             libibverbs
+VERSION:          1.1.1
+DESCRIPTION:      Infiniband Open Fabrics libibverbs 
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/OFED/ofed-1.3/OFED-1.3.tgz/libibverbs-1.1.1.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/ofuv_lib
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
+                  libibverbs-1.1.1.tar.gz is part of the SPRMS in OFED-1.3.tgz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libibverbs/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,108 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.1	10/10/07 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+
+CPPFLAGS +=	"-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+
+CONFIGURE_OPTIONS +=	--disable-libcheck
+CONFIGURE_OPTIONS +=	--disable-static
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m32 -D_REENTRANT"
+
+# 64 bit has some of it's own "needs"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m64 -D_REENTRANT"
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN64)
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--libdir=$(CFGLIB64)
+
+# add flags to get at extra bits from other components' source trees
+CPPFLAGS +=	-I$(PWD)/../libmthca/libmthca-1.0.4/src
+CPPFLAGS +=	-I$(PWD)/../libmlx4/libmlx4-1.0/src
+CPPFLAGS +=	-I$(PWD)/../librdmacm/librdmacm-1.0.6/include
+
+# include devinfo for sysfs emulation
+LIBS +=	-lsocket -lnsl -ldevinfo
+
+COMMON_ENV +=	MAKE=$(GMAKE)
+
+BUILD_ENV +=		CPPFLAGS="$(CPPFLAGS)"
+BUILD_ENV +=		LIBS="$(LIBS)"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+all:		$(VER)/build-32/.built $(VER)/build-64/.built
+
+install:	$(VER)/build-32/.installed $(VER)/build-64/.installed
+	$(RM) $(ROOTBIN)/ibv_uc_pingpong $(ROOTBIN64)/ibv_devices \
+		$(ROOTBIN64)/ibv_devinfo $(ROOTBIN64)/ibv_asyncwatch \
+		$(ROOTBIN64)/ibv_rc_pingpong $(ROOTBIN64)/ibv_uc_pingpong \
+		$(ROOTBIN64)/ibv_ud_pingpong $(ROOTBIN64)/ibv_srq_pingpong \
+		$(ROOTMAN1)/ibv_uc_pingpong.1 \
+		$(ROOTMAN3)/ibv_reg_xrc_rcv_qp.3 \
+		$(ROOTMAN3)/ibv_create_xrc_srq.3 \
+		$(ROOTMAN3)/ibv_open_xrc_domain.3 \
+		$(ROOTMAN3)/ibv_close_xrc_domain.3 \
+		$(ROOTMAN3)/ibv_unreg_xrc_rcv_qp.3 \
+		$(ROOTMAN3)/ibv_query_xrc_rcv_qp.3 \
+		$(ROOTMAN3)/ibv_create_xrc_rcv_qp.3 \
+		$(ROOTMAN3)/ibv_modify_xrc_rcv_qp.3 \
+		$(ROOT)/usr/share/man/man7/verbs.7
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	(cd $(@D) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ../configure $(CONFIGURE_OPTIONS))
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(GTAR) zxpf solaris_compat.tar.gz
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libibverbs/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,1225 @@
+diff -r -u /tmp/846623/libibverbs-1.1.1/Makefile.am libibverbs-1.1.1/Makefile.am
+--- /tmp/846623/libibverbs-1.1.1/Makefile.am	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/Makefile.am	Thu Sep 30 14:43:33 2010
+@@ -4,12 +4,13 @@
+ 
+ AM_CFLAGS = -g -Wall -D_GNU_SOURCE
+ 
+-src_libibverbs_la_CFLAGS = $(AM_CFLAGS) -DIBV_CONFIG_DIR=\"$(sysconfdir)/libibverbs.d\"
++src_libibverbs_la_CFLAGS = $(AM_CFLAGS) -DIBV_CONFIG_DIR=\"$(datadir)/libibverbs.d\"
+ 
+ libibverbs_version_script = @LIBIBVERBS_VERSION_SCRIPT@
+ 
+ src_libibverbs_la_SOURCES = src/cmd.c src/compat-1_0.c src/device.c src/init.c \
+-			    src/marshall.c src/memory.c src/sysfs.c src/verbs.c
++			    src/marshall.c src/memory.c src/sysfs.c \
++			    src/verbs.c src/solaris_compatibility.c
+ src_libibverbs_la_LDFLAGS = -version-info 1 -export-dynamic \
+     $(libibverbs_version_script)
+ src_libibverbs_la_DEPENDENCIES = $(srcdir)/src/libibverbs.map
+@@ -36,7 +37,7 @@
+ 
+ libibverbsinclude_HEADERS = include/infiniband/arch.h include/infiniband/driver.h \
+     include/infiniband/kern-abi.h include/infiniband/opcode.h include/infiniband/verbs.h \
+-    include/infiniband/sa-kern-abi.h include/infiniband/sa.h include/infiniband/marshall.h
++    include/infiniband/sa-kern-abi.h include/infiniband/sa.h include/infiniband/marshall.h include/infiniband/ofa_solaris.h
+ 
+ man_MANS = man/ibv_asyncwatch.1 man/ibv_devices.1 man/ibv_devinfo.1   \
+     man/ibv_rc_pingpong.1 man/ibv_uc_pingpong.1 man/ibv_ud_pingpong.1 \
+@@ -63,7 +64,7 @@
+     debian/rules
+ 
+ EXTRA_DIST = include/infiniband/driver.h include/infiniband/kern-abi.h \
+-    include/infiniband/opcode.h include/infiniband/verbs.h include/infiniband/marshall.h \
++    include/infiniband/opcode.h include/infiniband/verbs.h include/infiniband/marshall.h include/infiniband/ofa_solaris.h \
+     include/infiniband/sa-kern-abi.h include/infiniband/sa.h \
+     src/ibverbs.h examples/pingpong.h \
+     src/libibverbs.map libibverbs.spec.in $(man_MANS)
+diff -r -u /tmp/846623/libibverbs-1.1.1/examples/asyncwatch.c libibverbs-1.1.1/examples/asyncwatch.c
+--- /tmp/846623/libibverbs-1.1.1/examples/asyncwatch.c	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/examples/asyncwatch.c	Thu Sep 30 08:16:32 2010
+@@ -35,8 +35,10 @@
+ #endif /* HAVE_CONFIG_H */
+ 
+ #include <stdio.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
+ #include <byteswap.h>
++#endif
+ 
+ #include <infiniband/verbs.h>
+ 
+diff -r -u /tmp/846623/libibverbs-1.1.1/examples/device_list.c libibverbs-1.1.1/examples/device_list.c
+--- /tmp/846623/libibverbs-1.1.1/examples/device_list.c	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/examples/device_list.c	Thu Sep 30 08:16:32 2010
+@@ -36,8 +36,10 @@
+ 
+ #include <stdio.h>
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
+ #include <byteswap.h>
++#endif
+ 
+ #include <infiniband/verbs.h>
+ #include <infiniband/arch.h>
+diff -r -u /tmp/846623/libibverbs-1.1.1/examples/devinfo.c libibverbs-1.1.1/examples/devinfo.c
+--- /tmp/846623/libibverbs-1.1.1/examples/devinfo.c	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/examples/devinfo.c	Thu Sep 30 14:43:38 2010
+@@ -41,8 +41,10 @@
+ #include <string.h>
+ #include <getopt.h>
+ #include <netinet/in.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
+ #include <byteswap.h>
++#endif
+ 
+ #include <infiniband/verbs.h>
+ #include <infiniband/driver.h>
+diff -r -u /tmp/846623/libibverbs-1.1.1/examples/pingpong.h libibverbs-1.1.1/examples/pingpong.h
+--- /tmp/846623/libibverbs-1.1.1/examples/pingpong.h	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/examples/pingpong.h	Thu Sep 30 14:43:40 2010
+@@ -34,6 +34,9 @@
+ #define IBV_PINGPONG_H
+ 
+ #include <infiniband/verbs.h>
++#if !(defined(__SVR4) && defined(__sun))
++#include <linux/types.h>
++#endif
+ 
+ enum ibv_mtu pp_mtu_to_enum(int mtu);
+ uint16_t pp_get_local_lid(struct ibv_context *context, int port);
+diff -r -u /tmp/846623/libibverbs-1.1.1/include/infiniband/arch.h libibverbs-1.1.1/include/infiniband/arch.h
+--- /tmp/846623/libibverbs-1.1.1/include/infiniband/arch.h	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/include/infiniband/arch.h	Thu Sep 30 14:43:35 2010
+@@ -34,18 +34,30 @@
+ #define INFINIBAND_ARCH_H
+ 
+ #include <stdint.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
+ #include <byteswap.h>
+ 
+ #if __BYTE_ORDER == __LITTLE_ENDIAN
++#ifndef htonll
+ static inline uint64_t htonll(uint64_t x) { return bswap_64(x); }
++#endif
++#ifndef ntohll
+ static inline uint64_t ntohll(uint64_t x) { return bswap_64(x); }
++#endif
+ #elif __BYTE_ORDER == __BIG_ENDIAN
++#ifndef htonll
+ static inline uint64_t htonll(uint64_t x) { return x; }
++#endif
++#ifndef ntohll
+ static inline uint64_t ntohll(uint64_t x) { return x; }
++#endif
+ #else
+ #error __BYTE_ORDER is neither __LITTLE_ENDIAN nor __BIG_ENDIAN
+ #endif
++#else
++#include <infiniband/ofa_solaris.h>
++#endif
+ 
+ /*
+  * Architecture-specific defines.  Currently, an architecture is
+diff -r -u /tmp/846623/libibverbs-1.1.1/include/infiniband/kern-abi.h libibverbs-1.1.1/include/infiniband/kern-abi.h
+--- /tmp/846623/libibverbs-1.1.1/include/infiniband/kern-abi.h	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/include/infiniband/kern-abi.h	Thu Sep 30 14:43:34 2010
+@@ -35,7 +35,11 @@
+ #ifndef KERN_ABI_H
+ #define KERN_ABI_H
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ #include <linux/types.h>
++#else
++#include <infiniband/ofa_solaris.h>
++#endif
+ 
+ /*
+  * This file must be kept in sync with the kernel's version of
+@@ -94,6 +98,10 @@
+ 	IB_USER_VERBS_CMD_QUERY_XRC_RCV_QP,
+ 	IB_USER_VERBS_CMD_REG_XRC_RCV_QP,
+ 	IB_USER_VERBS_CMD_UNREG_XRC_RCV_QP,
++#if defined(__SVR4) && defined(__sun)
++	IB_USER_VERBS_CMD_QUERY_GID,
++	IB_USER_VERBS_CMD_QUERY_PKEY
++#endif
+ };
+ 
+ /*
+@@ -141,7 +149,7 @@
+ 	__u16 in_words;
+ 	__u16 out_words;
+ 	__u64 response;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_get_context_resp {
+@@ -154,7 +162,7 @@
+ 	__u16 in_words;
+ 	__u16 out_words;
+ 	__u64 response;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_query_device_resp {
+@@ -208,7 +216,7 @@
+ 	__u64 response;
+ 	__u8  port_num;
+ 	__u8  reserved[7];
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_query_port_resp {
+@@ -234,18 +242,67 @@
+ 	__u8  reserved[3];
+ };
+ 
++#if defined(__SVR4) && defined(__sun)
++struct ibv_query_gid {
++	__u32 command;
++	__u16 in_words;
++	__u16 out_words;
++	__u64 response;
++	__u32 gid_index;
++	__u8  port_num;
++	__u8  reserved[3];
++        __u64 driver_data;
++};
++
++struct ibv_query_gid_resp {
++	__u8  gid[16];
++};
++
++struct ibv_query_pkey {
++	__u32 command;
++	__u16 in_words;
++	__u16 out_words;
++	__u64 response;
++	__u32 pkey_index;
++	__u8  port_num;
++	__u8  reserved[3];
++        __u64 driver_data;
++};
++
++struct ibv_query_pkey_resp {
++	__u16 pkey;
++	__u16 reserved;
++};
++#endif
++
+ struct ibv_alloc_pd {
+ 	__u32 command;
+ 	__u16 in_words;
+ 	__u16 out_words;
+ 	__u64 response;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
++#if defined(__SVR4) && defined(__sun)
++/*
++ * PD responses may pass opaque data to userspace drivers, we choose a value
++ * larger than what any HCA requires.
++ */
++#define SOL_UVERBS_PD_DATA_OUT_SIZE          24
++typedef __u64 ofuv_pd_drv_data_out_t[SOL_UVERBS_PD_DATA_OUT_SIZE];
++
+ struct ibv_alloc_pd_resp {
+ 	__u32 pd_handle;
++	__u32 reserved;
++	ofuv_pd_drv_data_out_t drv_out;
+ };
++#else
++struct ibv_alloc_pd_resp {
++	__u32 pd_handle;
++};
++#endif
+ 
++
+ struct ibv_dealloc_pd {
+ 	__u32 command;
+ 	__u16 in_words;
+@@ -263,7 +320,7 @@
+ 	__u64 hca_va;
+ 	__u32 pd_handle;
+ 	__u32 access_flags;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_reg_mr_resp {
+@@ -300,14 +357,30 @@
+ 	__u32 comp_vector;
+ 	__s32 comp_channel;
+ 	__u32 reserved;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
++#if defined(__SVR4) && defined(__sun)
++/*
++ * CQ responses pass opaque data to userspace drivers, we choose a value
++ * larger than what any HCA requires.
++ */
++#define SOL_UVERBS_CQ_DATA_OUT_SIZE          24
++typedef __u64 ofuv_cq_drv_data_out_t[SOL_UVERBS_CQ_DATA_OUT_SIZE];
++
+ struct ibv_create_cq_resp {
+ 	__u32 cq_handle;
+ 	__u32 cqe;
++	ofuv_cq_drv_data_out_t   drv_out;
+ };
++#else
++struct ibv_create_cq_resp {
++	__u32 cq_handle;
++	__u32 cqe;
++};
++#endif
+ 
++
+ struct ibv_kern_wc {
+ 	__u64  wr_id;
+ 	__u32  status;
+@@ -356,13 +429,15 @@
+ 	__u64 response;
+ 	__u32 cq_handle;
+ 	__u32 cqe;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_resize_cq_resp {
+ 	__u32 cqe;
+ 	__u32 reserved;
+-	__u64 driver_data[0];
++#if defined(__SVR4) && defined(__sun)
++        ofuv_cq_drv_data_out_t   drv_out;
++#endif
+ };
+ 
+ struct ibv_destroy_cq {
+@@ -456,9 +531,17 @@
+ 	__u8  qp_type;
+ 	__u8  is_srq;
+ 	__u8  reserved;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
++#if defined(__SVR4) && defined(__sun)
++/*
++ * QP responses pass opaque data to userspace drivers, we choose a value
++ * larger than what any HCA requires.
++ */
++#define SOL_UVERBS_QP_DATA_OUT_SIZE          24
++typedef __u64 ofuv_qp_drv_data_out_t[SOL_UVERBS_QP_DATA_OUT_SIZE];
++
+ struct ibv_create_qp_resp {
+ 	__u32 qp_handle;
+ 	__u32 qpn;
+@@ -468,7 +551,20 @@
+ 	__u32 max_recv_sge;
+ 	__u32 max_inline_data;
+ 	__u32 reserved;
++	ofuv_qp_drv_data_out_t drv_out;
+ };
++#else
++struct ibv_create_qp_resp {
++	__u32 qp_handle;
++	__u32 qpn;
++	__u32 max_send_wr;
++	__u32 max_recv_wr;
++	__u32 max_send_sge;
++	__u32 max_recv_sge;
++	__u32 max_inline_data;
++	__u32 reserved;
++};
++#endif
+ 
+ struct ibv_qp_dest {
+ 	__u8  dgid[16];
+@@ -492,7 +588,7 @@
+ 	__u64 response;
+ 	__u32 qp_handle;
+ 	__u32 attr_mask;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_query_qp_resp {
+@@ -526,7 +622,7 @@
+ 	__u8  alt_timeout;
+ 	__u8  sq_sig_all;
+ 	__u8  reserved[5];
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_modify_qp {
+@@ -559,7 +655,7 @@
+ 	__u8  alt_port_num;
+ 	__u8  alt_timeout;
+ 	__u8  reserved[2];
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_destroy_qp {
+@@ -590,7 +686,7 @@
+ 	__u8  sq_sig_all;
+ 	__u8  qp_type;
+ 	__u8  reserved[2];
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_create_xrc_rcv_qp_resp {
+@@ -629,7 +725,7 @@
+ 	__u8  alt_port_num;
+ 	__u8  alt_timeout;
+ 	__u8  reserved[2];
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_query_xrc_rcv_qp {
+@@ -640,7 +736,7 @@
+ 	__u32 xrc_domain_handle;
+ 	__u32 qp_num;
+ 	__u32 attr_mask;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_reg_xrc_rcv_qp {
+@@ -649,7 +745,7 @@
+ 	__u16 out_words;
+ 	__u32 xrc_domain_handle;
+ 	__u32 qp_num;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_unreg_xrc_rcv_qp {
+@@ -658,7 +754,7 @@
+ 	__u16 out_words;
+ 	__u32 xrc_domain_handle;
+ 	__u32 qp_num;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_kern_send_wr {
+@@ -773,7 +869,7 @@
+ 	__u32 qp_handle;
+ 	__u16 mlid;
+ 	__u16 reserved;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_detach_mcast {
+@@ -784,7 +880,7 @@
+ 	__u32 qp_handle;
+ 	__u16 mlid;
+ 	__u16 reserved;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_create_srq {
+@@ -797,7 +893,7 @@
+ 	__u32 max_wr;
+ 	__u32 max_sge;
+ 	__u32 srq_limit;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_create_xrc_srq {
+@@ -812,16 +908,34 @@
+ 	__u32 srq_limit;
+ 	__u32 xrcd_handle;
+ 	__u32 xrc_cq;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
++#if defined(__SVR4) && defined(__sun)
++/*
++ * QP responses pass opaque data to userspace drivers, we choose a value
++ * larger than what any HCA requires.
++ */
++#define SOL_UVERBS_SRQ_DATA_OUT_SIZE          24
++typedef __u64 ofuv_srq_drv_data_out_t[SOL_UVERBS_SRQ_DATA_OUT_SIZE];
++
+ struct ibv_create_srq_resp {
+ 	__u32 srq_handle;
+ 	__u32 max_wr;
+ 	__u32 max_sge;
+ 	__u32 reserved;
++	ofuv_srq_drv_data_out_t drv_out;
+ };
++#else
++struct ibv_create_srq_resp {
++	__u32 srq_handle;
++	__u32 max_wr;
++	__u32 max_sge;
++	__u32 reserved;
++};
++#endif
+ 
++
+ struct ibv_modify_srq {
+ 	__u32 command;
+ 	__u16 in_words;
+@@ -830,7 +944,7 @@
+ 	__u32 attr_mask;
+ 	__u32 max_wr;
+ 	__u32 srq_limit;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_query_srq {
+@@ -840,7 +954,7 @@
+ 	__u64 response;
+ 	__u32 srq_handle;
+ 	__u32 reserved;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_query_srq_resp {
+@@ -870,7 +984,7 @@
+ 	__u64 response;
+ 	__u32 fd;
+ 	__u32 oflags;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_open_xrc_domain_resp {
+@@ -883,7 +997,7 @@
+ 	__u16 out_words;
+ 	__u64 response;
+ 	__u32 xrcd_handle;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ /*
+@@ -972,7 +1086,7 @@
+ 	__u16 out_words;
+ 	__u64 response;
+ 	__u64 cq_fd_tab;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_create_cq_v2 {
+@@ -983,7 +1097,7 @@
+ 	__u64 user_handle;
+ 	__u32 cqe;
+ 	__u32 event_handler;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_modify_srq_v3 {
+@@ -996,7 +1110,7 @@
+ 	__u32 max_sge;
+ 	__u32 srq_limit;
+ 	__u32 reserved;
+-	__u64 driver_data[0];
++        __u64 driver_data[0];
+ };
+ 
+ struct ibv_create_qp_resp_v3 {
+diff -r -u /tmp/846623/libibverbs-1.1.1/include/infiniband/sa-kern-abi.h libibverbs-1.1.1/include/infiniband/sa-kern-abi.h
+--- /tmp/846623/libibverbs-1.1.1/include/infiniband/sa-kern-abi.h	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/include/infiniband/sa-kern-abi.h	Thu Sep 30 14:43:35 2010
+@@ -33,7 +33,11 @@
+ #ifndef INFINIBAND_SA_KERN_ABI_H
+ #define INFINIBAND_SA_KERN_ABI_H
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ #include <linux/types.h>
++#else
++#include <infiniband/ofa_solaris.h>
++#endif
+ 
+ /*
+  * Obsolete, deprecated names.  Will be removed in libibverbs 1.1.
+diff -r -u /tmp/846623/libibverbs-1.1.1/include/infiniband/verbs.h libibverbs-1.1.1/include/infiniband/verbs.h
+--- /tmp/846623/libibverbs-1.1.1/include/infiniband/verbs.h	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/include/infiniband/verbs.h	Thu Sep 30 08:16:32 2010
+@@ -1,4 +1,6 @@
+ /*
++ * Copyright � 2008 Sun Microsystems, Inc. All rights reserved
++ * Use is subject to license terms.
+  * Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
+  * Copyright (c) 2004 Intel Corporation.  All rights reserved.
+  * Copyright (c) 2005, 2006, 2007 Cisco Systems, Inc.  All rights reserved.
+@@ -38,6 +40,9 @@
+ 
+ #include <stdint.h>
+ #include <pthread.h>
++#if defined(__SVR4) && defined(__sun)
++#include <infiniband/ofa_solaris.h>
++#endif
+ 
+ #ifdef __cplusplus
+ #  define BEGIN_C_DECLS extern "C" {
+@@ -286,7 +291,8 @@
+ 	IBV_ACCESS_REMOTE_WRITE		= (1<<1),
+ 	IBV_ACCESS_REMOTE_READ		= (1<<2),
+ 	IBV_ACCESS_REMOTE_ATOMIC	= (1<<3),
+-	IBV_ACCESS_MW_BIND		= (1<<4)
++	IBV_ACCESS_MW_BIND		= (1<<4),
++	IBV_ACCESS_SO			= (1<<5)	/* MR with Strong Order */
+ };
+ 
+ struct ibv_pd {
+@@ -735,6 +741,13 @@
+ 	struct ibv_device      *device;
+ 	struct ibv_context_ops	ops;
+ 	int			cmd_fd;
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * Solaris user libraries use this FD for mmap operations. It is an
++	 * open to the underlying kernel hardware specific driver.
++	 */
++	int                     mmap_fd;
++#endif
+ 	int			async_fd;
+ 	int			num_comp_vectors;
+ 	pthread_mutex_t		mutex;
+diff -r -u /tmp/846623/libibverbs-1.1.1/src/cmd.c libibverbs-1.1.1/src/cmd.c
+--- /tmp/846623/libibverbs-1.1.1/src/cmd.c	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/src/cmd.c	Fri Oct  1 03:14:18 2010
+@@ -42,9 +42,35 @@
+ #include <errno.h>
+ #include <alloca.h>
+ #include <string.h>
++#if defined(__SVR4) && defined(__sun)
++#include <fcntl.h>
++#include <sys/stat.h>
++#include <sys/sysmacros.h>
++#endif
+ 
+ #include "ibverbs.h"
+ 
++#if defined(__SVR4) && defined(__sun)
++extern int ibv_open_mmap_driver(char *dev_name);
++
++/*
++ * Event file creation for GET_CONTEXT & CREATE_COMP_CHANNEL :
++ * 	Solaris Uverbs driver supports creation of event file
++ * 	from the open(2) system call only. Event file will not
++ * 	be created by the write(2) syscall, for the above commands
++ *	as in Linux OFED.
++ *
++ * Sequence of operations for GET_CONTEXT &  CREATE_COMP_CHANNEL :
++ *	event_fd = open(UVERBS_EVENT_FILE, O_RDWR);
++ *	fstat(event_fd, &fstat_buf);
++ *	NOTE : Minor number of event file passed to driver 
++ *	cmd.resp.fd = minor(fstat_buf.st_rdev);
++ *	write(verbs_fd);
++ *	NOTE : Initialize the fd to one got by opening event file
++ *	cmd.resp.fd = event_fd;
++ */
++#endif
++
+ static int ibv_cmd_get_context_v2(struct ibv_context *context,
+ 				  struct ibv_get_context *new_cmd,
+ 				  size_t new_cmd_size,
+@@ -55,6 +81,10 @@
+ 	struct ibv_get_context_v2 *cmd;
+ 	size_t cmd_size;
+ 	uint32_t cq_fd;
++#if defined(__SVR4) && defined(__sun)
++	int			event_fd;
++	struct stat		fstat_buf;
++#endif
+ 
+ 	t = malloc(sizeof *t);
+ 	if (!t)
+@@ -67,9 +97,20 @@
+ 
+ 	IBV_INIT_CMD_RESP(cmd, cmd_size, GET_CONTEXT, resp, resp_size);
+ 	cmd->cq_fd_tab = (uintptr_t) &cq_fd;
++#if defined(__SVR4) && defined(__sun)
++	event_fd = open("/devices/ib/sol_uverbs@0:event", O_RDWR);
++	if (event_fd < 0)
++		return (errno);	
++	if (fstat(event_fd, &fstat_buf))
++		return (errno);
++	resp->async_fd = minor(fstat_buf.st_rdev);
++#endif
+ 
+ 	if (write(context->cmd_fd, cmd, cmd_size) != cmd_size)
+ 		return errno;
++#if defined(__SVR4) && defined(__sun)
++	resp->async_fd = event_fd;
++#endif
+ 
+ 	VALGRIND_MAKE_MEM_DEFINED(resp, resp_size);
+ 
+@@ -87,13 +128,28 @@
+ 			size_t cmd_size, struct ibv_get_context_resp *resp,
+ 			size_t resp_size)
+ {
++#if defined(__SVR4) && defined(__sun)
++	int			event_fd;
++	struct stat		fstat_buf;
++#endif
+ 	if (abi_ver <= 2)
+ 		return ibv_cmd_get_context_v2(context, cmd, cmd_size, resp, resp_size);
+ 
+ 	IBV_INIT_CMD_RESP(cmd, cmd_size, GET_CONTEXT, resp, resp_size);
++#if defined(__SVR4) && defined(__sun)
++	event_fd = open("/devices/ib/sol_uverbs@0:event", O_RDWR);
++	if (event_fd < 0)
++		return (errno);	
++	if (fstat(event_fd, &fstat_buf))
++		return (errno);
++	resp->async_fd = minor(fstat_buf.st_rdev);
++#endif
+ 
+ 	if (write(context->cmd_fd, cmd, cmd_size) != cmd_size)
+ 		return errno;
++#if defined(__SVR4) && defined(__sun)
++	resp->async_fd = event_fd;
++#endif
+ 
+ 	VALGRIND_MAKE_MEM_DEFINED(resp, resp_size);
+ 
+@@ -100,6 +156,16 @@
+ 	context->async_fd         = resp->async_fd;
+ 	context->num_comp_vectors = resp->num_comp_vectors;
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * Open the underlying kernel hardware driver that will
++	 * provide the mmap function for this context.
++	 */
++	context->mmap_fd = ibv_open_mmap_driver(context->device->dev_name);
++	if (context->mmap_fd < 0) {
++		fprintf(stderr, PFX "ibv_cmd_get_context: Mmap open failed\n");
++	}
++#endif
+ 	return 0;
+ }
+ 
+@@ -314,7 +380,19 @@
+ 	cmd->user_handle   = (uintptr_t) cq;
+ 	cmd->cqe           = cqe;
+ 	cmd->comp_vector   = comp_vector;
++#if defined(__SVR4) && defined(__sun)
++	if (channel) {
++		struct stat	fstat_buf;
++
++		if (fstat(channel->fd, &fstat_buf))
++			return (errno);
++		else
++			cmd->comp_channel = minor(fstat_buf.st_rdev);
++	} else 
++		cmd->comp_channel = 0;
++#else
+ 	cmd->comp_channel  = channel ? channel->fd : -1;
++#endif
+ 	cmd->reserved      = 0;
+ 
+ 	if (write(context->cmd_fd, cmd, cmd_size) != cmd_size)
+@@ -1403,5 +1481,3 @@
+ 		return errno;
+ 	return 0;
+ }
+-
+-
+diff -r -u /tmp/846623/libibverbs-1.1.1/src/device.c libibverbs-1.1.1/src/device.c
+--- /tmp/846623/libibverbs-1.1.1/src/device.c	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/src/device.c	Thu Sep 30 14:43:35 2010
+@@ -35,6 +35,7 @@
+ #  include <config.h>
+ #endif /* HAVE_CONFIG_H */
+ 
++
+ #include <stdio.h>
+ #include <netinet/in.h>
+ #include <sys/types.h>
+@@ -119,8 +120,13 @@
+ 	int cmd_fd;
+ 	struct ibv_context *context;
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 	if (asprintf(&devpath, "/dev/infiniband/%s", device->dev_name) < 0)
+ 		return NULL;
++#else
++	if (asprintf(&devpath, "/devices/ib/%s", device->dev_name) < 0)
++		return NULL;
++#endif
+ 
+ 	/*
+ 	 * We'll only be doing writes, but we need O_RDWR in case the
+@@ -154,6 +160,9 @@
+ 	int async_fd = context->async_fd;
+ 	int cmd_fd   = context->cmd_fd;
+ 	int cq_fd    = -1;
++#if defined(__SVR4) && defined(__sun)
++	int mmap_fd   = context->mmap_fd;
++#endif
+ 
+ 	if (abi_ver <= 2) {
+ 		struct ibv_abi_compat_v2 *t = context->abi_compat;
+@@ -162,7 +171,11 @@
+ 	}
+ 
+ 	context->device->ops.free_context(context);
+-
++#if defined(__SVR4) && defined(__sun)
++	if (mmap_fd > 0) {
++		close(mmap_fd);
++	}
++#endif
+ 	close(async_fd);
+ 	close(cmd_fd);
+ 	if (abi_ver <= 2)
+diff -r -u /tmp/846623/libibverbs-1.1.1/src/ibverbs.h libibverbs-1.1.1/src/ibverbs.h
+--- /tmp/846623/libibverbs-1.1.1/src/ibverbs.h	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/src/ibverbs.h	Thu Sep 30 14:43:34 2010
+@@ -34,6 +34,7 @@
+ #ifndef IB_VERBS_H
+ #define IB_VERBS_H
+ 
++
+ #include <pthread.h>
+ 
+ #include <infiniband/driver.h>
+@@ -52,7 +53,12 @@
+ #  define VALGRIND_MAKE_MEM_DEFINED(addr,len)
+ #endif
+ 
++#if defined(__SVR4) && defined(__sun)
++#define HIDDEN
++#undef HAVE_SYMVER_SUPPORT
++#else
+ #define HIDDEN		__attribute__((visibility ("hidden")))
++#endif
+ 
+ #define INIT		__attribute__((constructor))
+ #define FINI		__attribute__((destructor))
+diff -r -u /tmp/846623/libibverbs-1.1.1/src/init.c libibverbs-1.1.1/src/init.c
+--- /tmp/846623/libibverbs-1.1.1/src/init.c	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/src/init.c	Thu Sep 30 08:16:32 2010
+@@ -78,28 +78,50 @@
+ 
+ static void find_sysfs_devs(void)
+ {
++#if defined(__SVR4) && defined(__sun)
++	char device_path[IBV_SYSFS_PATH_MAX];
++#endif
+ 	char class_path[IBV_SYSFS_PATH_MAX];
+ 	DIR *class_dir;
++
+ 	struct dirent *dent;
+ 	struct ibv_sysfs_dev *sysfs_dev = NULL;
+ 	char value[8];
+ 
++#if defined(__SVR4) && defined(__sun)
++	snprintf(device_path, sizeof device_path, "/devices/ib");
++#endif
+ 	snprintf(class_path, sizeof class_path, "%s/class/infiniband_verbs",
+ 		 ibv_get_sysfs_path());
+ 
+-	class_dir = opendir(class_path);
++	class_dir = opendir(device_path);
+ 	if (!class_dir) {
++#if defined(__SVR4) && defined(__sun)
++		fprintf(stderr, PFX "Fatal: couldn't open IB devices "
++			"directory '%s'.\n", device_path);
++#else
+ 		fprintf(stderr, PFX "Fatal: couldn't open sysfs class "
+-			"directory '%s'.\n", class_path);
++			"directory '%s'.\n", class_dir);
++#endif
+ 		return;
+ 	}
+ 
+ 	while ((dent = readdir(class_dir))) {
++#if defined(__SVR4) && defined(__sun)
++		int adapter_num;
++#else
+ 		struct stat buf;
++#endif
+ 
+ 		if (dent->d_name[0] == '.')
+ 			continue;
+ 
++#if defined(__SVR4) && defined(__sun)
++		if (sscanf(dent->d_name, "sol_uverbs@0:uverbs%d",
++		    &adapter_num) != 1)
++			continue;
++#endif
++
+ 		if (!sysfs_dev)
+ 			sysfs_dev = malloc(sizeof *sysfs_dev);
+ 		if (!sysfs_dev) {
+@@ -111,6 +133,7 @@
+ 		snprintf(sysfs_dev->sysfs_path, sizeof sysfs_dev->sysfs_path,
+ 			 "%s/%s", class_path, dent->d_name);
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 		if (stat(sysfs_dev->sysfs_path, &buf)) {
+ 			fprintf(stderr, PFX "Warning: couldn't stat '%s'.\n",
+ 				sysfs_dev->sysfs_path);
+@@ -119,15 +142,17 @@
+ 
+ 		if (!S_ISDIR(buf.st_mode))
+ 			continue;
++#endif
+ 
+ 		snprintf(sysfs_dev->sysfs_name, sizeof sysfs_dev->sysfs_name,
+ 			"%s", dent->d_name);
+ 
++
+ 		if (ibv_read_sysfs_file(sysfs_dev->sysfs_path, "ibdev",
+-					sysfs_dev->ibdev_name,
+-					sizeof sysfs_dev->ibdev_name) < 0) {
++		                        sysfs_dev->ibdev_name,
++		                        sizeof sysfs_dev->ibdev_name) < 0) {
+ 			fprintf(stderr, PFX "Warning: no ibdev class attr for '%s'.\n",
+-				dent->d_name);
++			        dent->d_name);
+ 			free(sysfs_dev);
+ 			continue;
+ 		}
+@@ -144,8 +169,8 @@
+ 		else
+ 			sysfs_dev->abi_ver = 0;
+ 
+-		sysfs_dev_list = sysfs_dev;
+-		sysfs_dev      = NULL;
++		sysfs_dev_list         = sysfs_dev;
++		sysfs_dev              = NULL;
+ 	}
+ 
+ 	if (sysfs_dev)
+@@ -409,6 +434,7 @@
+ 
+ static void check_memlock_limit(void)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	struct rlimit rlim;
+ 
+ 	if (!geteuid())
+@@ -423,6 +449,7 @@
+ 		fprintf(stderr, PFX "Warning: RLIMIT_MEMLOCK is %lu bytes.\n"
+ 			"    This will severely limit memory registrations.\n",
+ 			rlim.rlim_cur);
++#endif
+ }
+ 
+ static void add_device(struct ibv_device *dev,
+diff -r -u /tmp/846623/libibverbs-1.1.1/src/kern_abi.h libibverbs-1.1.1/src/kern_abi.h
+--- /tmp/846623/libibverbs-1.1.1/src/kern_abi.h	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/src/kern_abi.h	Thu Sep 30 08:16:32 2010
+@@ -33,7 +33,11 @@
+ #ifndef KERN_ABI_H
+ #define KERN_ABI_H
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ #include <linux/types.h>
++#else
++#include <infiniband/ofa_solaris.h>
++#endif
+ 
+ /*
+  * Increment this value if any changes that break userspace ABI
+diff -r -u /tmp/846623/libibverbs-1.1.1/src/sysfs.c libibverbs-1.1.1/src/sysfs.c
+--- /tmp/846623/libibverbs-1.1.1/src/sysfs.c	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/src/sysfs.c	Thu Sep 30 14:43:36 2010
+@@ -41,9 +41,12 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <string.h>
+-
+ #include "ibverbs.h"
+ 
++#if defined(__SVR4) && defined(__sun)
++int sol_read_sysfs_file(char *path, char *buf, size_t size);
++#endif
++
+ static char *sysfs_path;
+ 
+ const char *ibv_get_sysfs_path(void)
+@@ -75,16 +78,25 @@
+ 	return sysfs_path;
+ }
+ 
++
+ int ibv_read_sysfs_file(const char *dir, const char *file,
+ 			char *buf, size_t size)
+ {
+ 	char *path;
++#if !(defined(__SVR4) && defined(__sun))
+ 	int fd;
++#endif
+ 	int len;
+ 
+ 	if (asprintf(&path, "%s/%s", dir, file) < 0)
+ 		return -1;
+ 
++#if defined(__SVR4) && defined(__sun)
++	len = sol_read_sysfs_file(path, buf, size);
++
++	if (len < 0)
++		free(path);
++#else
+ 	fd = open(path, O_RDONLY);
+ 	if (fd < 0) {
+ 		free(path);
+@@ -98,6 +110,7 @@
+ 
+ 	if (len > 0 && buf[len - 1] == '\n')
+ 		buf[--len] = '\0';
++#endif
+ 
+ 	return len;
+ }
+diff -r -u /tmp/846623/libibverbs-1.1.1/src/verbs.c libibverbs-1.1.1/src/verbs.c
+--- /tmp/846623/libibverbs-1.1.1/src/verbs.c	Thu Feb 28 00:56:15 2008
++++ libibverbs-1.1.1/src/verbs.c	Thu Sep 30 08:16:32 2010
+@@ -35,6 +35,7 @@
+ #  include <config.h>
+ #endif /* HAVE_CONFIG_H */
+ 
++
+ #include <stdio.h>
+ #include <netinet/in.h>
+ #include <unistd.h>
+@@ -41,6 +42,11 @@
+ #include <stdlib.h>
+ #include <errno.h>
+ #include <string.h>
++#if defined(__SVR4) && defined(__sun)
++#include <fcntl.h>
++#include <sys/stat.h>
++#include <sys/sysmacros.h>
++#endif
+ 
+ #include "ibverbs.h"
+ 
+@@ -93,6 +99,26 @@
+ int __ibv_query_gid(struct ibv_context *context, uint8_t port_num,
+ 		    int index, union ibv_gid *gid)
+ {
++#if defined(__SVR4) && defined(__sun)
++	struct ibv_query_gid          cmd;
++	struct ibv_query_gid_resp     resp;
++
++	/*
++	 * Not exported via sysfs, use uverbs command.
++	 */
++	if (!context || !gid) 
++		return -1;
++
++	IBV_INIT_CMD_RESP(&cmd, sizeof cmd, QUERY_GID, &resp, sizeof resp);
++	cmd.gid_index = index;
++	cmd.port_num  = port_num;
++
++	if (write(context->cmd_fd, &cmd, sizeof cmd) != sizeof cmd)
++		return -1;
++
++	memcpy(gid, resp.gid, sizeof resp.gid);	
++	return 0;
++#else
+ 	char name[24];
+ 	char attr[41];
+ 	uint16_t val;
+@@ -110,8 +136,8 @@
+ 		gid->raw[i * 2    ] = val >> 8;
+ 		gid->raw[i * 2 + 1] = val & 0xff;
+ 	}
+-
+ 	return 0;
++#endif
+ }
+ default_symver(__ibv_query_gid, ibv_query_gid);
+ 
+@@ -118,6 +144,26 @@
+ int __ibv_query_pkey(struct ibv_context *context, uint8_t port_num,
+ 		     int index, uint16_t *pkey)
+ {
++#if defined(__SVR4) && defined(__sun)
++	struct ibv_query_pkey         cmd;
++	struct ibv_query_pkey_resp    resp;
++
++	/*
++	 * Not exported via sysfs, use uverbs command.
++	 */
++	if (!context || !pkey) 
++		return -1;
++
++	IBV_INIT_CMD_RESP(&cmd, sizeof cmd, QUERY_PKEY, &resp, sizeof resp);
++	cmd.pkey_index = index;
++	cmd.port_num   = port_num;
++
++	if (write(context->cmd_fd, &cmd, sizeof cmd) != sizeof cmd)
++		return -1;
++
++	*pkey = resp.pkey;
++	return 0;
++#else
+ 	char name[24];
+ 	char attr[8];
+ 	uint16_t val;
+@@ -133,6 +179,7 @@
+ 
+ 	*pkey = htons(val);
+ 	return 0;
++#endif
+ }
+ default_symver(__ibv_query_pkey, ibv_query_pkey);
+ 
+@@ -212,6 +259,10 @@
+ 	struct ibv_comp_channel            *channel;
+ 	struct ibv_create_comp_channel      cmd;
+ 	struct ibv_create_comp_channel_resp resp;
++#if defined(__SVR4) && defined(__sun)
++	int		event_fd;
++	struct stat	fstat_buf;
++#endif
+ 
+ 	if (abi_ver <= 2)
+ 		return ibv_create_comp_channel_v2(context);
+@@ -221,10 +272,29 @@
+ 		return NULL;
+ 
+ 	IBV_INIT_CMD_RESP(&cmd, sizeof cmd, CREATE_COMP_CHANNEL, &resp, sizeof resp);
++#if defined(__SVR4) && defined(__sun)
++	event_fd = open("/devices/ib/sol_uverbs@0:event", O_RDWR);
++	if (event_fd < 0) {
++		free(channel);
++		return NULL;
++	}
++
++	if (fstat(event_fd, &fstat_buf)) {
++		free(channel);
++		return NULL;
++	}
++	resp.fd = minor(fstat_buf.st_rdev);
++#endif
+ 	if (write(context->cmd_fd, &cmd, sizeof cmd) != sizeof cmd) {
++#if defined(__SVR4) && defined(__sun)
++		close(event_fd);
++#endif
+ 		free(channel);
+ 		return NULL;
+ 	}
++#if defined(__SVR4) && defined(__sun)
++	resp.fd = event_fd;
++#endif
+ 
+ 	channel->context = context;
+ 	channel->fd      = resp.fd;
+diff -r -u /tmp/846623/libibverbs-1.1.1/Makefile.in libibverbs-1.1.1/Makefile.in
+--- /tmp/846623/libibverbs-1.1.1/Makefile.in	Thu Feb 28 00:56:24 2008
++++ libibverbs-1.1.1/Makefile.in	Thu Oct  7 12:09:24 2010
+@@ -70,7 +70,7 @@
+ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
+ 	"$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" \
+ 	"$(DESTDIR)$(man7dir)" "$(DESTDIR)$(libibverbsincludedir)"
+-libLTLIBRARIES_INSTALL = $(INSTALL)
++libLTLIBRARIES_INSTALL = $(INSTALL) -m 755
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+ src_libibverbs_la_LIBADD =
+ am_src_libibverbs_la_OBJECTS = src_libibverbs_la-cmd.lo \
+@@ -77,10 +77,11 @@
+ 	src_libibverbs_la-compat-1_0.lo src_libibverbs_la-device.lo \
+ 	src_libibverbs_la-init.lo src_libibverbs_la-marshall.lo \
+ 	src_libibverbs_la-memory.lo src_libibverbs_la-sysfs.lo \
+-	src_libibverbs_la-verbs.lo
++	src_libibverbs_la-verbs.lo \
++	src_libibverbs_la-solaris.lo
+ src_libibverbs_la_OBJECTS = $(am_src_libibverbs_la_OBJECTS)
+ am__dirstamp = $(am__leading_dot)dirstamp
+-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
++binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -m 755
+ PROGRAMS = $(bin_PROGRAMS)
+ am_examples_ibv_asyncwatch_OBJECTS = asyncwatch.$(OBJEXT)
+ examples_ibv_asyncwatch_OBJECTS =  \
+@@ -264,10 +265,11 @@
+ INCLUDES = -I$(srcdir)/include
+ lib_LTLIBRARIES = src/libibverbs.la
+ AM_CFLAGS = -g -Wall -D_GNU_SOURCE
+-src_libibverbs_la_CFLAGS = $(AM_CFLAGS) -DIBV_CONFIG_DIR=\"$(sysconfdir)/libibverbs.d\"
++src_libibverbs_la_CFLAGS = $(AM_CFLAGS) -DIBV_CONFIG_DIR=\"$(datadir)/libibverbs.d\"
+ libibverbs_version_script = @LIBIBVERBS_VERSION_SCRIPT@
+ src_libibverbs_la_SOURCES = src/cmd.c src/compat-1_0.c src/device.c src/init.c \
+-			    src/marshall.c src/memory.c src/sysfs.c src/verbs.c
++			    src/marshall.c src/memory.c src/sysfs.c \
++			    src/solaris_compatability src/verbs.c
+ 
+ src_libibverbs_la_LDFLAGS = -version-info 1 -export-dynamic \
+     $(libibverbs_version_script)
+@@ -289,7 +291,7 @@
+ examples_ibv_asyncwatch_LDADD = $(top_builddir)/src/libibverbs.la
+ libibverbsincludedir = $(includedir)/infiniband
+ libibverbsinclude_HEADERS = include/infiniband/arch.h include/infiniband/driver.h \
+-    include/infiniband/kern-abi.h include/infiniband/opcode.h include/infiniband/verbs.h \
++    include/infiniband/kern-abi.h include/infiniband/opcode.h include/infiniband/verbs.h include/infiniband/ofa_solaris.h \
+     include/infiniband/sa-kern-abi.h include/infiniband/sa.h include/infiniband/marshall.h
+ 
+ man_MANS = man/ibv_asyncwatch.1 man/ibv_devices.1 man/ibv_devinfo.1   \
+@@ -317,7 +319,7 @@
+     debian/rules
+ 
+ EXTRA_DIST = include/infiniband/driver.h include/infiniband/kern-abi.h \
+-    include/infiniband/opcode.h include/infiniband/verbs.h include/infiniband/marshall.h \
++    include/infiniband/opcode.h include/infiniband/verbs.h include/infiniband/marshall.h include/infiniband/ofa_solaris.h\
+     include/infiniband/sa-kern-abi.h include/infiniband/sa.h \
+     src/ibverbs.h examples/pingpong.h \
+     src/libibverbs.map libibverbs.spec.in $(man_MANS)
+@@ -483,6 +485,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/src_libibverbs_la-memory.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/src_libibverbs_la-sysfs.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/src_libibverbs_la-verbs.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/src_libibverbs_la-solaris.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srq_pingpong.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uc_pingpong.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ud_pingpong.Po@am__quote@
+@@ -564,6 +567,14 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_libibverbs_la_CFLAGS) $(CFLAGS) -c -o src_libibverbs_la-verbs.lo `test -f 'src/verbs.c' || echo '$(srcdir)/'`src/verbs.c
+ 
++
++src_libibverbs_la-solaris.lo: src/solaris_compatibility.c
++@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_libibverbs_la_CFLAGS) $(CFLAGS) -MT src_libibverbs_la-solaris.lo -MD -MP -MF "$(DEPDIR)/src_libibverbs_la-solaris.Tpo" -c -o src_libibverbs_la-solaris.lo `test -f 'src/solaris_compatibility.c' || echo '$(srcdir)/'`src/solaris_compatibility.c; \
++@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/src_libibverbs_la-solaris.Tpo" "$(DEPDIR)/src_libibverbs_la-solaris.Plo"; else rm -f "$(DEPDIR)/src_libibverbs_la-solaris.Tpo"; exit 1; fi
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/solaris_compatibility.c' object='src_libibverbs_la-solaris.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_libibverbs_la_CFLAGS) $(CFLAGS) -c -o src_libibverbs_la-solaris.lo `test -f 'src/solaris_compatibility.c' || echo '$(srcdir)/'`src/solaris_compatibility.c
++
+ asyncwatch.o: examples/asyncwatch.c
+ @am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT asyncwatch.o -MD -MP -MF "$(DEPDIR)/asyncwatch.Tpo" -c -o asyncwatch.o `test -f 'examples/asyncwatch.c' || echo '$(srcdir)/'`examples/asyncwatch.c; \
+ @am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/asyncwatch.Tpo" "$(DEPDIR)/asyncwatch.Po"; else rm -f "$(DEPDIR)/asyncwatch.Tpo"; exit 1; fi
+diff -r -u /tmp/846623/libibverbs-1.1.1/configure libibverbs-1.1.1/configure
+--- /tmp/846623/libibverbs-1.1.1/configure	Thu Feb 28 00:56:24 2008
++++ libibverbs-1.1.1/configure	Thu Sep 30 08:16:32 2010
+@@ -7605,6 +7605,7 @@
+  	esac ;;
+       esac
+       link_all_deplibs=yes
++      hardcode_libdir_flag_spec=
+       ;;
+ 
+     sunos4*)
Binary file usr/src/cmd/ofusr/libibverbs/libibverbs-1.1.1.tar.gz has changed
Binary file usr/src/cmd/ofusr/libibverbs/solaris_compat.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libmlx4/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,12 @@
+NAME:             libmlx4
+VERSION:          1.0
+DESCRIPTION:      Infiniband Open Fabrics libmlx4
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/OFED/ofed-1.3/OFED-1.3.tgz/libmlx4-1.0.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/ofuv_lib
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
+                  libmlx4-1.0.tar.gz is part of the SPRMS in OFED-1.3.tgz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libmlx4/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,92 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.1	10/10/07 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+
+CPPFLAGS +=	"-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+
+CONFIGURE_OPTIONS +=	--disable-libcheck
+CONFIGURE_OPTIONS +=	--disable-static
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m32 -D_REENTRANT"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_LIBRARY_PATH="$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB)"
+
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m64 -D_REENTRANT"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LD_LIBRARY_PATH="$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN64)
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--libdir=$(CFGLIB64)
+
+CPPFLAGS +=	-I$(ROOT)/usr/include
+
+COMMON_ENV +=	MAKE=$(GMAKE)
+
+BUILD_ENV +=		CPPFLAGS="$(CPPFLAGS)"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+all:		$(VER)/build-32/.built $(VER)/build-64/.built
+
+install:	$(VER)/build-32/.installed $(VER)/build-64/.installed
+	$(RM) $(ROOTLIB)/$(COMPONENT_NAME:sh).la \
+		$(ROOTLIB64)/$(COMPONENT_NAME:sh).la
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	(cd $(@D) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ../configure $(CONFIGURE_OPTIONS))
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libmlx4/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,1258 @@
+diff -r -u /tmp/839450/libmlx4-1.0/Makefile.am libmlx4-1.0/Makefile.am
+--- /tmp/839450/libmlx4-1.0/Makefile.am	Thu Feb 28 00:56:36 2008
++++ libmlx4-1.0/Makefile.am	Thu Sep 30 08:16:32 2010
+@@ -10,7 +10,7 @@
+     src_libmlx4_la_SOURCES = $(MLX4_SOURCES)
+     src_libmlx4_la_LDFLAGS = -avoid-version -release @IBV_DEVICE_LIBRARY_EXTENSION@ \
+         $(mlx4_version_script)
+-    mlx4confdir = $(sysconfdir)/libibverbs.d
++    mlx4confdir = $(datadir)/libibverbs.d
+     mlx4conf_DATA = mlx4.driver
+ else
+     mlx4libdir = $(libdir)/infiniband
+diff -r -u /tmp/839450/libmlx4-1.0/src/buf.c libmlx4-1.0/src/buf.c
+--- /tmp/839450/libmlx4-1.0/src/buf.c	Thu Feb 28 00:56:36 2008
++++ libmlx4-1.0/src/buf.c	Thu Sep 30 08:16:32 2010
+@@ -34,6 +34,7 @@
+ #  include <config.h>
+ #endif /* HAVE_CONFIG_H */
+ 
++
+ #include <stdlib.h>
+ 
+ #include "mlx4.h"
+@@ -75,8 +76,20 @@
+ 	return ret;
+ }
+ 
++#if defined(__SVR4) && defined(__sun)
++/*
++ * Define mlx4_free_buf() to unmap memory for buffer that was allocated
++ * by the Solaris kernel.  In doing so, we reduce the number of inline
++ * code changes.
++ */
+ void mlx4_free_buf(struct mlx4_buf *buf)
+ {
++	munmap(buf->buf, buf->length);
++}
++#else
++void mlx4_free_buf(struct mlx4_buf *buf)
++{
+ 	ibv_dofork_range(buf->buf, buf->length);
+ 	free(buf->buf);
+ }
++#endif
+diff -r -u /tmp/839450/libmlx4-1.0/src/dbrec.c libmlx4-1.0/src/dbrec.c
+--- /tmp/839450/libmlx4-1.0/src/dbrec.c	Thu Feb 28 00:56:36 2008
++++ libmlx4-1.0/src/dbrec.c	Thu Sep 30 08:16:32 2010
+@@ -41,7 +41,157 @@
+ 
+ #include "mlx4.h"
+ 
++#if defined(__SVR4) && defined(__sun)
++/*
++ * In Solaris the doorbell UAR is setup by the kernel, we only
++ * mmap the offset specified for the doorbell into the user
++ * address space.  A reference counted page list is maintained
++ * per user context of doorbell pages that have been mapped.
++ */
+ struct mlx4_db_page {
++	struct mlx4_db_page	   *prev, *next;
++	uint32_t                   *dbp_page_addr;
++	uint32_t                   *dbp_page_addr_end;
++	uint64_t                   dbp_map_offset;
++	uint64_t                   dbp_map_len;
++	int                        fd;
++	int                        dbp_use_cnt;
++};
++
++/*
++ * These are not required in Solaris, but we keep them to pass
++ * as dummy arguments so that the the doorbell function calls can
++ * keep the same API.
++ */
++static const int db_size[] = {
++	[MLX4_DB_TYPE_CQ] = 8,
++	[MLX4_DB_TYPE_RQ] = 4,
++};
++
++/*
++ * Return a doorbell pointer for the specified map offset.  If this
++ * offset has not been previously mapped it will be mmap'd and the
++ * appropriate doorbell returned; otherwise, the reference count
++ * will be updated and the appropriate doorbell will be returned.
++ * Each successful call to mlx4_alloc_db() must call mlx4_free_db()
++ * to release the reference to the doorbell page  when the doorbell
++ * is no longer required.
++ */
++uint32_t *mlx4_alloc_db(struct mlx4_context *context,
++                        uint64_t mapoffset,
++                        uint64_t maplen,
++                        uint32_t offset)
++{
++	struct mlx4_db_page *page;
++	uint32_t *db = NULL;
++
++	pthread_mutex_lock(&context->db_list_mutex);
++
++	for (page = context->db_page_list; page; page = page->next) {
++		if (page->dbp_map_offset == mapoffset &&
++		    page->fd == context->ibv_ctx.mmap_fd) {
++			if (page->dbp_map_len == maplen) {
++				goto found;
++			}
++			fprintf(stderr,
++			        PFX "mlx4_alloc_db: Bad maplen (%" PRId64 ")\n",
++			        maplen);
++			goto out;
++		}
++	}
++
++	page = malloc(sizeof(struct mlx4_db_page));
++	if (!page) {
++		fprintf(stderr, PFX "DB alloc memory allocate failure\n");
++		goto out;
++	}
++
++	page->dbp_page_addr = (uint32_t *) mmap64((void *)0, maplen,
++	                                          (PROT_READ | PROT_WRITE),
++	                                          MAP_SHARED,
++	                                          context->ibv_ctx.mmap_fd,
++	                                          mapoffset);
++	if (page->dbp_page_addr == MAP_FAILED) {
++		fprintf(stderr, PFX
++		        "Unable to map doorbell entry: maplen:%" PRId64 ", offset:%" PRId64
++		        "\n", maplen, mapoffset);
++		free(page);
++		goto out;
++	}
++
++	page->dbp_page_addr_end = (uint32_t *)((uint8_t *) page->dbp_page_addr + maplen);
++
++	page->dbp_map_offset  = mapoffset;
++	page->dbp_map_len     = maplen;
++	page->dbp_use_cnt     = 0;
++	page->fd	      = context->ibv_ctx.mmap_fd;
++	page->next            = context->db_page_list;
++
++	if (context->db_page_list)
++		context->db_page_list->prev = page;
++
++	page->prev            = NULL;
++	context->db_page_list = page;
++
++found:
++	page->dbp_use_cnt++;
++
++
++	db = (uint32_t *) ((uint8_t *)page->dbp_page_addr + offset);
++out:
++	pthread_mutex_unlock(&context->db_list_mutex);
++
++	return db;
++}
++
++/*
++ * Dereference doorbell page mappinge associated with the specified doorbell.
++ * If this is the last doorbell that references a mapped region, then that
++ * region will be unmapped.
++ */
++void mlx4_free_db(struct mlx4_context *context,
++                  enum mlx4_db_type dummy,
++                  uint32_t *db)
++{
++	struct mlx4_db_page *page;
++
++	pthread_mutex_lock(&context->db_list_mutex);
++
++	for (page = context->db_page_list; page; page = page->next) {
++		if (db >= page->dbp_page_addr && db < page->dbp_page_addr_end) {
++			break;
++		}
++	}
++
++	if (page == NULL) {
++		fprintf(stderr, PFX "mlx4_free_db: Doorbell not mapped\n");
++		goto out;
++	}
++
++	page->dbp_use_cnt--;
++	if (page->dbp_use_cnt > 0) {
++		goto out;
++	}
++
++	munmap((void *)page->dbp_page_addr, page->dbp_map_len);
++	if (page->next) {
++		page->next->prev = page->prev;
++	}
++	if (page->prev) {
++		page->prev->next = page->next;
++	} else {
++		context->db_page_list = page->next;
++	}
++
++	free(page);
++
++out:
++	pthread_mutex_unlock(&context->db_list_mutex);
++}
++
++#else
++
++struct mlx4_db_page {
+ 	struct mlx4_db_page	       *prev, *next;
+ 	struct mlx4_buf			buf;
+ 	int				num_db;
+@@ -87,6 +237,7 @@
+ 	return page;
+ }
+ 
++
+ uint32_t *mlx4_alloc_db(struct mlx4_context *context, enum mlx4_db_type type)
+ {
+ 	struct mlx4_db_page *page;
+@@ -152,3 +303,4 @@
+ out:
+ 	pthread_mutex_unlock(&context->db_list_mutex);
+ }
++#endif
+diff -r -u /tmp/839450/libmlx4-1.0/src/mlx4-abi.h libmlx4-1.0/src/mlx4-abi.h
+--- /tmp/839450/libmlx4-1.0/src/mlx4-abi.h	Thu Feb 28 00:56:36 2008
++++ libmlx4-1.0/src/mlx4-abi.h	Thu Sep 30 14:43:37 2010
+@@ -35,6 +35,10 @@
+ 
+ #include <infiniband/kern-abi.h>
+ 
++#if defined(__SVR4) && defined(__sun)
++#include <sys/ib/adapters/mlnx_umap.h>   /* Opaque CI data out definitions */
++#endif
++
+ #define MLX4_UVERBS_MIN_ABI_VERSION	2
+ #define MLX4_UVERBS_MAX_ABI_VERSION	3
+ 
+diff -r -u /tmp/839450/libmlx4-1.0/src/mlx4.c libmlx4-1.0/src/mlx4.c
+--- /tmp/839450/libmlx4-1.0/src/mlx4.c	Thu Feb 28 00:56:36 2008
++++ libmlx4-1.0/src/mlx4.c	Thu Sep 30 08:16:32 2010
+@@ -34,6 +34,7 @@
+ #  include <config.h>
+ #endif /* HAVE_CONFIG_H */
+ 
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+@@ -118,6 +119,11 @@
+ 	struct mlx4_alloc_ucontext_resp resp;
+ 	int				i;
+ 	struct ibv_device_attr		dev_attrs;
++#if defined(__SVR4) && defined(__sun)
++	pid_t                           cur_pid;
++	off64_t                         uarpg_offset;
++	uint32_t                        temp_qp_num;
++#endif
+ 
+ 	context = calloc(1, sizeof *context);
+ 	if (!context)
+@@ -124,11 +130,32 @@
+ 		return NULL;
+ 
+ 	context->ibv_ctx.cmd_fd = cmd_fd;
++#if defined(__SVR4) && defined(__sun)
++	context->ibv_ctx.device = ibdev;
++#endif
+ 
+ 	if (ibv_cmd_get_context(&context->ibv_ctx, &cmd, sizeof cmd,
+ 				&resp.ibv_resp, sizeof resp))
+ 		goto err_free;
+ 
++#if defined(__SVR4) && defined(__sun)
++	/* 
++	 * OFED expects power of two, round up here to make user table
++	 * large enough.
++	 */
++	for (temp_qp_num = 1; temp_qp_num < resp.qp_tab_size; temp_qp_num <<= 1) {
++		;
++	}
++
++	resp.qp_tab_size = temp_qp_num;
++
++	/*
++	 * NOTE: In Solaris this value is not returned in the channel interface
++	 * opaque data and is assumed to be 2*256 by the dapl code.  We have
++	 * made the same assumption here.
++	 */
++	resp.bf_reg_size = 512;
++#endif
+ 	context->num_qps	= resp.qp_tab_size;
+ 	context->qp_table_shift = ffs(context->num_qps) - 1 - MLX4_QP_TABLE_BITS;
+ 	context->qp_table_mask	= (1 << context->qp_table_shift) - 1;
+@@ -146,25 +173,49 @@
+ 	for (i = 0; i < MLX4_XRC_SRQ_TABLE_SIZE; ++i)
+ 		context->xrc_srq_table[i].refcnt = 0;
+ 
++#if defined(__SVR4) && defined(__sun)
++	context->db_page_list = NULL;
++#else
+ 	for (i = 0; i < MLX4_NUM_DB_TYPE; ++i)
+ 		context->db_list[i] = NULL;
++#endif
+ 
+ 	pthread_mutex_init(&context->db_list_mutex, NULL);
+ 
++#if defined(__SVR4) && defined(__sun)
++	cur_pid = getpid();
++	uarpg_offset = (((off64_t) cur_pid << MLNX_UMAP_RSRC_TYPE_SHIFT) |
++	                MLNX_UMAP_UARPG_RSRC) * to_mdev(ibdev)->page_size;
++	context->uar = mmap64((void *)0, to_mdev(ibdev)->page_size, PROT_WRITE,
++			    MAP_SHARED, context->ibv_ctx.mmap_fd, uarpg_offset);
++#else
+ 	context->uar = mmap(NULL, to_mdev(ibdev)->page_size, PROT_WRITE,
+ 			    MAP_SHARED, cmd_fd, 0);
++#endif
+ 	if (context->uar == MAP_FAILED)
+ 		goto err_free;
+ 
+ 	if (resp.bf_reg_size) {
++#if defined(__SVR4) && defined(__sun)
++		/*
++		 * If kernel driver is supporting Blue Flame feature, map
++		 * the Blue Flame user access region as well.
++		 */
++		uarpg_offset = (((off64_t) cur_pid << MLNX_UMAP_RSRC_TYPE_SHIFT) |
++		                MLNX_UMAP_BLUEFLAMEPG_RSRC) * to_mdev(ibdev)->page_size;
++		context->bf_page = mmap64((void *)0, to_mdev(ibdev)->page_size,
++					  PROT_WRITE, MAP_SHARED, context->ibv_ctx.mmap_fd,
++					  uarpg_offset);
++#else
+ 		context->bf_page = mmap(NULL, to_mdev(ibdev)->page_size,
+ 					PROT_WRITE, MAP_SHARED, cmd_fd,
+ 					to_mdev(ibdev)->page_size);
++#endif
+ 		if (context->bf_page == MAP_FAILED) {
+-			fprintf(stderr, PFX "Warning: BlueFlame available, "
+-				"but failed to mmap() BlueFlame page.\n");
+-				context->bf_page     = NULL;
+-				context->bf_buf_size = 0;
++			fprintf(stderr, PFX "Warning: BlueFlame not available, %s",
++			        strerror(errno));
++			context->bf_page     = NULL;
++			context->bf_buf_size = 0;
+ 		} else {
+ 			context->bf_buf_size = resp.bf_reg_size / 2;
+ 			context->bf_offset   = 0;
+@@ -208,6 +259,7 @@
+ 	munmap(context->uar, to_mdev(ibctx->device)->page_size);
+ 	if (context->bf_page)
+ 		munmap(context->bf_page, to_mdev(ibctx->device)->page_size);
++
+ 	free(context);
+ }
+ 
+diff -r -u /tmp/839450/libmlx4-1.0/src/mlx4.h libmlx4-1.0/src/mlx4.h
+--- /tmp/839450/libmlx4-1.0/src/mlx4.h	Thu Feb 28 00:56:36 2008
++++ libmlx4-1.0/src/mlx4.h	Thu Sep 30 08:16:32 2010
+@@ -163,7 +163,6 @@
+ 
+ struct mlx4_context {
+ 	struct ibv_context		ibv_ctx;
+-
+ 	void			       *uar;
+ 	pthread_spinlock_t		uar_lock;
+ 
+@@ -193,7 +192,11 @@
+ 	int				xrc_srq_table_shift;
+ 	int				xrc_srq_table_mask;
+ 
++#if defined(__SVR4) && defined(__sun)
++	struct mlx4_db_page	       *db_page_list;
++#else
+ 	struct mlx4_db_page	       *db_list[MLX4_NUM_DB_TYPE];
++#endif
+ 	pthread_mutex_t			db_list_mutex;
+ };
+ 
+@@ -334,10 +337,16 @@
+ }
+ #endif
+ 
++
+ int mlx4_alloc_buf(struct mlx4_buf *buf, size_t size, int page_size);
+ void mlx4_free_buf(struct mlx4_buf *buf);
+ 
++#if defined(__SVR4) && defined(__sun)
++uint32_t *mlx4_alloc_db(struct mlx4_context *context, uint64_t mapoffset,
++                        uint64_t maplen, uint32_t offset);
++#else
+ uint32_t *mlx4_alloc_db(struct mlx4_context *context, enum mlx4_db_type type);
++#endif
+ void mlx4_free_db(struct mlx4_context *context, enum mlx4_db_type type, uint32_t *db);
+ 
+ int mlx4_query_device(struct ibv_context *context,
+@@ -372,8 +381,13 @@
+ int mlx4_query_srq(struct ibv_srq *srq,
+ 			   struct ibv_srq_attr *attr);
+ int mlx4_destroy_srq(struct ibv_srq *srq);
++#if defined(__SVR4) && defined(__sun)
++int mlx4_set_srq_buf(struct ibv_pd *pd, struct mlx4_srq *srq,
++			uint32_t srq_wqesz, uint32_t srq_numwqe);
++#else
+ int mlx4_alloc_srq_buf(struct ibv_pd *pd, struct ibv_srq_attr *attr,
+ 			struct mlx4_srq *srq);
++#endif
+ void mlx4_free_srq_wqe(struct mlx4_srq *srq, int ind);
+ int mlx4_post_srq_recv(struct ibv_srq *ibsrq,
+ 		       struct ibv_recv_wr *wr,
+@@ -383,6 +397,9 @@
+ 		       struct mlx4_srq *srq);
+ void mlx4_clear_xrc_srq(struct mlx4_context *ctx, uint32_t xrc_srqn);
+ 
++#if defined(__SVR4) && defined(__sun)
++int mlx4_num_inline_segs(int data, enum ibv_qp_type type);
++#endif
+ struct ibv_qp *mlx4_create_qp(struct ibv_pd *pd, struct ibv_qp_init_attr *attr);
+ int mlx4_query_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr,
+ 		   enum ibv_qp_attr_mask attr_mask,
+@@ -398,8 +415,14 @@
+ 			  struct ibv_recv_wr **bad_wr);
+ void mlx4_calc_sq_wqe_size(struct ibv_qp_cap *cap, enum ibv_qp_type type,
+ 			   struct mlx4_qp *qp);
++#if defined(__SVR4) && defined(__sun)
++int mlx4_set_qp_buf(struct ibv_pd *pd, struct mlx4_qp *qp,
++                    void *qpbuf, uint64_t buflen, uint32_t rq_wqesz,
++                     uint32_t rq_off, uint32_t sq_wqesz, uint32_t sq_off);
++#else
+ int mlx4_alloc_qp_buf(struct ibv_pd *pd, struct ibv_qp_cap *cap,
+ 		       enum ibv_qp_type type, struct mlx4_qp *qp);
++#endif
+ void mlx4_set_sq_sizes(struct mlx4_qp *qp, struct ibv_qp_cap *cap,
+ 		       enum ibv_qp_type type);
+ struct mlx4_qp *mlx4_find_qp(struct mlx4_context *ctx, uint32_t qpn);
+diff -r -u /tmp/839450/libmlx4-1.0/src/qp.c libmlx4-1.0/src/qp.c
+--- /tmp/839450/libmlx4-1.0/src/qp.c	Thu Feb 28 00:56:36 2008
++++ libmlx4-1.0/src/qp.c	Thu Sep 30 08:16:32 2010
+@@ -36,6 +36,7 @@
+ #  include <config.h>
+ #endif /* HAVE_CONFIG_H */
+ 
++
+ #include <stdlib.h>
+ #include <netinet/in.h>
+ #include <pthread.h>
+@@ -496,7 +497,17 @@
+ 	return ret;
+ }
+ 
++#if defined(__SVR4) && defined(__sun)
++/*
++ * Create a non-static version that can be called externally;
++ * default file local calls to now use the name of the non-static
++ * version.
++ */
++#define num_inline_segs  mlx4_num_inline_segs
++int mlx4_num_inline_segs(int data, enum ibv_qp_type type)
++#else
+ static int num_inline_segs(int data, enum ibv_qp_type type)
++#endif
+ {
+ 	/*
+ 	 * Inline data segments are not allowed to cross 64 byte
+@@ -574,6 +585,58 @@
+ 		; /* nothing */
+ }
+ 
++#if defined(__SVR4) && defined(__sun)
++int mlx4_set_qp_buf(struct ibv_pd *pd, struct mlx4_qp *qp, void *qpbuf,
++                    uint64_t buflen, uint32_t rq_wqesz, uint32_t rq_off,
++                    uint32_t sq_wqesz, uint32_t sq_off)
++{
++	qp->buf.buf      = qpbuf;
++	qp->buf.length   = buflen;
++
++	qp->sq.wrid = malloc(qp->sq.wqe_cnt * sizeof (uint64_t));
++	if (!qp->sq.wrid)
++		return -1;
++
++	if (qp->rq.wqe_cnt) {
++		qp->rq.wrid = malloc(qp->rq.wqe_cnt * sizeof (uint64_t));
++		if (!qp->rq.wrid) {
++			free(qp->sq.wrid);
++			return -1;
++		}
++	}
++
++	for (qp->rq.wqe_shift = 4; 1 << qp->rq.wqe_shift < rq_wqesz;
++	     qp->rq.wqe_shift++) {
++		; /* nothing */
++	}
++
++	for (qp->sq.wqe_shift = 6; 1 << qp->sq.wqe_shift < sq_wqesz;
++	     qp->sq.wqe_shift++) {
++		; /* nothing */
++	}
++
++	qp->buf_size = (qp->rq.wqe_cnt << qp->rq.wqe_shift) +
++		(qp->sq.wqe_cnt << qp->sq.wqe_shift);
++	if (qp->rq.wqe_shift > qp->sq.wqe_shift) {
++		qp->rq.offset = 0;
++		qp->sq.offset = qp->rq.wqe_cnt << qp->rq.wqe_shift;
++	} else {
++		qp->rq.offset = qp->sq.wqe_cnt << qp->sq.wqe_shift;
++		qp->sq.offset = 0;
++	}
++
++	if ((long int)qp->buf.length < (long int)qp->buf_size) {
++		fprintf(stderr, PFX "QP kernel buffer size %d < user buf size %d\n",
++		        qp->buf.length, qp->buf_size);
++	}
++	if ((!rq_off && qp->rq.offset) || (!sq_off && qp->sq.offset)) {
++		fprintf(stderr, PFX "QP kernel and user out of sync on buffer order\n");
++	}
++
++	memset(qp->buf.buf, 0, qp->buf_size);
++	return 0;
++}
++#endif
+ int mlx4_alloc_qp_buf(struct ibv_pd *pd, struct ibv_qp_cap *cap,
+ 		       enum ibv_qp_type type, struct mlx4_qp *qp)
+ {
+diff -r -u /tmp/839450/libmlx4-1.0/src/srq.c libmlx4-1.0/src/srq.c
+--- /tmp/839450/libmlx4-1.0/src/srq.c	Thu Feb 28 00:56:36 2008
++++ libmlx4-1.0/src/srq.c	Thu Oct  7 12:07:38 2010
+@@ -124,6 +124,48 @@
+ 	return err;
+ }
+ 
++#if defined(__SVR4) && defined(__sun)
++/*
++ * The Solaris kernel allocates the SRQ WQE buffer, this routine
++ * initializes the control structures and buffer contents for the
++ * SRQ memory.  That memory is mapped into the caller's address
++ * space prior to this call.
++ */
++int mlx4_set_srq_buf(struct ibv_pd *pd, struct mlx4_srq *srq,
++				uint32_t srq_wqesz, uint32_t srq_numwqe)
++{
++	struct mlx4_wqe_srq_next_seg *next;
++	int i;
++
++	srq->max         = srq_numwqe;
++
++	srq->wrid = malloc(srq->max * sizeof (uint64_t));
++	if (!srq->wrid) {
++		return -1;
++	}
++
++	for (srq->wqe_shift = 5; 1 << srq->wqe_shift < srq_wqesz; ++srq->wqe_shift) {
++		; /* nothing */
++	}
++
++	memset(srq->buf.buf, 0, srq->buf.length);
++
++	/*
++	 * Now initialize the SRQ buffer so that all of the WQEs are
++	 * linked into the list of free WQEs.
++	 */
++	for (i = 0; i < srq->max; ++i) {
++		next = get_wqe(srq, i);
++		next->next_wqe_index = htons((i + 1) & (srq->max - 1));
++	}
++
++	srq->head = 0;
++	srq->tail = srq->max - 1;
++
++	return 0;
++}
++#endif
++
+ int mlx4_alloc_srq_buf(struct ibv_pd *pd, struct ibv_srq_attr *attr,
+ 		       struct mlx4_srq *srq)
+ {
+diff -r -u /tmp/839450/libmlx4-1.0/src/verbs.c libmlx4-1.0/src/verbs.c
+--- /tmp/839450/libmlx4-1.0/src/verbs.c	Thu Feb 28 00:56:36 2008
++++ libmlx4-1.0/src/verbs.c	Thu Oct  7 12:07:38 2010
+@@ -41,6 +41,7 @@
+ #include <errno.h>
+ #include <netinet/in.h>
+ 
++
+ #include "mlx4.h"
+ #include "mlx4-abi.h"
+ #include "wqe.h"
+@@ -56,6 +57,15 @@
+ 	if (ret)
+ 		return ret;
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * To be consistent with OFED and so the queue operations in srq.c work
++	 * we need to report the max as actual max  less 1. In OFED this is
++	 * done in the HCA driver.
++	 */
++	attr->max_srq_wr -=1;
++#endif
++
+ 	major     = (raw_fw_ver >> 32) & 0xffff;
+ 	minor     = (raw_fw_ver >> 16) & 0xffff;
+ 	sub_minor = raw_fw_ver & 0xffff;
+@@ -79,6 +89,9 @@
+ 	struct ibv_alloc_pd       cmd;
+ 	struct mlx4_alloc_pd_resp resp;
+ 	struct mlx4_pd		 *pd;
++#if defined(__SVR4) && defined(__sun)
++	mlnx_umap_pd_data_out_t   *mdd;
++#endif
+ 
+ 	pd = malloc(sizeof *pd);
+ 	if (!pd)
+@@ -90,7 +103,16 @@
+ 		return NULL;
+ 	}
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * The kernel driver passes back the PD table index as opaque data.  This
++	 * index is required for specifying the PD in user space address vectors.
++	 */
++	mdd     = (mlnx_umap_pd_data_out_t *) &resp.ibv_resp.drv_out;
++	pd->pdn = mdd->mpd_pdnum;
++#else
+ 	pd->pdn = resp.pdn;
++#endif
+ 
+ 	return &pd->ibv_pd;
+ }
+@@ -168,6 +190,10 @@
+ 	struct mlx4_create_cq_resp resp;
+ 	struct mlx4_cq		  *cq;
+ 	int			   ret;
++#if defined(__SVR4) && defined(__sun)
++	void                      *cqbuf;
++	mlnx_umap_cq_data_out_t   *mdd;
++#endif
+ 
+ 	/* Sanity check CQ size before proceeding */
+ 	if (cqe > 0x3fffff)
+@@ -184,6 +210,7 @@
+ 
+ 	cqe = align_queue_size(cqe + 1);
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 	if (mlx4_alloc_buf(&cq->buf, cqe * MLX4_CQ_ENTRY_SIZE,
+ 			   to_mdev(context->device)->page_size))
+ 		goto err;
+@@ -201,15 +228,84 @@
+ 
+ 	cmd.buf_addr = (uintptr_t) cq->buf.buf;
+ 	cmd.db_addr  = (uintptr_t) cq->set_ci_db;
++#else
++	cq->buf.buf    = NULL;
++	cq->buf.length = 0;
++	cq->arm_db     = NULL;
++	cq->set_ci_db  = NULL;
++#endif
+ 
+ 	ret = ibv_cmd_create_cq(context, cqe - 1, channel, comp_vector,
+ 				&cq->ibv_cq, &cmd.ibv_cmd, sizeof cmd,
+ 				&resp.ibv_resp, sizeof resp);
++
++#if defined(__SVR4) && defined(__sun)
++	if (ret) {
++		goto err;
++	}
++#else
+ 	if (ret)
+ 		goto err_db;
++#endif
+ 
+ 	cq->cqn = resp.cqn;
+ 
++#if defined(__SVR4) && defined(__sun)
++        /*
++         * For Solaris the kernel driver passes back mmap information for
++	 *  mapping the CQ memory it allocated.
++         */
++        mdd = (mlnx_umap_cq_data_out_t *) &resp.ibv_resp.drv_out;
++	if (mdd->mcq_rev < MLNX_UMAP_IF_VERSION) {
++		fprintf(stderr, PFX "libmlx4_create_cq: libmlx4/hermon umap "
++				"rev mismatch (kernel rev=%d)\n", mdd->mcq_rev);
++		goto err_destroy;
++	}
++
++        cqbuf = mmap64((void *)0, mdd->mcq_maplen, (PROT_READ | PROT_WRITE),
++                    MAP_SHARED, context->mmap_fd, mdd->mcq_mapoffset);
++
++        if (cqbuf == MAP_FAILED) {
++                goto err_destroy;
++        }
++
++        /*
++         * Extract hardware driver values for the number of CQEs and the
++	 * hardware CQ number to use (needed for user space doorbells).
++         */
++        cqe            = mdd->mcq_numcqe;
++        cq->cqn        = mdd->mcq_cqnum;
++        cq->buf.buf    = cqbuf;
++        cq->buf.length = mdd->mcq_maplen;
++	cq->ibv_cq.cqe = cqe-1;
++
++	/*
++	 * We map both poll and arm as seperate doorbells (OFED assumes 1 word
++	 * offset and just bumpts the address) since Solaris provides a
++	 * separate offst. This will amount to the same thing (a second
++	 * reference to the first doorbell is added) but is more flexible.
++	 */
++	cq->set_ci_db = mlx4_alloc_db(to_mctx(context),
++	                              mdd->mcq_polldbr_mapoffset,
++	                              mdd->mcq_polldbr_maplen,
++	                              mdd->mcq_polldbr_offset);
++        if (cq->set_ci_db == NULL) {
++                goto err_buf;
++        }
++
++	cq->arm_db = mlx4_alloc_db(to_mctx(context),
++	                           mdd->mcq_armdbr_mapoffset,
++	                           mdd->mcq_armdbr_maplen,
++	                           mdd->mcq_armdbr_offset);
++        if (cq->arm_db == NULL) {
++                goto err_db;
++        }
++
++	*cq->arm_db    = 0;
++	cq->arm_sn     = 1;
++	*cq->set_ci_db = 0;
++#endif
++
+ 	return &cq->ibv_cq;
+ 
+ err_db:
+@@ -218,6 +314,22 @@
+ err_buf:
+ 	mlx4_free_buf(&cq->buf);
+ 
++#if defined(__SVR4) && defined(__sun)
++err_destroy:
++	/*
++	 * Calling ibv_cmd_destroy_cq() will try and take the ibv_cq
++	 * mutext that is initialised by the ibv_create_cq() entry point
++	 * that called us AFETR we return, so its not initialised yet.
++	 * So initialised it here so the destroy call doesn't hang.
++	 */
++	pthread_mutex_init(&(cq->ibv_cq.mutex), NULL);
++	pthread_cond_init(&(cq->ibv_cq.cond), NULL);
++	cq->ibv_cq.comp_events_completed = 0;
++	cq->ibv_cq.async_events_completed = 0;
++
++	ibv_cmd_destroy_cq(&cq->ibv_cq);
++#endif
++
+ err:
+ 	free(cq);
+ 
+@@ -239,6 +351,9 @@
+ 		return ret;
+ 
+ 	mlx4_free_db(to_mctx(cq->context), MLX4_DB_TYPE_CQ, to_mcq(cq)->set_ci_db);
++#if defined(__SVR4) && defined(__sun)
++	mlx4_free_db(to_mctx(cq->context), MLX4_DB_TYPE_CQ, to_mcq(cq)->arm_db);
++#endif
+ 	mlx4_free_buf(&to_mcq(cq)->buf);
+ 	free(to_mcq(cq));
+ 
+@@ -252,6 +367,10 @@
+ 	struct mlx4_create_srq_resp resp;
+ 	struct mlx4_srq		   *srq;
+ 	int			    ret;
++#if defined(__SVR4) && defined(__sun)
++	mlnx_umap_srq_data_out_t   *mdd;
++	void                       *srqbuf;
++#endif
+ 
+ 	/* Sanity check SRQ size before proceeding */
+ 	if (attr->attr.max_wr > 1 << 16 || attr->attr.max_sge > 64)
+@@ -264,6 +383,7 @@
+ 	if (pthread_spin_init(&srq->lock, PTHREAD_PROCESS_PRIVATE))
+ 		goto err;
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 	srq->max     = align_queue_size(attr->attr.max_wr + 1);
+ 	srq->max_gs  = attr->attr.max_sge;
+ 	srq->counter = 0;
+@@ -276,7 +396,24 @@
+ 		goto err_free;
+ 
+ 	*srq->db = 0;
++#else
++	/*
++	 * Solaris SRQ WQE memory is supplied by the kernel; we'll update
++	 * these after the creation.
++	 */
++	srq->buf.buf      = NULL;
++	srq->buf.length   = 0;
++	srq->db           = NULL;
+ 
++	/*
++	 * Need solaris to allocate space for the spare WR in
++	 * the list that makes the queue work. The Solaris driver
++	 * will round up to the nearest power of 2 as align_queue_size()
++	 * does for OFED.
++	 */
++	attr->attr.max_wr += 1;
++#endif
++
+ 	cmd.buf_addr = (uintptr_t) srq->buf.buf;
+ 	cmd.db_addr  = (uintptr_t) srq->db;
+ 
+@@ -283,19 +420,96 @@
+ 	ret = ibv_cmd_create_srq(pd, &srq->ibv_srq, attr,
+ 				 &cmd.ibv_cmd, sizeof cmd,
+ 				 &resp.ibv_resp, sizeof resp);
++#if defined(__SVR4) && defined(__sun)
++	if (ret) {
++		goto err;
++	}
++
++        /*
++         * The kernel driver passes back mmap information for mapping the
++         * SRQ work queue memory it allocated and the doorbell for
++	 * for posting.
++         */
++	mdd = (mlnx_umap_srq_data_out_t *) &resp.ibv_resp.drv_out;
++	if (mdd->msrq_rev < 1) {
++		fprintf(stderr, PFX "libmlx4_create_srq libmlx4/hermon umap "
++			"rev mismatch (kernel rev=%d)\n", mdd->msrq_rev);
++		goto err_destroy;
++	}
++
++        srqbuf = mmap64((void *)0, mdd->msrq_maplen, (PROT_READ | PROT_WRITE),
++                    MAP_SHARED, pd->context->mmap_fd, mdd->msrq_mapoffset);
++
++        if (srqbuf == MAP_FAILED) {
++                goto err_destroy;
++        }
++
++	srq->buf.buf    = srqbuf;
++	srq->buf.length = mdd->msrq_maplen;
++	srq->max	= resp.ibv_resp.max_wr;
++	srq->max_gs	= resp.ibv_resp.max_sge;
++	srq->srqn       = mdd->msrq_srqnum;
++	srq->counter 	= 0;
++
++	srq->db = mlx4_alloc_db(to_mctx(pd->context),
++	                        mdd->msrq_rdbr_mapoffset,
++	                        mdd->msrq_rdbr_maplen,
++	                        mdd->msrq_rdbr_offset);
++	if (srq->db == NULL) {
++                goto err_unmap;
++	}
++
++	/*
++	 * The following call only initializes memory and control structures,
++	 * it utilizes the memory allocated by the kernel.
++	 * It also allocates the srq->wrid memory.
++	 */
++	if (mlx4_set_srq_buf(pd, srq, mdd->msrq_wqesz, mdd->msrq_numwqe)) {
++		goto err_db;
++	}
++
++	/*
++	 * The rturned max wr will have been rounded up to the nearest
++	 * power of 2, subtracting  1 from that and rporting that value
++	 * as the max will give us the required free WR in the queue, as
++	 * in OFED.
++	 */
++	attr->attr.max_wr -= 1;
++#else
+ 	if (ret)
+ 		goto err_db;
+ 
+ 	srq->srqn = resp.srqn;
+-
++#endif
+ 	return &srq->ibv_srq;
+ 
+ err_db:
+ 	mlx4_free_db(to_mctx(pd->context), MLX4_DB_TYPE_RQ, srq->db);
+ 
++#if defined(__SVR4) && defined(__sun)
++	if (srq->wrid)
++		free(srq->wrid);
++err_unmap:
++	mlx4_free_buf(&srq->buf);
++
++err_destroy:
++	/*
++	 * Calling ibv_cmd_destroy_srq() will try and take the ibv_srq
++	 * mutext that is initialised by the ibv_create_srq() entry point
++	 * that called us AFETR we return, so its not initialised yet.
++	 * So initialised it here so the destroy call doesn't hang.
++	 */
++	pthread_mutex_init(&(srq->ibv_srq.mutex), NULL);
++	pthread_cond_init(&(srq->ibv_srq.cond), NULL);
++	srq->ibv_srq.events_completed = 0;
++
++	ibv_cmd_destroy_srq(&srq->ibv_srq);
++
++#else
+ err_free:
+ 	free(srq->wrid);
+ 	mlx4_free_buf(&srq->buf);
++#endif
+ 
+ err:
+ 	free(srq);
+@@ -309,7 +523,16 @@
+ {
+ 	struct ibv_modify_srq cmd;
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ibv_cmd_modify_srq(srq, attr, attr_mask, &cmd, sizeof cmd);
++#else
++	int	ret;
++
++	attr->max_wr += 1;		/* See create_srq */
++	ret = ibv_cmd_modify_srq(srq, attr, attr_mask, &cmd, sizeof cmd);
++	attr->max_wr -= 1;
++	return (ret);
++#endif
+ }
+ 
+ int mlx4_query_srq(struct ibv_srq *srq,
+@@ -317,7 +540,17 @@
+ {
+ 	struct ibv_query_srq cmd;
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ibv_cmd_query_srq(srq, attr, &cmd, sizeof cmd);
++#else
++
++	int	ret;
++
++	ret = ibv_cmd_query_srq(srq, attr, &cmd, sizeof cmd);
++	attr->max_wr -= 1;		/* See create_srq */
++
++	return (ret);
++#endif
+ }
+ 
+ int mlx4_destroy_srq(struct ibv_srq *ibsrq)
+@@ -361,8 +594,13 @@
+ 	struct mlx4_qp		 *qp;
+ 	int			  ret;
+ 	struct mlx4_context	 *context = to_mctx(pd->context);
++#if defined(__SVR4) && defined(__sun)
++	mlnx_umap_qp_data_out_t	*mdd;
++	void			*qpbuf;
++	int			max_send_sge;
++	int			max_inline_data;
++#endif
+ 
+-
+ 	/* Sanity check QP size before proceeding */
+ 	if (attr->cap.max_send_wr     > context->max_qp_wr ||
+ 	    attr->cap.max_recv_wr     > context->max_qp_wr ||
+@@ -375,6 +613,7 @@
+ 	if (!qp)
+ 		return NULL;
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 	mlx4_calc_sq_wqe_size(&attr->cap, attr->qp_type, qp);
+ 
+ 	/*
+@@ -384,6 +623,7 @@
+ 	qp->sq_spare_wqes = (2048 >> qp->sq.wqe_shift) + 1;
+ 	qp->sq.wqe_cnt = align_queue_size(attr->cap.max_send_wr + qp->sq_spare_wqes);
+ 	qp->rq.wqe_cnt = align_queue_size(attr->cap.max_recv_wr);
++#endif
+ 
+ 	if (attr->srq || attr->qp_type == IBV_QPT_XRC)
+ 		attr->cap.max_recv_wr = qp->rq.wqe_cnt = 0;
+@@ -394,6 +634,46 @@
+ 			attr->cap.max_recv_wr = 1;
+ 	}
+ 
++#if defined(__SVR4) && defined(__sun)
++	if (pthread_spin_init(&qp->sq.lock, PTHREAD_PROCESS_PRIVATE) ||
++	    pthread_spin_init(&qp->rq.lock, PTHREAD_PROCESS_PRIVATE)) {
++		goto err;
++	}
++
++	/*
++	 * We adjust the number of send SGL entries to force the kernel to
++	 * allocate a larger WQE that will fit the inline data requested.
++	 * The Solaris Hermon driver does not look at inline data size when
++	 * calculating the send WQE size, so this allows us to get closer
++	 * to what the user has requested.
++	 */
++	max_send_sge = align(attr->cap.max_inline_data +
++			mlx4_num_inline_segs(attr->cap.max_inline_data,
++			attr->qp_type) * sizeof (struct mlx4_wqe_inline_seg),
++			sizeof( struct mlx4_wqe_data_seg)) /
++	                          sizeof(struct mlx4_wqe_data_seg);
++
++
++	if (max_send_sge > attr->cap.max_send_sge) 
++		attr->cap.max_send_sge = max_send_sge;
++
++	if (attr->cap.max_send_sge > context->max_sge) {
++		free(qp);
++		return (NULL);
++	};
++
++
++	/*
++	 * Solaris QP work queue memory is supplied by the kernel, so
++	 * we will update this after creation.
++	 */
++	qp->buf.buf	= NULL;
++	qp->sq.wrid	= NULL;
++	qp->rq.wrid	= NULL;
++	qp->buf.length	= 0;
++	qp->db		= NULL;
++	memset(&cmd, 0, sizeof(cmd));
++#else
+ 	if (mlx4_alloc_qp_buf(pd, &attr->cap, attr->qp_type, qp))
+ 		goto err;
+ 
+@@ -423,9 +703,119 @@
+ 		; /* nothing */
+ 	cmd.sq_no_prefetch = 0;	/* OK for ABI 2: just a reserved field */
+ 	memset(cmd.reserved, 0, sizeof cmd.reserved);
++#endif
+ 
+ 	ret = ibv_cmd_create_qp(pd, &qp->ibv_qp, attr, &cmd.ibv_cmd, sizeof cmd,
+ 				&resp, sizeof resp);
++
++
++#if defined(__SVR4) && defined(__sun)
++	if (ret) {
++		goto err_free;
++	}
++
++        /*
++         * The kernel driver passes back mmap information for mapping the
++         * QP work queue memory it allocated back into user space.
++         */
++        mdd = (mlnx_umap_qp_data_out_t *) &resp.drv_out;
++	if (mdd->mqp_rev < 2) {
++		fprintf(stderr, PFX "libmlx4_create_qp: libmlx4/hermon umap "
++				"rev mismatch (kernel rev=%d)\n", mdd->mqp_rev);
++		goto err_destroy;
++	}
++	qpbuf = mmap64((void *)0, mdd->mqp_maplen, (PROT_READ | PROT_WRITE),
++	                MAP_SHARED, pd->context->mmap_fd, mdd->mqp_mapoffset);
++
++	if (qpbuf == MAP_FAILED) {
++		goto err_destroy;
++	}
++
++	/*
++	 * Need to set qp->buf here in case alloc_db fails then
++	 * we'll call mlx4_free_buf() to umap.
++	 */
++	qp->buf.buf	= qpbuf;
++	qp->buf.length	= mdd->mqp_maplen;
++
++	if (!attr->srq && attr->qp_type != IBV_QPT_XRC) {
++		qp->db = mlx4_alloc_db(to_mctx(pd->context),
++		                       mdd->mqp_rdbr_mapoffset,
++		                       mdd->mqp_rdbr_maplen,
++		                       mdd->mqp_rdbr_offset);
++		if (qp->db == NULL) {
++			goto err_buf;
++		}
++		*qp->db = 0;
++	}
++
++	/*
++	 * Calculate the official maximum inline data size, this is not done
++	 * by the kernel driver, so we do it here and update the qp struct.
++	 */
++	max_inline_data =
++			mdd->mqp_sq_wqesz - sizeof(struct mlx4_wqe_inline_seg);
++	max_inline_data -= sizeof(struct mlx4_wqe_ctrl_seg);
++
++	switch (attr->qp_type) {
++	case IBV_QPT_UD:
++		max_inline_data -= sizeof(struct mlx4_wqe_datagram_seg);
++		break;
++
++	case IBV_QPT_UC:
++		max_inline_data -= sizeof(struct mlx4_wqe_raddr_seg);
++		break;
++
++	case IBV_QPT_RC:
++		max_inline_data -= sizeof(struct mlx4_wqe_raddr_seg);
++		if (max_inline_data > (sizeof(struct mlx4_wqe_atomic_seg) +
++		                       sizeof(struct mlx4_wqe_raddr_seg) +
++		                       sizeof(struct mlx4_wqe_data_seg))) {
++			max_inline_data -= sizeof(struct mlx4_wqe_atomic_seg) +
++		                           sizeof(struct mlx4_wqe_raddr_seg) +
++		                           sizeof(struct mlx4_wqe_data_seg);
++		} else {
++			max_inline_data = 0;
++		}
++		break;
++
++	default:
++		break;
++	}
++
++	attr->cap.max_inline_data = max_inline_data;
++
++	/*
++	 * Retrieve sendqueue actual size, and the number of headroom WQEs
++	 * that were required based on kernel setup of prefetch or not for
++	 * send queue.
++	 * 	Note: mqp_sq_numwqe includes the head room wqes.
++	 *	      The private wqe.cnt also includes headroom wqes,
++	 *	      the verbs count should reflect the wqe count that
++	 *	      is usable.
++	 */
++	qp->sq_spare_wqes = mdd->mqp_sq_headroomwqes;
++	qp->sq.wqe_cnt    = mdd->mqp_sq_numwqe;
++
++	if (attr->srq) {
++		qp->rq.wqe_cnt  = 0;
++	} else {
++		qp->rq.wqe_cnt  = mdd->mqp_rq_numwqe;
++	}
++
++	if (mlx4_set_qp_buf(pd, qp, qpbuf, mdd->mqp_maplen,
++	                    mdd->mqp_rq_wqesz, mdd->mqp_rq_off,
++	                    mdd->mqp_sq_wqesz, mdd->mqp_sq_off)) {
++		goto err_rq_db;
++	}
++
++	mlx4_init_qp_indices(qp);
++
++	ret = mlx4_store_qp(to_mctx(pd->context), qp->ibv_qp.qp_num, qp);
++	if (ret) {
++		goto err_rq_db;
++	}
++#else
+ 	if (ret)
+ 		goto err_rq_db;
+ 
+@@ -432,6 +822,7 @@
+ 	ret = mlx4_store_qp(to_mctx(pd->context), qp->ibv_qp.qp_num, qp);
+ 	if (ret)
+ 		goto err_destroy;
++#endif
+ 
+ 	qp->rq.wqe_cnt = attr->cap.max_recv_wr;
+ 	qp->rq.max_gs  = attr->cap.max_recv_sge;
+@@ -439,8 +830,8 @@
+ 	/* adjust rq maxima to not exceed reported device maxima */
+ 	attr->cap.max_recv_wr = min(context->max_qp_wr, attr->cap.max_recv_wr);
+ 	attr->cap.max_recv_sge = min(context->max_sge, attr->cap.max_recv_sge);
+-
+ 	qp->rq.max_post = attr->cap.max_recv_wr;
++
+ 	mlx4_set_sq_sizes(qp, &attr->cap, attr->qp_type);
+ 
+ 	qp->doorbell_qpn    = htonl(qp->ibv_qp.qp_num << 8);
+@@ -451,9 +842,40 @@
+ 
+ 	return &qp->ibv_qp;
+ 
++#if defined(__SVR4) && defined(__sun)
++err_rq_db:
++	if (!attr->srq && attr->qp_type != IBV_QPT_XRC) {
++		mlx4_free_db(to_mctx(pd->context), MLX4_DB_TYPE_RQ, qp->db);
++	}
++
++err_buf:
++	mlx4_free_buf(&qp->buf);
++
+ err_destroy:
++	/*
++	 * Calling ibv_cmd_destroy_qp() will try and take the ibv_qp
++	 * mutext that is initialised by the ibv_create_qp() entry point
++	 * that called us AFETR we retrun, so its not initialised yet.
++	 * So initialised it here so the destroy call doesn't hang.
++	 */
++	pthread_mutex_init(&(qp->ibv_qp.mutex), NULL);
++	pthread_cond_init(&(qp->ibv_qp.cond), NULL);
++	qp->ibv_qp.events_completed = 0;
+ 	ibv_cmd_destroy_qp(&qp->ibv_qp);
+ 
++err_free:
++	if (qp->sq.wrid)
++		free(qp->sq.wrid);
++
++	if (qp->rq.wrid)
++		free(qp->rq.wrid);
++
++err:
++	free(qp);
++#else
++err_destroy:
++	ibv_cmd_destroy_qp(&qp->ibv_qp);
++
+ err_rq_db:
+ 	if (!attr->srq && attr->qp_type != IBV_QPT_XRC)
+ 		mlx4_free_db(to_mctx(pd->context), MLX4_DB_TYPE_RQ, qp->db);
+@@ -466,6 +888,7 @@
+ 
+ err:
+ 	free(qp);
++#endif
+ 
+ 	return NULL;
+ }
+@@ -641,6 +1064,13 @@
+ 				    struct ibv_cq *xrc_cq,
+ 				    struct ibv_srq_init_attr *attr)
+ {
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * Not supported by Solaris kenrel driver.  When/if supported
++	 * this routine will need to be ported.
++	 */
++	return NULL;
++#else
+ 	struct mlx4_create_xrc_srq  cmd;
+ 	struct mlx4_create_srq_resp resp;
+ 	struct mlx4_srq		   *srq;
+@@ -703,6 +1133,7 @@
+ 	free(srq);
+ 
+ 	return NULL;
++#endif
+ }
+ 
+ struct ibv_xrc_domain *mlx4_open_xrc_domain(struct ibv_context *context,
+diff -r -u /tmp/839450/libmlx4-1.0/Makefile.in libmlx4-1.0/Makefile.in
+--- /tmp/839450/libmlx4-1.0/Makefile.in	Thu Feb 28 00:56:43 2008
++++ libmlx4-1.0/Makefile.in	Thu Oct  7 12:07:19 2010
+@@ -60,8 +60,8 @@
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(mlx4libdir)" \
+ 	"$(DESTDIR)$(mlx4confdir)"
+-libLTLIBRARIES_INSTALL = $(INSTALL)
+-mlx4libLTLIBRARIES_INSTALL = $(INSTALL)
++libLTLIBRARIES_INSTALL = $(INSTALL) -m 755
++mlx4libLTLIBRARIES_INSTALL = $(INSTALL) -m 755
+ LTLIBRARIES = $(lib_LTLIBRARIES) $(mlx4lib_LTLIBRARIES)
+ src_libmlx4_la_LIBADD =
+ am__src_libmlx4_la_SOURCES_DIST = src/buf.c src/cq.c src/dbrec.c \
+@@ -220,7 +220,7 @@
+ @HAVE_IBV_DEVICE_LIBRARY_EXTENSION_TRUE@src_libmlx4_la_LDFLAGS = -avoid-version -release @IBV_DEVICE_LIBRARY_EXTENSION@ \
+ @HAVE_IBV_DEVICE_LIBRARY_EXTENSION_TRUE@        $(mlx4_version_script)
+ 
+-@HAVE_IBV_DEVICE_LIBRARY_EXTENSION_TRUE@mlx4confdir = $(sysconfdir)/libibverbs.d
++@HAVE_IBV_DEVICE_LIBRARY_EXTENSION_TRUE@mlx4confdir = $(datadir)/libibverbs.d
+ @HAVE_IBV_DEVICE_LIBRARY_EXTENSION_TRUE@mlx4conf_DATA = mlx4.driver
+ @HAVE_IBV_DEVICE_LIBRARY_EXTENSION_FALSE@mlx4libdir = $(libdir)/infiniband
+ @HAVE_IBV_DEVICE_LIBRARY_EXTENSION_FALSE@mlx4lib_LTLIBRARIES = src/mlx4.la
+diff -r -u /tmp/839450/libmlx4-1.0/configure libmlx4-1.0/configure
+--- /tmp/839450/libmlx4-1.0/configure	Thu Feb 28 00:56:44 2008
++++ libmlx4-1.0/configure	Thu Sep 30 08:16:32 2010
+@@ -7604,6 +7604,7 @@
+  	esac ;;
+       esac
+       link_all_deplibs=yes
++      hardcode_libdir_flag_spec=
+       ;;
+ 
+     sunos4*)
Binary file usr/src/cmd/ofusr/libmlx4/libmlx4-1.0.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libmthca/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,12 @@
+NAME:             libmthca
+VERSION:          1.0.4
+DESCRIPTION:      Infiniband Open Fabrics libmthca
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/OFED/ofed-1.3/OFED-1.3.tgz/libmthca-1.0.4.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/ofuv_lib
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
+                  libmthca-1.0.4.tar.gz is part of the SPRMS in OFED-1.3.tgz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libmthca/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,94 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.1	10/10/07 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+
+CPPFLAGS +=	"-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+
+CONFIGURE_OPTIONS +=	--disable-libcheck
+CONFIGURE_OPTIONS +=	--disable-static
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m32 -D_REENTRANT"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LIBS="-L$(ROOTLIB)"
+
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m64 -D_REENTRANT"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LIBS="-L$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN64)
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--libdir=$(CFGLIB64)
+
+CPPFLAGS +=	-I$(ROOT)/usr/include
+
+LIBS +=	-L$(ROOTLIB)
+
+COMMON_ENV +=	MAKE=$(GMAKE)
+
+BUILD_ENV +=		CPPFLAGS="$(CPPFLAGS)"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+all:		$(VER)/build-32/.built $(VER)/build-64/.built
+
+install:	$(VER)/build-32/.installed $(VER)/build-64/.installed
+	$(RM) $(ROOTLIB)/$(COMPONENT_NAME:sh).la \
+		$(ROOTLIB64)/$(COMPONENT_NAME:sh).la
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	(cd $(@D) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ../configure $(CONFIGURE_OPTIONS))
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libmthca/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,1359 @@
+diff -r -u /tmp/909901/libmthca-1.0.4/Makefile.am libmthca-1.0.4/Makefile.am
+--- /tmp/909901/libmthca-1.0.4/Makefile.am	Thu Feb 28 00:56:26 2008
++++ libmthca-1.0.4/Makefile.am	Thu Oct  7 12:21:58 2010
+@@ -10,7 +10,7 @@
+     src_libmthca_la_SOURCES = $(MTHCA_SOURCES)
+     src_libmthca_la_LDFLAGS = -avoid-version -release @IBV_DEVICE_LIBRARY_EXTENSION@ \
+         $(mthca_version_script)
+-    mthcaconfdir = $(sysconfdir)/libibverbs.d
++    mthcaconfdir = $(datadir)/libibverbs.d
+     mthcaconf_DATA = mthca.driver
+ else
+     mthcalibdir = $(libdir)/infiniband
+diff -r -u /tmp/909901/libmthca-1.0.4/src/buf.c libmthca-1.0.4/src/buf.c
+--- /tmp/909901/libmthca-1.0.4/src/buf.c	Thu Feb 28 00:56:26 2008
++++ libmthca-1.0.4/src/buf.c	Thu Oct  7 12:21:59 2010
+@@ -62,6 +62,7 @@
+ 	int ret;
+ 
+ 	ret = posix_memalign(&buf->buf, page_size, align(size, page_size));
++
+ 	if (ret)
+ 		return ret;
+ 
+diff -r -u /tmp/909901/libmthca-1.0.4/src/cq.c libmthca-1.0.4/src/cq.c
+--- /tmp/909901/libmthca-1.0.4/src/cq.c	Thu Feb 28 00:56:26 2008
++++ libmthca-1.0.4/src/cq.c	Thu Oct  7 12:21:59 2010
+@@ -181,6 +181,15 @@
+ 	int dbd;
+ 	uint32_t new_wqe;
+ 
++#ifdef EXTRA_DEBUG
++	if (cqe->syndrome) {
++		printf("QP Error "
++		       "(QPN %06x, WQE @ %08x, CQN %06x, index %d)\n",
++		       ntohl(cqe->my_qpn), ntohl(cqe->wqe),
++		       cq->cqn, cq->cons_index);
++		dump_cqe(cqe);
++	}
++#endif
+ 	if (cqe->syndrome == SYNDROME_LOCAL_QP_OP_ERR) {
+ 		printf("local QP operation err "
+ 		       "(QPN %06x, WQE @ %08x, CQN %06x, index %d)\n",
+@@ -351,7 +360,11 @@
+ 		int32_t wqe;
+ 		wq = &(*cur_qp)->rq;
+ 		wqe = ntohl(cqe->wqe);
++#if defined(__SVR4) && defined(__sun)
++		wqe_index = ((ntohl(cqe->wqe) - (*cur_qp)->recv_wqe_offset) >> wq->wqe_shift);
++#else
+ 		wqe_index = wqe >> wq->wqe_shift;
++#endif
+ 		/*
+ 		 * WQE addr == base - 1 might be reported by Sinai FW
+ 		 * 1.0.800 and Arbel FW 5.1.400 in receive completion
+@@ -619,10 +632,14 @@
+ {
+ 	int i;
+ 
++#if !(defined(__SVR4) && defined(__sun))
++	/*
++	 * Memory allocated by kernel for Solaris
++	 */
+ 	if (mthca_alloc_buf(buf, align(nent * MTHCA_CQ_ENTRY_SIZE, dev->page_size),
+ 		    dev->page_size))
+ 		return -1;
+-
++#endif
+ 	for (i = 0; i < nent; ++i)
+ 		((struct mthca_cqe *) buf->buf)[i].owner = MTHCA_CQ_ENTRY_OWNER_HW;
+ 
+diff -r -u /tmp/909901/libmthca-1.0.4/src/memfree.c libmthca-1.0.4/src/memfree.c
+--- /tmp/909901/libmthca-1.0.4/src/memfree.c	Thu Feb 28 00:56:26 2008
++++ libmthca-1.0.4/src/memfree.c	Thu Sep 30 08:16:32 2010
+@@ -116,7 +116,15 @@
+ 
+ found:
+ 	for (j = 0; j < MTHCA_FREE_MAP_SIZE; ++j) {
+-		k = ffsl(db_tab->page[i].free[j]);
++		/* vvvvv k = ffsl(db_tab->page[i].free[j]); vvvvv */
++		long bit = 1;
++		long look = db_tab->page[i].free[j];
++		for (k = 1; k <= 32; k++) {
++			if (bit & look) break;
++			bit = bit << 1;
++		}
++		if (k > 32) k = 0;
++		/* ^^^^^ k = ffsl(db_tab->page[i].free[j]); ^^^^^ */
+ 		if (k)
+ 			break;
+ 	}
+diff -r -u /tmp/909901/libmthca-1.0.4/src/mthca-abi.h libmthca-1.0.4/src/mthca-abi.h
+--- /tmp/909901/libmthca-1.0.4/src/mthca-abi.h	Thu Feb 28 00:56:26 2008
++++ libmthca-1.0.4/src/mthca-abi.h	Thu Sep 30 08:16:32 2010
+@@ -36,6 +36,10 @@
+ 
+ #include <infiniband/kern-abi.h>
+ 
++#if defined(__SVR4) && defined(__sun)
++#include <sys/ib/adapters/mlnx_umap.h>
++#endif
++
+ #define MTHCA_UVERBS_ABI_VERSION	1
+ 
+ struct mthca_alloc_ucontext_resp {
+diff -r -u /tmp/909901/libmthca-1.0.4/src/mthca.c libmthca-1.0.4/src/mthca.c
+--- /tmp/909901/libmthca-1.0.4/src/mthca.c	Thu Feb 28 00:56:26 2008
++++ libmthca-1.0.4/src/mthca.c	Thu Oct  7 12:22:00 2010
+@@ -35,6 +35,13 @@
+ #  include <config.h>
+ #endif /* HAVE_CONFIG_H */
+ 
++#if defined(__SVR4) && defined(__sun)
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
++#include <inttypes.h>
++#endif
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+@@ -56,6 +63,7 @@
+ #include "mthca.h"
+ #include "mthca-abi.h"
+ 
++
+ #ifndef PCI_VENDOR_ID_MELLANOX
+ #define PCI_VENDOR_ID_MELLANOX			0x15b3
+ #endif
+@@ -137,6 +145,11 @@
+ 	struct ibv_get_context           cmd;
+ 	struct mthca_alloc_ucontext_resp resp;
+ 	int                              i;
++#if defined(__SVR4) && defined(__sun)
++	pid_t                            cur_pid;
++	off64_t                          uarpg_offset;
++	int                              temp_qp_num;
++#endif
+ 
+ 	context = malloc(sizeof *context);
+ 	if (!context)
+@@ -145,20 +158,33 @@
+ 	memset(context, 0, sizeof *context);
+ 	context->ibv_ctx.cmd_fd = cmd_fd;
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * Need to set ibv_ctx.device because mthca_is_memfree() will
++	 * look at it to figure out the HCA type.
++	 */
++	context->ibv_ctx.device = ibdev;
++#endif
++
+ 	if (ibv_cmd_get_context(&context->ibv_ctx, &cmd, sizeof cmd,
+ 				&resp.ibv_resp, sizeof resp))
+ 		goto err_free;
+ 
++#if defined(__SVR4) && defined(__sun)
++	/* Expects power of two, round up */
++	for (temp_qp_num = 1; temp_qp_num< resp.qp_tab_size; temp_qp_num <<= 1)
++		;
++	resp.qp_tab_size = temp_qp_num;
++#endif
++
+ 	context->num_qps        = resp.qp_tab_size;
+ 	context->qp_table_shift = ffs(context->num_qps) - 1 - MTHCA_QP_TABLE_BITS;
+ 	context->qp_table_mask  = (1 << context->qp_table_shift) - 1;
++#ifdef EXTRA_DEBUG
++	fprintf(stderr, "mthca_alloc_context: num_qps: 0x%08x, qp_table_shift:0x%08X, qp_table_mask:0x%08X\n",
++	        context->num_qps, context->qp_table_shift, context->qp_table_mask);
++#endif
+ 
+-	/*
+-	 * Need to set ibv_ctx.device because mthca_is_memfree() will
+-	 * look at it to figure out the HCA type.
+-	 */
+-	context->ibv_ctx.device = ibdev;
+-
+ 	if (mthca_is_memfree(&context->ibv_ctx)) {
+ 		context->db_tab = mthca_alloc_db_tab(resp.uarc_size);
+ 		if (!context->db_tab)
+@@ -170,8 +196,22 @@
+ 	for (i = 0; i < MTHCA_QP_TABLE_SIZE; ++i)
+ 		context->qp_table[i].refcnt = 0;
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * Map the user access region page into process memory.
++	 */
++	cur_pid = getpid();
++	uarpg_offset = (((off64_t)cur_pid << MLNX_UMAP_RSRC_TYPE_SHIFT) |
++			MLNX_UMAP_UARPG_RSRC) * to_mdev(ibdev)->page_size;
++
++	context->uar = mmap64((void *)0, to_mdev(ibdev)->page_size,
++				PROT_WRITE | PROT_READ, MAP_SHARED,
++				context->ibv_ctx.mmap_fd, uarpg_offset);
++
++#else
+ 	context->uar = mmap(NULL, to_mdev(ibdev)->page_size, PROT_WRITE,
+ 			    MAP_SHARED, cmd_fd, 0);
++#endif
+ 	if (context->uar == MAP_FAILED)
+ 		goto err_db_tab;
+ 
+diff -r -u /tmp/909901/libmthca-1.0.4/src/mthca.h libmthca-1.0.4/src/mthca.h
+--- /tmp/909901/libmthca-1.0.4/src/mthca.h	Thu Feb 28 00:56:26 2008
++++ libmthca-1.0.4/src/mthca.h	Thu Sep 30 08:16:32 2010
+@@ -208,6 +208,9 @@
+ 	struct mthca_buf buf;
+ 	uint64_t        *wrid;
+ 	int              send_wqe_offset;
++#if defined(__SVR4) && defined(__sun)
++	int              recv_wqe_offset;
++#endif
+ 	int              max_inline_data;
+ 	int              buf_size;
+ 	struct mthca_wq  sq;
+@@ -334,8 +337,14 @@
+ int mthca_query_srq(struct ibv_srq *srq,
+ 			   struct ibv_srq_attr *attr);
+ int mthca_destroy_srq(struct ibv_srq *srq);
++#if defined(__SVR4) && defined(__sun)
++int mthca_set_srq_buf(struct ibv_pd *pd, struct ibv_srq_attr *attr,
++                      struct mthca_srq *srq, void *srqbuf, uint64_t buflen,
++                      uint32_t srq_wqesz, uint32_t srq_numwqe);
++#else
+ int mthca_alloc_srq_buf(struct ibv_pd *pd, struct ibv_srq_attr *attr,
+ 			struct mthca_srq *srq);
++#endif
+ void mthca_free_srq_wqe(struct mthca_srq *srq, int ind);
+ int mthca_tavor_post_srq_recv(struct ibv_srq *ibsrq,
+ 			      struct ibv_recv_wr *wr,
+@@ -360,8 +369,14 @@
+ 			  struct ibv_send_wr **bad_wr);
+ int mthca_arbel_post_recv(struct ibv_qp *ibqp, struct ibv_recv_wr *wr,
+ 			  struct ibv_recv_wr **bad_wr);
++#if defined(__SVR4) && defined(__sun)
++int mthca_set_qp_buf(struct ibv_pd *pd, struct mthca_qp *qp, void *qpbuf,
++                     uint64_t buflen, uint32_t rq_wqesz, uint32_t rq_off,
++                     uint32_t sq_wqesz, uint32_t sq_off);
++#else
+ int mthca_alloc_qp_buf(struct ibv_pd *pd, struct ibv_qp_cap *cap,
+ 		       enum ibv_qp_type type, struct mthca_qp *qp);
++#endif
+ struct mthca_qp *mthca_find_qp(struct mthca_context *ctx, uint32_t qpn);
+ int mthca_store_qp(struct mthca_context *ctx, uint32_t qpn, struct mthca_qp *qp);
+ void mthca_clear_qp(struct mthca_context *ctx, uint32_t qpn);
+diff -r -u /tmp/909901/libmthca-1.0.4/src/qp.c libmthca-1.0.4/src/qp.c
+--- /tmp/909901/libmthca-1.0.4/src/qp.c	Thu Feb 28 00:56:26 2008
++++ libmthca-1.0.4/src/qp.c	Thu Oct  7 12:22:01 2010
+@@ -60,7 +60,11 @@
+ 
+ static void *get_recv_wqe(struct mthca_qp *qp, int n)
+ {
++#if defined(__SVR4) && defined(__sun)
++	return qp->buf.buf + qp->recv_wqe_offset + (n << qp->rq.wqe_shift);
++#else
+ 	return qp->buf.buf + (n << qp->rq.wqe_shift);
++#endif
+ }
+ 
+ static void *get_send_wqe(struct mthca_qp *qp, int n)
+@@ -309,6 +313,7 @@
+ 		}
+ 
+ 		++ind;
++
+ 		if (ind >= qp->sq.max)
+ 			ind -= qp->sq.max;
+ 	}
+@@ -387,6 +392,14 @@
+ 
+ 		qp->wrid[ind + qp->sq.max] = wr->wr_id;
+ 
++#if defined(__SVR4) && defined(__sun)
++		((struct mthca_next_seg *) prev_wqe)->nda_op =
++			htonl(((ind << qp->rq.wqe_shift) +
++			qp->recv_wqe_offset) | 1);
++#else
++		((struct mthca_next_seg *) prev_wqe)->nda_op =
++			htonl((ind << qp->rq.wqe_shift) | 1);
++#endif
+ 		((struct mthca_next_seg *) prev_wqe)->ee_nds =
+ 			htonl(MTHCA_NEXT_DBD | size);
+ 
+@@ -401,7 +414,12 @@
+ 		if (nreq == MTHCA_TAVOR_MAX_WQES_PER_RECV_DB) {
+ 			nreq = 0;
+ 
++#if defined(__SVR4) && defined(__sun)
++			doorbell[0] = htonl(((qp->rq.next_ind << qp->rq.wqe_shift) +
++			                    qp->recv_wqe_offset) | size0);
++#else
+ 			doorbell[0] = htonl((qp->rq.next_ind << qp->rq.wqe_shift) | size0);
++#endif
+ 			doorbell[1] = htonl(ibqp->qp_num << 8);
+ 
+ 			/*
+@@ -420,7 +438,12 @@
+ 
+ out:
+ 	if (nreq) {
++#if defined(__SVR4) && defined(__sun)
++		doorbell[0] = htonl(((qp->rq.next_ind << qp->rq.wqe_shift) +
++		                    qp->recv_wqe_offset) | size0);
++#else
+ 		doorbell[0] = htonl((qp->rq.next_ind << qp->rq.wqe_shift) | size0);
++#endif
+ 		doorbell[1] = htonl((ibqp->qp_num << 8) | nreq);
+ 
+ 		/*
+@@ -777,6 +800,81 @@
+ 	return ret;
+ }
+ 
++#if defined(__SVR4) && defined(__sun)
++
++int mthca_set_qp_buf(struct ibv_pd *pd, struct mthca_qp *qp, void *qpbuf,
++                     uint64_t buflen, uint32_t rq_wqesz, uint32_t rq_off,
++                     uint32_t sq_wqesz, uint32_t sq_off)
++{
++
++        qp->buf.buf    = qpbuf;
++        qp->buf.length = buflen;
++
++        qp->wrid = malloc((qp->rq.max + qp->sq.max) * sizeof(uint64_t));
++        if (!qp->wrid) {
++                return -1;
++        }
++
++        for (qp->rq.wqe_shift = 6; 1 << qp->rq.wqe_shift < rq_wqesz;
++             qp->rq.wqe_shift++)
++                ; /* nothing */
++
++        for (qp->sq.wqe_shift = 6; 1 << qp->sq.wqe_shift < sq_wqesz;
++             qp->sq.wqe_shift++)
++                ; /* nothing */
++
++        qp->send_wqe_offset = sq_off;
++        qp->recv_wqe_offset = rq_off;
++
++        if (qp->recv_wqe_offset < qp->send_wqe_offset) {
++                qp->buf_size = qp->send_wqe_offset + (qp->sq.max << qp->sq.wqe_shift);
++        } else {
++                qp->buf_size = qp->recv_wqe_offset + (qp->rq.max << qp->rq.wqe_shift);
++        }
++
++        if ((long int)qp->buf.length < (long int)qp->buf_size) {
++                fprintf(stderr, "warning kernel buf size %d < user buf size %d\n",
++                        qp->buf.length, qp->buf_size);
++        }
++
++        memset(qp->buf.buf, 0, qp->buf_size);
++
++	if (mthca_is_memfree(pd->context)) {
++		struct mthca_next_seg *next;
++		struct mthca_data_seg *scatter;
++		int i;
++		uint32_t sz;
++
++		sz = htonl((sizeof (struct mthca_next_seg) +
++			    qp->rq.max_gs * sizeof (struct mthca_data_seg)) / 16);
++
++		for (i = 0; i < qp->rq.max; ++i) {
++			next = get_recv_wqe(qp, i);
++			next->nda_op = htonl(((i + 1) & (qp->rq.max - 1)) <<
++					     qp->rq.wqe_shift);
++			next->ee_nds = sz;
++
++			for (scatter = (void *) (next + 1);
++			     (void *) scatter < (void *) next + (1 << qp->rq.wqe_shift);
++			     ++scatter)
++				scatter->lkey = htonl(MTHCA_INVAL_LKEY);
++		}
++
++		for (i = 0; i < qp->sq.max; ++i) {
++			next = get_send_wqe(qp, i);
++			next->nda_op = htonl((((i + 1) & (qp->sq.max - 1)) <<
++					      qp->sq.wqe_shift) +
++					     qp->send_wqe_offset);
++		}
++	}
++
++	qp->sq.last = get_send_wqe(qp, qp->sq.max - 1);
++	qp->rq.last = get_recv_wqe(qp, qp->rq.max - 1);
++	return 0;
++}
++
++#else
++
+ int mthca_alloc_qp_buf(struct ibv_pd *pd, struct ibv_qp_cap *cap,
+ 		       enum ibv_qp_type type, struct mthca_qp *qp)
+ {
+@@ -895,6 +993,7 @@
+ 
+ 	return 0;
+ }
++#endif
+ 
+ struct mthca_qp *mthca_find_qp(struct mthca_context *ctx, uint32_t qpn)
+ {
+diff -r -u /tmp/909901/libmthca-1.0.4/src/srq.c libmthca-1.0.4/src/srq.c
+--- /tmp/909901/libmthca-1.0.4/src/srq.c	Thu Feb 28 00:56:26 2008
++++ libmthca-1.0.4/src/srq.c	Thu Sep 30 08:16:32 2010
+@@ -264,6 +264,68 @@
+ 	return err;
+ }
+ 
++#if defined(__SVR4) && defined(__sun)
++int mthca_set_srq_buf(struct ibv_pd *pd, struct ibv_srq_attr *attr,
++		      struct mthca_srq *srq, void *srqbuf, 
++                      uint64_t buflen, uint32_t srq_wqesz,
++                      uint32_t srq_numwqe)
++{
++	struct mthca_data_seg *scatter;
++	void *wqe;
++	int i;
++
++	srq->buf.buf    = srqbuf;
++	srq->buf.length = buflen;
++	srq->max        = srq_numwqe;
++
++	srq->wrid = malloc(srq->max * sizeof (uint64_t));
++	if (!srq->wrid)
++		return -1;
++
++#ifdef EXTRA_DEBUG
++	fprintf(stderr, "mthca_set_srq_buf: buflen =%lld, max wr=%d, max_gs=%d\n",
++	        buflen, srq->max, srq->max_gs);
++#endif
++	for (srq->wqe_shift = 6; 1 << srq->wqe_shift < srq_wqesz; ++srq->wqe_shift)
++		; /* nothing */
++
++	srq->buf_size = srq->buf.length;
++	memset(srq->buf.buf, 0, srq->buf.length);
++
++	/*
++	 * Now initialize the SRQ buffer so that all of the WQEs are
++	 * linked into the list of free WQEs.  In addition, set the
++	 * scatter list L_Keys to the sentry value of 0x100.
++	 */
++
++	for (i = 0; i < srq->max; ++i) {
++		struct mthca_next_seg *next;
++
++		next = wqe = get_wqe(srq, i);
++
++		if (i < srq->max - 1) {
++			*wqe_to_link(wqe) = i + 1;
++			next->nda_op = htonl(((i + 1) << srq->wqe_shift) | 1);
++		} else {
++			*wqe_to_link(wqe) = -1;
++			next->nda_op = 0;
++		}
++
++		for (scatter = wqe + sizeof (struct mthca_next_seg);
++		     (void *) scatter < wqe + (1 << srq->wqe_shift);
++		     ++scatter)
++			scatter->lkey = htonl(MTHCA_INVAL_LKEY);
++	}
++
++	srq->first_free = 0;
++	srq->last_free  = srq->max - 1;
++	srq->last       = get_wqe(srq, srq->max - 1);
++
++	return 0;
++}
++
++#else
++
+ int mthca_alloc_srq_buf(struct ibv_pd *pd, struct ibv_srq_attr *attr,
+ 		       struct mthca_srq *srq)
+ {
+@@ -279,6 +341,10 @@
+ 	size = sizeof (struct mthca_next_seg) +
+ 		srq->max_gs * sizeof (struct mthca_data_seg);
+ 
++#ifdef EXTRA_DEBUG
++	fprintf(stderr, "mthca_alloc_srq_buf: size =%d, max=%d, max_gs=%d\n",
++	        size, srq->max, srq->max_gs);
++#endif
+ 	for (srq->wqe_shift = 6; 1 << srq->wqe_shift < size; ++srq->wqe_shift)
+ 		; /* nothing */
+ 
+@@ -292,7 +358,6 @@
+ 	}
+ 
+ 	memset(srq->buf.buf, 0, srq->buf_size);
+-
+ 	/*
+ 	 * Now initialize the SRQ buffer so that all of the WQEs are
+ 	 * linked into the list of free WQEs.  In addition, set the
+@@ -324,3 +389,4 @@
+ 
+ 	return 0;
+ }
++#endif
+diff -r -u /tmp/909901/libmthca-1.0.4/src/verbs.c libmthca-1.0.4/src/verbs.c
+--- /tmp/909901/libmthca-1.0.4/src/verbs.c	Thu Feb 28 00:56:26 2008
++++ libmthca-1.0.4/src/verbs.c	Thu Sep 30 08:16:32 2010
+@@ -44,6 +44,9 @@
+ 
+ #include "mthca.h"
+ #include "mthca-abi.h"
++#if defined(__SVR4) && defined(__sun)
++#include "wqe.h"
++#endif
+ 
+ int mthca_query_device(struct ibv_context *context, struct ibv_device_attr *attr)
+ {
+@@ -56,6 +59,14 @@
+ 	if (ret)
+ 		return ret;
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * So that the queue operations in srq.c work we need to report
++	 * the max as actual max  less 1.
++	 */
++	attr->max_srq_wr -=1;
++#endif
++
+ 	major     = (raw_fw_ver >> 32) & 0xffff;
+ 	minor     = (raw_fw_ver >> 16) & 0xffff;
+ 	sub_minor = raw_fw_ver & 0xffff;
+@@ -79,6 +90,9 @@
+ 	struct ibv_alloc_pd        cmd;
+ 	struct mthca_alloc_pd_resp resp;
+ 	struct mthca_pd           *pd;
++#if defined(__SVR4) && defined(__sun)
++	mlnx_umap_pd_data_out_t   *mdd;
++#endif
+ 
+ 	pd = malloc(sizeof *pd);
+ 	if (!pd)
+@@ -98,7 +112,16 @@
+ 		return NULL;
+ 	}
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * The kernel driver passes back the PD table index as opaque data.  This
++	 * index is required for specifying the PD in user space address vectors.
++	 */
++	mdd     = (mlnx_umap_pd_data_out_t *) &resp.ibv_resp.drv_out;
++	pd->pdn = mdd->mpd_pdnum;
++#else
+ 	pd->pdn = resp.pdn;
++#endif
+ 
+ 	return &pd->ibv_pd;
+ }
+@@ -178,10 +201,14 @@
+ 			       struct ibv_comp_channel *channel,
+ 			       int comp_vector)
+ {
+-	struct mthca_create_cq      cmd;
+-	struct mthca_create_cq_resp resp;
+-	struct mthca_cq      	   *cq;
+-	int                  	    ret;
++	struct mthca_create_cq        cmd;
++	struct mthca_create_cq_resp   resp;
++	struct mthca_cq      	      *cq;
++	int                  	      ret;
++#if defined(__SVR4) && defined(__sun)
++	mlnx_umap_cq_data_out_t       *mdd;
++	void                          *cqbuf;
++#endif
+ 
+ 	/* Sanity check CQ size before proceeding */
+ 	if (cqe > 131072)
+@@ -197,6 +224,16 @@
+ 		goto err;
+ 
+ 	cqe = align_cq_size(cqe);
++
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * Solaris CQ buffer is supplied by kernel, so we don't allocate
++	 * memory here.
++	 */
++	cq->buf.buf    = NULL;
++	cq->buf.length = 0;
++	cq->mr         = NULL;
++#else
+ 	if (mthca_alloc_cq_buf(to_mdev(context->device), &cq->buf, cqe))
+ 		goto err;
+ 
+@@ -207,6 +244,7 @@
+ 		goto err_buf;
+ 
+ 	cq->mr->context = context;
++#endif
+ 
+ 	if (mthca_is_memfree(context)) {
+ 		cq->arm_sn          = 1;
+@@ -228,7 +266,11 @@
+ 		cmd.set_db_index = cq->set_ci_db_index;
+ 	}
+ 
++#if defined(__SVR4) && defined(__sun)
++	cmd.lkey   = 0;
++#else
+ 	cmd.lkey   = cq->mr->lkey;
++#endif
+ 	cmd.pdn    = to_mpd(to_mctx(context)->pd)->pdn;
+ 	ret = ibv_cmd_create_cq(context, cqe - 1, channel, comp_vector,
+ 				&cq->ibv_cq, &cmd.ibv_cmd, sizeof cmd,
+@@ -236,7 +278,9 @@
+ 	if (ret)
+ 		goto err_arm_db;
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 	cq->cqn = resp.cqn;
++#endif
+ 
+ 	if (mthca_is_memfree(context)) {
+ 		mthca_set_db_qn(cq->set_ci_db, MTHCA_DB_TYPE_CQ_SET_CI, cq->cqn);
+@@ -243,8 +287,68 @@
+ 		mthca_set_db_qn(cq->arm_db,    MTHCA_DB_TYPE_CQ_ARM,    cq->cqn);
+ 	}
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * The kernel driver passes back mmap information for mapping the
++	 * CQ memory it allocated into user space.  This is part of the
++	 * HCA generic opaque data.
++	 */
++	mdd = (mlnx_umap_cq_data_out_t *) &resp.ibv_resp.drv_out;
++
++
++#ifdef EXTRA_DEBUG
++	
++	printf("libmthca_create_cq: mcq_mapoffset = %lld\n", mdd->mcq_mapoffset);
++	printf("libmthca_create_cq: mcq_maplen = %lld\n", mdd->mcq_maplen);
++	printf("libmthca_create_cq: mcq_cqnum = 0x%08x\n", mdd->mcq_cqnum);
++	printf("libmthca_create_cq: calling map, using fd %d\n", context->mmap_fd);
++#endif
++	cqbuf = mmap64((void *)0, mdd->mcq_maplen, (PROT_READ | PROT_WRITE),
++		    MAP_SHARED, context->mmap_fd, mdd->mcq_mapoffset);
++
++	if (cqbuf == MAP_FAILED) {
++		goto err_destroy;
++	}
++
++	/*
++	 * Extract hardware driver settins for number of CQE and the hardware
++	 * CQ number to use (needed for user space doorbells).
++	 */
++	cqe            = mdd->mcq_numcqe;
++	cq->cqn        = mdd->mcq_cqnum;
++	cq->buf.buf    = cqbuf;
++	cq->buf.length = mdd->mcq_maplen;
++
++	/*
++	 * NOTE: The following call will not allocate memory for solaris, it
++	 * only performs required initialization.
++	 */
++	if (mthca_alloc_cq_buf(to_mdev(context->device), &cq->buf, cqe)) {
++		goto err_unmap;
++	}
++#endif
++
+ 	return &cq->ibv_cq;
+ 
++#if defined(__SVR4) && defined(__sun)
++err_unmap:
++	munmap(cq->buf.buf, cq->buf.length);
++
++err_destroy:
++	/*
++	 * Calling ibv_cmd_destroy_cq() will try and take the ibv_cq
++	 * mutext that is initialised by the ibv_create_cq() entry point
++	 * that called us AFETR we return, so its not initialised yet.
++	 * So initialised it here so the destroy call doesn't hang.
++	 */
++	pthread_mutex_init(&(cq->ibv_cq.mutex), NULL);
++	pthread_cond_init(&(cq->ibv_cq.cond), NULL);
++	cq->ibv_cq.comp_events_completed = 0;
++	cq->ibv_cq.async_events_completed = 0;
++
++	ibv_cmd_destroy_cq(&cq->ibv_cq);
++#endif
++
+ err_arm_db:
+ 	if (mthca_is_memfree(context))
+ 		mthca_free_db(to_mctx(context)->db_tab, MTHCA_DB_TYPE_CQ_ARM,
+@@ -256,10 +360,12 @@
+ 			      cq->set_ci_db_index);
+ 
+ err_unreg:
++#if !(defined(__SVR4) && defined(__sun))
+ 	mthca_dereg_mr(cq->mr);
+ 
+ err_buf:
+ 	mthca_free_buf(&cq->buf);
++#endif
+ 
+ err:
+ 	free(cq);
+@@ -269,10 +375,16 @@
+ 
+ int mthca_resize_cq(struct ibv_cq *ibcq, int cqe)
+ {
+-	struct mthca_cq *cq = to_mcq(ibcq);
+-	struct mthca_resize_cq cmd;
+-	struct ibv_mr *mr;
+-	struct mthca_buf buf;
++	struct mthca_cq             *cq = to_mcq(ibcq);
++	struct mthca_resize_cq      cmd;
++	struct ibv_resize_cq_resp   resp;;
++#if defined(__SVR4) && defined(__sun)
++	mlnx_umap_cq_data_out_t      *mdd;
++	void                         *cqbuf;
++#else
++	struct ibv_mr               *mr;
++	struct mthca_buf            buf;
++#endif
+ 	int old_cqe;
+ 	int ret;
+ 
+@@ -288,6 +400,18 @@
+ 		goto out;
+ 	}
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * Solaris CQ buffer is supplied by the kernel, so we don't allocate
++	 * memory here.
++	 */
++	if (cq->buf.buf != NULL) {
++		ret = munmap((char *)cq->buf.buf, cq->buf.length);
++		if (ret) {
++			goto out;
++		}
++	}
++#else
+ 	ret = mthca_alloc_cq_buf(to_mdev(ibcq->context->device), &buf, cqe);
+ 	if (ret)
+ 		goto out;
+@@ -302,32 +426,55 @@
+ 	}
+ 
+ 	mr->context = ibcq->context;
+-
++#endif
+ 	old_cqe = ibcq->cqe;
+ 
+-	cmd.lkey = mr->lkey;
+-#ifdef IBV_CMD_RESIZE_CQ_HAS_RESP_PARAMS
+-	{
+-		struct ibv_resize_cq_resp resp;
+-		ret = ibv_cmd_resize_cq(ibcq, cqe - 1, &cmd.ibv_cmd, sizeof cmd,
+-					&resp, sizeof resp);
+-	}
++#if defined(__SVR4) && defined(__sun)
++	cmd.lkey = 0;
+ #else
+-	ret = ibv_cmd_resize_cq(ibcq, cqe - 1, &cmd.ibv_cmd, sizeof cmd);
++	cmd.lkey = mr->lkey;
+ #endif
++
++	ret = ibv_cmd_resize_cq(ibcq, cqe - 1, &cmd.ibv_cmd, sizeof cmd,
++				&resp, sizeof resp);
+ 	if (ret) {
++#if !(defined(__SVR4) && defined(__sun))
+ 		mthca_dereg_mr(mr);
+ 		mthca_free_buf(&buf);
++#endif
+ 		goto out;
+ 	}
+ 
+-	mthca_cq_resize_copy_cqes(cq, buf.buf, old_cqe);
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*	
++	 * The kernel driver passes back mmap information for mapping the
++	 * CQ memory it allocated to use space.
++	 */
++	mdd = (mlnx_umap_cq_data_out_t *) &resp.drv_out;
++
++#ifdef EXTRA_DEBUG
++        printf("libmthca_resize_cq: mcq_mapoffset = %lld\n", mdd->mcq_mapoffset);
++        printf("libmthca_resize_cq: mcq_maplen = %lld\n", mdd->mcq_maplen);
++        printf("libmthca_resize_cq: calling map, using fd %d\n", ibcq->context->mmap_fd);
++#endif
++        cqbuf = mmap64((void *)0, mdd->mcq_maplen, (PROT_READ | PROT_WRITE), MAP_SHARED,
++                        ibcq->context->mmap_fd, mdd->mcq_mapoffset);
++        if (cqbuf == MAP_FAILED) {
++		ret = -1;  /* XXXX SFW need something better than this */
++                goto out;
++        }
++
++	cq->mr         = NULL;
++        cq->buf.buf    = cqbuf;
++	cq->buf.length = mdd->mcq_maplen;
++#else
++	mthca_cq_resize_copy_cqes(cq, buf.buf, old_cqe);
+ 	mthca_dereg_mr(cq->mr);
+ 	mthca_free_buf(&cq->buf);
+-
+-	cq->buf = buf;
+ 	cq->mr  = mr;
++	cq->buf = buf;
++#endif
+ 
+ out:
+ 	pthread_spin_unlock(&cq->lock);
+@@ -338,10 +485,18 @@
+ {
+ 	int ret;
+ 
++
+ 	ret = ibv_cmd_destroy_cq(cq);
+ 	if (ret)
+ 		return ret;
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * Unmap memory allocated by the kernel for the CQ from our process.
++	 */
++	munmap(to_mcq(cq)->buf.buf, to_mcq(cq)->buf.length);
++#endif
++
+ 	if (mthca_is_memfree(cq->context)) {
+ 		mthca_free_db(to_mctx(cq->context)->db_tab, MTHCA_DB_TYPE_CQ_SET_CI,
+ 			      to_mcq(cq)->set_ci_db_index);
+@@ -349,8 +504,11 @@
+ 			      to_mcq(cq)->arm_db_index);
+ 	}
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 	mthca_dereg_mr(to_mcq(cq)->mr);
+ 	mthca_free_buf(&to_mcq(cq)->buf);
++#endif
++
+ 	free(to_mcq(cq));
+ 
+ 	return 0;
+@@ -383,6 +541,10 @@
+ 	struct mthca_create_srq_resp resp;
+ 	struct mthca_srq            *srq;
+ 	int                          ret;
++#if defined(__SVR4) && defined(__sun)
++	mlnx_umap_srq_data_out_t     *mdd;
++	void                         *srqbuf;
++#endif
+ 
+ 	/* Sanity check SRQ size before proceeding */
+ 	if (attr->attr.max_wr > 1 << 16 || attr->attr.max_sge > 64)
+@@ -394,7 +556,26 @@
+ 
+ 	if (pthread_spin_init(&srq->lock, PTHREAD_PROCESS_PRIVATE))
+ 		goto err;
++ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * Solaris SRQ WQE memory is supplied by the kernel, so we
++	 * don't allocate memory here.
++	 */
++	srq->buf.buf	= NULL;
++	srq->buf.length	= 0;
++	srq->mr		= NULL;	
++	srq->wrid	= NULL;
+ 
++	/*
++	 * Need solaris to allocate space for the spare WR in
++	 * the list that makes the queue work. The Solaris driver
++	 * will round up to the nearest power of 2 as align_queue_size()
++	 * does for OFED.
++	 */
++	attr->attr.max_wr += 1;
++
++#else
+ 	srq->max     = align_queue_size(pd->context, attr->attr.max_wr, 1);
+ 	srq->max_gs  = attr->attr.max_sge;
+ 	srq->counter = 0;
+@@ -407,6 +588,7 @@
+ 		goto err_free;
+ 
+ 	srq->mr->context = pd->context;
++#endif
+ 
+ 	if (mthca_is_memfree(pd->context)) {
+ 		srq->db_index = mthca_alloc_db(to_mctx(pd->context)->db_tab,
+@@ -418,7 +600,11 @@
+ 		cmd.db_index = srq->db_index;
+ 	}
+ 
++#if defined(__SVR4) && defined(__sun)
++	cmd.lkey = 0;
++#else
+ 	cmd.lkey = srq->mr->lkey;
++#endif
+ 
+ 	ret = ibv_cmd_create_srq(pd, &srq->ibv_srq, attr,
+ 				 &cmd.ibv_cmd, sizeof cmd,
+@@ -431,8 +617,75 @@
+ 	if (mthca_is_memfree(pd->context))
+ 		mthca_set_db_qn(srq->db, MTHCA_DB_TYPE_SRQ, srq->srqn);
+ 
++#if defined(__SVR4) && defined(__sun)
++        /*
++         * The kernel driver passes back mmap information for mapping the
++         * SRQ WQE memory it allocated back into user space.  This is part
++         * of the HCA generic data.
++         */    
++        mdd = (mlnx_umap_srq_data_out_t *) &resp.ibv_resp.drv_out;
++
++#ifdef EXTRA_DEBUG
++        printf("libmthca_create_srq: msrq_mapoffset = %lld\n", mdd->msrq_mapoffset);
++        printf("libmthca_create_srq: msrq_maplen = %lld\n", mdd->msrq_maplen);
++        printf("libmthca_create_srq: msrq_srqnum = %d\n", mdd->msrq_srqnum);
++        printf("libmthca_create_srq: msrq_wqesz = %d\n", mdd->msrq_wqesz);
++        printf("libmthca_create_srq: msrq_numwqe = %d\n", mdd->msrq_numwqe);
++        printf("libmthca_create_srq: calling map, using fd %d\n", pd->context->mmap_fd);
++#endif
++
++        srqbuf = mmap64((void *)0, mdd->msrq_maplen,
++                        PROT_READ|PROT_WRITE, MAP_SHARED,
++                        pd->context->mmap_fd,
++                        mdd->msrq_mapoffset);
++
++        if (srqbuf == MAP_FAILED) {
++                goto err_destroy;
++        }
++	srq->max        = resp.ibv_resp.max_wr;
++	srq->max_gs     = resp.ibv_resp.max_sge;
++	srq->counter    = 0;
++	srq->srqn       = mdd->msrq_srqnum;
++
++	/*
++	 * The following call only initializes memory and ccontrol structures,
++	 * it utilizes the memory allocated by the kernel in Solaris.
++	 */
++	if (mthca_set_srq_buf(pd, &attr->attr, srq, srqbuf, mdd->msrq_maplen,
++	                      mdd->msrq_wqesz, mdd->msrq_numwqe)) {
++		goto err_unmap;
++	}
++
++	/*
++	 * The rturned max wr will have been rounded up to the nearest
++	 * power of 2, subtracting  1 from that and rporting that value
++	 * as the max will give us the required free WR in the queue, as
++	 * in OFED.
++	 */
++	attr->attr.max_wr -= 1;
++
++#endif
++
+ 	return &srq->ibv_srq;
+ 
++#if defined(__SVR4) && defined(__sun)
++err_unmap:
++	munmap(srq->buf.buf, srq->buf.length);
++
++err_destroy:
++	/*
++	 * Calling ibv_cmd_destroy_srq() will try and take the ibv_srq
++	 * mutext that is initialised by the ibv_create_srq() entry point
++	 * that called us AFETR we return, so its not initialised yet.
++	 * So initialised it here so the destroy call doesn't hang.
++	 */
++	pthread_mutex_init(&(srq->ibv_srq.mutex), NULL);
++	pthread_cond_init(&(srq->ibv_srq.cond), NULL);
++	srq->ibv_srq.events_completed = 0;
++
++	ibv_cmd_destroy_srq(&srq->ibv_srq);
++#endif
++
+ err_db:
+ 	if (mthca_is_memfree(pd->context))
+ 		mthca_free_db(to_mctx(pd->context)->db_tab, MTHCA_DB_TYPE_SRQ,
+@@ -439,11 +692,19 @@
+ 			      srq->db_index);
+ 
+ err_unreg:
++#if !(defined(__SVR4) && defined(__sun))
+ 	mthca_dereg_mr(srq->mr);
+ 
+ err_free:
+ 	free(srq->wrid);
++#else
++	if (srq->wrid)
++		free(srq->wrid);
++#endif
++
++#if !(defined(__SVR4) && defined(__sun))
+ 	mthca_free_buf(&srq->buf);
++#endif
+ 
+ err:
+ 	free(srq);
+@@ -452,12 +713,21 @@
+ }
+ 
+ int mthca_modify_srq(struct ibv_srq *srq,
+-		     struct ibv_srq_attr *attr,
++                     struct ibv_srq_attr *attr,
+ 		     enum ibv_srq_attr_mask attr_mask)
+ {
+ 	struct ibv_modify_srq cmd;
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ibv_cmd_modify_srq(srq, attr, attr_mask, &cmd, sizeof cmd);
++#else
++	int	ret;
++
++	attr->max_wr += 1;	/* See create_srq */
++	ret  = ibv_cmd_modify_srq(srq, attr, attr_mask, &cmd, sizeof cmd);
++	attr->max_wr -= 1;
++	return (ret);
++#endif
+ }
+ 
+ int mthca_query_srq(struct ibv_srq *srq,
+@@ -465,7 +735,16 @@
+ {
+ 	struct ibv_query_srq cmd;
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ibv_cmd_query_srq(srq, attr, &cmd, sizeof cmd);
++#else
++	int	ret;
++
++	ret = ibv_cmd_query_srq(srq, attr, &cmd, sizeof cmd);
++	attr->max_wr -= 1;	/* See create_srq */
++
++	return (ret);
++#endif
+ }
+ 
+ int mthca_destroy_srq(struct ibv_srq *srq)
+@@ -480,9 +759,17 @@
+ 		mthca_free_db(to_mctx(srq->context)->db_tab, MTHCA_DB_TYPE_SRQ,
+ 			      to_msrq(srq)->db_index);
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * Unmap kernel allocated SRQ WQE memory.
++	 */
++	munmap(to_msrq(srq)->buf.buf, to_msrq(srq)->buf.length);
++#else
+ 	mthca_dereg_mr(to_msrq(srq)->mr);
+ 
+ 	mthca_free_buf(&to_msrq(srq)->buf);
++#endif
++
+ 	free(to_msrq(srq)->wrid);
+ 	free(to_msrq(srq));
+ 
+@@ -491,10 +778,16 @@
+ 
+ struct ibv_qp *mthca_create_qp(struct ibv_pd *pd, struct ibv_qp_init_attr *attr)
+ {
+-	struct mthca_create_qp    cmd;
+-	struct ibv_create_qp_resp resp;
+-	struct mthca_qp          *qp;
+-	int                       ret;
++	struct mthca_create_qp      cmd;
++	struct ibv_create_qp_resp   resp;
++	struct mthca_qp             *qp;
++	int                         ret;
++#if defined(__SVR4) && defined(__sun)
++	mlnx_umap_qp_data_out_t     *mdd;
++	void                        *qpbuf;
++	int                         max_send_sge;
++	int                         max_inline_data;
++#endif
+ 
+ 	/* Sanity check QP size before proceeding */
+ 	if (attr->cap.max_send_wr     > 65536 ||
+@@ -511,6 +804,35 @@
+ 	qp->sq.max = align_queue_size(pd->context, attr->cap.max_send_wr, 0);
+ 	qp->rq.max = align_queue_size(pd->context, attr->cap.max_recv_wr, 0);
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * Solaris QP work queue memory is supplied by the kernel, so we
++	 * don't allocate memory here.
++	 */
++	qp->buf.buf	= NULL;
++	qp->buf.length	= 0;
++	qp->mr		= NULL;
++	qp->wrid	= NULL;
++	cmd.lkey	= 0;
++	cmd.reserved	= 0;
++
++	/*
++	 * We adjust the number of send SGL entries to force the kernel to
++	 * allocate a larger WQE that will fit the inline data requested.
++	 * The Solaris Tavor driver does not look at inline data size when
++	 * calculating the send WQE size, so this allows us to get closer
++	 * to what the user has requested.
++	 */
++	max_send_sge = align(attr->cap.max_inline_data +
++				sizeof(struct mthca_inline_seg),
++				sizeof( struct mthca_data_seg)) /
++					sizeof(struct mthca_data_seg);
++
++	if (max_send_sge > attr->cap.max_send_sge) {
++		attr->cap.max_send_sge = max_send_sge;
++	}
++	
++#else
+ 	if (mthca_alloc_qp_buf(pd, &attr->cap, attr->qp_type, qp))
+ 		goto err;
+ 
+@@ -528,6 +850,7 @@
+ 
+ 	cmd.lkey     = qp->mr->lkey;
+ 	cmd.reserved = 0;
++#endif
+ 
+ 	if (mthca_is_memfree(pd->context)) {
+ 		qp->sq.db_index = mthca_alloc_db(to_mctx(pd->context)->db_tab,
+@@ -553,8 +876,9 @@
+ 
+ 	ret = ibv_cmd_create_qp(pd, &qp->ibv_qp, attr, &cmd.ibv_cmd, sizeof cmd,
+ 				&resp, sizeof resp);
+-	if (ret)
++	if (ret) {
+ 		goto err_rq_db;
++	}
+ 
+ 	if (mthca_is_memfree(pd->context)) {
+ 		mthca_set_db_qn(qp->sq.db, MTHCA_DB_TYPE_SQ, qp->ibv_qp.qp_num);
+@@ -561,6 +885,95 @@
+ 		mthca_set_db_qn(qp->rq.db, MTHCA_DB_TYPE_RQ, qp->ibv_qp.qp_num);
+ 	}
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * The kernel driver passes back mmap information for mapping the
++	 * QP work queue memory it allocated back into user space.  This is part
++	 * of the HCA generic data.
++	 */
++	mdd = (mlnx_umap_qp_data_out_t *) &resp.drv_out;
++
++#ifdef EXTRA_DEBUG
++	printf("libmthca_create_qp: mqp_mapoffset = %lld\n", mdd->mqp_mapoffset);
++	printf("libmthca_create_qp: mqp_maplen = %lld\n", mdd->mqp_maplen);
++	printf("libmthca_create_qp: mqp_qpnum = %d\n", mdd->mqp_qpnum);
++	printf("libmthca_create_qp: mqp_rq_off = %d\n", mdd->mqp_rq_off);
++	printf("libmthca_create_qp: mqp_rq_desc_addr = %d\n", mdd->mqp_rq_desc_addr);
++	printf("libmthca_create_qp: mqp_rq_numwqe= %d\n", mdd->mqp_rq_numwqe);
++	printf("libmthca_create_qp: mqp_rq_wqesz = %d\n", mdd->mqp_rq_wqesz);
++	printf("libmthca_create_qp: mqp_sq_off = %d\n", mdd->mqp_sq_off);
++	printf("libmthca_create_qp: mqp_sq_desc_addr= %d\n", mdd->mqp_sq_desc_addr);
++	printf("libmthca_create_qp: mqp_sq_numwqe = %d\n", mdd->mqp_sq_numwqe);
++	printf("libmthca_create_qp: mqp_sq_wqesz = %d\n", mdd->mqp_sq_wqesz);
++	printf("libmthca_create_qp: calling map, using fd %d\n", pd->context->mmap_fd);
++#endif
++
++	qpbuf = mmap64((void *)0, mdd->mqp_maplen,
++			PROT_READ|PROT_WRITE, MAP_SHARED,
++			pd->context->mmap_fd,
++			mdd->mqp_mapoffset);
++
++	if (qpbuf == MAP_FAILED) {
++		goto err_destroy;
++	}
++
++	/*
++	 * Calculate the official maximum inline data size, this is not done
++	 * by the kernel driver, so we do it here and update the qp struct.
++	 */
++	max_inline_data = mdd->mqp_sq_wqesz - sizeof(struct mthca_inline_seg);
++	max_inline_data -= sizeof(struct mthca_next_seg);
++
++	if (attr->qp_type == IBV_QPT_UD) {
++		if (mthca_is_memfree(pd->context)) {
++			max_inline_data -= sizeof(struct mthca_arbel_ud_seg);
++		} else {
++			max_inline_data -= sizeof(struct mthca_tavor_ud_seg);
++		}
++	} else {
++		max_inline_data -= sizeof(struct mthca_raddr_seg);
++	}
++#ifdef EXTRA_DEBUG
++	printf("max_inline_data = %d\n", max_inline_data);
++#endif
++	attr->cap.max_inline_data = max_inline_data;
++
++	qp->sq.max      = resp.max_send_wr;
++	qp->sq.max_gs   = resp.max_send_sge;
++	if (attr->srq) {
++		qp->rq.max      = 0;
++		qp->rq.max_gs   = 0;
++	} else {
++		qp->rq.max      = resp.max_recv_wr;
++		qp->rq.max_gs   = resp.max_recv_sge;
++	}
++
++	if (mthca_set_qp_buf(pd, qp, qpbuf, mdd->mqp_maplen,
++				mdd->mqp_rq_wqesz, mdd->mqp_rq_off,
++				mdd->mqp_sq_wqesz, mdd->mqp_sq_off)) {
++		goto err_destroy;
++	}
++
++	/*
++	 * Solaris clears the receive queue max work requests and max
++	 * scatter/gather entries when a SRQ is used since they are
++	 * ignored in that case.  To maintain consistency with what OFED
++	 * will return, we set them back to their requested values here.
++	 * Note that the SRQ values will be used by OFED as expected.
++	 */
++	if (attr->srq) {
++		resp.max_recv_wr   = attr->cap.max_recv_wr;
++		resp.max_recv_sge  = attr->cap.max_recv_sge;
++	}
++
++	mthca_init_qp_indices(qp);
++
++	if (pthread_spin_init(&qp->sq.lock, PTHREAD_PROCESS_PRIVATE) ||
++	    pthread_spin_init(&qp->rq.lock, PTHREAD_PROCESS_PRIVATE))
++		goto err_unmap;
++
++#endif
++
+ 	ret = mthca_store_qp(to_mctx(pd->context), qp->ibv_qp.qp_num, qp);
+ 	if (ret)
+ 		goto err_destroy;
+@@ -573,7 +986,23 @@
+ 
+ 	return &qp->ibv_qp;
+ 
++
++#if defined(__SVR4) && defined(__sun)
++err_unmap:
++	munmap(qp->buf.buf, qp->buf.length);
++	/*
++	 * Calling ibv_cmd_destroy_qp() will try and take the ibv_qp
++	 * mutext that is initialised by the ibv_create_qp() entry point
++	 * that called us AFETR we retrun, so its not initialised yet.
++	 * So initialised it here so the destroy call doesn't hang.
++	 */
+ err_destroy:
++	pthread_mutex_init(&(qp->ibv_qp.mutex), NULL);
++	pthread_cond_init(&(qp->ibv_qp.cond), NULL);
++	qp->ibv_qp.events_completed = 0;
++#else
++err_destroy:
++#endif
+ 	ibv_cmd_destroy_qp(&qp->ibv_qp);
+ 
+ err_rq_db:
+@@ -580,20 +1009,24 @@
+ 	if (mthca_is_memfree(pd->context))
+ 		mthca_free_db(to_mctx(pd->context)->db_tab, MTHCA_DB_TYPE_RQ,
+ 			      qp->rq.db_index);
+-
+ err_sq_db:
+ 	if (mthca_is_memfree(pd->context))
+ 		mthca_free_db(to_mctx(pd->context)->db_tab, MTHCA_DB_TYPE_SQ,
+-			      qp->sq.db_index);
+-
++				qp->sq.db_index);
+ err_unreg:
+-	mthca_dereg_mr(qp->mr);
+ 
++#if !(defined(__SVR4) && defined(__sun))
++	mthca_dereg_mr(qp->mr);
+ err_free:
+ 	free(qp->wrid);
+ 	mthca_free_buf(&qp->buf);
+-
+ err:
++
++#else
++	if (qp->wrid)
++		free(qp->wrid);
++#endif
++
+ 	free(qp);
+ 
+ 	return NULL;
+@@ -604,8 +1037,24 @@
+ 		   struct ibv_qp_init_attr *init_attr)
+ {
+ 	struct ibv_query_qp cmd;
++#if defined(__SVR4) && defined(__sun)
++	int ret;
+ 
++	ret = ibv_cmd_query_qp(qp, attr, attr_mask, init_attr, &cmd,
++								sizeof cmd);
++	if (ret)
++		return (ret);
++	/*
++	 * Need to do this until solaris HCAs report max inline data on
++	 * QP creation.
++	 */
++	init_attr->cap.max_inline_data = to_mqp(qp)->max_inline_data;
++	attr->cap.max_inline_data = to_mqp(qp)->max_inline_data;
++	return (0);
++#else
+ 	return ibv_cmd_query_qp(qp, attr, attr_mask, init_attr, &cmd, sizeof cmd);
++#endif
++	
+ }
+ 
+ int mthca_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr,
+@@ -696,8 +1145,16 @@
+ 			      to_mqp(qp)->sq.db_index);
+ 	}
+ 
++#if defined(__SVR4) && defined(__sun)
++	/*
++	 * Unmap kernel allocated QP work queue memeory.
++	 */
++	munmap(to_mqp(qp)->buf.buf, to_mqp(qp)->buf.length);
++#else
+ 	mthca_dereg_mr(to_mqp(qp)->mr);
+ 	mthca_free_buf(&to_mqp(qp)->buf);
++#endif
++
+ 	free(to_mqp(qp)->wrid);
+ 	free(to_mqp(qp));
+ 
+@@ -716,7 +1173,6 @@
+ 		free(ah);
+ 		return NULL;
+ 	}
+-
+ 	return &ah->ibv_ah;
+ }
+ 
+diff -r -u /tmp/909901/libmthca-1.0.4/Makefile.in libmthca-1.0.4/Makefile.in
+--- /tmp/909901/libmthca-1.0.4/Makefile.in	Thu Feb 28 00:56:33 2008
++++ libmthca-1.0.4/Makefile.in	Thu Oct  7 12:21:42 2010
+@@ -61,7 +61,7 @@
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(mthcalibdir)" \
+ 	"$(DESTDIR)$(mthcaconfdir)"
+-libLTLIBRARIES_INSTALL = $(INSTALL)
++libLTLIBRARIES_INSTALL = $(INSTALL) -m 755
+ mthcalibLTLIBRARIES_INSTALL = $(INSTALL)
+ LTLIBRARIES = $(lib_LTLIBRARIES) $(mthcalib_LTLIBRARIES)
+ src_libmthca_la_LIBADD =
+@@ -222,7 +222,7 @@
+ @HAVE_IBV_DEVICE_LIBRARY_EXTENSION_TRUE@src_libmthca_la_LDFLAGS = -avoid-version -release @IBV_DEVICE_LIBRARY_EXTENSION@ \
+ @HAVE_IBV_DEVICE_LIBRARY_EXTENSION_TRUE@        $(mthca_version_script)
+ 
+-@HAVE_IBV_DEVICE_LIBRARY_EXTENSION_TRUE@mthcaconfdir = $(sysconfdir)/libibverbs.d
++@HAVE_IBV_DEVICE_LIBRARY_EXTENSION_TRUE@mthcaconfdir = $(datadir)/libibverbs.d
+ @HAVE_IBV_DEVICE_LIBRARY_EXTENSION_TRUE@mthcaconf_DATA = mthca.driver
+ @HAVE_IBV_DEVICE_LIBRARY_EXTENSION_FALSE@mthcalibdir = $(libdir)/infiniband
+ @HAVE_IBV_DEVICE_LIBRARY_EXTENSION_FALSE@mthcalib_LTLIBRARIES = src/mthca.la
+diff -r -u /tmp/909901/libmthca-1.0.4/configure libmthca-1.0.4/configure
+--- /tmp/909901/libmthca-1.0.4/configure	Thu Feb 28 00:56:34 2008
++++ libmthca-1.0.4/configure	Thu Sep 30 08:16:32 2010
+@@ -7604,6 +7604,7 @@
+  	esac ;;
+       esac
+       link_all_deplibs=yes
++      hardcode_libdir_flag_spec=
+       ;;
+ 
+     sunos4*)
Binary file usr/src/cmd/ofusr/libmthca/libmthca-1.0.4.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/librdmacm/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,12 @@
+NAME:             librdmacm
+VERSION:          1.0.6
+DESCRIPTION:      Infiniband Open Fabrics librdmacm
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/OFED/ofed-1.3/OFED-1.3.tgz/librdmacm-1.0.6.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/ofuv_lib
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
+                  librdmacm-1.0.6.tar.gz is part of the SPRMS in OFED-1.3.tgz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/librdmacm/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,102 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.1	10/10/07 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+CPPFLAGS +=	"-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+
+CONFIGURE_OPTIONS +=	--disable-libcheck
+CONFIGURE_OPTIONS +=	--disable-static
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m32 -D_REENTRANT"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_LIBRARY_PATH="$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB)"
+
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LD_LIBRARY_PATH="$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m64 -D_REENTRANT"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN64)
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--libdir=$(CFGLIB64)
+
+CPPFLAGS +=	-I$(ROOT)/usr/include
+
+LIBS +=	-lsocket -lnsl -libverbs
+
+COMMON_ENV +=	MAKE=$(GMAKE)
+
+BUILD_ENV +=		CPPFLAGS="$(CPPFLAGS)"
+BUILD_ENV +=		LIBS="$(LIBS)"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+all:		$(VER)/build-32/.built $(VER)/build-64/.built
+
+install:	$(VER)/build-32/.installed $(VER)/build-64/.installed
+	$(RM) $(ROOTLIB)/$(COMPONENT_NAME:sh).la \
+		$(ROOTLIB64)/$(COMPONENT_NAME:sh).la
+	$(RM) $(ROOTBIN64)/mckey $(ROOTBIN64)/rping $(ROOTBIN64)/udaddy \
+		$(ROOTBIN64)/ucmatose $(ROOTMAN3)/rdma_event_str.3 \
+		$(ROOTMAN3)/rdma_set_option.3 $(ROOTMAN3)/rdma_get_peer_addr.3 \
+		$(ROOTMAN3)/rdma_get_local_addr.3 \
+		$(ROOTINCLUDE)/rdma/rdma_cma_abi.h
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	echo BUILDING $@
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	(cd $(@D) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ../configure $(CONFIGURE_OPTIONS))
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/librdmacm/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,340 @@
+diff -r -u /tmp/806420/librdmacm-1.0.6/examples/cmatose.c librdmacm-1.0.6/examples/cmatose.c
+--- /tmp/806420/librdmacm-1.0.6/examples/cmatose.c	Thu Feb 28 00:57:31 2008
++++ librdmacm-1.0.6/examples/cmatose.c	Thu Oct  7 09:02:57 2010
+@@ -40,7 +40,9 @@
+ #include <netinet/in.h>
+ #include <sys/socket.h>
+ #include <netdb.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#endif
+ #include <getopt.h>
+ 
+ #include <rdma/rdma_cma.h>
+diff -r -u /tmp/806420/librdmacm-1.0.6/examples/mckey.c librdmacm-1.0.6/examples/mckey.c
+--- /tmp/806420/librdmacm-1.0.6/examples/mckey.c	Thu Feb 28 00:57:31 2008
++++ librdmacm-1.0.6/examples/mckey.c	Thu Oct  7 09:02:59 2010
+@@ -41,7 +41,9 @@
+ #include <arpa/inet.h>
+ #include <sys/socket.h>
+ #include <netdb.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#endif
+ #include <unistd.h>
+ #include <getopt.h>
+ 
+diff -r -u /tmp/806420/librdmacm-1.0.6/examples/rping.c librdmacm-1.0.6/examples/rping.c
+--- /tmp/806420/librdmacm-1.0.6/examples/rping.c	Thu Feb 28 00:57:31 2008
++++ librdmacm-1.0.6/examples/rping.c	Thu Oct  7 09:02:57 2010
+@@ -40,11 +40,17 @@
+ #include <netinet/in.h>
+ #include <sys/socket.h>
+ #include <netdb.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#endif
+ #include <semaphore.h>
+ #include <arpa/inet.h>
+ #include <pthread.h>
+ #include <inttypes.h>
++#include <unistd.h>
++#if defined(__SVR4) && defined(__sun)
++#include <libgen.h>
++#endif
+ 
+ #include <rdma/rdma_cma.h>
+ #include <infiniband/arch.h>
+@@ -85,6 +91,14 @@
+ 	ERROR
+ };
+ 
++enum disconnect_state {
++	DISCONNECT_NONE,
++	CALLING_DISCONNECT = 1,
++	DISCONNECT_CALLED,
++	DISCONNECT_DONE
++};
++
++
+ struct rping_rdma_info {
+ 	uint64_t buf;
+ 	uint32_t rkey;
+@@ -143,6 +157,9 @@
+ 	enum test_state state;		/* used for cond/signalling */
+ 	sem_t sem;
+ 
++	enum disconnect_state dis_state;
++	sem_t	dis_sem;
++
+ 	uint16_t port;			/* dst port in NBO */
+ 	uint32_t addr;			/* dst addr in NBO */
+ 	char *addr_str;			/* dst addr string */
+@@ -219,6 +236,8 @@
+ 		fprintf(stderr, "%s DISCONNECT EVENT...\n",
+ 			cb->server ? "server" : "client");
+ 		sem_post(&cb->sem);
++		cb->dis_state = DISCONNECT_DONE;
++		sem_post(&cb->dis_sem);
+ 		break;
+ 
+ 	case RDMA_CM_EVENT_DEVICE_REMOVAL:
+@@ -286,6 +305,34 @@
+ 				wc.status);
+ 			if (wc.status != IBV_WC_WR_FLUSH_ERR)
+ 				ret = -1;
++			else {
++				/*
++				 * FLUSH Error can be polled before RDMA-CM
++				 * DISCONNECT is notified. Ensure that cb_state
++				 * is set appropriately in such a case.
++				 */
++
++				/*
++				 * sleep for sometime if Disconnect has not
++				 * been called. The FLUSH WR can be because
++				 * the remote end initiated the disconnect.
++				 */
++				if (cb->dis_state == DISCONNECT_NONE)
++					sleep(2);
++
++				/* Return if Disconnect has been done */
++				if (cb->dis_state == DISCONNECT_DONE)
++					return (0);
++
++				/* Wait if disconnect is called. */
++				if (cb->dis_state == DISCONNECT_CALLED) {
++					sem_wait(&cb->dis_sem);
++					if (cb->dis_state == DISCONNECT_DONE)
++						return (0);
++					else
++						goto error;
++				}
++			}
+ 			goto error;
+ 		}
+ 
+@@ -571,9 +618,15 @@
+ 
+ 	while (1) {
+ 		ret = rdma_get_cm_event(cb->cm_channel, &event);
+-		if (ret) {
++		/*
++		 * The retry of read() syscall returned EBADF, as the
++		 * file was closed on process exit. Ignore this error.
++		 */
++		if (ret && errno != EBADF) {
+ 			fprintf(stderr, "rdma_get_cm_event err %d\n", ret);
+ 			exit(ret);
++		} else if (ret && errno == EBADF) {
++			exit(0);
+ 		}
+ 		ret = rping_cma_event_handler(event->id, event);
+ 		rdma_ack_cm_event(event);
+@@ -595,9 +648,15 @@
+ 		pthread_testcancel();
+ 
+ 		ret = ibv_get_cq_event(cb->channel, &ev_cq, &ev_ctx);
+-		if (ret) {
++		/*
++		 * The retry of write() syscall returned EBADF, as the
++		 * file was closed on process exit. Ignore this error.
++		 */
++		if (ret && errno != EBADF) {
+ 			fprintf(stderr, "Failed to get cq event!\n");
+ 			pthread_exit(NULL);
++		} else if (ret && errno == EBADF) {
++			pthread_exit(NULL);
+ 		}
+ 		if (ev_cq != cb->cq) {
+ 			fprintf(stderr, "Unkown CQ!\n");
+@@ -745,7 +804,7 @@
+ 	DEBUG_LOG("rdma_bind_addr successful\n");
+ 
+ 	DEBUG_LOG("rdma_listen\n");
+-	ret = rdma_listen(cb->cm_id, 3);
++	ret = rdma_listen(cb->cm_id, 0);
+ 	if (ret) {
+ 		fprintf(stderr, "rdma_listen failed: %d\n", ret);
+ 		return ret;
+@@ -802,6 +861,8 @@
+ 	}
+ 
+ 	rping_test_server(cb);
++	cb->dis_state = CALLING_DISCONNECT;
++	sem_post(&cb->dis_sem);
+ 	rdma_disconnect(cb->child_cm_id);
+ 	rping_free_buffers(cb);
+ 	rping_free_qp(cb);
+@@ -890,6 +951,8 @@
+ 	}
+ 
+ 	rping_test_server(cb);
++	cb->dis_state = CALLING_DISCONNECT;
++	sem_post(&cb->dis_sem);
+ 	rdma_disconnect(cb->child_cm_id);
+ 	rdma_destroy_id(cb->child_cm_id);
+ err2:
+@@ -1059,6 +1122,8 @@
+ 	}
+ 
+ 	rping_test_client(cb);
++	cb->dis_state = CALLING_DISCONNECT;
++	sem_post(&cb->dis_sem);
+ 	rdma_disconnect(cb->cm_id);
+ err2:
+ 	rping_free_buffers(cb);
+@@ -1103,6 +1168,7 @@
+ 	cb->size = 64;
+ 	cb->port = htons(7174);
+ 	sem_init(&cb->sem, 0, 0);
++	sem_init(&cb->dis_sem, 0, 0);
+ 
+ 	opterr = 0;
+ 	while ((op=getopt(argc, argv, "a:Pp:C:S:t:scvVd")) != -1) {
+diff -r -u /tmp/806420/librdmacm-1.0.6/examples/udaddy.c librdmacm-1.0.6/examples/udaddy.c
+--- /tmp/806420/librdmacm-1.0.6/examples/udaddy.c	Thu Feb 28 00:57:31 2008
++++ librdmacm-1.0.6/examples/udaddy.c	Thu Oct  7 09:02:58 2010
+@@ -40,7 +40,9 @@
+ #include <netinet/in.h>
+ #include <sys/socket.h>
+ #include <netdb.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#endif
+ #include <getopt.h>
+ 
+ #include <rdma/rdma_cma.h>
+diff -r -u /tmp/806420/librdmacm-1.0.6/include/rdma/rdma_cma_abi.h librdmacm-1.0.6/include/rdma/rdma_cma_abi.h
+--- /tmp/806420/librdmacm-1.0.6/include/rdma/rdma_cma_abi.h	Thu Feb 28 00:57:31 2008
++++ librdmacm-1.0.6/include/rdma/rdma_cma_abi.h	Thu Sep 30 08:16:32 2010
+@@ -97,6 +97,9 @@
+ 	__u64 response;
+ 	struct sockaddr_in6 addr;
+ 	__u32 id;
++#if defined(__SVR4) && defined(__sun)
++	uint32_t	reserved;
++#endif
+ };
+ 
+ struct ucma_abi_resolve_addr {
+@@ -129,7 +132,7 @@
+ 
+ struct ucma_abi_conn_param {
+ 	__u32 qp_num;
+-	__u32 reserved;
++	__u32  reserved;
+ 	__u8  private_data[RDMA_MAX_PRIVATE_DATA];
+ 	__u8  private_data_len;
+ 	__u8  srq;
+@@ -148,7 +151,7 @@
+ 	__u8 private_data[RDMA_MAX_PRIVATE_DATA];
+ 	__u8 private_data_len;
+ 	__u8 reserved[7];
+-	__u8 reserved2[4];  /* Round to 8-byte boundary to support 32/64 */
++	__u8 reserved2[4];
+ };
+ 
+ struct ucma_abi_connect {
+@@ -196,6 +199,9 @@
+ 	__u64 uid;
+ 	struct sockaddr_in6 addr;
+ 	__u32 id;
++#if defined(__SVR4) && defined(__sun)
++	uint32_t	reserved;
++#endif
+ };
+ 
+ struct ucma_abi_get_event {
+diff -r -u /tmp/806420/librdmacm-1.0.6/src/cma.c librdmacm-1.0.6/src/cma.c
+--- /tmp/806420/librdmacm-1.0.6/src/cma.c	Thu Feb 28 00:57:31 2008
++++ librdmacm-1.0.6/src/cma.c	Thu Oct  7 09:02:56 2010
+@@ -46,10 +46,15 @@
+ #include <poll.h>
+ #include <unistd.h>
+ #include <pthread.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
+ #include <byteswap.h>
++#else
++#include <alloca.h>
++#endif
+ #include <stddef.h>
+ 
++#include <infiniband/arch.h>
+ #include <infiniband/driver.h>
+ #include <infiniband/marshall.h>
+ #include <rdma/rdma_cma.h>
+@@ -68,13 +73,6 @@
+ 
+ #define PFX "librdmacm: "
+ 
+-#if __BYTE_ORDER == __LITTLE_ENDIAN
+-static inline uint64_t htonll(uint64_t x) { return bswap_64(x); }
+-static inline uint64_t ntohll(uint64_t x) { return bswap_64(x); }
+-#else
+-static inline uint64_t htonll(uint64_t x) { return x; }
+-static inline uint64_t ntohll(uint64_t x) { return x; }
+-#endif
+ 
+ #define CMA_CREATE_MSG_CMD_RESP(msg, cmd, resp, type, size) \
+ do {                                        \
+@@ -304,10 +302,17 @@
+ 	channel = malloc(sizeof *channel);
+ 	if (!channel)
+ 		return NULL;
+-
++#if defined(__SVR4) && defined(__sun)
++	channel->fd = open("/devices/pseudo/sol_ucma@0:sol_ucma", O_RDWR);
++#else
+ 	channel->fd = open("/dev/infiniband/rdma_cm", O_RDWR);
++#endif
+ 	if (channel->fd < 0) {
++#if defined(__SVR4) && defined(__sun)
++		printf("CMA: unable to open /devices/pseudo/sol_ucma@0:sol_ucma\n");
++#else
+ 		printf("CMA: unable to open /dev/infiniband/rdma_cm\n");
++#endif
+ 		goto err;
+ 	}
+ 	return channel;
+@@ -1206,6 +1211,9 @@
+ 
+ 	CMA_CREATE_MSG_CMD(msg, cmd, UCMA_CMD_ACCEPT, size);
+ 	cmd->id = id_priv->handle;
++#if defined(__SVR4) && defined(__sun)
++        cmd->conn_param.qp_num = ((id_priv->id).qp)->qp_num;
++#endif  /* defined(__SVR4) && defined(__sun) */
+ 
+ 	ret = write(id_priv->id.channel->fd, msg, size);
+ 	if (ret != size) {
+diff -r -u /tmp/806420/librdmacm-1.0.6/Makefile.in librdmacm-1.0.6/Makefile.in
+--- /tmp/806420/librdmacm-1.0.6/Makefile.in	Thu Feb 28 00:57:38 2008
++++ librdmacm-1.0.6/Makefile.in	Thu Oct  7 11:58:31 2010
+@@ -66,13 +66,13 @@
+ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
+ 	"$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" \
+ 	"$(DESTDIR)$(man7dir)" "$(DESTDIR)$(librdmacmincludedir)"
+-libLTLIBRARIES_INSTALL = $(INSTALL)
++libLTLIBRARIES_INSTALL = $(INSTALL) -m 755
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+ src_librdmacm_la_LIBADD =
+ am_src_librdmacm_la_OBJECTS = src_librdmacm_la-cma.lo
+ src_librdmacm_la_OBJECTS = $(am_src_librdmacm_la_OBJECTS)
+ am__dirstamp = $(am__leading_dot)dirstamp
+-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
++binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -m 755
+ PROGRAMS = $(bin_PROGRAMS)
+ am_examples_mckey_OBJECTS = mckey.$(OBJEXT)
+ examples_mckey_OBJECTS = $(am_examples_mckey_OBJECTS)
+diff -r -u /tmp/806420/librdmacm-1.0.6/configure librdmacm-1.0.6/configure
+--- /tmp/806420/librdmacm-1.0.6/configure	Thu Feb 28 00:57:38 2008
++++ librdmacm-1.0.6/configure	Thu Sep 30 08:16:32 2010
+@@ -7605,6 +7605,7 @@
+  	esac ;;
+       esac
+       link_all_deplibs=yes
++      hardcode_libdir_flag_spec=
+       ;;
+ 
+     sunos4*)
Binary file usr/src/cmd/ofusr/librdmacm/librdmacm-1.0.6.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libsdp/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,12 @@
+NAME:             libsdp
+VERSION:          1.1.99
+DESCRIPTION:      Infiniband Open Fabrics libsdp
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/OFED/ofed-1.3/OFED-1.3.tgz/libsdp-1.1.99.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/ofuv_lib
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
+                  libsdp-1.1.99.tar.gz is part of the SPRMS in OFED-1.3.tgz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libsdp/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,98 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.1	10/10/07 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+
+CPPFLAGS +=	"-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+
+CONFIGURE_OPTIONS +=	--disable-libcheck
+CONFIGURE_OPTIONS +=	--disable-static
+CONFIGURE_OPTIONS +=	--sysconfdir=$(CFGETC)
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_LIBRARY_PATH="$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m32 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
+$(VER)/build-32/config.status:=	CONFIGURE_OPTIONS +=	--libdir=$(CFGLIB)/secure
+
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m64 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LD_LIBRARY_PATH="$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN64)
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--libdir=$(CFGLIB)/secure/$(MACH64)
+
+CPPFLAGS +=	-I$(ROOT)/usr/include
+
+LIBS +=		-lsocket -lnsl
+
+COMMON_ENV +=	MAKE=$(GMAKE)
+
+BUILD_ENV +=		CPPFLAGS="$(CPPFLAGS)"
+BUILD_ENV +=		LIBS="$(LIBS)"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+all:		$(VER)/build-32/.built $(VER)/build-64/.built
+
+install:	$(VER)/build-32/.installed $(VER)/build-64/.installed
+	$(RM) $(ROOTLIB)/secure/$(COMPONENT_NAME:sh).la \
+		$(ROOTLIB)/secure/$(MACH64)/$(COMPONENT_NAME:sh).la
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	(cd $(@D) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ../configure $(CONFIGURE_OPTIONS))
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(GTAR) zxpf solaris_man.tar.gz
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/libsdp/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,714 @@
+diff -r -u /tmp/895782/libsdp-1.1.99/Makefile.am libsdp-1.1.99/Makefile.am
+--- /tmp/895782/libsdp-1.1.99/Makefile.am	Thu Feb 28 00:57:59 2008
++++ libsdp-1.1.99/Makefile.am	Thu Oct  7 12:17:27 2010
+@@ -7,9 +7,9 @@
+ 
+ install-data-hook:
+ 	if test -e $(DESTDIR)$(sysconfdir)/libsdp.conf; then \
+-		diff -q $(srcdir)/libsdp.conf $(DESTDIR)$(sysconfdir)/libsdp.conf 1> /dev/null; \
++		diff $(srcdir)/libsdp.conf $(DESTDIR)$(sysconfdir)/libsdp.conf 1> /dev/null; \
+ 		if test $$? == 1; then \
+-			t=$(shell date +'%Y%m%d%H%M%S'); \
++			t=$(shell date +'m%d09/20/10M%S'); \
+ 		   cp -p $(srcdir)/libsdp.conf \
+ 				$(DESTDIR)$(sysconfdir)/libsdp.conf.$$t; \
+ 			echo "NOTE: existing libsdp.conf was not updated."; \
+diff -r -u /tmp/895782/libsdp-1.1.99/README libsdp-1.1.99/README
+--- /tmp/895782/libsdp-1.1.99/README	Thu Feb 28 00:57:59 2008
++++ libsdp-1.1.99/README	Thu Sep 30 08:16:32 2010
+@@ -13,14 +13,12 @@
+ libsdp.so isn't setup automatically. it can be used in one of 2 ways:
+ 1) LD_PRELOAD environment variable. Setting this to the name of the
+    library you want to use will cause it to be preloaded.
+-2) Adding the name of the library into /etc/ld.so.preload. This will
+-   cause the library to be preloaded for every executable that is linked
+-   with libc.
+-
++2) Adding the name of the library  using crle(1).
++   
+ The library should be installed in a directory in which the dynamic loader
+-searches for shared libraries (as specified by LD_LIBRARY_PATH,
+-/etc/ld.so.conf, etc). Alternatively, you can specify the full path to the 
+-library that you want to use in LD_PRELOAD or /etc/ld.so.preload as described 
++searches for shared libraries (as specified by LD_LIBRARY_PATH, crle(1)
++, etc). Alternatively, you can specify the full path to the 
++library that you want to use in LD_PRELOAD or crle(1) described 
+ above.
+ 
+ The last option cant be used if you have multiple library versions
+@@ -29,7 +27,7 @@
+ lib (the 32 bit version) and lib64 directories and LD_RELOAD the libsdp.so.
+ This way the correct 32/64bit libsdp.so will be selected. 
+ For example running ssh over SDP with OFED distribution from bash this can be written:
+-LD_LIBRARY_PATH=/usr/local/ofed/lib64:/usr/local/ofed/lib LD_PRELOAD=libsdp.so ssh
++LD_LIBRARY_PATH=/usr/lib/secure/64/:/usr/lib/secure LD_PRELOAD=libsdp.so ssh
+ 
+ CONFIGURATION:
+ --------------
+@@ -39,6 +37,13 @@
+ * selective mode where it uses a configuration file to select which sockets
+   will be using SDP and which will not.
+ 
++Note:
++	both of these modes are designed to work with both IPv4 qand IPv6.
++	But only IPv4 works currently, because Solaris SDP with IPv6,
++	does not use AF_INET_SDP. (Note in Linux, the underlying SDP kernel
++	implementation does not support IPv6.)
++
++
+ For real world applications where communication with X, authentication, 
+ DNS and other servers connected through TCP is required the selective mode
+ is required.
+@@ -49,20 +54,11 @@
+ * the configuration file does not include any address family rule
+ 
+ For information on how to configure libsdp, see libsdp.conf, which is installed
+-in $(sysconfdir) (usually /usr/local/etc or /etc). The user can further control
++in /etc). The user can further control
+ the file to be used for configuration by setting the environment variable:
+ LIBSDP_CONFIG_FILE
+ 
+ LIMITATIONS:
+ ------------
+-1. Applications statically linked with libc will not allow dynamic pre-loading
+-   to port these applications to use SDP one needs to replace specific socket 
+-   calls (within the application) with AF_INET_SDP and recompile.
+-2. If for some reason the dynamic linker fail to pre-load libc before the 
+-   libsdp.so is initialized or it does not support RTDL_NEXT, libsdp will 
+-   fail to find the libc socket API. To overcome this situation a simple 
+-   implementation of hijacking "socket" call is provided in libsdp_sys.
+-   This partial implementation does not support any configuration and is 
+-   limited to i386 architecture.
+-3. Non-blocking connect in "both" mode defaults to SDP. Specific rules might be
++1. Non-blocking connect in "both" mode defaults to SDP. Specific rules might be
+    needed for applications to operate properly.
+diff -r -u /tmp/895782/libsdp-1.1.99/src/log.c libsdp-1.1.99/src/log.c
+--- /tmp/895782/libsdp-1.1.99/src/log.c	Thu Feb 28 00:57:59 2008
++++ libsdp-1.1.99/src/log.c	Thu Sep 30 08:16:33 2010
+@@ -44,7 +44,16 @@
+  */
+ #include "libsdp.h"
+ 
++#if defined(__SVR4) && defined(__sun)
++#include <limits.h>
++#endif
++
++#if defined(__SVR4) && defined(__sun)
++char *program_invocation_short_name = "GNU C extension" ;
++char *program_invocation_name = "GNU C extension" ;
++#else
+ extern char *program_invocation_short_name;
++#endif
+ 
+ typedef enum
+ {
+@@ -78,7 +87,7 @@
+ 	switch ( __sdp_log_type ) {
+ 	case SDP_LOG_SYSLOG:
+ 		sprintf( extra_format, "%s[%d] libsdp %s ",
+-					program_invocation_short_name, getpid(  ), format );
++					program_invocation_short_name, (int)getpid(  ), format );
+ 		vsyslog( LOG_USER | LOG_NOTICE, extra_format, ap );
+ 		break;
+ 	case SDP_LOG_FILE:
+@@ -87,7 +96,7 @@
+ 		timestr[strlen(timestr)-1] = '\0';
+ 		sprintf( extra_format, "%s %s[%d] libsdp %s ",
+ 					timestr, program_invocation_short_name,
+-					getpid(  ), format );
++					(int)getpid(  ), format );
+ 		if ( __sdp_log_file == NULL ) {
+ 			vfprintf( stderr, extra_format, ap );
+ #if 0									  /* might slow everything too much? */
+diff -r -u /tmp/895782/libsdp-1.1.99/src/port.c libsdp-1.1.99/src/port.c
+--- /tmp/895782/libsdp-1.1.99/src/port.c	Thu Feb 28 00:57:59 2008
++++ libsdp-1.1.99/src/port.c	Thu Sep 30 08:16:33 2010
+@@ -29,7 +29,7 @@
+ #  include <config.h>
+ #endif /* HAVE_CONFIG_H */
+ 
+-#include <unistd.h>
++
+ #include <errno.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -61,6 +61,7 @@
+ #define SOL_SDP		1025
+ #define SDP_UNBIND	259		  /* Unbind socket */
+ 
++
+ /* HACK: filter ioctl errors for FIONREAD */
+ #define FIONREAD 0x541B
+ 
+@@ -140,6 +141,7 @@
+ 	struct sockaddr * name,
+ 	socklen_t * namelen );
+ 
++
+ typedef int (
+ 	*getpeername_func_t ) (
+ 	int fd,
+@@ -152,6 +154,7 @@
+ 	struct sockaddr * addr,
+ 	socklen_t * addrlen );
+ 
++
+ typedef int (
+ 	*select_func_t ) (
+ 	int n,
+@@ -612,10 +615,17 @@
+ 	const void *p )
+ {
+ 	/* HACK: on some systems we can not write to check for pointer validity */
++	int old_errno = errno;
++
++	errno = 0;
++#if defined(__SVR4) && defined(__sun)
++	size_t ret = write(dev_null_fd, p, 1);
++#else
+ 	size_t ret = fcntl( dev_null_fd, F_GETLK, p );
++#endif
+ 
+ 	ret = ( errno == EFAULT );
+-	errno = 0;
++	errno = old_errno;
+ 	return ret;
+ }
+ 
+@@ -891,7 +901,11 @@
+ 
+ 		__sdp_log( 1, "SOCKET: making SDP socket type:%d proto:%d\n",
+ 					  type, protocol );
++#if defined(__SVR4) && defined(__sun)
++		s = _socket_funcs.socket( AF_INET, SOCK_STREAM, PROTO_SDP );
++#else
+ 		s = _socket_funcs.socket( AF_INET_SDP, type, protocol );
++#endif
+ 		init_extra_attribute( s );
+ 		set_is_sdp_socket( s, 1 );
+ 		goto done;
+@@ -910,7 +924,11 @@
+ 				protocol = IPPROTO_TCP;
+ 			__sdp_log( 1, "SOCKET: making SDP shadow socket type:%d proto:%d\n",
+ 						  type, protocol );
++#if defined(__SVR4) && defined(__sun)
++			shadow_fd = _socket_funcs.socket( AF_INET, SOCK_STREAM, PROTO_SDP );
++#else
+ 			shadow_fd = _socket_funcs.socket( AF_INET_SDP, type, protocol );
++#endif
+ 			if ( is_valid_fd( shadow_fd ) ) {
+ 				init_extra_attribute( shadow_fd );
+ 				if ( libsdp_fd_attributes[s].shadow_fd != -1 ) {
+@@ -1020,7 +1038,11 @@
+ 
+ 		__sdp_log( 1, "find_free_port: creating the two sockets\n" );
+ 		tmp_sd[0] =
++#if defined(__SVR4) && defined(__sun)
++			_socket_funcs.socket( AF_INET, SOCK_STREAM, PROTO_SDP );
++#else
+ 			_socket_funcs.socket( AF_INET_SDP, SOCK_STREAM, IPPROTO_TCP );
++#endif
+ 		if ( tmp_sd[0] < 0 ) {
+ 			__sdp_log( 8,
+ 						  "Warning find_free_port: creating first socket failed\n" );
+@@ -1131,7 +1153,11 @@
+ 	int sret = -1;
+ 
+ 	__sdp_log( 2, "check_legal_bind: binding two temporary sockets\n" );
++#if defined(__SVR4) && defined(__sun)
++	*sdp_sd = _socket_funcs.socket( AF_INET, SOCK_STREAM, PROTO_SDP );
++#else
+ 	*sdp_sd = _socket_funcs.socket( AF_INET_SDP, SOCK_STREAM, IPPROTO_TCP );
++#endif
+ 	if ( *sdp_sd < 0 ) {
+ 		__sdp_log( 9, "Error check_legal_bind: "
+ 					  "creating SDP socket failed\n" );
+@@ -1509,9 +1535,9 @@
+ 												  ( struct sockaddr * )&sdp_addr,
+ 												  sizeof sdp_addr );
+ 			if ( (ret < 0) && (errno != EINPROGRESS)) {
+-				__sdp_log( 9, "Error connect: "
+-							  "failed for SDP fd:%d with error:%m\n",
+-							  shadow_fd );
++				__sdp_log( 9, "Error connect: failed for "
++						"SDP fd:%d with error:%s\n",
++						shadow_fd, strerror(errno));
+ 			} else {
+ 				__sdp_log( 7, "CONNECT: connected SDP fd:%d to:%s port %d\n",
+ 							  fd, buf, ntohs( serv_sin->sin_port ) );
+@@ -1538,8 +1564,8 @@
+ 		__sdp_log( 1, "CONNECT: connecting TCP fd:%d\n", fd );
+ 		ret = _socket_funcs.connect( fd, serv_addr, addrlen );
+ 		if ( (ret < 0) && (errno != EINPROGRESS) ) 
+-			__sdp_log( 9, "Error connect: for TCP fd:%d failed with error:%m\n",
+-						  fd );
++			__sdp_log( 9, "Error connect: for TCP fd:%d failed with error:%s\n",
++						  fd, strerror(errno));
+ 		else
+ 			__sdp_log( 7, "CONNECT: connected TCP fd:%d to:%s port %d\n",
+ 						  fd, buf, ntohs( serv_sin->sin_port ) );
+@@ -1916,7 +1942,11 @@
+ getsockname(
+ 	int fd,
+ 	struct sockaddr *name,
++#if defined(__SVR4) && defined(__sun)
++	Psocklen_t namelen)
++#else
+ 	socklen_t * namelen )
++#endif
+ {
+ 	int ret = 0;
+ 	int to_ipv6 = 0;
+@@ -1924,6 +1954,7 @@
+ 	char buf[MAX_ADDR_STR_LEN];
+ 	socklen_t saved_namelen = 0;
+ 
++
+ 	if (init_status == 0) __sdp_init();
+ 
+ 	/*
+@@ -1951,8 +1982,11 @@
+ 	}
+ 
+ 	if ( namelen )
++#if defined(__SVR4) && defined(__sun)
++		saved_namelen = *(socklen_t *)namelen;
++#else
+ 		saved_namelen = *namelen;
+-
++#endif
+ 	__sdp_log( 2, "GETSOCKNAME <%s:%d>\n", program_invocation_short_name, fd );
+ 
+ 	ret = _socket_funcs.getsockname( fd, name, namelen );
+@@ -1963,7 +1997,11 @@
+ #ifndef SDP_SUPPORTS_IPv6
+ 		to_ipv6 = libsdp_fd_attributes[fd].local_is_ipv6;
+ #endif
++#if defined(__SVR4) && defined(__sun)
++		*(socklen_t *)namelen = saved_namelen;
++#else
+ 		*namelen = saved_namelen;
++#endif
+ 		memcpy( &tmp_addr, name, sizeof( struct sockaddr_in ) );
+ 		/* HACK: need to make sure we convert into IPv6 if original was IPv6 */
+ 		sockaddr_from_sdp( to_ipv6, &tmp_addr, name, namelen );
+@@ -1989,7 +2027,11 @@
+ getpeername(
+ 	int fd,
+ 	struct sockaddr *name,
++#if defined(__SVR4) && defined(__sun)
++	Psocklen_t namelen )
++#else
+ 	socklen_t * namelen )
++#endif
+ {
+ 	int ret = 0;
+ 	int to_ipv6 = 0;
+@@ -2019,7 +2061,11 @@
+ 	}
+ 
+ 	if ( namelen )
++#if defined(__SVR4) && defined(__sun)
++		saved_namelen = *(socklen_t *)namelen;
++#else
+ 		saved_namelen = *namelen;
++#endif
+ 
+ 	__sdp_log( 2, "GETPEERNAME <%s:%d>\n", program_invocation_short_name, fd );
+ 
+@@ -2030,7 +2076,11 @@
+ 		to_ipv6 = libsdp_fd_attributes[fd].remote_is_ipv6;
+ #endif
+ 
++#if defined(__SVR4) && defined(__sun)
++		*(socklen_t *)namelen = saved_namelen;
++#else
+ 		*namelen = saved_namelen;
++#endif
+ 		memcpy( &tmp_addr, name, sizeof( struct sockaddr_in ) );
+ 		sockaddr_from_sdp( to_ipv6, &tmp_addr, name, namelen );
+ 	}
+@@ -2055,7 +2105,11 @@
+ accept(
+ 	int fd,
+ 	struct sockaddr *addr,
++#if defined(__SVR4) && defined(__sun)
++	Psocklen_t addrlen )
++#else
+ 	socklen_t * addrlen )
++#endif
+ {
+ 	int shadow_fd;
+ 	int ret = 0;
+@@ -2094,7 +2148,11 @@
+ 	}
+ 
+ 	if ( addr && addrlen )
++#if defined(__SVR4) && defined(__sun)
++		saved_addrlen = *(socklen_t *)addrlen;
++#else
+ 		saved_addrlen = *addrlen;
++#endif
+ 
+ 	__sdp_log( 2, "ACCEPT: <%s:%d>\n", program_invocation_short_name, fd );
+ 
+@@ -2123,7 +2181,11 @@
+ 		
+ 
+ 		/* we need different behavior for NONBLOCK or signal IO and BLOCK */
++#if defined(__SVR4) && defined(__sun)
++		if ((fopts > 0) && (fopts & O_NONBLOCK)) {
++#else
+ 		if ((fopts > 0) && (fopts & (O_NONBLOCK | FASYNC))) {
++#endif
+ 			__sdp_log( 1, "ACCEPT: accepting (nonblock) on SDP fd:<%d>\n",
+ 						  shadow_fd );
+ 			ret = _socket_funcs.accept( shadow_fd, addr, addrlen );
+@@ -2130,7 +2192,11 @@
+ 			if (ret >= 0) {
+ 				if ( addr && addrlen ) {
+ 					memcpy( &tmp_addr, addr, sizeof( struct sockaddr ) );
++#if defined(__SVR4) && defined(__sun)
++					*(socklen_t *)addrlen = saved_addrlen;
++#else
+ 					*addrlen = saved_addrlen;
++#endif
+ 					set_is_sdp_socket( ret, 1 );
+ 					libsdp_fd_attributes[ret].local_is_ipv6
+ 						= libsdp_fd_attributes[fd].local_is_ipv6;
+@@ -2180,7 +2246,11 @@
+ 						ret = _socket_funcs.accept( shadow_fd, addr, addrlen );
+ 						if ( ( ret > 0 ) && addr && addrlen ) {
+ 							memcpy( &tmp_addr, addr, sizeof( struct sockaddr ) );
++#if defined(__SVR4) && defined(__sun)
++							*(socklen_t *)addrlen = saved_addrlen;
++#else
+ 							*addrlen = saved_addrlen;
++#endif
+ 							set_is_sdp_socket( ret, 1 );
+ 							libsdp_fd_attributes[ret].local_is_ipv6
+                                                                 = libsdp_fd_attributes[fd].local_is_ipv6;
+@@ -2198,7 +2268,11 @@
+ 						ret = _socket_funcs.accept( shadow_fd, addr, addrlen );
+ 						if ( ( ret > 0 ) && addr && addrlen ) {
+ 							memcpy( &tmp_addr, addr, sizeof( struct sockaddr ) );
++#if defined(__SVR4) && defined(__sun)
++							*(socklen_t *)addrlen = saved_addrlen;
++#else
+ 							*addrlen = saved_addrlen;
++#endif
+ 							set_is_sdp_socket( ret, 1 );
+ 							libsdp_fd_attributes[ret].local_is_ipv6
+                                                                 = libsdp_fd_attributes[fd].local_is_ipv6;
+@@ -2225,7 +2299,11 @@
+ 	} /* shadow fd */
+ 	
+ 	if ((__sdp_log_get_level() <= 1) && (ret >= 0) && addr && addrlen) {
++#if defined(__SVR4) && defined(__sun)
++		get_addr_str( addr, buf, *(size_t *)addrlen );
++#else
+ 		get_addr_str( addr, buf, *addrlen );
++#endif
+ 		__sdp_log( 1, "ACCEPT: accepted from:%s port:%d into fd:%d\n", 
+ 					  buf, 
+ 					  ntohs( ( ( struct sockaddr_in * )addr )->sin_port),
+@@ -2584,6 +2662,7 @@
+ 		fprintf( stderr, "%s\n", error_str );
+ 	}
+ 
++
+ 	_socket_funcs.fcntl = dlsym( __libc_dl_handle, "fcntl" );
+ 	if ( NULL != ( error_str = dlerror(  ) ) ) {
+ 		fprintf( stderr, "%s\n", error_str );
+diff -r -u /tmp/895782/libsdp-1.1.99/src/sdp_inet.h libsdp-1.1.99/src/sdp_inet.h
+--- /tmp/895782/libsdp-1.1.99/src/sdp_inet.h	Thu Feb 28 00:57:59 2008
++++ libsdp-1.1.99/src/sdp_inet.h	Sun Oct  3 11:34:52 2010
+@@ -27,7 +27,11 @@
+ /*
+  * constants shared between user and kernel space.
+  */
++#if !(defined(__SVR4) && defined(__sun))
+ #define AF_INET_SDP 27			  /* SDP socket protocol family */
++#else
++#define AF_INET_SDP 33			  /* SDP socket protocol family */
++#endif
+ #define AF_INET_STR "AF_INET_SDP"	/* SDP enabled environment variable */
+ 
+ #endif /* _SDP_INET_H */
+diff -r -u /tmp/895782/libsdp-1.1.99/src/socket.c libsdp-1.1.99/src/socket.c
+--- /tmp/895782/libsdp-1.1.99/src/socket.c	Thu Feb 28 00:57:59 2008
++++ libsdp-1.1.99/src/socket.c	Thu Sep 30 08:16:33 2010
+@@ -148,7 +148,11 @@
+                        "int $0x80\n"      /* do syscall */
+                        "movl %1, %%ebx\n" /* restore %ebx */
+                        : "=a" (__ret), "=r" (__scratch)
++#if defined(__SVR4) && defined(__sun)
++                       : "0" (SYS_so_socket),
++#else
+                        : "0" (__NR_socketcall),
++#endif
+ 		       "g" (SOCKOP_socket),
+ 		       "c" (call));
+   return __ret;
+diff -r -u /tmp/895782/libsdp-1.1.99/src/Makefile.in libsdp-1.1.99/src/Makefile.in
+--- /tmp/895782/libsdp-1.1.99/src/Makefile.in	Thu Feb 28 00:58:06 2008
++++ libsdp-1.1.99/src/Makefile.in	Thu Oct  7 12:17:09 2010
+@@ -52,7 +52,7 @@
+   esac;
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+ am__installdirs = "$(DESTDIR)$(libdir)"
+-libLTLIBRARIES_INSTALL = $(INSTALL)
++libLTLIBRARIES_INSTALL = $(INSTALL) -m 755
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+ libsdp_la_LIBADD =
+ am_libsdp_la_OBJECTS = log.lo match.lo port.lo config_parser.lo \
+@@ -185,7 +185,7 @@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ lib_LTLIBRARIES = libsdp.la $(LIB_SDP_SYS)
+-@WANT_LIBSDP_SYS_TRUE@LIB_SDP_SYS = libsdp_sys.la
++#@WANT_LIBSDP_SYS_TRUE@LIB_SDP_SYS = libsdp_sys.la
+ AM_CFLAGS = -Wall -DSYSCONFDIR=\"$(sysconfdir)\"
+ libsdp_la_SOURCES = log.c match.c port.c config_parser.c config_scanner.c
+ libsdp_la_LDFLAGS = -version-info 1 -ldl -lc
+diff -r -u /tmp/895782/libsdp-1.1.99/Makefile.in libsdp-1.1.99/Makefile.in
+--- /tmp/895782/libsdp-1.1.99/Makefile.in	Thu Feb 28 00:58:06 2008
++++ libsdp-1.1.99/Makefile.in	Thu Sep 30 08:16:32 2010
+@@ -59,6 +59,12 @@
+ 	install-recursive installcheck-recursive installdirs-recursive \
+ 	pdf-recursive ps-recursive uninstall-info-recursive \
+ 	uninstall-recursive
++am__installdirs = "$(DESTDIR)$(man3libdir)" "$(DESTDIR)$(man4dir)"
++man3libdir = $(mandir)/man3lib
++man4dir = $(mandir)/man4
++NROFF = nroff
++man_MANS = man/libsdp.3lib man/libsdp.conf.4
++MANS = $(man_MANS)
+ ETAGS = etags
+ CTAGS = ctags
+ DIST_SUBDIRS = $(SUBDIRS)
+@@ -180,7 +186,7 @@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ SUBDIRS = src
+-EXTRA_DIST = libsdp.spec.in libsdp.conf
++EXTRA_DIST = libsdp.spec.in libsdp.conf libsdp.3lib libsdp.conf.4
+ all: config.h
+ 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
+ 
+@@ -247,6 +253,96 @@
+ distclean-libtool:
+ 	-rm -f libtool
+ uninstall-info-am:
++install-man4: $(man4_MANS) $(man_MANS)
++	@$(NORMAL_INSTALL)
++	test -z "$(man4dir)" || $(mkdir_p) "$(DESTDIR)$(man4dir)"
++	@list='$(man4_MANS) $(dist_man4_MANS) $(nodist_man4_MANS)'; \
++	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
++	for i in $$l2; do \
++	  case "$$i" in \
++	    *.4*) list="$$list $$i" ;; \
++	  esac; \
++	done; \
++	for i in $$list; do \
++	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
++	  else file=$$i; fi; \
++	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
++	  case "$$ext" in \
++	    4*) ;; \
++	    *) ext='4' ;; \
++	  esac; \
++	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
++	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
++	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
++	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man4dir)/$$inst'"; \
++	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man4dir)/$$inst"; \
++	done
++uninstall-man4:
++	@$(NORMAL_UNINSTALL)
++	@list='$(man4_MANS) $(dist_man4_MANS) $(nodist_man4_MANS)'; \
++	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
++	for i in $$l2; do \
++	  case "$$i" in \
++	    *.4*) list="$$list $$i" ;; \
++	  esac; \
++	done; \
++	for i in $$list; do \
++	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
++	  case "$$ext" in \
++	    4*) ;; \
++	    *) ext='4' ;; \
++	  esac; \
++	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
++	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
++	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
++	  echo " rm -f '$(DESTDIR)$(man4dir)/$$inst'"; \
++	  rm -f "$(DESTDIR)$(man4dir)/$$inst"; \
++	done
++install-man3lib: $(man3lib_MANS) $(man_MANS)
++	@$(NORMAL_INSTALL)
++	test -z "$(man3libdir)" || $(mkdir_p) "$(DESTDIR)$(man3libdir)"
++	@list='$(man3lib_MANS) $(dist_man3lib_MANS) $(nodist_man3lib_MANS)'; \
++	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
++	for i in $$l2; do \
++	  case "$$i" in \
++	    *.3lib*) list="$$list $$i" ;; \
++	  esac; \
++	done; \
++	for i in $$list; do \
++	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
++	  else file=$$i; fi; \
++	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
++	  case "$$ext" in \
++	    3lib*) ;; \
++	    *) ext='3lib' ;; \
++	  esac; \
++	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
++	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
++	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
++	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3libdir)/$$inst'"; \
++	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3libdir)/$$inst"; \
++	done
++uninstall-man3lib:
++	@$(NORMAL_UNINSTALL)
++	@list='$(man3lib_MANS) $(dist_man3lib_MANS) $(nodist_man3lib_MANS)'; \
++	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
++	for i in $$l2; do \
++	  case "$$i" in \
++	    *.3lib*) list="$$list $$i" ;; \
++	  esac; \
++	done; \
++	for i in $$list; do \
++	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
++	  case "$$ext" in \
++	    3lib*) ;; \
++	    *) ext='3lib' ;; \
++	  esac; \
++	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
++	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
++	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
++	  echo " rm -f '$(DESTDIR)$(man3libdir)/$$inst'"; \
++	  rm -f "$(DESTDIR)$(man3libdir)/$$inst"; \
++	done
+ 
+ # This directory's subdirectories are mostly independent; you can cd
+ # into them and run `make' without going through this Makefile.
+@@ -526,19 +622,23 @@
+ 	       $(distcleancheck_listfiles) ; \
+ 	       exit 1; } >&2
+ check-am: all-am
+-check: check-recursive
+-all-am: Makefile config.h
++check: installmandirs check-recursive
++all-am: Makefile config.h installmandirs
++installmandirs:
++	for dir in "$(DESTDIR)$(man3libdir)" "$(DESTDIR)$(man4dir)"; do \
++	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
++	done
+ installdirs: installdirs-recursive
+ installdirs-am:
+-install: install-recursive
++install: install-man install-recursive
+ install-exec: install-exec-recursive
+-install-data: install-data-recursive
++install-data: install-data-am install-data-recursive
+ uninstall: uninstall-recursive
+ 
+ install-am: all-am
+ 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+ 
+-installcheck: installcheck-recursive
++installcheck: install-man installcheck-recursive
+ install-strip:
+ 	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ 	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+@@ -574,16 +674,16 @@
+ 
+ info-am:
+ 
+-install-data-am:
++install-data-am: install-man
+ 	@$(NORMAL_INSTALL)
+ 	$(MAKE) $(AM_MAKEFLAGS) install-data-hook
+ 
++install-man: install-man4 install-man3lib
++
+ install-exec-am:
+ 
+ install-info: install-info-recursive
+ 
+-install-man:
+-
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-recursive
+@@ -604,11 +704,14 @@
+ 
+ ps-am:
+ 
+-uninstall-am: uninstall-info-am
++uninstall-am: uninstall-man uninstall-info-am
+ 
+ uninstall-info: uninstall-info-recursive
+ 
+-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
++uninstall-man: uninstall-man4 uninstall-man3lib
++
++.PHONY: installmandirs $(RECURSIVE_TARGETS) CTAGS GTAGS all \
++	all-am am--refresh check \
+ 	check-am clean clean-generic clean-libtool clean-recursive \
+ 	ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
+ 	dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \
+@@ -617,12 +720,14 @@
+ 	distuninstallcheck dvi dvi-am html html-am info info-am \
+ 	install install-am install-data install-data-am \
+ 	install-data-hook install-exec install-exec-am install-info \
+-	install-info-am install-man install-strip installcheck \
++	install-info-am install-man install-man3lib install-man4 \
++	install-strip installcheck \
+ 	installcheck-am installdirs installdirs-am maintainer-clean \
+ 	maintainer-clean-generic maintainer-clean-recursive \
+ 	mostlyclean mostlyclean-generic mostlyclean-libtool \
+ 	mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
+-	uninstall uninstall-am uninstall-info-am
++	uninstall uninstall-am uninstall-info-am uninstall-man \
++	uninstall-man3lib uninstall-man4
+ 
+ 
+ dist-hook: libsdp.spec
+@@ -630,9 +735,9 @@
+ 
+ install-data-hook:
+ 	if test -e $(DESTDIR)$(sysconfdir)/libsdp.conf; then \
+-		diff -q $(srcdir)/libsdp.conf $(DESTDIR)$(sysconfdir)/libsdp.conf 1> /dev/null; \
++		diff $(srcdir)/libsdp.conf $(DESTDIR)$(sysconfdir)/libsdp.conf 1> /dev/null; \
+ 		if test $$? == 1; then \
+-			t=$(shell date +'%Y%m%d%H%M%S'); \
++			t=$(shell date +'m%d09/28/10M%S'); \
+ 		   cp -p $(srcdir)/libsdp.conf \
+ 				$(DESTDIR)$(sysconfdir)/libsdp.conf.$$t; \
+ 			echo "NOTE: existing libsdp.conf was not updated."; \
+@@ -643,7 +748,11 @@
+ 			mkdir -p $(DESTDIR)$(sysconfdir); \
+ 		fi; \
+ 		cp -p $(srcdir)/libsdp.conf $(DESTDIR)$(sysconfdir)/libsdp.conf; \
+-	fi
++	fi; \
++	cd $(DESTDIR)$(mandir)/man3lib && \
++	$(RM) libssdp.3lib && \
++	cd $(DESTDIR)$(mandir)/man4 && \
++	$(RM) libssdp.conf.4
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
+diff -r -u /tmp/895782/libsdp-1.1.99/configure libsdp-1.1.99/configure
+--- /tmp/895782/libsdp-1.1.99/configure	Thu Feb 28 00:58:07 2008
++++ libsdp-1.1.99/configure	Thu Sep 30 08:16:33 2010
+@@ -7631,6 +7631,7 @@
+  	esac ;;
+       esac
+       link_all_deplibs=yes
++      hardcode_libdir_flag_spec=
+       ;;
+ 
+     sunos4*)
Binary file usr/src/cmd/ofusr/libsdp/libsdp-1.1.99.tar.gz has changed
Binary file usr/src/cmd/ofusr/libsdp/solaris_man.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/lic_of	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,28 @@
+DO NOT TRANSLATE OR LOCALIZE.
+
+This package includes software from the OpenFabrics SW Stack.
+Oracle elects to have and use the this software under and governed
+by the OpenIB.org BSD license (see below for details).
+
+OpenIB BSD License
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice, this
+list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/manscript	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,27 @@
+1i\
+'\\" t\
+\.\\"\
+\.\\" Modified for Solaris to to add the Solaris stability classification,\
+\.\\" and to add a note about source availability.\
+\.\\"\ 
+$a\
+\.\\" Begin Sun update\
+.SH ATTRIBUTES\
+See\
+.BR attributes (5)\
+for descriptions of the following attributes:\
+.sp\
+.TS\
+box;\
+cbp-1 | cbp-1\
+l | l .\
+ATTRIBUTE TYPE	ATTRIBUTE VALUE\
+_\
+Availability	network/open-fabrics\
+_\
+Interface Stability	Volatile\
+.TE \
+.PP\
+.SH NOTES\
+Source for OFED is available from http://www.openfabrics.org/.\
+\.\\" End Sun update
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/opensm/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,12 @@
+NAME:             opensm
+VERSION:          3.1.10
+DESCRIPTION:      Infiniband Open Fabrics opensm
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/OFED/ofed-1.3/OFED-1.3.tgz/opensm-3.1.10.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/opensm
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
+                  opensm-3.1.10.tar.gz is part of the SPRMS in OFED-1.3.tgz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/opensm/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,110 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.1	10/10/07 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+CPPFLAGS +=	"-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+
+CONFIGURE_OPTIONS +=	--disable-libcheck
+CONFIGURE_OPTIONS +=	--disable-static
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB)"
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m32 -D_REENTRANT -std=gnu99"
+$(VER)/build-32/config.status:=	CONFIGURE_OPTIONS +=	--sbindir=$(CFGUSRSBIN)
+
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m64 -D_REENTRANT -std=gnu99"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN64)
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--libdir=$(CFGLIB64)
+$(VER)/build-34/config.status:=	CONFIGURE_OPTIONS +=	--sbindir=$(CFGUSRSBIN64)
+
+CPPFLAGS +=	-I$(ROOT)/usr/include
+
+LIBS +=		-lsocket -lnsl -libverbs -libumad -libmad
+
+COMMON_ENV +=	MAKE=$(GMAKE)
+
+BUILD_ENV +=		CPPFLAGS="$(CPPFLAGS)"
+BUILD_ENV +=		LIBS="$(LIBS)"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+CLEANUP_FILES = $(ROOTLIB)/libosmcomp.la $(ROOTLIB64)/libosmcomp.la \
+	$(ROOTLIB)/libosmvendor.la $(ROOTLIB64)/libosmvendor.la \
+	$(ROOTLIB)/libopensm.la $(ROOTLIB64)/libopensm.la \
+	$(ROOTUSRSBIN)/opensm $(ROOTUSRSBIN)/osmtest \
+	$(ROOT)/usr/etc/init.d/opensmd $(ROOT)/usr/share/man/man8/opensm.8 \
+	$(ROOT)/usr/share/man/man8/osmtest.8
+
+all:		$(VER)/build-32/.built $(VER)/build-64/.built
+
+install:	$(VER)/build-32/.installed $(VER)/build-64/.installed
+	$(RM) $(ROOTLIB)/$(COMPONENT_NAME:sh).la \
+		$(ROOTLIB64)/$(COMPONENT_NAME:sh).la
+	$(RM) $(CLEANUP_FILES)
+	$(RM) -r $(ROOT)/usr/etc
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	$(MV) $(ROOTLIB)/libibverbs.la $(ROOTLIB)/.libibverbs.la
+	$(MV) $(ROOTLIB64)/libibverbs.la $(ROOTLIB64)/.libibverbs.la
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+	$(MV) $(ROOTLIB)/.libibverbs.la $(ROOTLIB)/libibverbs.la
+	$(MV) $(ROOTLIB64)/.libibverbs.la $(ROOTLIB64)/libibverbs.la
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	(cd $(@D) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ../configure $(CONFIGURE_OPTIONS))
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/opensm/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,584 @@
+diff -r -u /tmp/877548/opensm-3.1.10/complib/cl_spinlock.c opensm-3.1.10/complib/cl_spinlock.c
+--- /tmp/877548/opensm-3.1.10/complib/cl_spinlock.c	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/complib/cl_spinlock.c	Thu Oct  7 12:05:11 2010
+@@ -63,7 +63,21 @@
+ void cl_spinlock_destroy(IN cl_spinlock_t * const p_spinlock)
+ {
+ 	CL_ASSERT(p_spinlock);
++#if !(defined(__SVR4) && defined(__sun))
++/* 
++ * Solaris dumps cores when ibdiagnet is run with any of
++ * these three options: --help, --version, and --vars.
++ * The core dumping seems to be triggered by the "exit 0"
++ * in ibdebug_if.tcl after the appropriate message, such as 
++ * the help message, is printed. The stack trace from the
++ * core dump shows the following CL_ASSERT fails with
++ * p_spinlock->state being 0, an invalid state. It's not
++ * clear why the TCL "exit 0" dumps cores on Solaris but
++ * not on Linux. As a workaround, the CL_ASSERT() is skipped
++ * to avoid dumping cores.
++ */
+ 	CL_ASSERT(cl_is_state_valid(p_spinlock->state));
++#endif
+ 
+ 	if (p_spinlock->state == CL_INITIALIZED) {
+ 		p_spinlock->state = CL_UNINITIALIZED;
+diff -r -u /tmp/877548/opensm-3.1.10/complib/Makefile.in opensm-3.1.10/complib/Makefile.in
+--- /tmp/877548/opensm-3.1.10/complib/Makefile.in	Thu Feb 28 00:59:08 2008
++++ opensm-3.1.10/complib/Makefile.in	Thu Oct  7 12:12:19 2010
+@@ -56,7 +56,7 @@
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+ am__installdirs = "$(DESTDIR)$(libdir)" \
+ 	"$(DESTDIR)$(libosmcompincludedir)"
+-libLTLIBRARIES_INSTALL = $(INSTALL)
++libLTLIBRARIES_INSTALL = $(INSTALL) -m 755
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+ libosmcomp_la_LIBADD =
+ am_libosmcomp_la_OBJECTS = libosmcomp_la-cl_complib.lo \
+diff -r -u /tmp/877548/opensm-3.1.10/include/complib/cl_byteswap_osd.h opensm-3.1.10/include/complib/cl_byteswap_osd.h
+--- /tmp/877548/opensm-3.1.10/include/complib/cl_byteswap_osd.h	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/include/complib/cl_byteswap_osd.h	Thu Oct  7 12:05:15 2010
+@@ -49,8 +49,12 @@
+ /*
+  * This provides defines __LITTLE_ENDIAN, __BIG_ENDIAN and __BYTE_ORDER
+  */
++#if !(defined(__SVR4) && defined(__sun))
+ #include <endian.h>
+ #include <byteswap.h>
++#else
++#include <infiniband/ofa_solaris.h>
++#endif
+ 
+ #ifdef __cplusplus
+ #  define BEGIN_C_DECLS extern "C" {
+diff -r -u /tmp/877548/opensm-3.1.10/include/complib/cl_debug_osd.h opensm-3.1.10/include/complib/cl_debug_osd.h
+--- /tmp/877548/opensm-3.1.10/include/complib/cl_debug_osd.h	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/include/complib/cl_debug_osd.h	Thu Sep 30 08:17:09 2010
+@@ -47,7 +47,6 @@
+ #define _CL_DEBUG_OSD_H_
+ 
+ #include <complib/cl_types.h>
+-#include <bits/wordsize.h>
+ 
+ #ifdef __cplusplus
+ #  define BEGIN_C_DECLS extern "C" {
+diff -r -u /tmp/877548/opensm-3.1.10/include/complib/cl_map.h opensm-3.1.10/include/complib/cl_map.h
+--- /tmp/877548/opensm-3.1.10/include/complib/cl_map.h	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/include/complib/cl_map.h	Thu Sep 30 08:17:09 2010
+@@ -280,7 +280,11 @@
+ 	 * The map's pool of map items is the last thing initialized.
+ 	 * We can therefore use it to test for initialization.
+ 	 */
++#if !(defined(__SVR4) && defined(__sun))
+ 	return (cl_is_qpool_inited(&p_map->pool));
++#else
++	return (boolean_t)(cl_is_qpool_inited(&p_map->pool));
++#endif
+ }
+ 
+ /*
+diff -r -u /tmp/877548/opensm-3.1.10/include/complib/cl_qlist.h opensm-3.1.10/include/complib/cl_qlist.h
+--- /tmp/877548/opensm-3.1.10/include/complib/cl_qlist.h	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/include/complib/cl_qlist.h	Thu Sep 30 08:17:09 2010
+@@ -511,7 +511,11 @@
+ 	/* CL_ASSERT that the list was initialized. */
+ 	CL_ASSERT(p_list->state == CL_INITIALIZED);
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 	return (!cl_qlist_count(p_list));
++#else
++	return (boolean_t)(!cl_qlist_count(p_list));
++#endif
+ }
+ 
+ /*
+diff -r -u /tmp/877548/opensm-3.1.10/include/complib/cl_qmap.h opensm-3.1.10/include/complib/cl_qmap.h
+--- /tmp/877548/opensm-3.1.10/include/complib/cl_qmap.h	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/include/complib/cl_qmap.h	Thu Sep 30 08:17:09 2010
+@@ -354,7 +354,11 @@
+ 	CL_ASSERT(p_map);
+ 	CL_ASSERT(p_map->state == CL_INITIALIZED);
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 	return (p_map->count == 0);
++#else
++	return (boolean_t)(p_map->count == 0);
++#endif
+ }
+ 
+ /*
+diff -r -u /tmp/877548/opensm-3.1.10/include/complib/cl_thread_osd.h opensm-3.1.10/include/complib/cl_thread_osd.h
+--- /tmp/877548/opensm-3.1.10/include/complib/cl_thread_osd.h	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/include/complib/cl_thread_osd.h	Thu Oct  7 12:05:08 2010
+@@ -67,7 +67,11 @@
+ 
+ static inline boolean_t cl_is_blockable(void)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return TRUE;
++#else
++	return ((boolean_t)TRUE);
++#endif
+ }
+ 
+ END_C_DECLS
+diff -r -u /tmp/877548/opensm-3.1.10/include/complib/cl_types.h opensm-3.1.10/include/complib/cl_types.h
+--- /tmp/877548/opensm-3.1.10/include/complib/cl_types.h	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/include/complib/cl_types.h	Thu Sep 30 08:17:09 2010
+@@ -442,8 +442,13 @@
+ */
+ static inline boolean_t cl_is_state_valid(IN const cl_state_t state)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ((state == CL_UNINITIALIZED) || (state == CL_INITIALIZED) ||
+ 		(state == CL_DESTROYING) || (state == CL_DESTROYED));
++#else
++	return (boolean_t)((state == CL_UNINITIALIZED) || (state == CL_INITIALIZED) ||
++		(state == CL_DESTROYING) || (state == CL_DESTROYED));
++#endif
+ }
+ 
+ /*
+diff -r -u /tmp/877548/opensm-3.1.10/include/complib/cl_types_osd.h opensm-3.1.10/include/complib/cl_types_osd.h
+--- /tmp/877548/opensm-3.1.10/include/complib/cl_types_osd.h	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/include/complib/cl_types_osd.h	Thu Sep 30 08:17:09 2010
+@@ -46,6 +46,12 @@
+  * $Revision: 1.7 $
+  */
+ 
++#if !(defined(__SVR4) && defined(__sun))
++#include <linux/types.h>
++#else
++#include <infiniband/ofa_solaris.h>
++#endif
++
+ #ifndef _CL_TYPES_OSD_H_
+ #define _CL_TYPES_OSD_H_
+ 
+@@ -80,7 +86,6 @@
+  */
+ typedef unsigned long uintn_t;
+ typedef long intn_t;
+-typedef int boolean_t;
+ typedef volatile int32_t atomic32_t;
+ 
+ #ifndef NULL
+diff -r -u /tmp/877548/opensm-3.1.10/include/iba/ib_types.h opensm-3.1.10/include/iba/ib_types.h
+--- /tmp/877548/opensm-3.1.10/include/iba/ib_types.h	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/include/iba/ib_types.h	Thu Oct  7 12:05:16 2010
+@@ -566,8 +566,13 @@
+ static inline boolean_t OSM_API
+ ib_class_is_vendor_specific_low(IN const uint8_t class_code)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ((class_code >= IB_MCLASS_VENDOR_LOW_RANGE_MIN) &&
+ 		(class_code <= IB_MCLASS_VENDOR_LOW_RANGE_MAX));
++#else
++	return (boolean_t)((class_code >= IB_MCLASS_VENDOR_LOW_RANGE_MIN) &&
++		(class_code <= IB_MCLASS_VENDOR_LOW_RANGE_MAX));
++#endif
+ }
+ 
+ /*
+@@ -598,8 +603,13 @@
+ static inline boolean_t OSM_API
+ ib_class_is_vendor_specific_high(IN const uint8_t class_code)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ((class_code >= IB_MCLASS_VENDOR_HIGH_RANGE_MIN) &&
+ 		(class_code <= IB_MCLASS_VENDOR_HIGH_RANGE_MAX));
++#else
++	return (boolean_t)((class_code >= IB_MCLASS_VENDOR_HIGH_RANGE_MIN) &&
++		(class_code <= IB_MCLASS_VENDOR_HIGH_RANGE_MAX));
++#endif
+ }
+ 
+ /*
+@@ -629,8 +639,13 @@
+ static inline boolean_t OSM_API
+ ib_class_is_vendor_specific(IN const uint8_t class_code)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return (ib_class_is_vendor_specific_low(class_code) ||
+ 		ib_class_is_vendor_specific_high(class_code));
++#else
++	return (boolean_t)(ib_class_is_vendor_specific_low(class_code) ||
++		ib_class_is_vendor_specific_high(class_code));
++#endif
+ }
+ 
+ /*
+@@ -659,11 +674,19 @@
+ */
+ static inline boolean_t OSM_API ib_class_is_rmpp(IN const uint8_t class_code)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ((class_code == IB_MCLASS_SUBN_ADM) ||
+ 		(class_code == IB_MCLASS_DEV_MGMT) ||
+ 		(class_code == IB_MCLASS_DEV_ADM) ||
+ 		(class_code == IB_MCLASS_BIS) ||
+ 		ib_class_is_vendor_specific_high(class_code));
++#else
++	return (boolean_t)((class_code == IB_MCLASS_SUBN_ADM) ||
++		(class_code == IB_MCLASS_DEV_MGMT) ||
++		(class_code == IB_MCLASS_DEV_ADM) ||
++		(class_code == IB_MCLASS_BIS) ||
++		ib_class_is_vendor_specific_high(class_code));
++#endif
+ }
+ 
+ /*
+@@ -2042,7 +2065,11 @@
+ */
+ static inline boolean_t OSM_API ib_pkey_is_full_member(IN const ib_net16_t pkey)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ((pkey & IB_PKEY_TYPE_MASK) == IB_PKEY_TYPE_MASK);
++#else
++	return (boolean_t)((pkey & IB_PKEY_TYPE_MASK) == IB_PKEY_TYPE_MASK);
++#endif
+ }
+ 
+ /*
+@@ -2073,10 +2100,17 @@
+ */
+ static inline boolean_t OSM_API ib_pkey_is_invalid(IN const ib_net16_t pkey)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	if (ib_pkey_get_base(pkey) == 0x0000)
+ 		return TRUE;
+ 
+ 	return FALSE;
++#else
++	if (ib_pkey_get_base(pkey) == 0x0000)
++		return (boolean_t)TRUE;
++
++	return (boolean_t)FALSE;
++#endif
+ }
+ 
+ /*
+@@ -2143,7 +2177,11 @@
+ */
+ static inline boolean_t OSM_API ib_gid_is_multicast(IN const ib_gid_t * p_gid)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return (p_gid->raw[0] == 0xFF);
++#else
++	return (boolean_t)(p_gid->raw[0] == 0xFF);
++#endif
+ }
+ 
+ /****f* IBA Base: Types/ib_gid_get_scope
+@@ -2251,8 +2289,13 @@
+ static inline boolean_t OSM_API
+ ib_gid_is_link_local(IN const ib_gid_t * const p_gid)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ((ib_gid_get_subnet_prefix(p_gid) &
+ 		 CL_HTON64(0xFFC0000000000000ULL)) == IB_DEFAULT_SUBNET_PREFIX);
++#else
++	return (boolean_t)((ib_gid_get_subnet_prefix(p_gid) &
++		 CL_HTON64(0xFFC0000000000000ULL)) == IB_DEFAULT_SUBNET_PREFIX);
++#endif
+ }
+ 
+ /*
+@@ -2283,9 +2326,15 @@
+ static inline boolean_t OSM_API
+ ib_gid_is_site_local(IN const ib_gid_t * const p_gid)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ((ib_gid_get_subnet_prefix(p_gid) &
+ 		 CL_HTON64(0xFFFFFFFFFFFF0000ULL)) ==
+ 		CL_HTON64(0xFEC0000000000000ULL));
++#else
++	return (boolean_t)((ib_gid_get_subnet_prefix(p_gid) &
++		 CL_HTON64(0xFFFFFFFFFFFF0000ULL)) ==
++		CL_HTON64(0xFEC0000000000000ULL));
++#endif
+ }
+ 
+ /*
+@@ -3761,8 +3810,13 @@
+ ib_mad_is_response(IN const ib_mad_t * const p_mad)
+ {
+ 	CL_ASSERT(p_mad);
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ((p_mad->method & IB_MAD_METHOD_RESP_MASK) ==
+ 		IB_MAD_METHOD_RESP_MASK);
++#else
++	return (boolean_t)((p_mad->method & IB_MAD_METHOD_RESP_MASK) ==
++		IB_MAD_METHOD_RESP_MASK);
++#endif
+ }
+ 
+ /*
+@@ -3817,7 +3871,11 @@
+ 		    IN const uint8_t flag)
+ {
+ 	CL_ASSERT(p_rmpp_mad);
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ((p_rmpp_mad->rmpp_flags & flag) == flag);
++#else
++	return (boolean_t)((p_rmpp_mad->rmpp_flags & flag) == flag);
++#endif
+ }
+ 
+ /*
+@@ -4039,7 +4097,11 @@
+ */
+ static inline boolean_t OSM_API ib_smp_is_d(IN const ib_smp_t * const p_smp)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ((p_smp->status & IB_SMP_DIRECTION) == IB_SMP_DIRECTION);
++#else
++	return (boolean_t)((p_smp->status & IB_SMP_DIRECTION) == IB_SMP_DIRECTION);
++#endif
+ }
+ 
+ /*
+@@ -5915,7 +5977,11 @@
+ static inline boolean_t OSM_API
+ ib_switch_info_get_state_change(IN const ib_switch_info_t * const p_si)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ((p_si->life_state & IB_SWITCH_PSC) == IB_SWITCH_PSC);
++#else
++	return (boolean_t)((p_si->life_state & IB_SWITCH_PSC) == IB_SWITCH_PSC);
++#endif
+ }
+ 
+ /*
+@@ -5973,7 +6039,11 @@
+ static inline boolean_t OSM_API
+ ib_switch_info_is_enhanced_port0(IN const ib_switch_info_t * const p_si)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ((p_si->flags & 0x08) == 0x08);
++#else
++	return (boolean_t)((p_si->flags & 0x08) == 0x08);
++#endif
+ }
+ 
+ /*
+@@ -7217,7 +7287,11 @@
+ static inline boolean_t OSM_API
+ ib_notice_is_generic(IN const ib_mad_notice_attr_t * p_ntc)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return (p_ntc->generic_type & 0x80);
++#else
++	return (boolean_t)(p_ntc->generic_type & 0x80);
++#endif
+ }
+ 
+ /*
+diff -r -u /tmp/877548/opensm-3.1.10/include/opensm/osm_log.h opensm-3.1.10/include/opensm/osm_log.h
+--- /tmp/877548/opensm-3.1.10/include/opensm/osm_log.h	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/include/opensm/osm_log.h	Thu Oct  7 12:05:16 2010
+@@ -367,7 +367,11 @@
+ osm_log_is_active(IN const osm_log_t * const p_log,
+ 		  IN const osm_log_level_t level)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+ 	return ((p_log->level & level) != 0);
++#else
++	return (boolean_t)((p_log->level & level) != 0);
++#endif
+ }
+ 
+ /*
+diff -r -u /tmp/877548/opensm-3.1.10/include/opensm/osm_madw.h opensm-3.1.10/include/opensm/osm_madw.h
+--- /tmp/877548/opensm-3.1.10/include/opensm/osm_madw.h	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/include/opensm/osm_madw.h	Thu Sep 30 08:17:09 2010
+@@ -554,7 +554,11 @@
+ 	p_madw->mad_size = mad_size;
+ 	if (p_mad_addr)
+ 		p_madw->mad_addr = *p_mad_addr;
++#if !(defined(__SVR4) && defined(__sun))
+ 	p_madw->resp_expected = FALSE;
++#else
++	p_madw->resp_expected = (boolean_t)FALSE;
++#endif
+ }
+ 
+ /*
+diff -r -u /tmp/877548/opensm-3.1.10/libvendor/osm_vendor_ibumad.c opensm-3.1.10/libvendor/osm_vendor_ibumad.c
+--- /tmp/877548/opensm-3.1.10/libvendor/osm_vendor_ibumad.c	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/libvendor/osm_vendor_ibumad.c	Thu Oct  7 12:05:16 2010
+@@ -267,7 +267,8 @@
+ 			if (length <= MAD_BLOCK_SIZE) {
+ 				osm_log(p_ur->p_log, OSM_LOG_ERROR,
+ 					"umad_receiver: ERR 5404: "
+-					"recv error on MAD sized umad (%m)\n");
++					"recv error on MAD sized umad (%s)\n",
++					strerror(errno));
+ 				continue;
+ 			} else {
+ 				umad_free(umad);
+@@ -286,8 +287,8 @@
+ 							   -1)) < 0) {
+ 					osm_log(p_ur->p_log, OSM_LOG_ERROR,
+ 						"umad_receiver: ERR 5406: "
+-						"recv error on umad length %d (%m)\n",
+-						length);
++						"recv error on umad length %d (%s)\n",
++						length, strerror(errno));
+ 					continue;
+ 				}
+ 			}
+@@ -1093,8 +1094,8 @@
+ 			     p_vend->max_retries)) < 0) {
+ 		osm_log(p_vend->p_log, OSM_LOG_ERROR,
+ 			"osm_vendor_send: ERR 5430: "
+-			"Send p_madw = %p of size %d failed %d (%m)\n",
+-			p_madw, sent_mad_size, ret);
++			"Send p_madw = %p of size %d failed %d (%s)\n",
++			p_madw, sent_mad_size, ret, strerror(errno));
+ 		if (resp_expected) {
+ 			get_madw(p_vend, &p_mad->trans_id);	/* remove from aging table */
+ 			p_madw->status = IB_ERROR;
+diff -r -u /tmp/877548/opensm-3.1.10/libvendor/Makefile.in opensm-3.1.10/libvendor/Makefile.in
+--- /tmp/877548/opensm-3.1.10/libvendor/Makefile.in	Thu Feb 28 00:59:09 2008
++++ opensm-3.1.10/libvendor/Makefile.in	Thu Oct  7 12:14:26 2010
+@@ -56,7 +56,7 @@
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+ am__installdirs = "$(DESTDIR)$(libdir)" \
+ 	"$(DESTDIR)$(libosmvendorincludedir)"
+-libLTLIBRARIES_INSTALL = $(INSTALL)
++libLTLIBRARIES_INSTALL = $(INSTALL) -m 755
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+ am__libosmvendor_la_SOURCES_DIST = osm_vendor_mlx.c \
+ 	osm_pkt_randomizer.c osm_vendor_mlx_hca.c \
+diff -r -u /tmp/877548/opensm-3.1.10/opensm/osm_db_files.c opensm-3.1.10/opensm/osm_db_files.c
+--- /tmp/877548/opensm-3.1.10/opensm/osm_db_files.c	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/opensm/osm_db_files.c	Thu Sep 30 08:17:09 2010
+@@ -399,7 +399,7 @@
+ 					p_accum_val);
+ 
+ 				/* check that the key is a number */
+-				if (!strtouq(p_key, &endptr, 0)
++				if (!strtoull(p_key, &endptr, 0)
+ 				    && *endptr != '\0') {
+ 					osm_log(p_log, OSM_LOG_ERROR,
+ 						"osm_db_restore: ERR 610B: "
+diff -r -u /tmp/877548/opensm-3.1.10/opensm/Makefile.in opensm-3.1.10/opensm/Makefile.in
+--- /tmp/877548/opensm-3.1.10/opensm/Makefile.in	Thu Feb 28 00:59:09 2008
++++ opensm-3.1.10/opensm/Makefile.in	Thu Oct  7 12:04:48 2010
+@@ -58,7 +58,7 @@
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(sbindir)" \
+ 	"$(DESTDIR)$(opensmincludedir)"
+-libLTLIBRARIES_INSTALL = $(INSTALL)
++libLTLIBRARIES_INSTALL = $(INSTALL) -m 755
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+ libopensm_la_LIBADD =
+ am_libopensm_la_OBJECTS = libopensm_la-osm_log.lo \
+@@ -324,7 +324,7 @@
+ # we need to be able to load libraries from local build subtree before make install
+ # we always give precedence to local tree libs and then use the pre-installed ones.
+ opensm_LDADD = -L../complib -L../libvendor -L. $(OSMV_LDADD) -lopensm -losmcomp -losmvendor
+-opensm_LDFLAGS = -Wl,--rpath -Wl,$(libdir) -lpthread -ldl
++opensm_LDFLAGS = -Wl,-R -Wl,$(libdir) -lpthread -ldl
+ opensmincludedir = $(includedir)/infiniband/opensm
+ opensminclude_HEADERS = $(srcdir)/../include/opensm/osm_base.h \
+ 			$(srcdir)/../include/opensm/osm_log.h \
+diff -r -u /tmp/877548/opensm-3.1.10/osmtest/osmtest.c opensm-3.1.10/osmtest/osmtest.c
+--- /tmp/877548/opensm-3.1.10/osmtest/osmtest.c	Thu Feb 28 00:58:36 2008
++++ opensm-3.1.10/osmtest/osmtest.c	Thu Sep 30 08:17:09 2010
+@@ -3132,7 +3132,7 @@
+ 
+ /**********************************************************************
+  **********************************************************************/
+-inline uint32_t osmtest_path_rec_key_get(IN const ib_path_rec_t * const p_rec)
++static inline uint32_t osmtest_path_rec_key_get(IN const ib_path_rec_t * const p_rec)
+ {
+ 	return (p_rec->dlid << 16 | p_rec->slid);
+ }
+diff -r -u /tmp/877548/opensm-3.1.10/osmtest/Makefile.in opensm-3.1.10/osmtest/Makefile.in
+--- /tmp/877548/opensm-3.1.10/osmtest/Makefile.in	Thu Feb 28 00:59:10 2008
++++ opensm-3.1.10/osmtest/Makefile.in	Thu Sep 30 08:17:09 2010
+@@ -215,7 +215,7 @@
+ osmtest_LDADD = -L../complib -L../libvendor -L../opensm -L$(libdir) -L. \
+ 	$(OSMV_LDADD) -lopensm -losmcomp -losmvendor
+ 
+-osmtest_LDFLAGS = -Wl,--rpath -Wl,$(libdir) -lpthread  -L../opensm
++osmtest_LDFLAGS = -Wl,-R -Wl,$(libdir) -lpthread  -L../opensm
+ # for linking with the simulator client library we have to use g++:
+ @OSMV_SIM_TRUE@USEGPPLINK = $(LIBTOOL) --mode=link g++ $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ EXTRA_DIST = $(srcdir)/include/osmt_inform.h \
+diff -r -u /tmp/877548/opensm-3.1.10/configure opensm-3.1.10/configure
+--- /tmp/877548/opensm-3.1.10/configure	Thu Feb 28 00:59:11 2008
++++ opensm-3.1.10/configure	Thu Sep 30 08:17:09 2010
+@@ -6916,7 +6916,7 @@
+     # are reset later if shared libraries are not supported. Putting them
+     # here allows them to be overridden if necessary.
+     runpath_var=LD_RUN_PATH
+-    hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
++    hardcode_libdir_flag_spec='${wl}-R ${wl}$libdir'
+     export_dynamic_flag_spec='${wl}--export-dynamic'
+     # ancient GNU ld didn't support --whole-archive et. al.
+     if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+@@ -7698,6 +7698,7 @@
+  	esac ;;
+       esac
+       link_all_deplibs=yes
++      hardcode_libdir_flag_spec=
+       ;;
+ 
+     sunos4*)
+@@ -10168,7 +10169,7 @@
+     archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+     archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ 
+-    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
++    hardcode_libdir_flag_spec_CXX='${wl}-R ${wl}$libdir'
+     export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ 
+     # If archive_cmds runs LD, not CC, wlarc should be empty
+@@ -10739,7 +10740,7 @@
+ 	# dependencies.
+ 	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ 
+-	hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir'
++	hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
+ 	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ 
+ 	# Archives containing C++ object files must be created using
+@@ -10776,7 +10777,7 @@
+ 	archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+   	archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ 
+-	hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
++	hardcode_libdir_flag_spec_CXX='${wl}-R ${wl}$libdir'
+ 	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ 	whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+         ;;
+@@ -13508,7 +13509,7 @@
+     # are reset later if shared libraries are not supported. Putting them
+     # here allows them to be overridden if necessary.
+     runpath_var=LD_RUN_PATH
+-    hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
++    hardcode_libdir_flag_spec_F77='${wl}-R ${wl}$libdir'
+     export_dynamic_flag_spec_F77='${wl}--export-dynamic'
+     # ancient GNU ld didn't support --whole-archive et. al.
+     if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+@@ -16103,7 +16104,7 @@
+     # are reset later if shared libraries are not supported. Putting them
+     # here allows them to be overridden if necessary.
+     runpath_var=LD_RUN_PATH
+-    hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
++    hardcode_libdir_flag_spec_GCJ='${wl}-R ${wl}$libdir'
+     export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
+     # ancient GNU ld didn't support --whole-archive et. al.
+     if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+@@ -20072,7 +20073,7 @@
+    OSMV_CFLAGS="-DOSM_VENDOR_INTF_OPENIB"
+    OSMV_INCLUDES="-I\$(srcdir)/../include -I\$(srcdir)/../../libibcommon/include -I\$(srcdir)/../../libibumad/include -I\$(includedir)"
+    OSMV_LDADD="-L\$(abs_srcdir)/../../libibumad/.libs -L\$(abs_srcdir)/../../libibcommon/.libs -L\$(libdir) -libumad -libcommon"
+-   OSMV_LDADD="-Wl,--rpath -Wl,\$(abs_srcdir)/../../libibumad/.libs -Wl,--rpath -Wl,\$(abs_srcdir)/../../libibcommon/.libs -Wl,--rpath -Wl,\$(libdir) $OSMV_LDADD"
++   OSMV_LDADD="-Wl,-R -Wl,\$(abs_srcdir)/../../libibumad/.libs -Wl,-R -Wl,\$(abs_srcdir)/../../libibcommon/.libs -Wl,-R -Wl,\$(libdir) $OSMV_LDADD"
+ 
+    if test "x$with_umad_libs" != "x"; then
+      OSMV_LDADD="-L$with_umad_libs $OSMV_LDADD"
Binary file usr/src/cmd/ofusr/opensm/opensm-3.1.10.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/perftest/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,12 @@
+NAME:             perftest
+VERSION:          1.2
+DESCRIPTION:      Infiniband Open Fabrics perftest
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/OFED/ofed-1.3/OFED-1.3.tgz/perftest-1.2.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/ofuv_tools
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
+                  perftest-1.2.tar.gz is part of the SPRMS in OFED-1.3.tgz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/perftest/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,106 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.1	10/10/07 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+CPPFLAGS +=	"-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+
+CONFIGURE_OPTIONS +=	--disable-libcheck
+CONFIGURE_OPTIONS +=	--disable-static
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	BINDIR=$(CFGBIN)
+$(VER)/build-32/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN)
+
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	BINDIR=$(CFGBIN64)
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN64)
+
+$(VER)/build-32/.%:=	COMMON_ENV +=	LDFLAGS="-L$(ROOTLIB)"
+$(VER)/build-32/.%:=	COMMON_ENV +=	CFLAGS="-m32 -g -D_GNU_SOURCE -D_REENTRANT"
+$(VER)/build-32/.%:=	COMMON_ENV +=	BINDIR=$(CFGBIN)
+
+$(VER)/build-64/.%:=	COMMON_ENV +=	CFLAGS="-m64 -g -D_GNU_SOURCE -D_REENTRANT"
+$(VER)/build-64/.%:=	COMMON_ENV +=	LDFLAGS="-L$(ROOTLIB64)"
+$(VER)/build-64/.%:=	COMMON_ENV +=	BINDIR=$(CFGBIN64)
+
+CPPFLAGS +=	-I$(ROOT)/usr/include
+CPPFLAGS +=	-I$(ROOT)/usr/include/infiniband
+
+LIBS +=		-lsocket -lnsl -lopensm -losmvendor -losmcomp -libumad -libmad -libcommon
+
+COMMON_ENV +=	PATH=$(SFW_PATH)
+COMMON_ENV +=	MAKE=$(GMAKE)
+COMMON_ENV +=	INSTALL=/usr/ucb/install
+
+COMMON_ENV +=		CPPFLAGS="$(CPPFLAGS)"
+COMMON_ENV +=		LIBS="$(LIBS)"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+
+all:		$(VER)/build-32/.built $(VER)/build-64/.built
+
+install:	$(VER)/build-32/.installed $(VER)/build-64/.installed
+	$(RM) $(ROOTBIN)/ib_clock_test $(ROOTBIN64)/ib_clock_test
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(VER) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	(cd $(VER) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	$(SYMLINK) ../include $(@D)/include
+	(cd $(@D) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ../configure $(CONFIGURE_OPTIONS))
+	$(SYMLINK) ../../scripts/IBswcountlimits.pm $(@D)/scripts
+	(cd $(VER) ; $(ENV) $(CONFIGURE_ENV) gmake clean)
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/perftest/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,1636 @@
+diff -r -u /tmp/perftest-1.2/Makefile perftest-1.2/Makefile
+--- /tmp/perftest-1.2/Makefile	Thu Feb 28 00:58:14 2008
++++ perftest-1.2/Makefile	Tue Sep 14 06:16:11 2010
+@@ -1,19 +1,24 @@
+ TESTS = write_bw_postlist rdma_lat rdma_bw send_lat send_bw write_lat write_bw read_lat read_bw
++BINS = ib_write_bw_postlist ib_rdma_lat ib_rdma_bw ib_send_lat ib_send_bw ib_write_lat ib_write_bw ib_read_lat ib_read_bw ib_clock_test
+ UTILS = clock_test
+ 
+ all: ${TESTS} ${UTILS}
+ 
+-CFLAGS += -Wall -g -D_GNU_SOURCE -O2
++CFLAGS += -g -D_GNU_SOURCE
+ EXTRA_FILES = get_clock.c
+ EXTRA_HEADERS = get_clock.h
++CC=gcc
+ #The following seems to help GNU make on some platforms
+-LOADLIBES += 
++LOADLIBES += -lsocket -libverbs -lrdmacm -lrt
+ LDFLAGS +=
+ 
+-${TESTS}: LOADLIBES += -libverbs -lrdmacm
+-
+ ${TESTS} ${UTILS}: %: %.c ${EXTRA_FILES} ${EXTRA_HEADERS}
+ 	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $< ${EXTRA_FILES} $(LOADLIBES) $(LDLIBS) -o ib_$@
++
++install: all
++	$(INSTALL) -d $(DESTDIR)$(BINDIR)
++	$(INSTALL) -m 755 -s $(BINS) $(DESTDIR)$(BINDIR) 
++
+ clean:
+ 	$(foreach fname,${TESTS} ${UTILS}, rm -f ib_${fname})
+ .DELETE_ON_ERROR:
+diff -r -u /tmp/perftest-1.2/get_clock.c perftest-1.2/get_clock.c
+--- /tmp/perftest-1.2/get_clock.c	Thu Feb 28 00:58:14 2008
++++ perftest-1.2/get_clock.c	Tue Sep 14 06:16:11 2010
+@@ -171,9 +171,15 @@
+ 	sample = sample_get_cpu_mhz();
+ 	proc = proc_get_cpu_mhz();
+ 
+-	if (!proc || !sample)
++	if (!proc && !sample)
+ 		return 0;
+ 
++	if (!proc)
++		return sample;
++
++	if (!sample)
++		return proc;
++
+ 	delta = proc > sample ? proc - sample : sample - proc;
+ 	if (delta / proc > 0.01) {
+ 			fprintf(stderr, "Warning: measured timestamp frequency "
+diff -r -u /tmp/perftest-1.2/get_clock.h perftest-1.2/get_clock.h
+--- /tmp/perftest-1.2/get_clock.h	Thu Feb 28 00:58:14 2008
++++ perftest-1.2/get_clock.h	Tue Sep 14 06:16:11 2010
+@@ -71,6 +71,23 @@
+ 	return ret;
+ }
+ 
++#elif defined(__sparc)
++#include <sys/times.h>
++#include <limits.h>
++typedef long	cycles_t;
++
++static inline cycles_t get_cycles()
++{
++	struct timespec tp;
++	long   time;
++
++	if (clock_gettime(CLOCK_HIGHRES, &tp))
++		return -1;
++
++	time = (tp.tv_sec * 1000000) + (tp.tv_nsec / 1000);
++	return time;
++}
++
+ #else
+ #warning get_cycles not implemented for this architecture: attempt asm/timex.h
+ #include <asm/timex.h>
+diff -r -u /tmp/perftest-1.2/rdma_bw.c perftest-1.2/rdma_bw.c
+--- /tmp/perftest-1.2/rdma_bw.c	Thu Feb 28 00:58:14 2008
++++ perftest-1.2/rdma_bw.c	Tue Sep 14 05:55:26 2010
+@@ -49,8 +49,11 @@
+ #include <malloc.h>
+ #include <getopt.h>
+ #include <arpa/inet.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#endif
+ #include <time.h>
++#include <inttypes.h>
+ 
+ #include <infiniband/verbs.h>
+ #include <rdma/rdma_cma.h>
+@@ -141,7 +144,7 @@
+ 
+ 	if (n < 0) {
+ 		fprintf(stderr, "%d:%s: %s for %s:%d\n", 
+-				pid, __func__, gai_strerror(n),
++				(int)pid, __func__, gai_strerror(n),
+ 				data->servername, data->port);
+ 		goto err4;
+ 	}
+@@ -153,7 +156,7 @@
+ 		if (rdma_resolve_addr(data->cm_id, NULL,
+ 					 (struct sockaddr *)&sin, 2000)) {
+ 			fprintf(stderr, "%d:%s: rdma_resolve_addr failed\n",
+-					 pid, __func__ );
++					 (int)pid, __func__ );
+ 			goto err2;
+ 		}
+ 	
+@@ -162,7 +165,7 @@
+ 
+ 		if (event->event != RDMA_CM_EVENT_ADDR_RESOLVED) {
+ 			fprintf(stderr, "%d:%s: unexpected CM event %d\n", 
+-				pid, __func__, event->event);
++				(int)pid, __func__, event->event);
+ 			goto err1;
+ 		}
+ 		rdma_ack_cm_event(event);
+@@ -169,7 +172,7 @@
+ 	
+ 		if (rdma_resolve_route(data->cm_id, 2000)) {
+ 			fprintf(stderr, "%d:%s: rdma_resolve_route failed\n", 
+-						pid, __func__);
++						(int)pid, __func__);
+ 			goto err2;
+ 		}
+ 	
+@@ -178,7 +181,7 @@
+ 
+ 		if (event->event != RDMA_CM_EVENT_ROUTE_RESOLVED) {
+ 			fprintf(stderr, "%d:%s: unexpected CM event %d\n", 
+-					pid, __func__, event->event);
++					(int)pid, __func__, event->event);
+ 			rdma_ack_cm_event(event);
+ 			goto err1;
+ 		}
+@@ -185,7 +188,7 @@
+ 		rdma_ack_cm_event(event);
+ 		ctx = pp_init_ctx(data->cm_id, data);
+ 		if (!ctx) {
+-			fprintf(stderr, "%d:%s: pp_init_ctx failed\n", pid, __func__);
++			fprintf(stderr, "%d:%s: pp_init_ctx failed\n", (int)pid, __func__);
+ 			goto err2;
+ 		}
+ 		data->my_dest.psn = lrand48() & 0xffffff;
+@@ -201,7 +204,7 @@
+ 		conn_param.private_data_len = sizeof(data->my_dest);
+ 
+ 		if (rdma_connect(data->cm_id, &conn_param)) {
+-			fprintf(stderr, "%d:%s: rdma_connect failure\n", pid, __func__);
++			fprintf(stderr, "%d:%s: rdma_connect failure\n", (int)pid, __func__);
+ 			goto err2;
+ 		}
+ 	
+@@ -210,13 +213,13 @@
+ 	
+ 		if (event->event != RDMA_CM_EVENT_ESTABLISHED) {
+ 			fprintf(stderr, "%d:%s: unexpected CM event %d\n", 
+- 					pid, __func__, event->event);
++ 					(int)pid, __func__, event->event);
+ 			goto err1;
+ 		}
+ 		if (!event->param.conn.private_data || 
+ 		    (event->param.conn.private_data_len < sizeof(*data->rem_dest))) {
+ 			fprintf(stderr, "%d:%s: bad private data ptr %p len %d\n",  
+-				pid, __func__, event->param.conn.private_data, 
++				(int)pid, __func__, event->param.conn.private_data, 
+ 				event->param.conn.private_data_len);
+ 			goto err1;
+ 		}
+@@ -240,7 +243,7 @@
+ 		}
+ 		if (sockfd < 0) {
+ 			fprintf(stderr, "%d:%s: Couldn't connect to %s:%d\n", 
+-				 pid, __func__, data->servername, data->port);
++				 (int)pid, __func__, data->servername, data->port);
+ 			goto err3;
+ 		}
+ 		ctx = pp_init_ctx(data->ib_dev, data);
+@@ -270,13 +273,13 @@
+ 	int parsed;
+ 	
+ 	if (!data->use_cma) {
+-		sprintf(msg, "%04x:%06x:%06x:%08x:%016Lx", data->my_dest.lid, 
++		sprintf(msg, "%04x:%06x:%06x:%08x:%016llx", data->my_dest.lid, 
+ 				data->my_dest.qpn, data->my_dest.psn,
+ 				data->my_dest.rkey, data->my_dest.vaddr);
+ 		if (write(data->sockfd, msg, sizeof msg) != sizeof msg) {
+ 			perror("client write");
+ 			fprintf(stderr, "%d:%s: Couldn't send local address\n", 
+-					pid, __func__);
++					(int)pid, __func__);
+ 			goto err;
+ 		}
+ 	
+@@ -283,7 +286,7 @@
+ 		if (read(data->sockfd, msg, sizeof msg) != sizeof msg) {
+ 			perror("client read");
+ 			fprintf(stderr, "%d:%s: Couldn't read remote address\n", 
+-					pid, __func__);
++					(int)pid, __func__);
+ 			goto err;
+ 		}
+ 	
+@@ -293,13 +296,13 @@
+ 		if (!data->rem_dest)
+ 			goto err;
+ 	
+-		parsed = sscanf(msg, "%x:%x:%x:%x:%Lx", &data->rem_dest->lid,
++		parsed = sscanf(msg, "%x:%x:%x:%x:%llx", &data->rem_dest->lid,
+ 				&data->rem_dest->qpn, &data->rem_dest->psn,
+ 				&data->rem_dest->rkey, &data->rem_dest->vaddr);
+ 	
+ 		if (parsed != 5) {
+ 			fprintf(stderr, "%d:%s: Couldn't parse line <%.*s>\n",
+-					pid, __func__, (int)sizeof msg, msg);
++					(int)pid, __func__, (int)sizeof msg, msg);
+ 			free(data->rem_dest);
+ 			goto err;
+ 		}
+@@ -330,7 +333,7 @@
+ 		goto err5;
+ 
+ 	if ( (n = getaddrinfo(NULL, service, &hints, &res)) < 0 ) {
+-		fprintf(stderr, "%d:%s: %s for port %d\n", pid, __func__, 
++		fprintf(stderr, "%d:%s: %s for port %d\n", (int)pid, __func__, 
+ 					gai_strerror(n), data->port);
+ 		goto err5;
+ 	}
+@@ -340,12 +343,12 @@
+ 		sin.sin_family = AF_INET;
+ 		sin.sin_port = htons(data->port);
+ 		if (rdma_bind_addr(data->cm_id, (struct sockaddr *)&sin)) {
+-			fprintf(stderr, "%d:%s: rdma_bind_addr failed\n", pid, __func__);
++			fprintf(stderr, "%d:%s: rdma_bind_addr failed\n", (int)pid, __func__);
+ 			goto err3;
+ 		}
+ 	
+ 		if (rdma_listen(data->cm_id, 0)) {
+-			fprintf(stderr, "%d:%s: rdma_listen failed\n", pid, __func__);
++			fprintf(stderr, "%d:%s: rdma_listen failed\n", (int)pid, __func__);
+ 			goto err3;
+ 		}
+ 	
+@@ -354,13 +357,13 @@
+ 
+ 		if (event->event != RDMA_CM_EVENT_CONNECT_REQUEST) {
+ 			fprintf(stderr, "%d:%s: bad event waiting for connect request %d\n", 
+-				pid, __func__, event->event);
++				(int)pid, __func__, event->event);
+ 			goto err2;
+ 		}
+ 	
+ 		if (!event->param.conn.private_data ||
+ 		    (event->param.conn.private_data_len < sizeof(*data->rem_dest))) {
+-			fprintf(stderr, "%d:%s: bad private data len %d\n", pid,
++			fprintf(stderr, "%d:%s: bad private data len %d\n", (int)pid,
+ 				__func__, event->param.conn.private_data_len);
+ 			goto err2;
+ 		}
+@@ -388,18 +391,18 @@
+ 		conn_param.private_data = &data->my_dest;
+ 		conn_param.private_data_len = sizeof(data->my_dest);
+ 		if (rdma_accept(child_cm_id, &conn_param)) {
+-			fprintf(stderr, "%d:%s: rdma_accept failed\n", pid, __func__);
++			fprintf(stderr, "%d:%s: rdma_accept failed\n", (int)pid, __func__);
+ 			goto err1;
+ 		}	
+ 		rdma_ack_cm_event(event);
+ 		if (rdma_get_cm_event(data->cm_channel, &event)) {
+-			fprintf(stderr, "%d:%s: rdma_get_cm_event error\n", pid, __func__);
++			fprintf(stderr, "%d:%s: rdma_get_cm_event error\n", (int)pid, __func__);
+ 			rdma_destroy_id(child_cm_id);
+ 			goto err3;
+ 		}
+ 		if (event->event != RDMA_CM_EVENT_ESTABLISHED) {
+ 			fprintf(stderr, "%d:%s: bad event waiting for established %d\n", 
+-				pid, __func__, event->event);
++				(int)pid, __func__, event->event);
+ 			goto err1;
+ 		}
+ 		rdma_ack_cm_event(event);	
+@@ -419,7 +422,7 @@
+ 		}
+ 	
+ 		if (sockfd < 0) {
+-			fprintf(stderr, "%d:%s: Couldn't listen to port %d\n", pid,
++			fprintf(stderr, "%d:%s: Couldn't listen to port %d\n", (int)pid,
+ 						__func__, data->port);
+ 			goto err4;
+ 		}
+@@ -428,7 +431,7 @@
+ 		connfd = accept(sockfd, NULL, 0);
+ 		if (connfd < 0) {
+ 			perror("server accept");
+-			fprintf(stderr, "%d:%s: accept() failed\n", pid, __func__);
++			fprintf(stderr, "%d:%s: accept() failed\n", (int)pid, __func__);
+ 			close(sockfd);
+ 			goto err4;
+ 		}
+@@ -468,7 +471,7 @@
+ 		if (n != sizeof msg) {
+ 			perror("server read");
+ 			fprintf(stderr, "%d:%s: %d/%d Couldn't read remote address\n", 
+-						pid, __func__, n, (int) sizeof msg);
++						(int)pid, __func__, n, (int) sizeof msg);
+ 			goto err;
+ 		}
+ 	
+@@ -478,23 +481,23 @@
+ 		if (!data->rem_dest)
+ 			goto err;
+ 	
+-		parsed = sscanf(msg, "%x:%x:%x:%x:%Lx", &data->rem_dest->lid,
++		parsed = sscanf(msg, "%x:%x:%x:%x:%llx", &data->rem_dest->lid,
+ 			      &data->rem_dest->qpn, &data->rem_dest->psn,
+ 			      &data->rem_dest->rkey, &data->rem_dest->vaddr);
+ 		if (parsed != 5) {
+-			fprintf(stderr, "%d:%s: Couldn't parse line <%.*s>\n", pid,
++			fprintf(stderr, "%d:%s: Couldn't parse line <%.*s>\n", (int)pid,
+ 						 __func__, (int)sizeof msg, msg);
+ 			free(data->rem_dest);
+ 			goto err;
+ 		}
+ 	
+-		sprintf(msg, "%04x:%06x:%06x:%08x:%016Lx", data->my_dest.lid,
++		sprintf(msg, "%04x:%06x:%06x:%08x:%016llx", data->my_dest.lid,
+ 					 data->my_dest.qpn, data->my_dest.psn,
+ 					 data->my_dest.rkey, data->my_dest.vaddr);
+ 		if (write(data->sockfd, msg, sizeof msg) != sizeof msg) {
+ 			perror("server write");
+ 			fprintf(stderr, "%d:%s: Couldn't send local address\n", 
+-					pid, __func__);
++					(int)pid, __func__);
+ 			free(data->rem_dest);
+ 			goto err;
+ 		}
+@@ -521,7 +524,7 @@
+ 	ctx->buf = memalign(page_size, ctx->size * 2);
+ 	if (!ctx->buf) {
+ 		fprintf(stderr, "%d:%s: Couldn't allocate work buf.\n",
+-					 pid, __func__);
++					 (int)pid, __func__);
+ 		return NULL;
+ 	}
+ 
+@@ -531,7 +534,7 @@
+ 		cm_id = (struct rdma_cm_id *)ptr;
+ 		ctx->context = cm_id->verbs;
+ 		if (!ctx->context) {
+-			fprintf(stderr, "%d:%s: Unbound cm_id!!\n", pid, 
++			fprintf(stderr, "%d:%s: Unbound cm_id!!\n", (int)pid, 
+ 							__func__);
+ 			return NULL;
+ 		}
+@@ -541,7 +544,7 @@
+ 		ctx->context = ibv_open_device(ib_dev);
+ 		if (!ctx->context) {
+ 			fprintf(stderr, "%d:%s: Couldn't get context for %s\n", 
+-				pid, __func__, ibv_get_device_name(ib_dev));
++				(int)pid, __func__, ibv_get_device_name(ib_dev));
+ 			return NULL;
+ 		}
+ 	}
+@@ -548,7 +551,7 @@
+ 
+ 	ctx->pd = ibv_alloc_pd(ctx->context);
+ 	if (!ctx->pd) {
+-		fprintf(stderr, "%d:%s: Couldn't allocate PD\n", pid, __func__);
++		fprintf(stderr, "%d:%s: Couldn't allocate PD\n", (int)pid, __func__);
+ 		return NULL;
+ 	}
+ 
+@@ -558,7 +561,7 @@
+ 	ctx->mr = ibv_reg_mr(ctx->pd, ctx->buf, ctx->size * 2,
+ 			     IBV_ACCESS_REMOTE_WRITE | IBV_ACCESS_LOCAL_WRITE);
+ 	if (!ctx->mr) {
+-		fprintf(stderr, "%d:%s: Couldn't allocate MR\n", pid, __func__);
++		fprintf(stderr, "%d:%s: Couldn't allocate MR\n", (int)pid, __func__);
+ 		return NULL;
+ 	}
+ 
+@@ -565,7 +568,7 @@
+ 
+ 	ctx->ch = ibv_create_comp_channel(ctx->context);
+ 	if (!ctx->ch) {
+-		fprintf(stderr, "%d:%s: Couldn't create comp channel\n", pid,
++		fprintf(stderr, "%d:%s: Couldn't create comp channel\n", (int)pid,
+ 								 __func__);
+ 		return NULL;
+ 	}
+@@ -572,7 +575,7 @@
+ 
+ 	ctx->rcq = ibv_create_cq(ctx->context, 1, NULL, NULL, 0);
+ 	if (!ctx->rcq) {
+-		fprintf(stderr, "%d:%s: Couldn't create recv CQ\n", pid,
++		fprintf(stderr, "%d:%s: Couldn't create recv CQ\n", (int)pid,
+ 								 __func__);
+ 		return NULL;
+ 	}
+@@ -579,7 +582,7 @@
+ 
+ 	ctx->scq = ibv_create_cq(ctx->context, ctx->tx_depth, ctx, ctx->ch, 0);
+ 	if (!ctx->scq) {
+-		fprintf(stderr, "%d:%s: Couldn't create send CQ\n", pid,
++		fprintf(stderr, "%d:%s: Couldn't create send CQ\n", (int)pid,
+ 								 __func__);
+ 		return NULL;
+ 	}
+@@ -602,7 +605,7 @@
+ 
+ 	if (data->use_cma) {
+ 		if (rdma_create_qp(cm_id, ctx->pd, &attr)) {
+-			fprintf(stderr, "%d:%s: Couldn't create QP\n", pid, __func__);
++			fprintf(stderr, "%d:%s: Couldn't create QP\n", (int)pid, __func__);
+ 			return NULL;
+ 		}
+ 		ctx->qp = cm_id->qp;
+@@ -611,7 +614,7 @@
+ 	} else {
+ 		ctx->qp = ibv_create_qp(ctx->pd, &attr);
+ 		if (!ctx->qp)  {
+-			fprintf(stderr, "%d:%s: Couldn't create QP\n", pid, __func__);
++			fprintf(stderr, "%d:%s: Couldn't create QP\n", (int)pid, __func__);
+ 			return NULL;
+ 		}
+ 		{
+@@ -628,7 +631,7 @@
+ 					IBV_QP_PORT               |
+ 					IBV_QP_ACCESS_FLAGS)) {
+ 				fprintf(stderr, "%d:%s: Failed to modify QP to INIT\n", 
+-						pid, __func__);
++						(int)pid, __func__);
+ 				return NULL;
+ 			}
+ 		}
+@@ -662,7 +665,7 @@
+ 			  IBV_QP_RQ_PSN             |
+ 			  IBV_QP_MAX_DEST_RD_ATOMIC |
+ 			  IBV_QP_MIN_RNR_TIMER)) {
+-		fprintf(stderr, "%d:%s: Failed to modify QP to RTR\n", pid, __func__);
++		fprintf(stderr, "%d:%s: Failed to modify QP to RTR\n", (int)pid, __func__);
+ 		return 1;
+ 	}
+ 
+@@ -679,7 +682,7 @@
+ 			  IBV_QP_RNR_RETRY          |
+ 			  IBV_QP_SQ_PSN             |
+ 			  IBV_QP_MAX_QP_RD_ATOMIC)) {
+-		fprintf(stderr, "%d:%s: Failed to modify QP to RTS\n", pid, __func__);
++		fprintf(stderr, "%d:%s: Failed to modify QP to RTS\n", (int)pid, __func__);
+ 		return 1;
+ 	}
+ 
+@@ -703,7 +706,7 @@
+         rc = ibv_post_recv(ctx->qp, &wr, &bad_wr);
+         if (rc) {
+                 perror("ibv_post_recv");
+-                fprintf(stderr, "%d:%s: ibv_post_recv failed %d\n", pid,
++                fprintf(stderr, "%d:%s: ibv_post_recv failed %d\n", (int)pid,
+ 				 __func__, rc);
+         }
+ }
+@@ -719,13 +722,13 @@
+ 	} while (ne == 0);
+ 
+ 	if (wc.status) 
+-		fprintf(stderr, "%d:%s: bad wc status %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc status %d\n", (int)pid, __func__,
+ 					 wc.status);
+ 	if (!(wc.opcode & IBV_WC_RECV))
+-		fprintf(stderr, "%d:%s: bad wc opcode %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc opcode %d\n", (int)pid, __func__,
+ 					 wc.opcode);
+ 	if (wc.wr_id != 0xdeadbeef) 
+-		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", (int)pid, __func__,
+ 					 (int)wc.wr_id);
+ }
+ 
+@@ -745,7 +748,7 @@
+ 	ctx->wr.send_flags = IBV_SEND_SIGNALED;
+ 	ctx->wr.next       = NULL;
+ 	if (ibv_post_send(ctx->qp, &ctx->wr, &bad_wr)) {
+-		fprintf(stderr, "%d:%s: ibv_post_send failed\n", pid, __func__);
++		fprintf(stderr, "%d:%s: ibv_post_send failed\n", (int)pid, __func__);
+ 		return;
+ 	}
+ 	do {
+@@ -754,13 +757,13 @@
+ 	} while (ne == 0);
+ 
+ 	if (wc.status) 
+-		fprintf(stderr, "%d:%s: bad wc status %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc status %d\n", (int)pid, __func__,
+ 						wc.status);
+ 	if (wc.opcode != IBV_WC_SEND)
+-		fprintf(stderr, "%d:%s: bad wc opcode %d\n", pid, __func__, 
++		fprintf(stderr, "%d:%s: bad wc opcode %d\n", (int)pid, __func__, 
+ 						wc.opcode);
+ 	if (wc.wr_id != 0xcafebabe) 
+-		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", (int)pid, __func__,
+ 						(int)wc.wr_id);
+ }
+ 
+@@ -775,13 +778,13 @@
+ 	} while (ne == 0);
+ 
+ 	if (wc.status) 
+-		fprintf(stderr, "%d:%s: bad wc status %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc status %d\n", (int)pid, __func__,
+ 					 wc.status);
+ 	if (!(wc.opcode & IBV_WC_RECV))
+-		fprintf(stderr, "%d:%s: bad wc opcode %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc opcode %d\n", (int)pid, __func__,
+ 					 wc.opcode);
+ 	if (wc.wr_id != 0xdeadbeef) 
+-		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", (int)pid, __func__,
+ 					 (int)wc.wr_id);
+ 	pp_post_recv(ctx);
+ }
+@@ -802,7 +805,7 @@
+ 	ctx->wr.send_flags = IBV_SEND_SIGNALED;
+ 	ctx->wr.next       = NULL;
+ 	if (ibv_post_send(ctx->qp, &ctx->wr, &bad_wr)) {
+-		fprintf(stderr, "%d:%s: ibv_post_send failed\n", pid, __func__);
++		fprintf(stderr, "%d:%s: ibv_post_send failed\n", (int)pid, __func__);
+ 		return;
+ 	}
+ 	do {
+@@ -811,13 +814,13 @@
+ 	} while (ne == 0);
+ 
+ 	if (wc.status) 
+-		fprintf(stderr, "%d:%s: bad wc status %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc status %d\n", (int)pid, __func__,
+ 					 wc.status);
+ 	if (wc.opcode != IBV_WC_SEND)
+-		fprintf(stderr, "%d:%s: bad wc opcode %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc opcode %d\n", (int)pid, __func__,
+ 					 wc.opcode);
+ 	if (wc.wr_id != 0xabbaabba) 
+-		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", (int)pid, __func__,
+ 					 (int)wc.wr_id);
+ }
+ 
+@@ -830,7 +833,7 @@
+                 rc = rdma_disconnect(data.cm_id);
+                 if (rc) {
+ 			perror("rdma_disconnect");
+-			fprintf(stderr, "%d:%s: rdma disconnect error\n", pid,
++			fprintf(stderr, "%d:%s: rdma disconnect error\n", (int)pid,
+ 								 __func__);
+ 			return;
+                 }
+@@ -839,7 +842,7 @@
+         rdma_get_cm_event(data.cm_channel, &event);
+         if (event->event != RDMA_CM_EVENT_DISCONNECTED)
+                 fprintf(stderr, "%d:%s: unexpected event during disconnect %d\n", 
+-			pid, __func__, event->event);
++			(int)pid, __func__, event->event);
+         rdma_ack_cm_event(event);
+         rdma_destroy_id(data.cm_id);
+         rdma_destroy_event_channel(data.cm_channel);
+@@ -891,17 +894,17 @@
+ 	tsize = duplex ? 2 : 1;
+ 	tsize = tsize * size;
+ 
+-	printf("\n%d: Bandwidth peak (#%d to #%d): %g MB/sec\n", pid, 
++	printf("\n%d: Bandwidth peak (#%d to #%d): %g MB/sec\n", (int)pid, 
+ 			 opt_posted, opt_completed,
+ 			 tsize * cycles_to_units / opt_delta / 0x100000);
+-	printf("%d: Bandwidth average: %g MB/sec\n", pid, 
++	printf("%d: Bandwidth average: %g MB/sec\n", (int)pid, 
+ 			 tsize * iters * cycles_to_units /
+ 			 (tcompleted[iters - 1] - tposted[0]) / 0x100000);
+ 
+-	printf("%d: Service Demand peak (#%d to #%d): %ld cycles/KB\n", pid, 
++	printf("%d: Service Demand peak (#%d to #%d): %ld cycles/KB\n", (int)pid, 
+ 			 opt_posted, opt_completed,
+ 			 (unsigned long)opt_delta * 1024 / tsize);
+-	printf("%d: Service Demand Avg  : %ld cycles/KB\n", pid, 
++	printf("%d: Service Demand Avg  : %ld cycles/KB\n", (int)pid, 
+ 			 (unsigned long)(tcompleted[iters - 1] - tposted[0]) *
+ 			 1024 / (tsize * iters));	
+ }
+@@ -1022,7 +1025,7 @@
+ 	pid = getpid();
+ 
+ 	printf("%d: | port=%d | ib_port=%d | size=%d | tx_depth=%d | iters=%d | duplex=%d | cma=%d |\n",
+-		 pid, data.port, data.ib_port, data.size, data.tx_depth,
++		 (int)pid, data.port, data.ib_port, data.size, data.tx_depth,
+ 		 iters, duplex, data.use_cma);
+ 		
+ 	/* Done with parameter parsing. Perform setup. */
+@@ -1035,12 +1038,12 @@
+ 		data.cm_channel = rdma_create_event_channel();
+ 		if (!data.cm_channel) {
+ 			fprintf(stderr, "%d:%s: rdma_create_event_channel failed\n",
+-							 pid, __func__);
++							 (int)pid, __func__);
+ 			return 1;
+ 		}
+ 		if (rdma_create_id(data.cm_channel, &data.cm_id, NULL, RDMA_PS_TCP)) {
+ 			fprintf(stderr, "%d:%s: rdma_create_id failed\n",
+-							 pid, __func__);
++							 (int)pid, __func__);
+ 			return 1;
+ 		}
+ 	
+@@ -1060,7 +1063,7 @@
+ 			data.ib_dev = dev_list[0];
+ 			if (!data.ib_dev) {
+ 				fprintf(stderr, "%d:%s: No IB devices found\n",
+-							 pid, __func__);
++							 (int)pid, __func__);
+ 				return 1;
+ 			}
+ 		} else {
+@@ -1069,7 +1072,7 @@
+ 					break;
+ 			if (!data.ib_dev) {
+ 				fprintf(stderr, "%d:%s: IB device %s not found\n",
+-						 pid, __func__, ib_devname);
++						 (int)pid, __func__, ib_devname);
+ 				return 1;
+ 			}
+ 		}
+@@ -1085,7 +1088,7 @@
+ 		data.my_dest.lid = pp_get_local_lid(ctx, data.ib_port);
+ 		if (!data.my_dest.lid) {
+ 			fprintf(stderr, "%d:%s: Local lid 0x0 detected. Is an SM running?\n",
+-						pid, __func__);
++						(int)pid, __func__);
+ 			return 1;
+ 		}
+ 		data.my_dest.qpn = ctx->qp->qp_num;
+@@ -1105,12 +1108,12 @@
+ 	}
+ 
+ 	printf("%d: Local address:  LID %#04x, QPN %#06x, PSN %#06x "
+-			"RKey %#08x VAddr %#016Lx\n", pid, 
++			"RKey %#08x VAddr %#016llx\n", (int)pid, 
+ 			data.my_dest.lid, data.my_dest.qpn, data.my_dest.psn,
+ 			data.my_dest.rkey, data.my_dest.vaddr);	
+ 
+ 	printf("%d: Remote address: LID %#04x, QPN %#06x, PSN %#06x, "
+-			"RKey %#08x VAddr %#016Lx\n\n", pid, 
++			"RKey %#08x VAddr %#016llx\n\n", (int)pid, 
+ 			data.rem_dest->lid, data.rem_dest->qpn, data.rem_dest->psn,
+ 			data.rem_dest->rkey, data.rem_dest->vaddr);
+ 
+@@ -1195,7 +1198,7 @@
+ 
+ 			if (ibv_post_send(qp, &ctx->wr, &bad_wr)) {
+ 				fprintf(stderr, "%d:%s: Couldn't post send: scnt=%d\n",
+-					pid, __func__, scnt);
++					(int)pid, __func__, scnt);
+ 				return 1;
+ 			}
+ 			++scnt;
+@@ -1211,17 +1214,17 @@
+ 			tcompleted[ccnt] = get_cycles();
+ 
+ 			if (ne < 0) {
+-				fprintf(stderr, "%d:%s: poll CQ failed %d\n", pid, 
++				fprintf(stderr, "%d:%s: poll CQ failed %d\n", (int)pid, 
+ 					__func__, ne);
+ 				return 1;
+ 			}
+ 			if (wc.status != IBV_WC_SUCCESS) {
+ 				fprintf(stderr, "%d:%s: Completion with error at %s:\n",
+-					pid, __func__, data.servername ? "client" : "server");
++					(int)pid, __func__, data.servername ? "client" : "server");
+ 				fprintf(stderr, "%d:%s: Failed status %d: wr_id %d\n",
+-					pid, __func__, wc.status, (int) wc.wr_id);
++					(int)pid, __func__, wc.status, (int) wc.wr_id);
+ 				fprintf(stderr, "%d:%s: scnt=%d, ccnt=%d\n",
+-					pid, __func__, scnt, ccnt);
++					(int)pid, __func__, scnt, ccnt);
+ 				return 1;
+ 			}
+ 			ccnt += 1;
+diff -r -u /tmp/perftest-1.2/rdma_lat.c perftest-1.2/rdma_lat.c
+--- /tmp/perftest-1.2/rdma_lat.c	Thu Feb 28 00:58:14 2008
++++ perftest-1.2/rdma_lat.c	Tue Sep 14 05:55:26 2010
+@@ -49,8 +49,11 @@
+ #include <malloc.h>
+ #include <getopt.h>
+ #include <arpa/inet.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#endif
+ #include <time.h>
++#include <inttypes.h>
+ 
+ #include <infiniband/verbs.h>
+ #include <rdma/rdma_cma.h>
+@@ -58,7 +61,13 @@
+ #include "get_clock.h"
+ 
+ #define PINGPONG_RDMA_WRID	3
++
++#if defined(__SVR4) && defined(__sun)
++/* Note: max is 372 for hermon on solaris but this may get fixed by IBTF v3 */
++#define MAX_INLINE 372
++#else
+ #define MAX_INLINE 400
++#endif
+ 
+ static int inline_size = MAX_INLINE;
+ static int page_size;
+@@ -153,7 +162,8 @@
+ }
+ 
+ #define KEY_MSG_SIZE (sizeof "0000:000000:000000:00000000:0000000000000000")
+-#define KEY_PRINT_FMT "%04x:%06x:%06x:%08x:%016Lx"
++#define KEY_PRINT_FMT "%04x:%06x:%06x:%08x:%016" "llx"
++#define KEY_SCAN_FMT "%04x:%06x:%06x:%08x:%016" "llx"
+ 
+ static int pp_write_keys(int sockfd, const struct pingpong_dest *my_dest)
+ {
+@@ -183,7 +193,7 @@
+ 		return -1;
+ 	}
+ 
+-	parsed = sscanf(msg, KEY_PRINT_FMT, &rem_dest->lid, &rem_dest->qpn,
++	parsed = sscanf(msg, KEY_SCAN_FMT, &rem_dest->lid, &rem_dest->qpn,
+ 			&rem_dest->psn, &rem_dest->rkey, &rem_dest->vaddr);
+ 
+ 	if (parsed != 5) {
+@@ -217,7 +227,7 @@
+ 
+ 	if (n < 0) {
+ 		fprintf(stderr, "%d:%s: %s for %s:%d\n", 
+-				pid, __func__, gai_strerror(n),
++				(int)pid, __func__, gai_strerror(n),
+ 				data->servername, data->port);
+ 		goto err4;
+ 	}
+@@ -229,7 +239,7 @@
+ 		if (rdma_resolve_addr(data->cm_id, NULL,
+ 					 (struct sockaddr *)&sin, 2000)) {
+ 			fprintf(stderr, "%d:%s: rdma_resolve_addr failed\n",
+-					 pid, __func__ );
++					 (int)pid, __func__ );
+ 			goto err2;
+ 		}
+ 	
+@@ -238,7 +248,7 @@
+ 
+ 		if (event->event != RDMA_CM_EVENT_ADDR_RESOLVED) {
+ 			fprintf(stderr, "%d:%s: unexpected CM event %d\n", 
+-				pid, __func__, event->event);
++				(int)pid, __func__, event->event);
+ 			goto err1;
+ 		}
+ 		rdma_ack_cm_event(event);
+@@ -245,7 +255,7 @@
+ 	
+ 		if (rdma_resolve_route(data->cm_id, 2000)) {
+ 			fprintf(stderr, "%d:%s: rdma_resolve_route failed\n", 
+-						pid, __func__);
++						(int)pid, __func__);
+ 			goto err2;
+ 		}
+ 	
+@@ -254,7 +264,7 @@
+ 
+ 		if (event->event != RDMA_CM_EVENT_ROUTE_RESOLVED) {
+ 			fprintf(stderr, "%d:%s: unexpected CM event %d\n", 
+-					pid, __func__, event->event);
++					(int)pid, __func__, event->event);
+ 			rdma_ack_cm_event(event);
+ 			goto err1;
+ 		}
+@@ -261,7 +271,7 @@
+ 		rdma_ack_cm_event(event);
+ 		ctx = pp_init_ctx(data->cm_id, data);
+ 		if (!ctx) {
+-			fprintf(stderr, "%d:%s: pp_init_ctx failed\n", pid, __func__);
++			fprintf(stderr, "%d:%s: pp_init_ctx failed\n", (int)pid, __func__);
+ 			goto err2;
+ 		}
+ 		data->my_dest.psn = lrand48() & 0xffffff;
+@@ -277,7 +287,7 @@
+ 		conn_param.private_data_len = sizeof(data->my_dest);
+ 
+ 		if (rdma_connect(data->cm_id, &conn_param)) {
+-			fprintf(stderr, "%d:%s: rdma_connect failure\n", pid, __func__);
++			fprintf(stderr, "%d:%s: rdma_connect failure\n", (int)pid, __func__);
+ 			goto err2;
+ 		}
+ 	
+@@ -286,13 +296,13 @@
+ 	
+ 		if (event->event != RDMA_CM_EVENT_ESTABLISHED) {
+ 			fprintf(stderr, "%d:%s: unexpected CM event %d\n", 
+- 					pid, __func__, event->event);
++ 					(int)pid, __func__, event->event);
+ 			goto err1;
+ 		}
+ 		if (!event->param.conn.private_data || 
+ 		    (event->param.conn.private_data_len < sizeof(*data->rem_dest))) {
+ 			fprintf(stderr, "%d:%s: bad private data ptr %p len %d\n",  
+-				pid, __func__, event->param.conn.private_data, 
++				(int)pid, __func__, event->param.conn.private_data, 
+ 				event->param.conn.private_data_len);
+ 			goto err1;
+ 		}
+@@ -315,7 +325,7 @@
+ 		}
+ 		if (sockfd < 0) {
+ 			fprintf(stderr, "%d:%s: Couldn't connect to %s:%d\n", 
+-				 pid, __func__, data->servername, data->port);
++				 (int)pid, __func__, data->servername, data->port);
+ 			goto err3;
+ 		}
+ 		ctx = pp_init_ctx(data->ib_dev, data);
+@@ -376,7 +386,7 @@
+ 		goto err5;
+ 
+ 	if ( (n = getaddrinfo(NULL, service, &hints, &res)) < 0 ) {
+-		fprintf(stderr, "%d:%s: %s for port %d\n", pid, __func__, 
++		fprintf(stderr, "%d:%s: %s for port %d\n", (int)pid, __func__, 
+ 					gai_strerror(n), data->port);
+ 		goto err5;
+ 	}
+@@ -386,12 +396,12 @@
+ 		sin.sin_family = AF_INET;
+ 		sin.sin_port = htons(data->port);
+ 		if (rdma_bind_addr(data->cm_id, (struct sockaddr *)&sin)) {
+-			fprintf(stderr, "%d:%s: rdma_bind_addr failed\n", pid, __func__);
++			fprintf(stderr, "%d:%s: rdma_bind_addr failed\n", (int)pid, __func__);
+ 			goto err3;
+ 		}
+ 	
+ 		if (rdma_listen(data->cm_id, 0)) {
+-			fprintf(stderr, "%d:%s: rdma_listen failed\n", pid, __func__);
++			fprintf(stderr, "%d:%s: rdma_listen failed\n", (int)pid, __func__);
+ 			goto err3;
+ 		}
+ 	
+@@ -400,13 +410,13 @@
+ 
+ 		if (event->event != RDMA_CM_EVENT_CONNECT_REQUEST) {
+ 			fprintf(stderr, "%d:%s: bad event waiting for connect request %d\n", 
+-				pid, __func__, event->event);
++				(int)pid, __func__, event->event);
+ 			goto err2;
+ 		}
+ 	
+ 		if (!event->param.conn.private_data ||
+ 		    (event->param.conn.private_data_len < sizeof(*data->rem_dest))) {
+-			fprintf(stderr, "%d:%s: bad private data len %d\n", pid,
++			fprintf(stderr, "%d:%s: bad private data len %d\n", (int)pid,
+ 				__func__, event->param.conn.private_data_len);
+ 			goto err2;
+ 		}
+@@ -434,18 +444,18 @@
+ 		conn_param.private_data = &data->my_dest;
+ 		conn_param.private_data_len = sizeof(data->my_dest);
+ 		if (rdma_accept(child_cm_id, &conn_param)) {
+-			fprintf(stderr, "%d:%s: rdma_accept failed\n", pid, __func__);
++			fprintf(stderr, "%d:%s: rdma_accept failed\n", (int)pid, __func__);
+ 			goto err1;
+ 		}	
+ 		rdma_ack_cm_event(event);
+ 		if (rdma_get_cm_event(data->cm_channel, &event)) {
+-			fprintf(stderr, "%d:%s: rdma_get_cm_event error\n", pid, __func__);
++			fprintf(stderr, "%d:%s: rdma_get_cm_event error\n", (int)pid, __func__);
+ 			rdma_destroy_id(child_cm_id);
+ 			goto err3;
+ 		}
+ 		if (event->event != RDMA_CM_EVENT_ESTABLISHED) {
+ 			fprintf(stderr, "%d:%s: bad event waiting for established %d\n", 
+-				pid, __func__, event->event);
++				(int)pid, __func__, event->event);
+ 			goto err1;
+ 		}
+ 		rdma_ack_cm_event(event);	
+@@ -465,7 +475,7 @@
+ 		}
+ 	
+ 		if (sockfd < 0) {
+-			fprintf(stderr, "%d:%s: Couldn't listen to port %d\n", pid,
++			fprintf(stderr, "%d:%s: Couldn't listen to port %d\n", (int)pid,
+ 						__func__, data->port);
+ 			goto err4;
+ 		}
+@@ -474,7 +484,7 @@
+ 		connfd = accept(sockfd, NULL, 0);
+ 		if (connfd < 0) {
+ 			perror("server accept");
+-			fprintf(stderr, "%d:%s: accept() failed\n", pid, __func__);
++			fprintf(stderr, "%d:%s: accept() failed\n", (int)pid, __func__);
+ 			close(sockfd);
+ 			goto err4;
+ 		}
+@@ -534,7 +544,7 @@
+ 	ctx->buf = memalign(page_size, ctx->size * 2);
+ 	if (!ctx->buf) {
+ 		fprintf(stderr, "%d:%s: Couldn't allocate work buf.\n",
+-					 pid, __func__);
++					 (int)pid, __func__);
+ 		return NULL;
+ 	}
+ 
+@@ -548,7 +558,7 @@
+ 		cm_id = (struct rdma_cm_id *)ptr;
+ 		ctx->context = cm_id->verbs;
+ 		if (!ctx->context) {
+-			fprintf(stderr, "%d:%s: Unbound cm_id!!\n", pid, 
++			fprintf(stderr, "%d:%s: Unbound cm_id!!\n", (int)pid, 
+ 							__func__);
+ 			return NULL;
+ 		}
+@@ -558,7 +568,7 @@
+ 		ctx->context = ibv_open_device(ib_dev);
+ 		if (!ctx->context) {
+ 			fprintf(stderr, "%d:%s: Couldn't get context for %s\n", 
+-				pid, __func__, ibv_get_device_name(ib_dev));
++				(int)pid, __func__, ibv_get_device_name(ib_dev));
+ 			return NULL;
+ 		}
+ 	}
+@@ -565,7 +575,7 @@
+ 
+ 	ctx->pd = ibv_alloc_pd(ctx->context);
+ 	if (!ctx->pd) {
+-		fprintf(stderr, "%d:%s: Couldn't allocate PD\n", pid, __func__);
++		fprintf(stderr, "%d:%s: Couldn't allocate PD\n", (int)pid, __func__);
+ 		return NULL;
+ 	}
+ 
+@@ -575,13 +585,13 @@
+ 	ctx->mr = ibv_reg_mr(ctx->pd, ctx->buf, ctx->size * 2,
+ 			     IBV_ACCESS_REMOTE_WRITE | IBV_ACCESS_LOCAL_WRITE);
+ 	if (!ctx->mr) {
+-		fprintf(stderr, "%d:%s: Couldn't allocate MR\n", pid, __func__);
++		fprintf(stderr, "%d:%s: Couldn't allocate MR\n", (int)pid, __func__);
+ 		return NULL;
+ 	}
+ 
+ 	ctx->rcq = ibv_create_cq(ctx->context, 1, NULL, NULL, 0);
+ 	if (!ctx->rcq) {
+-		fprintf(stderr, "%d:%s: Couldn't create recv CQ\n", pid,
++		fprintf(stderr, "%d:%s: Couldn't create recv CQ\n", (int)pid,
+ 								 __func__);
+ 		return NULL;
+ 	}
+@@ -588,7 +598,7 @@
+ 
+ 	ctx->scq = ibv_create_cq(ctx->context, ctx->tx_depth, ctx, NULL, 0);
+ 	if (!ctx->scq) {
+-		fprintf(stderr, "%d:%s: Couldn't create send CQ\n", pid,
++		fprintf(stderr, "%d:%s: Couldn't create send CQ\n", (int)pid,
+ 								 __func__);
+ 		return NULL;
+ 	}
+@@ -611,7 +621,7 @@
+ 
+ 	if (data->use_cma) {
+ 		if (rdma_create_qp(cm_id, ctx->pd, &attr)) {
+-			fprintf(stderr, "%d:%s: Couldn't create QP\n", pid, __func__);
++			fprintf(stderr, "%d:%s: Couldn't create QP\n", (int)pid, __func__);
+ 			return NULL;
+ 		}
+ 		ctx->qp = cm_id->qp;
+@@ -619,7 +629,7 @@
+ 	} else {
+ 		ctx->qp = ibv_create_qp(ctx->pd, &attr);
+ 		if (!ctx->qp)  {
+-			fprintf(stderr, "%d:%s: Couldn't create QP\n", pid, __func__);
++			fprintf(stderr, "%d:%s: Couldn't create QP\n", (int)pid, __func__);
+ 			return NULL;
+ 		}
+ 		{
+@@ -636,7 +646,7 @@
+ 					IBV_QP_PORT               |
+ 					IBV_QP_ACCESS_FLAGS)) {
+ 				fprintf(stderr, "%d:%s: Failed to modify QP to INIT\n", 
+-						pid, __func__);
++						(int)pid, __func__);
+ 				return NULL;
+ 			}
+ 		}
+@@ -692,10 +702,10 @@
+ 
+ 	return 0;
+ }
++#define ADDR_FMT "%8s address: LID %#04x QPN %#06x PSN %#06x RKey %#08x VAddr %#016" "llx" "\n"
+ 
+ static int pp_open_port(struct pingpong_context *ctx, struct pp_data *data )
+ {
+-	char addr_fmt[] = "%8s address: LID %#04x QPN %#06x PSN %#06x RKey %#08x VAddr %#016Lx\n";
+ 
+ 	/* Create connection between client and server.
+ 	 * We do it by exchanging data over a TCP socket connection. */
+@@ -710,7 +720,7 @@
+ 	data->my_dest.rkey = ctx->mr->rkey;
+ 	data->my_dest.vaddr = (uintptr_t)ctx->buf + ctx->size;
+ 
+-	printf(addr_fmt, "local", data->my_dest.lid, data->my_dest.qpn, data->my_dest.psn,
++	printf(ADDR_FMT, "local", data->my_dest.lid, data->my_dest.qpn, data->my_dest.psn,
+ 			data->my_dest.rkey, data->my_dest.vaddr);
+ 
+ 	if (data->servername) {
+@@ -721,7 +731,7 @@
+ 			return 1;
+ 	}
+ 
+-	printf(addr_fmt, "remote", data->rem_dest->lid, data->rem_dest->qpn,
++	printf(ADDR_FMT, "remote", data->rem_dest->lid, data->rem_dest->qpn,
+ 			data->rem_dest->psn, data->rem_dest->rkey, 
+ 			data->rem_dest->vaddr);
+ 
+@@ -766,7 +776,7 @@
+         rc = ibv_post_recv(ctx->qp, &wr, &bad_wr);
+         if (rc) {
+                 perror("ibv_post_recv");
+-                fprintf(stderr, "%d:%s: ibv_post_recv failed %d\n", pid,
++                fprintf(stderr, "%d:%s: ibv_post_recv failed %d\n", (int)pid,
+ 				 __func__, rc);
+         }
+ }
+@@ -782,13 +792,13 @@
+ 	} while (ne == 0);
+ 
+ 	if (wc.status) 
+-		fprintf(stderr, "%d:%s: bad wc status %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc status %d\n", (int)pid, __func__,
+ 					 wc.status);
+ 	if (!(wc.opcode & IBV_WC_RECV))
+-		fprintf(stderr, "%d:%s: bad wc opcode %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc opcode %d\n", (int)pid, __func__,
+ 					 wc.opcode);
+ 	if (wc.wr_id != 0xdeadbeef) 
+-		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", (int)pid, __func__,
+ 					 (int)wc.wr_id);
+ }
+ 
+@@ -808,7 +818,7 @@
+ 	ctx->wr.send_flags = IBV_SEND_SIGNALED;
+ 	ctx->wr.next       = NULL;
+ 	if (ibv_post_send(ctx->qp, &ctx->wr, &bad_wr)) {
+-		fprintf(stderr, "%d:%s: ibv_post_send failed\n", pid, __func__);
++		fprintf(stderr, "%d:%s: ibv_post_send failed\n", (int)pid, __func__);
+ 		return;
+ 	}
+ 	do {
+@@ -817,13 +827,13 @@
+ 	} while (ne == 0);
+ 
+ 	if (wc.status) 
+-		fprintf(stderr, "%d:%s: bad wc status %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc status %d\n", (int)pid, __func__,
+ 						wc.status);
+ 	if (wc.opcode != IBV_WC_SEND)
+-		fprintf(stderr, "%d:%s: bad wc opcode %d\n", pid, __func__, 
++		fprintf(stderr, "%d:%s: bad wc opcode %d\n", (int)pid, __func__, 
+ 						wc.opcode);
+ 	if (wc.wr_id != 0xcafebabe) 
+-		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", (int)pid, __func__,
+ 						(int)wc.wr_id);
+ }
+ 
+@@ -838,13 +848,13 @@
+ 	} while (ne == 0);
+ 
+ 	if (wc.status) 
+-		fprintf(stderr, "%d:%s: bad wc status %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc status %d\n", (int)pid, __func__,
+ 					 wc.status);
+ 	if (!(wc.opcode & IBV_WC_RECV))
+-		fprintf(stderr, "%d:%s: bad wc opcode %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc opcode %d\n", (int)pid, __func__,
+ 					 wc.opcode);
+ 	if (wc.wr_id != 0xdeadbeef) 
+-		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", (int)pid, __func__,
+ 					 (int)wc.wr_id);
+ 	pp_post_recv(ctx);
+ }
+@@ -865,7 +875,7 @@
+ 	ctx->wr.send_flags = IBV_SEND_SIGNALED;
+ 	ctx->wr.next       = NULL;
+ 	if (ibv_post_send(ctx->qp, &ctx->wr, &bad_wr)) {
+-		fprintf(stderr, "%d:%s: ibv_post_send failed\n", pid, __func__);
++		fprintf(stderr, "%d:%s: ibv_post_send failed\n", (int)pid, __func__);
+ 		return;
+ 	}
+ 	do {
+@@ -874,13 +884,13 @@
+ 	} while (ne == 0);
+ 
+ 	if (wc.status) 
+-		fprintf(stderr, "%d:%s: bad wc status %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc status %d\n", (int)pid, __func__,
+ 					 wc.status);
+ 	if (wc.opcode != IBV_WC_SEND)
+-		fprintf(stderr, "%d:%s: bad wc opcode %d\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc opcode %d\n", (int)pid, __func__,
+ 					 wc.opcode);
+ 	if (wc.wr_id != 0xabbaabba) 
+-		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", pid, __func__,
++		fprintf(stderr, "%d:%s: bad wc wr_id 0x%x\n", (int)pid, __func__,
+ 					 (int)wc.wr_id);
+ }
+ 
+@@ -893,7 +903,7 @@
+                 rc = rdma_disconnect(data.cm_id);
+                 if (rc) {
+ 			perror("rdma_disconnect");
+-			fprintf(stderr, "%d:%s: rdma disconnect error\n", pid,
++			fprintf(stderr, "%d:%s: rdma disconnect error\n", (int)pid,
+ 								 __func__);
+ 			return;
+                 }
+@@ -902,7 +912,7 @@
+         rdma_get_cm_event(data.cm_channel, &event);
+         if (event->event != RDMA_CM_EVENT_DISCONNECTED)
+                 fprintf(stderr, "%d:%s: unexpected event during disconnect %d\n", 
+-			pid, __func__, event->event);
++			(int)pid, __func__, event->event);
+         rdma_ack_cm_event(event);
+         rdma_destroy_id(data.cm_id);
+         rdma_destroy_event_channel(data.cm_channel);
+@@ -1140,12 +1150,12 @@
+ 		data.cm_channel = rdma_create_event_channel();
+ 		if (!data.cm_channel) {
+ 			fprintf(stderr, "%d:%s: rdma_create_event_channel failed\n",
+-							 pid, __func__);
++							 (int)pid, __func__);
+ 			return 1;
+ 		}
+ 		if (rdma_create_id(data.cm_channel, &data.cm_id, NULL, RDMA_PS_TCP)) {
+ 			fprintf(stderr, "%d:%s: rdma_create_id failed\n",
+-							 pid, __func__);
++							 (int)pid, __func__);
+ 			return 1;
+ 		}
+ 	
+@@ -1160,12 +1170,12 @@
+ 		}
+ 
+ 		printf("%d: Local address:  LID %#04x, QPN %#06x, PSN %#06x "
+-                        "RKey %#08x VAddr %#016Lx\n", pid,
++                        "RKey %#08x VAddr %#016llx\n", (int)pid,
+                         data.my_dest.lid, data.my_dest.qpn, data.my_dest.psn,
+                         data.my_dest.rkey, data.my_dest.vaddr);
+ 
+         	printf("%d: Remote address: LID %#04x, QPN %#06x, PSN %#06x, "
+-                        "RKey %#08x VAddr %#016Lx\n\n", pid,
++                        "RKey %#08x VAddr %#016llx\n\n", (int)pid,
+                         data.rem_dest->lid, data.rem_dest->qpn, data.rem_dest->psn,
+                         data.rem_dest->rkey, data.rem_dest->vaddr);
+ 
+diff -r -u /tmp/perftest-1.2/read_bw.c perftest-1.2/read_bw.c
+--- /tmp/perftest-1.2/read_bw.c	Thu Feb 28 00:58:14 2008
++++ perftest-1.2/read_bw.c	Tue Sep 14 06:17:10 2010
+@@ -48,9 +48,11 @@
+ #include <malloc.h>
+ #include <getopt.h>
+ #include <arpa/inet.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#endif
+ #include <time.h>
+-
++#include <inttypes.h>
+ #include <infiniband/verbs.h>
+ 
+ #include "get_clock.h"
+@@ -153,7 +155,7 @@
+ 	char msg[sizeof "0000:000000:000000:00000000:0000000000000000"];
+ 	int parsed;
+ 
+-	sprintf(msg, "%04x:%06x:%06x:%08x:%016Lx", my_dest->lid, my_dest->qpn,
++	sprintf(msg, "%04x:%06x:%06x:%08x:%016llx", my_dest->lid, my_dest->qpn,
+ 		my_dest->psn,my_dest->rkey,my_dest->vaddr);
+ 	if (write(sockfd, msg, sizeof msg) != sizeof msg) {
+ 		perror("client write");
+@@ -171,7 +173,7 @@
+ 	if (!rem_dest)
+ 		goto out;
+ 
+-	parsed = sscanf(msg, "%x:%x:%x:%x:%Lx", &rem_dest->lid, &rem_dest->qpn,
++	parsed = sscanf(msg, "%x:%x:%x:%x:%llx", &rem_dest->lid, &rem_dest->qpn,
+ 			&rem_dest->psn,&rem_dest->rkey,&rem_dest->vaddr);
+ 
+ 	if (parsed != 5) {
+@@ -259,7 +261,7 @@
+ 	if (!rem_dest)
+ 		goto out;
+ 
+-	parsed = sscanf(msg, "%x:%x:%x:%x:%Lx", &rem_dest->lid, &rem_dest->qpn,
++	parsed = sscanf(msg, "%x:%x:%x:%x:%llx", &rem_dest->lid, &rem_dest->qpn,
+ 			&rem_dest->psn, &rem_dest->rkey, &rem_dest->vaddr);
+ 	if (parsed != 5) {
+ 		fprintf(stderr, "Couldn't parse line <%.*s>\n",(int)sizeof msg,
+@@ -269,7 +271,7 @@
+ 		goto out;
+ 	}
+ 
+-	sprintf(msg, "%04x:%06x:%06x:%08x:%016Lx", my_dest->lid, my_dest->qpn,
++	sprintf(msg, "%04x:%06x:%06x:%08x:%016llx", my_dest->lid, my_dest->qpn,
+ 		my_dest->psn, my_dest->rkey, my_dest->vaddr);
+ 	if (write(connfd, msg, sizeof msg) != sizeof msg) {
+ 		perror("server write");
+@@ -758,7 +760,7 @@
+ 	my_dest.vaddr = (uintptr_t)ctx->buf + ctx->size;
+ 
+ 	printf("  local address:  LID %#04x, QPN %#06x, PSN %#06x "
+-	       "RKey %#08x VAddr %#016Lx\n",
++	       "RKey %#08x VAddr %#016llx\n",
+ 	       my_dest.lid, my_dest.qpn, my_dest.psn,
+ 	       my_dest.rkey, my_dest.vaddr);
+ 
+@@ -778,7 +780,7 @@
+ 		return 1;
+ 
+ 	printf("  remote address: LID %#04x, QPN %#06x, PSN %#06x, "
+-	       "RKey %#08x VAddr %#016Lx\n",
++	       "RKey %#08x VAddr %#016llx\n",
+ 	       rem_dest->lid, rem_dest->qpn, rem_dest->psn,
+ 	       rem_dest->rkey, rem_dest->vaddr);
+ 
+diff -r -u /tmp/perftest-1.2/read_lat.c perftest-1.2/read_lat.c
+--- /tmp/perftest-1.2/read_lat.c	Thu Feb 28 00:58:14 2008
++++ perftest-1.2/read_lat.c	Tue Sep 14 05:55:25 2010
+@@ -49,8 +49,11 @@
+ #include <malloc.h>
+ #include <getopt.h>
+ #include <arpa/inet.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#endif
+ #include <time.h>
++#include <inttypes.h>
+ 
+ #include <infiniband/verbs.h>
+ 
+@@ -136,7 +139,7 @@
+ }
+ 
+ #define KEY_MSG_SIZE (sizeof "0000:000000:000000:00000000:0000000000000000")
+-#define KEY_PRINT_FMT "%04x:%06x:%06x:%08x:%016Lx"
++#define KEY_PRINT_FMT "%04x:%06x:%06x:%08x:%016llx"
+ 
+ static int pp_write_keys(int sockfd, const struct pingpong_dest *my_dest)
+ {
+@@ -483,12 +486,12 @@
+ 	}
+ 	return 0;
+ }
++#define ADDR_FMT	"%8s address: LID %#04x QPN %#06x PSN %#06x RKey %#08x VAddr %#016llx\n"
+ 
+ static int pp_open_port(struct pingpong_context *ctx, const char * servername,
+ 			int ib_port, int port, struct pingpong_dest *rem_dest,
+ 			struct user_parameters *user_parm)
+ {
+-	char addr_fmt[] = "%8s address: LID %#04x QPN %#06x PSN %#06x RKey %#08x VAddr %#016Lx\n";
+ 	int                   sockfd;
+ 	int                   rc;
+ 
+@@ -506,7 +509,7 @@
+ 	my_dest.rkey = ctx->mr->rkey;
+ 	my_dest.vaddr = (uintptr_t)ctx->buf + ctx->size;
+ 
+-	printf(addr_fmt, "local", my_dest.lid, my_dest.qpn, my_dest.psn,
++	printf(ADDR_FMT, "local", my_dest.lid, my_dest.qpn, my_dest.psn,
+ 	       my_dest.rkey, my_dest.vaddr);
+ 
+ 	sockfd = servername ? pp_client_connect(servername, port) :
+@@ -523,7 +526,7 @@
+ 	if (rc)
+ 		return rc;
+ 
+-	printf(addr_fmt, "remote", rem_dest->lid, rem_dest->qpn, rem_dest->psn,
++	printf(ADDR_FMT, "remote", rem_dest->lid, rem_dest->qpn, rem_dest->psn,
+ 	       rem_dest->rkey, rem_dest->vaddr);
+ 
+ 	if ((rc = pp_connect_ctx(ctx, ib_port, my_dest.psn, rem_dest,user_parm)))
+diff -r -u /tmp/perftest-1.2/send_bw.c perftest-1.2/send_bw.c
+--- /tmp/perftest-1.2/send_bw.c	Thu Feb 28 00:58:14 2008
++++ perftest-1.2/send_bw.c	Tue Sep 14 06:17:08 2010
+@@ -49,7 +49,9 @@
+ #include <malloc.h>
+ #include <getopt.h>
+ #include <arpa/inet.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#endif
+ #include <time.h>
+ #include <errno.h>
+ 
+@@ -64,7 +66,14 @@
+ #define UD 3
+ #define VERSION 1.1
+ #define SIGNAL 1
++
++#if defined(__SVR4) && defined(__sun)
++/* Note: max is 372 for hermon on solaris but this may get fixed by IBTF v3 */
++#define MAX_INLINE 372
++#else
+ #define MAX_INLINE 400
++#endif
++
+ #define ALL 1
+ #define MCG_LID 0xc001
+ #define MCG_GID {255,1,0,0,0,2,201,133,0,0,0,0,0,0,0,0}
+@@ -776,6 +785,7 @@
+ 		}
+ 	}
+ 
++	fprintf(stderr, "scnt=%d, ccnt=%d rcnt=%d\n", scnt, ccnt, rcnt);
+ 	return(0);
+ }
+ int run_iter_uni(struct pingpong_context *ctx, struct user_parameters *user_param,
+@@ -911,6 +921,7 @@
+ 			}
+ 		}
+ 	}
++	fprintf(stderr, "scnt=%d, ccnt=%d rcnt=%d\n", scnt, ccnt, rcnt);
+ 	return 0;
+ }
+ 
+diff -r -u /tmp/perftest-1.2/send_lat.c perftest-1.2/send_lat.c
+--- /tmp/perftest-1.2/send_lat.c	Thu Feb 28 00:58:14 2008
++++ perftest-1.2/send_lat.c	Tue Sep 14 06:17:08 2010
+@@ -49,7 +49,9 @@
+ #include <malloc.h>
+ #include <getopt.h>
+ #include <arpa/inet.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#endif
+ #include <time.h>
+ 
+ #include <infiniband/verbs.h>
+@@ -63,7 +65,14 @@
+ #define UD 3
+ #define VERSION 1.1
+ #define SIGNAL 1
++
++#if defined(__SVR4) && defined(__sun)
++/* Note: max is 372 for hermon on solaris but this may get fixed by IBTF v3 */
++#define MAX_INLINE 372
++#else
+ #define MAX_INLINE 400
++#endif
++
+ #define MCG_LID 0xc001
+ #define MCG_GID {255,1,0,0,0,2,201,133,0,0,0,0,0,0,0,0}
+ static int page_size;
+@@ -624,10 +633,11 @@
+ 	return 0;
+ }
+ 
++#define ADDR_FMT	"%8s address: LID %#04x QPN %#06x PSN %#06x\n"
++
+ static int pp_open_port(struct pingpong_context *ctx, const char * servername,
+ 			int ib_port, int port, struct pingpong_dest *rem_dest,struct user_parameters *user_parm)
+ {
+-	char addr_fmt[] = "%8s address: LID %#04x QPN %#06x PSN %#06x\n";
+ 	struct pingpong_dest  my_dest;
+ 	int                   sockfd;
+ 	int                   rc;
+@@ -646,7 +656,7 @@
+ 	my_dest.rkey = ctx->mr->rkey;
+ 	my_dest.vaddr = (uintptr_t)ctx->buf + ctx->size;
+ 
+-	printf(addr_fmt, "local", my_dest.lid, my_dest.qpn, my_dest.psn);
++	printf(ADDR_FMT, "local", my_dest.lid, my_dest.qpn, my_dest.psn);
+ 
+ 	sockfd = servername ? pp_client_connect(servername, port) :
+ 		pp_server_connect(port);
+@@ -662,7 +672,7 @@
+ 	if (rc)
+ 		return rc;
+ 
+-	printf(addr_fmt, "remote", rem_dest->lid, rem_dest->qpn, rem_dest->psn,
++	printf(ADDR_FMT "%08x:%016llx", "remote", rem_dest->lid, rem_dest->qpn, rem_dest->psn,
+ 	       rem_dest->rkey, rem_dest->vaddr);
+ 
+ 	if ((rc = pp_connect_ctx(ctx, ib_port, my_dest.psn, rem_dest,user_parm)))
+diff -r -u /tmp/perftest-1.2/write_bw.c perftest-1.2/write_bw.c
+--- /tmp/perftest-1.2/write_bw.c	Thu Feb 28 00:58:14 2008
++++ perftest-1.2/write_bw.c	Tue Sep 14 06:17:09 2010
+@@ -49,9 +49,11 @@
+ #include <malloc.h>
+ #include <getopt.h>
+ #include <arpa/inet.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#endif
+ #include <time.h>
+-
++#include <inttypes.h>
+ #include <infiniband/verbs.h>
+ 
+ #include "get_clock.h"
+@@ -59,7 +61,14 @@
+ #define PINGPONG_RDMA_WRID	3
+ #define VERSION 2.0
+ #define ALL 1
++
++#if defined(__SVR4) && defined(__sun)
++/* Note: max is 372 for hermon on solaris but this may get fixed by IBTF v3 */
++#define MAX_INLINE 372
++#else
+ #define MAX_INLINE 400
++#endif
++
+ #define RC 0
+ #define UC 1
+ 
+@@ -163,7 +172,7 @@
+ 	char msg[sizeof "0000:000000:000000:00000000:0000000000000000"];
+ 	int parsed;
+ 
+-	sprintf(msg, "%04x:%06x:%06x:%08x:%016Lx", my_dest->lid, my_dest->qpn,
++	sprintf(msg, "%04x:%06x:%06x:%08x:%016llx", my_dest->lid, my_dest->qpn,
+ 		my_dest->psn,my_dest->rkey,my_dest->vaddr);
+ 	if (write(sockfd, msg, sizeof msg) != sizeof msg) {
+ 		perror("client write");
+@@ -181,7 +190,7 @@
+ 	if (!rem_dest)
+ 		goto out;
+ 
+-	parsed = sscanf(msg, "%x:%x:%x:%x:%Lx", &rem_dest->lid, &rem_dest->qpn,
++	parsed = sscanf(msg, "%x:%x:%x:%x:%llx", &rem_dest->lid, &rem_dest->qpn,
+ 			&rem_dest->psn,&rem_dest->rkey,&rem_dest->vaddr);
+ 
+ 	if (parsed != 5) {
+@@ -269,7 +278,7 @@
+ 	if (!rem_dest)
+ 		goto out;
+ 
+-	parsed = sscanf(msg, "%x:%x:%x:%x:%Lx", &rem_dest->lid, &rem_dest->qpn,
++	parsed = sscanf(msg, "%x:%x:%x:%x:%llx", &rem_dest->lid, &rem_dest->qpn,
+ 			&rem_dest->psn, &rem_dest->rkey, &rem_dest->vaddr);
+ 	if (parsed != 5) {
+ 		fprintf(stderr, "Couldn't parse line <%.*s>\n",(int)sizeof msg,
+@@ -279,7 +288,7 @@
+ 		goto out;
+ 	}
+ 
+-	sprintf(msg, "%04x:%06x:%06x:%08x:%016Lx", my_dest->lid, my_dest->qpn,
++	sprintf(msg, "%04x:%06x:%06x:%08x:%016llx", my_dest->lid, my_dest->qpn,
+ 		my_dest->psn, my_dest->rkey, my_dest->vaddr);
+ 	if (write(connfd, msg, sizeof msg) != sizeof msg) {
+ 		perror("server write");
+@@ -907,7 +916,7 @@
+ 	  my_dest[i].vaddr = (uintptr_t)ctx->buf + ctx->size;
+ 	  
+ 	  printf("  local address:  LID %#04x, QPN %#06x, PSN %#06x "
+-		 "RKey %#08x VAddr %#016Lx\n",
++		 "RKey %#08x VAddr %#016llx\n",
+ 		 my_dest[i].lid, my_dest[i].qpn, my_dest[i].psn,
+ 		 my_dest[i].rkey, my_dest[i].vaddr);
+ 	  if (user_param.servername) {
+@@ -918,7 +927,7 @@
+ 	  if (!rem_dest[i])
+ 	    return 1;
+ 	  printf("  remote address: LID %#04x, QPN %#06x, PSN %#06x, "
+-		 "RKey %#08x VAddr %#016Lx\n",
++		 "RKey %#08x VAddr %#016llx\n",
+ 		 rem_dest[i]->lid, rem_dest[i]->qpn, rem_dest[i]->psn,
+ 		 rem_dest[i]->rkey, rem_dest[i]->vaddr);
+ 	  if (pp_connect_ctx(ctx, ib_port, my_dest[i].psn, rem_dest[i], &user_param, i))
+diff -r -u /tmp/perftest-1.2/write_bw_postlist.c perftest-1.2/write_bw_postlist.c
+--- /tmp/perftest-1.2/write_bw_postlist.c	Thu Feb 28 00:58:14 2008
++++ perftest-1.2/write_bw_postlist.c	Tue Sep 14 06:16:11 2010
+@@ -49,9 +49,11 @@
+ #include <malloc.h>
+ #include <getopt.h>
+ #include <arpa/inet.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#endif
+ #include <time.h>
+-
++#include <inttypes.h>
+ #include <infiniband/verbs.h>
+ 
+ #include "get_clock.h"
+@@ -59,7 +61,14 @@
+ #define PINGPONG_RDMA_WRID	3
+ #define VERSION 1.0
+ #define ALL 1
++
++#if defined(__SVR4) && defined(__sun)
++/* Note: max is 372 for hermon on solaris but this may get fixed by IBTF v3 */
++#define MAX_INLINE 372
++#else
+ #define MAX_INLINE 400
++#endif
++
+ #define RC 0
+ #define UC 1
+ 
+@@ -163,7 +172,7 @@
+ 	char msg[sizeof "0000:000000:000000:00000000:0000000000000000"];
+ 	int parsed;
+ 
+-	sprintf(msg, "%04x:%06x:%06x:%08x:%016Lx", my_dest->lid, my_dest->qpn,
++	sprintf(msg, "%04x:%06x:%06x:%08x:%016llx", my_dest->lid, my_dest->qpn,
+ 		my_dest->psn,my_dest->rkey,my_dest->vaddr);
+ 	if (write(sockfd, msg, sizeof msg) != sizeof msg) {
+ 		perror("client write");
+@@ -181,7 +190,7 @@
+ 	if (!rem_dest)
+ 		goto out;
+ 
+-	parsed = sscanf(msg, "%x:%x:%x:%x:%Lx", &rem_dest->lid, &rem_dest->qpn,
++	parsed = sscanf(msg, "%x:%x:%x:%x:%llx", &rem_dest->lid, &rem_dest->qpn,
+ 			&rem_dest->psn,&rem_dest->rkey,&rem_dest->vaddr);
+ 
+ 	if (parsed != 5) {
+@@ -269,7 +278,7 @@
+ 	if (!rem_dest)
+ 		goto out;
+ 
+-	parsed = sscanf(msg, "%x:%x:%x:%x:%Lx", &rem_dest->lid, &rem_dest->qpn,
++	parsed = sscanf(msg, "%x:%x:%x:%x:%llx", &rem_dest->lid, &rem_dest->qpn,
+ 			&rem_dest->psn, &rem_dest->rkey, &rem_dest->vaddr);
+ 	if (parsed != 5) {
+ 		fprintf(stderr, "Couldn't parse line <%.*s>\n",(int)sizeof msg,
+@@ -279,7 +288,7 @@
+ 		goto out;
+ 	}
+ 
+-	sprintf(msg, "%04x:%06x:%06x:%08x:%016Lx", my_dest->lid, my_dest->qpn,
++	sprintf(msg, "%04x:%06x:%06x:%08x:%016llx", my_dest->lid, my_dest->qpn,
+ 		my_dest->psn, my_dest->rkey, my_dest->vaddr);
+ 	if (write(connfd, msg, sizeof msg) != sizeof msg) {
+ 		perror("server write");
+@@ -890,7 +899,7 @@
+ 	  my_dest[i].vaddr = (uintptr_t)ctx->buf + ctx->size;
+ 	  
+ 	  printf("  local address:  LID %#04x, QPN %#06x, PSN %#06x "
+-		 "RKey %#08x VAddr %#016Lx\n",
++		 "RKey %#08x VAddr %#016llx\n",
+ 		 my_dest[i].lid, my_dest[i].qpn, my_dest[i].psn,
+ 		 my_dest[i].rkey, my_dest[i].vaddr);
+ 	  if (user_param.servername) {
+@@ -901,7 +910,7 @@
+ 	  if (!rem_dest[i])
+ 	    return 1;
+ 	  printf("  remote address: LID %#04x, QPN %#06x, PSN %#06x, "
+-		 "RKey %#08x VAddr %#016Lx\n",
++		 "RKey %#08x VAddr %#016llx\n",
+ 		 rem_dest[i]->lid, rem_dest[i]->qpn, rem_dest[i]->psn,
+ 		 rem_dest[i]->rkey, rem_dest[i]->vaddr);
+ 	  if (pp_connect_ctx(ctx, ib_port, my_dest[i].psn, rem_dest[i], &user_param, i))
+diff -r -u /tmp/perftest-1.2/write_lat.c perftest-1.2/write_lat.c
+--- /tmp/perftest-1.2/write_lat.c	Thu Feb 28 00:58:14 2008
++++ perftest-1.2/write_lat.c	Tue Sep 14 06:17:09 2010
+@@ -49,9 +49,11 @@
+ #include <malloc.h>
+ #include <getopt.h>
+ #include <arpa/inet.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
++#endif
+ #include <time.h>
+-
++#include <inttypes.h>
+ #include <infiniband/verbs.h>
+ 
+ #include "get_clock.h"
+@@ -59,7 +61,14 @@
+ #define PINGPONG_RDMA_WRID	3
+ #define VERSION 1.0
+ #define ALL 1
++
++#if defined(__SVR4) && defined(__sun)
++/* Note: max is 372 for hermon on solaris but this may get fixed by IBTF v3 */
++#define MAX_INLINE 372
++#else
+ #define MAX_INLINE 400
++#endif
++
+ static int page_size;
+ cycles_t                *tstamp;
+ struct user_parameters {
+@@ -133,7 +142,7 @@
+ }
+ 
+ #define KEY_MSG_SIZE (sizeof "0000:000000:000000:00000000:0000000000000000")
+-#define KEY_PRINT_FMT "%04x:%06x:%06x:%08x:%016Lx"
++#define KEY_PRINT_FMT "%04x:%06x:%06x:%08x:%016llx"
+ 
+ static int pp_write_keys(int sockfd, const struct pingpong_dest *my_dest)
+ {
+@@ -492,11 +501,11 @@
+ 	}
+ 	return 0;
+ }
++#define ADDR_FMT	"%8s address: LID %#04x QPN %#06x PSN %#06x RKey %#08x VAddr %#016llx\n"
+ 
+ static int pp_open_port(struct pingpong_context *ctx, const char * servername,
+ 			int ib_port, int port, struct pingpong_dest *rem_dest,struct user_parameters *user_parm)
+ {
+-	char addr_fmt[] = "%8s address: LID %#04x QPN %#06x PSN %#06x RKey %#08x VAddr %#016Lx\n";
+ 	struct pingpong_dest  my_dest;
+ 	int                   sockfd;
+ 	int                   rc;
+@@ -515,7 +524,7 @@
+ 	my_dest.rkey = ctx->mr->rkey;
+ 	my_dest.vaddr = (uintptr_t)ctx->buf + ctx->size;
+ 
+-	printf(addr_fmt, "local", my_dest.lid, my_dest.qpn, my_dest.psn,
++	printf(ADDR_FMT, "local", my_dest.lid, my_dest.qpn, my_dest.psn,
+ 	       my_dest.rkey, my_dest.vaddr);
+ 
+ 	sockfd = servername ? pp_client_connect(servername, port) :
+@@ -532,7 +541,7 @@
+ 	if (rc)
+ 		return rc;
+ 
+-	printf(addr_fmt, "remote", rem_dest->lid, rem_dest->qpn, rem_dest->psn,
++	printf(ADDR_FMT, "remote", rem_dest->lid, rem_dest->qpn, rem_dest->psn,
+ 	       rem_dest->rkey, rem_dest->vaddr);
+ 
+ 	if ((rc = pp_connect_ctx(ctx, ib_port, my_dest.psn, rem_dest,user_parm)))
Binary file usr/src/cmd/ofusr/perftest/perftest-1.2.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/qperf/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,12 @@
+NAME:             qperf
+VERSION:          0.4.0
+DESCRIPTION:      Infiniband Open Fabrics qperf
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/OFED/ofed-1.3/OFED-1.3.tgz/qperf-0.4.0.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/ofuv_tools
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
+                  qperf-0.4.0.tar.gz is part of the SPRMS in OFED-1.3.tgz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/qperf/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,95 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.1	10/10/07 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+CPPFLAGS +=	"-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+
+CONFIGURE_OPTIONS +=	--disable-libcheck
+CONFIGURE_OPTIONS +=	--disable-static
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m32 -D_REENTRANT"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB)"
+
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	CFLAGS="-m64 -D_REENTRANT"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LDFLAGS="-L$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN64)
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--libdir=$(CFGLIB64)
+
+CPPFLAGS +=	-I$(ROOT)/usr/include
+
+LIBS +=		-lsocket -lnsl -lkstat
+
+COMMON_ENV +=	MAKE=$(GMAKE)
+
+BUILD_ENV +=		CPPFLAGS="$(CPPFLAGS)"
+BUILD_ENV +=		LIBS="$(LIBS)"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+all:		$(VER)/build-32/.built $(VER)/build-64/.built
+
+install:	$(VER)/build-32/.installed $(VER)/build-64/.installed
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	(cd $(@D) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	(cd $(@D) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ../configure $(CONFIGURE_OPTIONS))
+	$(SYMLINK) ../../src/help.txt $(@D)/src
+	$(SYMLINK) ../../src/mkhelp $(@D)/src
+	$(SYMLINK) ../../src/mkman $(@D)/src
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/qperf/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,580 @@
+diff -r -u /tmp/730054/qperf-0.4.0/src/qperf.c qperf-0.4.0/src/qperf.c
+--- /tmp/730054/qperf-0.4.0/src/qperf.c	Thu Feb 28 00:58:29 2008
++++ qperf-0.4.0/src/qperf.c	Sun Oct  3 11:41:22 2010
+@@ -51,9 +51,20 @@
+ #include <sys/times.h>
+ #include <sys/select.h>
+ #include <sys/utsname.h>
++#include <sys/filio.h>	/* BJD	*/
+ #include "qperf.h"
+ 
++#if (defined(__SVR4) && defined(__sun))
++#include <limits.h>	/* times() */
++#include <kstat.h>	/* libkstat */
++#include <sys/types.h>
++#include <sys/processor.h>
++#include <sys/procset.h>
++#include <strings.h>
+ 
++static kstat_ctl_t	*kc = NULL;	/* libkstat cookie */
++#endif
++
+ /*
+  * Configurable parameters.  If your change makes this version of qperf
+  * incompatible with previous versions (usually a change to the Req structure),
+@@ -209,7 +220,9 @@
+ static void     sig_alrm(int signo, siginfo_t *siginfo, void *ucontext);
+ static void     sig_quit(int signo, siginfo_t *siginfo, void *ucontext);
+ static void     sig_urg(int signo, siginfo_t *siginfo, void *ucontext);
++#if !(defined(__SVR4) && defined(__sun))
+ static char    *skip_colon(char *s);
++#endif
+ static void     start_test_timer(int seconds);
+ static void     strncopy(char *d, char *s, int n);
+ static int      verbose(int type, double value);
+@@ -238,7 +251,9 @@
+ static REQ      RReq;
+ static STAT     IStat;
+ static int      ListenFD;
++#if !(defined(__SVR4) && defined(__sun))
+ static int      ProcStatFD;
++#endif
+ static STAT     RStat;
+ static int      ShowIndex;
+ static SHOW     ShowTable[256];
+@@ -521,6 +536,9 @@
+     initialize();
+     set_signals();
+     do_args(&argv[1]);
++#if (defined(__SVR4) && defined(__sun))
++    (void) kstat_close(kc);
++#endif
+     return 0;
+ }
+ 
+@@ -547,14 +565,24 @@
+     for (i = 0; i < P_N; ++i)
+         if (ParInfo[i].index != i)
+             error(BUG, "initialize: ParInfo: out of order: %d", i);
++#if (defined(__SVR4) && defined(__sun))
++    while ((kc = kstat_open()) == NULL) {
++	if (errno == EAGAIN)
++	    (void) poll(NULL, 0, 200);
++	else
++	    error(SYS, "cannot open /dev/kstat");
++    }
++#else
+     ProcStatFD = open("/proc/stat", 0);
+     if (ProcStatFD < 0)
+         error(SYS, "cannot open /proc/stat");
++#endif
+     IStat.no_cpus = sysconf(_SC_NPROCESSORS_ONLN);
+     IStat.no_ticks = sysconf(_SC_CLK_TCK);
+ }
+ 
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ /*
+  * Look for a colon and skip past it and any spaces.
+  */
+@@ -573,6 +601,7 @@
+     return s;
+ }
+ 
++#endif
+ 
+ /*
+  * A case insensitive string compare.  s2 must at least contain all of s1 but
+@@ -1436,11 +1465,12 @@
+ {
+     char count[STRSIZE];
+     char speed[STRSIZE];
+-    char buf[BUFSIZE];
+     char cpu[BUFSIZE];
++    int cpus = 0;
++#if !(defined(__SVR4) && defined(__sun))
+     char mhz[BUFSIZE];
++    char buf[BUFSIZE];
+ 
+-    int cpus = 0;
+     int mixed = 0;
+     FILE *fp = fopen("/proc/cpuinfo", "r");
+     if (!fp)
+@@ -1498,9 +1528,68 @@
+                 break;
+         }
+     }
++#else
++    int mhz;
++    kstat_t		*ksp;
++    kstat_named_t	*knp;
+ 
++    cpu[0] = '\0';
++    if (IStat.no_cpus)
++	cpus = IStat.no_cpus;
++
++    ksp = kstat_lookup(kc, "cpu_info", 0, NULL);
++    if (ksp == NULL)
++	return;
++
++    if (kstat_read(kc, ksp, NULL) == -1)
++	return;
++
++    knp = (kstat_named_t *)kstat_data_lookup(ksp, "brand");
++    if (knp == NULL)
++	return;
++
++    (void) strlcpy(cpu, knp->value.str.addr.ptr, knp->value.str.len);
++
++    /* CPU name */
++    if (cpu[0] != '\0') {
++        char *p = cpu;
++        char *q = cpu;
++        for (;;) {
++            if (*q == '(' && cmpsub(q, "(r)"))
++                q += 3;
++            else if (*q == '(' && cmpsub(q, "(tm)"))
++                q += 4;
++            if (tolower(*q) == 'c' && cmpsub(q, "cpu "))
++                q += 4;
++            if (tolower(*q) == 'p' && cmpsub(q, "processor "))
++                q += 10;
++            else if (q[0] == ' ' && q[1] == ' ')
++                q += 1;
++            else if (q[0] == '\n')
++                q += 1;
++            else if (!(*p++ = *q++))
++                break;
++	    if (q[0] == '@')
++	        q[0] = '\0';
++        }
++    }
++
++#endif
++
+     /* CPU speed */
+     speed[0] = '\0';
++#if (defined(__SVR4) && defined(__sun))
++    knp = (kstat_named_t *)kstat_data_lookup(ksp, "clock_MHz");
++    if (knp == NULL)
++	return;
++
++    mhz = knp->value.ui64;
++
++    if (mhz < 1000)
++        snprintf(speed, sizeof(speed), " %dMHz", mhz);
++    else
++	snprintf(speed, sizeof(speed), " %.1fGHz", mhz/1000.0);
++#else
+     if (!mixed) {
+         int n = strlen(cpu);
+         if (n < 3 || cpu[n-2] != 'H' || cpu[n-1] != 'z') {
+@@ -1514,6 +1603,7 @@
+             }
+         }
+     }
++#endif
+ 
+     /* Number of CPUs */
+     if (cpus == 1)
+@@ -2375,14 +2465,22 @@
+ static void
+ set_affinity(void)
+ {
++#if !(defined(__SVR4) && defined(__sun))
+     cpu_set_t set;
++#endif
+     int a = Req.affinity;
+ 
+     if (!a)
+         return;
++
++#if defined(__SVR4) && defined(__sun)
++    if (processor_bind(P_LWPID, P_MYID, a-1, NULL) != 0)
++#else
++
+     CPU_ZERO(&set);
+     CPU_SET(a-1, &set);
+     if (sched_setaffinity(0, sizeof(set), &set) < 0)
++#endif
+         error(SYS, "cannot set processor affinity (cpu %d)", a-1);
+ }
+ 
+@@ -2527,10 +2625,75 @@
+ /*
+  * Get various temporal parameters.
+  */
++#if (defined(__SVR4) && defined(__sun))
++
++#define	NSEC_TO_TICK(v)		(v * sysconf(_SC_CLK_TCK)/1000000000)
++
+ static void
+ get_times(CLOCK timex[T_N])
+ {
+-    int n;
++	struct tms tms;
++	size_t	i, nr_cpus;
++	kstat_t	*ksp;
++	kstat_named_t	*knp;
++	uint64_t	t_user = 0, t_kernel = 0, t_idle = 0;
++	uint64_t	t_irq = 0, t_iowait = 0;
++
++	timex[T_REAL] = times(&tms);
++
++	nr_cpus = sysconf(_SC_NPROCESSORS_ONLN);
++
++	/* Aggregate the value of all CPUs */
++	for (i = 0; i < nr_cpus; i++) {
++		ksp = kstat_lookup(kc, "cpu", i, "sys");
++		if (ksp == NULL)
++	        	return;
++
++		if (kstat_read(kc, ksp, NULL) == -1)
++	        	return;
++
++		knp = (kstat_named_t *)kstat_data_lookup(ksp, "cpu_ticks_user");
++		if (knp == NULL)
++			return;
++		t_user += knp->value.ui64;
++
++		knp = (kstat_named_t *)kstat_data_lookup(ksp,
++		    "cpu_ticks_kernel");
++		if (knp == NULL)
++			return;
++		t_kernel += knp->value.ui64;
++
++		knp = (kstat_named_t *)kstat_data_lookup(ksp, "cpu_ticks_idle");
++		if (knp == NULL)
++			return;
++		t_idle += knp->value.ui64;
++
++		knp = (kstat_named_t *)kstat_data_lookup(ksp, "cpu_ticks_wait");
++		if (knp == NULL)
++			return;
++		t_iowait += knp->value.ui64;
++
++		knp = (kstat_named_t *)kstat_data_lookup(ksp, "cpu_nsec_intr");
++		if (knp == NULL)
++			return;
++		t_irq += knp->value.ui64;	/* This is in NSEC */
++	}
++	timex[T_USER] = t_user;
++	timex[T_NICE] = 0;
++	timex[T_KERNEL] = t_kernel;
++	timex[T_IDLE] = t_idle;
++	timex[T_IOWAIT] = t_iowait;
++	timex[T_IRQ] = NSEC_TO_TICK(t_irq);	 /* NSEC_TO_TICK */
++	timex[T_SOFTIRQ] = 0;
++	timex[T_STEAL] = 0;
++}
++
++#else
++
++static void
++get_times(CLOCK timex[T_N])
++{
++    int n = 1;
+     char *p;
+     char buf[BUFSIZE];
+     struct tms tms;
+@@ -2558,6 +2721,7 @@
+     while (n < T_N)
+         timex[n++] = 0;
+ }
++#endif
+ 
+ 
+ /*
+diff -r -u /tmp/730054/qperf-0.4.0/src/rdma.c qperf-0.4.0/src/rdma.c
+--- /tmp/730054/qperf-0.4.0/src/rdma.c	Thu Feb 28 00:58:29 2008
++++ qperf-0.4.0/src/rdma.c	Sun Oct  3 11:42:06 2010
+@@ -36,7 +36,11 @@
+ #include <errno.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#if (defined(__SVR4) && defined(__sun))
++#include <strings.h>
++#else
+ #include <string.h>
++#endif
+ #include <unistd.h>
+ #include <netinet/in.h>
+ #include <infiniband/verbs.h>
+@@ -484,11 +488,15 @@
+ void
+ run_client_uc_bi_bw(void)
+ {
++#if (defined(__SVR4) && defined(__sun))
++    error(RET, "UC Not Supported");
++#else
+     par_use(L_ACCESS_RECV);
+     par_use(R_ACCESS_RECV);
+     ib_params_msgs(K64, 1);
+     ib_bi_bw(IBV_QPT_UC);
+     show_results(BANDWIDTH_SR);
++#endif
+ }
+ 
+ 
+@@ -498,7 +506,11 @@
+ void
+ run_server_uc_bi_bw(void)
+ {
++#if (defined(__SVR4) && defined(__sun))
++    error(RET, "UC Not Supported");
++#else
+     ib_bi_bw(IBV_QPT_UC);
++#endif
+ }
+ 
+ 
+@@ -508,6 +520,9 @@
+ void
+ run_client_uc_bw(void)
+ {
++#if (defined(__SVR4) && defined(__sun))
++    error(RET, "UC Not Supported");
++#else
+     par_use(L_ACCESS_RECV);
+     par_use(R_ACCESS_RECV);
+     par_use(L_NO_MSGS);
+@@ -515,6 +530,7 @@
+     ib_params_msgs(K64, 1);
+     ib_client_bw(IBV_QPT_UC);
+     show_results(BANDWIDTH_SR);
++#endif
+ }
+ 
+ 
+@@ -524,7 +540,11 @@
+ void
+ run_server_uc_bw(void)
+ {
++#if (defined(__SVR4) && defined(__sun))
++    error(RET, "UC Not Supported");
++#else
+     ib_server_def(IBV_QPT_UC);
++#endif
+ }
+ 
+ 
+@@ -534,8 +554,12 @@
+ void
+ run_client_uc_lat(void)
+ {
++#if (defined(__SVR4) && defined(__sun))
++    error(RET, "UC Not Supported");
++#else
+     ib_params_msgs(1, 1);
+     ib_pp_lat(IBV_QPT_UC, IO_SR);
++#endif
+ }
+ 
+ 
+@@ -545,7 +569,11 @@
+ void
+ run_server_uc_lat(void)
+ {
++#if (defined(__SVR4) && defined(__sun))
++    error(RET, "UC Not Supported");
++#else
+     ib_pp_lat(IBV_QPT_UC, IO_SR);
++#endif
+ }
+ 
+ 
+@@ -555,9 +583,13 @@
+ void
+ run_client_uc_rdma_write_bw(void)
+ {
++#if (defined(__SVR4) && defined(__sun))
++    error(RET, "UC Not Supported");
++#else
+     ib_params_msgs(K64, 1);
+     ib_client_rdma_bw(IBV_QPT_UC, IBV_WR_RDMA_WRITE_WITH_IMM);
+     show_results(BANDWIDTH_SR);
++#endif
+ }
+ 
+ 
+@@ -567,7 +599,11 @@
+ void
+ run_server_uc_rdma_write_bw(void)
+ {
++#if (defined(__SVR4) && defined(__sun))
++    error(RET, "UC Not Supported");
++#else
+     ib_server_def(IBV_QPT_UC);
++#endif
+ }
+ 
+ 
+@@ -577,8 +613,12 @@
+ void
+ run_client_uc_rdma_write_lat(void)
+ {
++#if (defined(__SVR4) && defined(__sun))
++    error(RET, "UC Not Supported");
++#else
+     ib_params_msgs(1, 1);
+     ib_pp_lat(IBV_QPT_UC, IO_RDMA);
++#endif
+ }
+ 
+ 
+@@ -588,7 +628,11 @@
+ void
+ run_server_uc_rdma_write_lat(void)
+ {
++#if (defined(__SVR4) && defined(__sun))
++    error(RET, "UC Not Supported");
++#else
+     ib_pp_lat(IBV_QPT_UC, IO_RDMA);
++#endif
+ }
+ 
+ 
+@@ -598,9 +642,13 @@
+ void
+ run_client_uc_rdma_write_poll_lat(void)
+ {
++#if (defined(__SVR4) && defined(__sun))
++    error(RET, "UC Not Supported");
++#else
+     ib_params_msgs(1, 1);
+     ib_rdma_write_poll_lat(IBV_QPT_UC);
+     show_results(LATENCY);
++#endif
+ }
+ 
+ 
+@@ -610,7 +658,11 @@
+ void
+ run_server_uc_rdma_write_poll_lat(void)
+ {
++#if (defined(__SVR4) && defined(__sun))
++    error(RET, "UC Not Supported");
++#else
+     ib_rdma_write_poll_lat(IBV_QPT_UC);
++#endif
+ }
+ 
+ 
+diff -r -u /tmp/730054/qperf-0.4.0/src/rds.c qperf-0.4.0/src/rds.c
+--- /tmp/730054/qperf-0.4.0/src/rds.c	Thu Feb 28 00:58:29 2008
++++ qperf-0.4.0/src/rds.c	Sun Oct  3 12:53:28 2010
+@@ -44,11 +44,15 @@
+ #include <netinet/in.h>
+ #include "qperf.h"
+ 
++#if (defined(__SVR4) && defined(__sun))
++#include <sys/rds.h>
++#else
+ 
+ /*
+  * Parameters.
+  */
+ #define AF_INET_RDS 28                  /* Family for RDS */
++#endif
+ 
+ 
+ /*
+@@ -351,9 +355,14 @@
+     SS sockaddr;
+     socklen_t socklen;
+ 
++#if (defined(__SVR4) && defined(__sun))
++    sockfd = socket(PF_RDS, SOCK_SEQPACKET, 0);
++#else
+     sockfd = socket(AF_INET_RDS, SOCK_SEQPACKET, 0);
++#endif
+     if (sockfd < 0)
+         error(SYS, "socket failed");
++
+     setsockopt_one(sockfd, SO_REUSEADDR);
+     rds_makeaddr(&sockaddr, &socklen, host, port);
+     if (bind(sockfd, (SA *)&sockaddr, socklen) != SUCCESS0)
+@@ -372,7 +381,11 @@
+     struct sockaddr_in *sap = (struct sockaddr_in *)addr;
+ 
+     memset(sap, 0, sizeof(*sap));
++#if (defined(__SVR4) && defined(__sun))
++    sap->sin_family = AF_INET_OFFLOAD;
++#else
+     sap->sin_family = AF_INET;
++#endif
+     inet_pton(AF_INET, host, &sap->sin_addr.s_addr);
+     sap->sin_port = htons(port);
+     *len = sizeof(struct sockaddr_in);
+@@ -430,6 +443,26 @@
+ 
+     if (getsockname(fd, (SA *)&sa, &salen) < 0)
+         error(SYS, "getsockname failed");
++
++#if (defined(__SVR4) && defined(__sun))
++    /*
++     * getnameinfo() does not support AF_INET_OFFLOAD, so 
++     * use sin_family as AF_INET to get port info.
++     */ 
++    {
++    struct sockaddr_in	*saa;
++
++    saa = (struct sockaddr_in *) &sa;
++    debug("get_socket_port: sin_family %d, sin_port 0x%0X",
++	saa->sin_family, ntohs(saa->sin_port));
++    debug("get_socket_port: sin_addr %s", inet_ntoa(saa->sin_addr));
++
++    if (saa->sin_family == AF_INET_OFFLOAD)
++	sa.ss_family = AF_INET;
++
++    }
++#endif
++
+     qgetnameinfo((SA *)&sa, salen, 0, 0, p, sizeof(p), NI_NUMERICSERV);
+     port = atoi(p);
+     if (!port)
+diff -r -u /tmp/730054/qperf-0.4.0/src/socket.c qperf-0.4.0/src/socket.c
+--- /tmp/730054/qperf-0.4.0/src/socket.c	Thu Feb 28 00:58:29 2008
++++ qperf-0.4.0/src/socket.c	Sun Oct  3 12:32:14 2010
+@@ -44,7 +44,12 @@
+ /*
+  * Parameters.
+  */
++#if (defined(__SVR4) && defined(__sun))
++#include <sys/socket.h>
++#define AF_INET_SDP 33		/* Remove this after u get new socket.h */
++#else
+ #define AF_INET_SDP 27                  /* Family for SDP */
++#endif
+ 
+ 
+ /*
+@@ -706,10 +711,16 @@
+         error(0, "getaddrinfo failed: %s", gai_strerror(stat));
+     for (aip = *aipp; aip; aip = aip->ai_next) {
+         if (kind == K_SDP) {
++#if (defined(__SVR4) && defined(__sun))
++		aip->ai_family = AF_INET;
++		aip->ai_socktype = SOCK_STREAM;
++		aip->ai_protocol = PROTO_SDP;
++#else
+             if (aip->ai_family == AF_INET || aip->ai_family == AF_INET6)
+                 aip->ai_family = AF_INET_SDP;
+             else
+                 aip->ai_family = 0;
++#endif
+         } else if (kind == K_SCTP) {
+             if (aip->ai_protocol == IPPROTO_TCP)
+                 aip->ai_protocol = IPPROTO_SCTP;
+diff -r -u /tmp/730054/qperf-0.4.0/src/Makefile.in qperf-0.4.0/src/Makefile.in
+--- /tmp/730054/qperf-0.4.0/src/Makefile.in	Thu Feb 28 00:58:31 2008
++++ qperf-0.4.0/src/Makefile.in	Thu Oct  7 11:19:28 2010
+@@ -44,7 +44,7 @@
+ mkinstalldirs = $(install_sh) -d
+ CONFIG_CLEAN_FILES =
+ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
+-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
++binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -m 755
+ PROGRAMS = $(bin_PROGRAMS)
+ am__qperf_SOURCES_DIST = qperf.c socket.c rds.c support.c help.c \
+ 	qperf.h rdma.c
Binary file usr/src/cmd/ofusr/qperf/qperf-0.4.0.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/rds-tools/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,11 @@
+NAME:             rds-tools
+VERSION:          2.0.4
+DESCRIPTION:      Infiniband Open Fabrics rds-tools
+LICENSE:          BSD
+PACKAGE:          SUNWofusr
+PROJECT_URL:      http://www.openfabrics.org/
+SOURCE_DOWNLOAD:  http://www.openfabrics.org/downloads/rds-tools/rds-tools-2.0.4.tar.gz
+SUPPORT:          B
+BUGTRAQ:          solaris/ib_sw/ofuv_tools
+OSR:              0
+COMMENTS:         This has been approved by Oracle legal.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/rds-tools/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,98 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile.sfw	1.1	10/10/07 SMI"
+
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
+
+include ../../Makefile.cmd
+
+
+CPPFLAGS +=	"-Wformat=2"
+CONFIGURE_ENV +=	PATH=$(SFW_PATH)
+CONFIGURE_ENV +=	MAKE=$(GMAKE)
+CONFIGURE_ENV +=	INSTALL=/usr/ucb/install
+
+CONFIGURE_OPTIONS +=	--disable-libcheck
+CONFIGURE_OPTIONS +=	--disable-static
+CONFIGURE_OPTIONS +=	--mandir=$(CFGMAN)
+CONFIGURE_OPTIONS +=	--includedir=$(CFGINC)
+
+COMMON_ENV +=	PATH=$(SFW_PATH)
+COMMON_ENV +=	MAKE=$(GMAKE)
+COMMON_ENV +=	INSTALL=/usr/ucb/install
+
+$(VER)/build-32/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB)"
+$(VER)/build-32/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN)
+$(VER)/build-32/config.status:=	CONFIGURE_OPTIONS +=	--libdir=$(CFGLIB)
+
+$(VER)/build-64/config.status:=	CONFIGURE_ENV +=	LD_OPTIONS="-R$(ROOTLIB64)"
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--bindir=$(CFGBIN64)
+$(VER)/build-64/config.status:=	CONFIGURE_OPTIONS +=	--libdir=$(CFGLIB64)
+
+$(VER)/build-32/.%:=	COMMON_ENV +=	CFLAGS="-O2 -Wall -m32 -D_REENTRANT -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ $(CPPFLAGS) -I$(ROOT)/usr/include/infiniband"
+$(VER)/build-32/.%:=	COMMON_ENV +=	LDFLAGS="-L$(ROOTLIB) -lsocket -lnsl -llgrp"
+
+$(VER)/build-64/.%:=	COMMON_ENV +=	CFLAGS="-O2 -Wall -m64 -D_REENTRANT -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ $(CPPFLAGS) -I$(ROOT)/usr/include/infiniband"
+$(VER)/build-64/.%:=	COMMON_ENV +=	LDFLAGS="-L$(ROOTLIB) -lsocket -lnsl -llgrp"
+
+INSTALL_ENV +=		INSTALL=$(INSTALL_PROTO)
+INSTALL_ENV +=		MANSCRIPT=$(COMPONENT_TOP)/../manscript
+
+INSTALL_TARGETS +=	DESTDIR=$(ROOT)
+INSTALL_TARGETS +=	install
+
+all:		$(VER)/build-32/.built $(VER)/build-64/.built
+
+install:	$(VER)/build-32/.installed $(VER)/build-64/.installed
+	$(RM) $(ROOT)/usr/share/man/man7/rds.7 \
+		$(ROOT)/usr/share/man/man7/rds-rdma.7
+
+$(VER)/build-%/.installed:	$(VER)/build-%/.built
+	(cd $(VER) ; $(ENV) $(COMMON_ENV) $(INSTALL_ENV) gmake $(INSTALL_TARGETS))
+	$(RM) $(ROOTINCLUDE)/net/rds.h
+	$(RMDIR) $(ROOTINCLUDE)/net
+	$(TOUCH) $@
+
+$(VER)/build-%/.built:	$(VER)/build-%/config.status
+	(cd $(VER) ; $(ENV) $(COMMON_ENV) $(BUILD_ENV) gmake $(BUILD_TARGETS))
+	$(TOUCH) $@
+
+$(VER)/build-%/config.status:	$(VER)/configure
+	-$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	(cd $(VER) ; $(ENV) $(CONFIGURE_ENV) \
+		$(CONFIG_SHELL) ./configure $(CONFIGURE_OPTIONS))
+	(cd $(VER) ; $(ENV) $(CONFIGURE_ENV) gmake clean)
+	$(TOUCH) $@
+
+prep:	$(VER)/configure
+
+$(VER)/configure:	$(VER).tar.gz
+	$(GTAR) zxpf $(VER).tar.gz
+	$(GPATCH) -p1 -d $(@D) <base.patch
+	$(TOUCH) $@
+
+clean:
+	-$(RM) -r $(VER)
+
+include ../../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/ofusr/rds-tools/base.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,1346 @@
+diff -r -u /tmp/rds-tools-2.0.4/rds-stress.c rds-tools-2.0.4/rds-stress.c
+--- /tmp/rds-tools-2.0.4/rds-stress.c	Wed Aug  4 15:25:10 2010
++++ rds-tools-2.0.4/rds-stress.c	Thu Sep 30 04:09:04 2010
+@@ -15,7 +15,13 @@
+ #include <sys/time.h>
+ #include <time.h>
+ #include <inttypes.h>
++#if defined(__SVR4) && defined(__sun)
++#include <sys/syscall.h>
++#include <signal.h>
++#include <sys/lgrp_user.h>
++#else
+ #include <syscall.h>
++#endif
+ #include <sys/stat.h>
+ #include <sys/poll.h>
+ #include <ctype.h>
+@@ -22,8 +28,13 @@
+ #include <fcntl.h>
+ #include <sched.h>
+ #include <getopt.h>
++#if !(defined(__SVR4) && defined(__sun))
+ #include <byteswap.h>
+ #include "rds.h"
++#else
++#include <infiniband/ofa_solaris.h>
++#include <sys/rds.h>
++#endif
+ 
+ #include "pfhack.h"
+ 
+@@ -254,7 +265,20 @@
+ 
+ 	die("invalid host name or dotted quad '%s'\n", ptr);
+ }
++#if defined(__SVR4) && defined(__sun)
++static lgrp_id_t lgrp_id = -1;
+ 
++static void
++set_my_lgrp(void)
++{
++	if (lgrp_id != -1) {
++		lgrp_affinity_set(P_LWPID, P_MYID, lgrp_id,
++			LGRP_AFF_STRONG);
++		yield(); /* force a context switch */
++	}
++}
++#endif
++
+ static void usage(void)
+ {
+         fprintf(stderr, "rds-stress version %s\n", RDS_VERSION);
+@@ -281,6 +305,9 @@
+ 	" -c                measure cpu use with per-cpu soak processes\n"
+ 	" -V                trace execution\n"
+ 	" -z                print a summary at end of test only\n"
++#if defined(__SVR4) && defined(__sun)
++	" -g [lgrpid]       bind the process to the specified lgrp\n"
++#endif
+ 	"\n"
+ 	"Example:\n"
+ 	"  recv$ rds-stress\n"
+@@ -310,7 +337,7 @@
+ static void check_parent(pid_t pid)
+ {
+ 	if (pid != getppid())
+-		die("parent %u exited\n", pid);
++		die("parent %u exited\n", (int)pid);
+ }
+ 
+ /*
+@@ -334,6 +361,7 @@
+ 		msg_pattern[i] = k;
+ }
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ #if __BYTE_ORDER == __LITTLE_ENDIAN
+ #define htonll(x)	bswap_64(x)
+ #define ntohll(x)	bswap_64(x)
+@@ -341,6 +369,7 @@
+ #define htonll(x)	(x)
+ #define ntohll(x)	(x)
+ #endif
++#endif /* Not sun */
+ 
+ static void encode_hdr(struct header *dst, const struct header *hdr)
+ {
+@@ -584,7 +613,11 @@
+ 	if (opts->receive_addr == 0)
+ 		return 1;
+ 
++#if defined(__SVR4) && defined(__sun)
++	sin.sin_family = AF_INET_OFFLOAD;
++#else
+ 	sin.sin_family = AF_INET;
++#endif
+ 	sin.sin_port = htons(opts->starting_port);
+ 	sin.sin_addr.s_addr = htonl(opts->receive_addr);
+ 
+@@ -677,7 +710,11 @@
+ 	size = sizeof(struct rdma_key_o_meter)
+ 			+ 2 * nr_tasks * sizeof(*kt)
+ 			+ 2 * RDMA_MAX_TRACKED_KEYS * sizeof(*ks);
++#if defined(__SVR4) && defined(__sun)
++	base = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_SHARED, -1, 0);
++#else
+ 	base = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_SHARED, 0, 0);
++#endif
+ 	if (base == MAP_FAILED)
+ 		die_errno("alloc_rdma_buffers: mmap failed");
+ 
+@@ -828,7 +865,7 @@
+ 	}
+ 
+ 	if (!failed)
+-		trace("compare pass pattern %Lx addr %p\n",
++		trace("compare pass pattern 0x%Lx addr %p\n",
+ 			(unsigned long long) pattern, addr);
+ }
+ 
+@@ -865,7 +902,11 @@
+ 	/* We use mmap here rather than malloc, because it is always
+ 	 * page aligned. */
+ 	len = 2 * opts->nr_tasks * opts->req_depth * (opts->rdma_vector * opts->rdma_size) + sys_page_size;
++#if defined(__SVR4) && defined(__sun)
++	base = mmap(NULL, len, PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
++#else	
+ 	base = mmap(NULL, len, PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_PRIVATE, 0, 0);
++#endif
+ 	if (base == MAP_FAILED)
+ 		die_errno("alloc_rdma_buffers: mmap failed");
+ 	memset(base, 0x2f, len);
+@@ -915,17 +956,16 @@
+ 	if (RDMA_OP_READ == hdr->rdma_op) {
+ 		if (opt.verify)
+ 			rds_fill_buffer(rdma_addr, rdma_size, hdr->rdma_pattern);
+-		trace("Requesting RDMA read for pattern %Lx "
+-				"local addr to rdma read %p\n",
+-				(unsigned long long) hdr->rdma_pattern,
++		trace("Requesting RDMA read for pattern 0x%Lx"
++				"local addr to rdma read 0x%p\n",
++				hdr->rdma_pattern,
+ 				rdma_addr);
+ 	} else {
+ 		if (opt.verify)
+ 			rds_fill_buffer(rdma_addr, rdma_size, 0);
+-		trace("Requesting RDMA write for pattern %Lx "
+-				"local addr to rdma write %p\n",
+-				(unsigned long long) hdr->rdma_pattern,
+-				rdma_addr);
++
++		trace("Requesting RDMA write for pattern 0x%Lx",
++				hdr->rdma_pattern);
+ 	}
+ }
+ 
+@@ -947,7 +987,7 @@
+ 		die("Unexpected RDMA op %u in request\n", in_hdr->rdma_op);
+ 
+ 
+-	trace("RDS received request to issue rdma %s len %lu rva %Lx key %Lx pattern %Lx\n",
++	trace("RDS received request to issue rdma %s len %lu rva 0x%Lx key 0x%Lx pattern 0x%Lx\n",
+ 		in_hdr->rdma_op == RDMA_OP_WRITE? "write to" : "read from",
+ 		rdma_size,
+ 		(unsigned long long) in_hdr->rdma_addr,
+@@ -1007,6 +1047,9 @@
+ 	t->drain_rdmas = 0;
+ }
+ 
++#if defined(__SVR4) && defined(__sun)
++#undef MSG_MAXIOVLEN
++#endif
+ #define MSG_MAXIOVLEN 2
+ 
+ /*
+@@ -1560,7 +1603,12 @@
+ 	struct timeval start;
+         int do_work = opts->simplex ? active : 1;
+ 
++#if defined(__SVR4) && defined(__sun)
++	set_my_lgrp();
++	sin.sin_family = AF_INET_OFFLOAD;
++#else
+ 	sin.sin_family = AF_INET;
++#endif
+ 	sin.sin_port = htons(opts->starting_port + 1 + id);
+ 	sin.sin_addr.s_addr = htonl(opts->receive_addr);
+ 
+@@ -1572,7 +1620,11 @@
+ 	for (i = 0; i < opts->nr_tasks; i++) {
+ 		tasks[i].nr = i;
+ 		tasks[i].src_addr = sin;
++#if defined(__SVR4) && defined(__sun)
++		tasks[i].dst_addr.sin_family = AF_INET_OFFLOAD;
++#else
+ 		tasks[i].dst_addr.sin_family = AF_INET;
++#endif
+ 		tasks[i].dst_addr.sin_addr.s_addr = htonl(opts->send_addr);
+ 		tasks[i].dst_addr.sin_port = htons(opts->starting_port + 1 + i);
+ 		tasks[i].send_time = alloca(opts->req_depth * sizeof(struct timeval));
+@@ -1665,8 +1717,12 @@
+ 	uint32_t i;
+ 
+ 	len = opts->nr_tasks * sizeof(*ctl);
++#if defined(__SVR4) && defined(__sun)
++	ctl = (struct child_control *)mmap(NULL, len, PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_SHARED, -1, 0);
++#else
+ 	ctl = mmap(NULL, len, PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_SHARED,
+ 		   0, 0);
++#endif
+ 	if (ctl == MAP_FAILED)
+ 		die("mmap of %u child control structs failed", opts->nr_tasks);
+ 
+@@ -1699,7 +1755,7 @@
+ 			continue;
+ 		pid = waitpid(-1, NULL, WNOHANG);
+ 		if (pid)
+-			die("child %u (pid %u) exited\n", i, pid);
++			die("child %u (pid %u) exited\n", i, (int)pid);
+ 		sleep(1);
+ 		i--; /* try this child again */
+ 	}
+@@ -1967,7 +2023,7 @@
+ 
+ 	pid = waitpid(-1, &status, wflags);
+ 	if (pid < 0)
+-		die("waitpid returned %u", pid);
++		die("waitpid returned %u", (int)pid);
+ 	if (pid == 0)
+ 		return 0;
+ 
+@@ -1975,15 +2031,15 @@
+ 		if (WEXITSTATUS(status) == 0)
+ 			return 1;
+ 		die("child pid %u exited with status %d\n",
+-				pid, WEXITSTATUS(status));
++				(int)pid, WEXITSTATUS(status));
+ 	}
+ 	if (WIFSIGNALED(status)) {
+ 		if (WTERMSIG(status) == SIGTERM)
+ 			return 1;
+ 		die("child pid %u exited with signal %d\n",
+-				pid, WTERMSIG(status));
++				(int)pid, WTERMSIG(status));
+ 	}
+-	die("child pid %u wait status %d\n", pid, status);
++	die("child pid %u wait status %d\n", (int)pid, status);
+ }
+ 
+ static void release_children_and_wait(struct options *opts,
+@@ -2517,7 +2573,11 @@
+ 	/* an extra terminating entry which will be all 0s */
+ 	len = (nr_soak + 1) * sizeof(struct soak_control);
+ 	soak_arr = mmap(NULL, len, PROT_READ|PROT_WRITE,
++#if defined(__SVR4) && defined(__sun)
++			MAP_ANONYMOUS|MAP_SHARED, -1, 0);
++#else
+ 			MAP_ANONYMOUS|MAP_SHARED, 0, 0);
++#endif
+ 	if (soak_arr == MAP_FAILED)
+ 		die("mmap of %ld soak control structs failed", nr_soak);
+ 
+@@ -2589,6 +2649,7 @@
+ { "rtprio",		no_argument,		NULL,	'R'	},
+ { "verify",		no_argument,		NULL,	'v'	},
+ { "trace",		no_argument,		NULL,	'V'	},
++{ "lgrpid",		required_argument,	NULL,	'g'	},
+ 
+ { "rdma-use-once",	required_argument,	NULL,	OPT_RDMA_USE_ONCE },
+ { "rdma-use-get-mr",	required_argument,	NULL,	OPT_RDMA_USE_GET_MR },
+@@ -2652,7 +2713,7 @@
+ 	while(1) {
+ 		int c, index;
+ 
+-		c = getopt_long(argc, argv, "+a:cD:d:hI:M:op:q:Rr:s:t:T:vVz",
++		c = getopt_long(argc, argv, "+a:cD:d:hI:M:op:q:Rr:s:t:T:vVg:z",
+ 				long_options, &index);
+ 		if (c == -1)
+ 			break;
+@@ -2711,6 +2772,10 @@
+ 			case 'V':
+ 				opts.tracing = 1;
+ 				break;
++			case 'g':
++				lgrp_id = (lgrp_id_t)parse_ull(optarg,
++				    (uint32_t)~0);
++				break;
+ 			case OPT_USE_CONG_MONITOR:
+ 				opts.use_cong_monitor = parse_ull(optarg, 1);
+ 				break;
+@@ -2786,6 +2851,7 @@
+ 	if (opts.rdma_size && 0)
+ 		opts.rdma_size = (opts.rdma_size + 4095) & ~4095;
+ 
++	set_my_lgrp();
+ 	opt = opts;
+ 	return active_parent(&opts, soak_arr);
+ }
+diff -r -u /tmp/rds-tools-2.0.4/pfhack.h rds-tools-2.0.4/pfhack.h
+--- /tmp/rds-tools-2.0.4/pfhack.h	Wed Aug  4 15:25:11 2010
++++ rds-tools-2.0.4/pfhack.h	Mon Sep 27 16:17:48 2010
+@@ -44,9 +44,11 @@
+ #ifndef __PF_HACK_H
+ #define __PF_HACK_H
+ 
++#if !((defined(__SVR4) && defined(__sun)))
+ #define PF_RDS		21
+ #define AF_RDS		21
+ #define SOL_RDS		276
++#endif
+ 
+ extern int discover_pf_rds();
+ extern int discover_sol_rds();
+diff -r -u /tmp/rds-tools-2.0.4/rds-info.c rds-tools-2.0.4/rds-info.c
+--- /tmp/rds-tools-2.0.4/rds-info.c	Wed Aug  4 15:25:10 2010
++++ rds-tools-2.0.4/rds-info.c	Mon Sep 27 16:18:21 2010
+@@ -42,12 +42,20 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <errno.h>
++#if defined(__SVR4) && defined(__sun)
++#include <strings.h>
++#else
+ #include <string.h>
++#endif
+ #include <inttypes.h>
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ 
++#if defined(__SVR4) && defined(__sun)
++#include <sys/rds.h>
++#else
+ #include "rds.h"
++#endif
+ #include "pfhack.h"
+ 
+ #define rds_conn_flag(conn, flag, letter) \
+@@ -234,8 +242,10 @@
+ 		print_msgs, "Send", 0 },
+ 	['t'] = { RDS_INFO_RETRANS_MESSAGES, "retransmit queue messages",
+ 		  print_msgs, "Retransmit", 0 },
++#if !(defined(__SVR4) && defined(__sun))
+ 	['T'] = { RDS_INFO_TCP_SOCKETS, "TCP transport sockets",
+ 		  print_tcp_socks, NULL, 0 },
++#endif
+ 	['I'] = { RDS_INFO_IB_CONNECTIONS, "IB transport connections",
+ 		  print_ib_conns, NULL, 0 },
+ };
+@@ -266,6 +276,10 @@
+ 	char optstring[258] = "v+";
+ 	int given_options = 0;
+ 	socklen_t len = 0;
++#if defined(__SVR4) && defined(__sun)
++	socklen_t ulen;
++	struct rds_info_arg arg;
++#endif
+ 	void *data = NULL;
+ 	int fd;
+ 	int each;
+@@ -322,6 +336,7 @@
+ 		    (given_options && !infos[i].option_given))
+ 			continue;
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 		/* read in the info until we get a full snapshot */
+ 		while ((each = getsockopt(fd, sol, infos[i].opt_val, data,
+ 				   &len)) < 0) {
+@@ -345,15 +360,60 @@
+ 				return 1;
+ 			}
+ 		}
++#else
++		/* 1st call gets the length of the data available */
++		ulen = 0;
++		bzero(&arg, sizeof (struct rds_info_arg));
++		arg.lenp = (uint64_t)(uintptr_t)&ulen;
++		arg.datap = NULL;
++		each = ioctl(fd, infos[i].opt_val, &arg);
++		if ((each < 0) && (errno != ENOSPC)) {
++			verbosef(0, stderr, "%s: Unable get statistics: %s\n",
++			    progname, strerror(errno));
++			return 1;
++		}
+ 
++		/* No data at the driver */
++		if (ulen == 0)
++			invalid_opt = 1;;
++#endif
++
+ 		if (invalid_opt)
+ 			continue;
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ 		infos[i].print(data, each, len, infos[i].extra);
++#else
++		do {
++			arg.datap = (uint64_t)(uintptr_t)realloc(
++			    (char *)(uintptr_t)arg.datap, ulen);
++			if (arg.datap == NULL) {
++			    verbosef(0, stderr, "%s: Unable to allocate memory "
++				"for %u bytes of info: %s\n",
++				progname, ulen, strerror(errno));
++				return 1;
++			}
+ 
++			/* 2nd call gets the data */
++			len = ulen;
++			each = ioctl(fd, infos[i].opt_val, &arg);
++			if ((each < 0) && (errno != ENOSPC)) {
++				verbosef(0, stderr,
++				    "%s: Unable get statistics: %s\n",
++				    progname, strerror(errno));
++				return 1;
++			}
++		} while (ulen > len);
++
++		infos[i].print((void *)(uintptr_t)arg.datap, each, ulen,
++		    infos[i].extra);
++#endif
+ 		if (given_options && --given_options == 0)
+ 			break;
+ 	}
++#if defined(__SVR4) && defined(__sun)
++	free((void *)(uintptr_t)arg.datap);
++#endif
+ 
+ 	return 0;
+ }
+diff -r -u /tmp/rds-tools-2.0.4/rds.7 rds-tools-2.0.4/rds.7
+--- /tmp/rds-tools-2.0.4/rds.7	Wed Aug  4 15:25:11 2010
++++ rds-tools-2.0.4/rds.7	Mon Sep 27 16:20:44 2010
+@@ -6,6 +6,7 @@
+ .nf
+ .B #include <sys/socket.h>
+ .B #include <netinet/in.h>
++.B #include <sys/rds.h>
+ .fi
+ .SH DESCRIPTION
+ This is an implementation of the RDS socket API. It provides reliable,
+@@ -14,18 +15,13 @@
+ Currently, RDS can be transported over Infiniband, and loopback.
+ RDS over TCP is disabled, but will be re-enabled in the near future.
+ .PP
+-RDS uses standard
+-.B AF_INET
+-addresses as described in
+-.BR ip (7)
++RDS uses 
++.B AF_INET_OFFLOAD address family 
+ to identify end points.
+ .\"------------------------------------------------------------------
+ .SS Socket Creation
+ RDS is still in development and as such does not have a reserved protocol
+-family constant. Applications must read the string representation of the
+-protocol family value from the
+-.B pf_rds
+-sysctl parameter file described below.
++family constant.  Applications should use AF_INET_OFFLOAD.
+ .PP
+ .nf
+ .B rds_socket = socket(pf_rds, SOCK_SEQPACKET, 0);
+@@ -58,9 +54,6 @@
+ .BR SOL_RDS ).
+ Just as with the RDS protocol family, an official value has not been
+ assigned yet, so the kernel will assign a value dynamically.
+-The assigned value can be retrieved from the
+-.B sol_rds
+-sysctl parameter file.
+ .PP
+ RDS specific socket options will be described in a separate section
+ below.
+@@ -77,7 +70,7 @@
+ .PP
+ For instance, when binding to the address of an Infiniband interface
+ such as
+-.BR ib0 ,
++.BR ibd0 ,
+ the socket will use the Infiniband transport. If RDS is not able
+ to associate a transport with the given address, it will return
+ .BR EADDRNOTAVAIL .
+@@ -394,47 +387,6 @@
+ be delivered in the order they're sent. Messages sent from different
+ sockets, or to different destinations, may be delivered in any order.
+ .\"------------------------------------------------------------------
+-.SH SYSCTL VALUES
+-These parameteres may only be accessed through their files in
+-.BR /proc/sys/net/rds .
+-Access through
+-.BR sysctl (2)
+-is not supported.
+-.TP
+-.B pf_rds
+-This file contains the string representation of the protocol family
+-constant passed to
+-.BR socket (2)
+-to create a new RDS socket.
+-.TP
+-.B sol_rds
+-This file contains the string representation of the socket level parameter
+-that is passed to
+-.BR getsockopt (2)
+-and
+-.BR setsockopt (2)
+-to manipulate RDS socket options.
+-.TP
+-.BR max_unacked_bytes " and " max_unacked_packets
+-These parameters are used to tune the generation of acknowledgements. By
+-default, the system receiving RDS messages does not send back explicit
+-acknowledgements unless it transmits a message of its own (in which
+-case the ACK is piggybacked onto the outgoing message), or when the sending
+-system requests an ACK.
+-.IP
+-However, the sender needs to see an ACK from time to time so that it
+-can purge old messages from the send queue. The unacked bytes and
+-packet counters are used to keep track of how much data has been
+-sent without requesting an ACK. The default is to request an acknowledgement
+-every 16 packets, or every 16 MB, whichever comes first.
+-.TP
+-.BR reconnect_delay_min_ms " and " reconnect_delay_max_ms
+-RDS uses host-to-host connections to transport RDS messages (both for the TCP
+-and the Infiniband transport). If this connection breaks, RDS will try to
+-re-establish the connection. Because this reconnect may be triggered by
+-both hosts at the same time and fail, RDS uses a random backoff before attempting
+-a reconnect. These two parameters specify the minimum and maximum delay in
+-milliseconds. The default values are 1 and 1000, respectively.
+ .SH SEE ALSO
+ .BR rds-rdma (7),
+ .BR socket (2),
+diff -r -u /tmp/rds-tools-2.0.4/rds-info.1 rds-tools-2.0.4/rds-info.1
+--- /tmp/rds-tools-2.0.4/rds-info.1	Wed Aug  4 15:25:11 2010
++++ rds-tools-2.0.4/rds-info.1	Mon Sep 27 16:18:04 2010
+@@ -1,162 +1,150 @@
+-.Dd October 30, 2006
+-.Dt RDS-INFO 1
+-.Os
+-.Sh NAME
+-.Nm rds-info
+-.Nd display information from the RDS kernel module
+-.Pp
+-.Sh SYNOPSIS
+-.Nm rds-info
+-.Op Fl v
+-.Bk -words
+-.Op Fl cknrstIT
++.TH RDS-INFO 1 "October 30, 2006"
++.SH "NAME"
++rds-info - display information from the RDS kernel module
++.SH SYNOPSIS
++.B rds-info [-cknrstIT]
+ 
+-.Sh DESCRIPTION
+-The
+-.Nm
+-utility presents various sources of information that
++.SH DESCRIPTION
++.PP
++The utility presents various sources of information that
+ the RDS kernel module maintains.  When run without any optional arguments
+-.Nm
+ will output all the information it knows of.  When options are specified then
+ only the information associated with those options is displayed.
+ 
+ The options are as follows:
+-.Bl -tag -width Ds
+-.It Fl v
++.SH OPTIONS
++.PP
++.TP 7
++\fB\-v
+ Requests verbose output. When this option is given, some classes of information
+ will display additional data.
+ 
+-.It Fl c
++.TP
++\fB\-c
+ Display global counters.  Each counter increments as its event
+ occurs.  The counters may not be reset.  The set of supported counters
+ may change over time.
+ 
+-.Bl -tag -width 4
+-.It CounterName
++.IP	CounterName
+ The name of the counter.  These names come from the kernel and can change
+ depending on the capability of the kernel module.
+-.It Value
++.IP 	Value
+ The number of times that the counter has been incremented since the kernel
+ module was loaded.
+-.El
+ 
+-.It Fl k
++.TP
++\fB\-k\fR
+ Display all the RDS sockets in the system.  There will always be one socket
+ listed that is neither bound to nor connected to any addresses because
+-.Nm
+ itself uses an unbound socket to collect information.
+ 
+-.Bl -tag -width 4
+-.It BoundAddr, BPort
++.IP	BoundAddr, BPort
+ The IP address and port that the socket is bound to.  0.0.0.0 0 indicates that
+ the socket has not been bound.
+-.It ConnAddr, CPort
++.IP	ConnAddr, CPort
+ The IP address and port that the socket is connected to.  0.0.0.0 0 indicates
+ that the socket has not been connected.
+-.It SndBuf, RcvBuf
++.IP	SndBuf, RcvBuf
+ The number of bytes of message payload which can be queued for sending or
+ receiving on the socket, respectively.
+-.It Inode
++.IP	Inode
+ The number of the inode object associated with the socket. Can be used to
+ locate the process owning a given socket by searching /proc/*/fd for
+ open files referencing a socket with this inode number.
+-.El
+ 
+-.It Fl n
++.TP
++\fB\-n\fR
+ Display all RDS connections.  RDS connections are maintained between
+ nodes by transports.  
+ 
+-.Bl -tag -width 4
+-.It LocalAddr
++.IP	LocalAddr
+ The IP address of this node.  For connections that originate and terminate on
+ the same node the local address indicates which address initiated the
+ connection establishment.
+-.It RemoteAddr
++.IP	RemoteAddr
+ The IP address of the remote end of the connection.  
+-.It NextTX
++.IP	NextTX
+ The sequence number that will be given to the next message that is sent
+ over the connection.
+-.It NextRX
++.IP	NextRX
+ The sequence number that is expected from the next message to arrive over
+ the connection.  Any incoming messages with sequence numbers less than this
+ will be dropped.
+-.It Flg
++.IP	Flg
+ Flags which indicate the state of the connection. 
+-.Bl -tag -width 4
+-.It s
+-A process is currently sending a message down the connection.
+-.It c
+-The transport is attempting to connect to the remote address.
+-.It C
+-The connection to the remote host is connected and active.
+-.El
+-.El
+ 
+-.It Fl r, Fl s, Fl t
++.IP 		s
++	A process is currently sending a message down
++	the connection.
++.IP 		c
++	The transport is attempting to connect to the
++	remote address.
++.IP 		C
++	The connection to the remote host is connected
++	and active.
++
++.TP
++\fB\-r\fR, \fB\-s\fR, \fB\-t\fR
+ Display the messages in the receive, send, or retransmit queues respectively.
+-.Bl -tag -width 4
+-.It LocalAddr, LPort
++
++.IP	LocalAddr, LPort
+ The local IP address and port on this node associated with the message. For
+ sent messages this is the source address, for receive messages it is the
+ destination address.
+-.It RemoteAddr, RPort
++.IP	RemoteAddr, RPort
+ The remote IP address and port associated with the message. For sent messages
+ this is the destination address, for receive messages it is the source address.
+-.It Seq
++.IP	Seq
+ The sequence number of the message.
+-.It Bytes
++.IP	Bytes
+ The number of bytes in the message payload.
+-.El
+ 
++
++.PP
+ The following information sources are dependent on specific transports which
+ may not always be available. 
+ 
+-.It Fl I
++.TP 7
++\fB\-I\fR
+ Display the IB connections which the IB transport is using to provide
+ RDS connections.
+ 
+-.Bl -tag -width 4
+-.It LocalAddr
++.IP	LocalAddr
+ The local IP address of this connection.
+-.It RemoteAddr
++.IP	RemoteAddr
+ The remote IP address of this connection.
+-.It LocalDev
++.IP	LocalDev
+ The local IB Global Identifier, printed in IPv6 address syntax.
+-.It RemoteDev
++.IP	RemoteDev
+ The remote IB Global Identifier, printed in IPv6 address syntax.
+-.El
+ 
+ If verbose output is requested, per-connection settings such as the
+ maximum number of send and receive work requests will be displayed
+ in addition.
+ 
+-.It Fl T
++.TP 7
++\fB\-T\fR
+ Display the TCP sockets which the TCP transport is using to provide
+ RDS connections.
+ 
+-.Bl -tag -width 4
+-.It LocalAddr, LPort
++.IP	LocalAddr, LPort
+ The local IP address and port of this socket.
+-.It RemoteAddr, RPort
++.IP	RemoteAddr, RPort
+ The remote IP address and port that this socket is connected to.
+-.It HdrRemain
++.IP	HdrRemain
+ The number of bytes that must be read off the socket to complete the next
+ full RDS header.
+-.It DataRemain
++.IP	DataRemain
+ The number of bytes that must be read off the socket to complete the data
+ payload of the message which is being received.
+-.It SentNxt
++.IP	SentNxt
+ The TCP sequence number of the first byte of the last message that we sent
+ down the connection.
+-.It ExpectedUna
++.IP	ExpectedUna
+ The TCP sequence number of the byte past the last byte of the last message
+ that we sent down the connection.  When we see that the remote side has
+ acked up to this byte then we know that the remote side has received all
+ our RDS messages.
+-.It SeenUna
++.IP	SeenUna
+ The TCP sequence number of the byte past the last byte which has been
+ acked by the remote host.
+-.El
+-
+-.El
+-.Pp
+diff -r -u /tmp/rds-tools-2.0.4/rds-ping.1 rds-tools-2.0.4/rds-ping.1
+--- /tmp/rds-tools-2.0.4/rds-ping.1	Wed Aug  4 15:25:11 2010
++++ rds-tools-2.0.4/rds-ping.1	Mon Sep 27 16:18:39 2010
+@@ -1,69 +1,54 @@
+-.Dd Apr 22, 2008
+-.Dt RDS-PING 1
+-.Os
+-.Sh NAME
+-.Nm rds-ping
+-.Nd test reachability of remote node over RDS
+-.Pp
+-.Sh SYNOPSIS
+-.Nm rds-ping
+-.Bk -words
+-.Op Fl c Ar count
+-.Op Fl i Ar interval
+-.Op Fl I Ar local_addr
+-.Ar remote_addr
++.TH RDS-PING 1 "Apr 22, 2008"
++.SH NAME
++rds-ping - test reachability of remote node over RDS
+ 
+-.Sh DESCRIPTION
+-.Nm rds-ping
+-is used to test whether a remote node is reachable over RDS.
+-Its interface is designed to operate pretty much the standard
+-.Xr ping 8
++.SH SYNOPSIS
++.B rds-ping [-c count] [-i interval] [-I local_addr] remote_addr
++
++.SH DESCRIPTION
++.PP
++rds-ping is used to test whether a remote node is reachable over RDS.
++Its interface is designed to operate pretty much the standard ping(1M) 
+ utility, even though the way it works is pretty different.
+-.Pp
+-.Nm rds-ping
+-opens several RDS sockets and sends packets to port 0 on
++.PP
++rds-ping opens several RDS sockets and sends packets to port 0 on
+ the indicated host. This is a special port number to which
+ no socket is bound; instead, the kernel processes incoming
+ packets and responds to them.
+-.Sh OPTIONS
++.SH OPTIONS
+ The following options are available for use on the command line:
+-.Bl -tag -width Ds
+-.It Fl c Ar count
+-Causes
+-.Nm rds-ping
+-to exit after sending (and receiving) the specified number of
++.PP
++.TP 7
++\fB\-c count
++Causes rds-ping to exit after sending (and receiving) the specified number of
+ packets.
+-.It Fl I Ar address
+-By default,
+-.Nm rds-ping
+-will pick the local source address for the RDS socket based
++.TP
++\fB\-I address
++By default, rds-ping will pick the local source address for the RDS socket based
+ on routing information for the destination address (i.e. if
+ packets to the given destination would be routed through interface
+-.Nm ib0 ,
++ib0 ,
+ then it will use the IP address of
+-.Nm ib0
++ib0
+ as source address).
+ Using the
+ .Fl I
+ option, you can override this choice.
+-.It Fl i Ar timeout
+-By default,
+-.Nm rds-ping
+-will wait for one second between sending packets. Use this option
++.TP
++\fB\-i timeout
++By default, rds-ping will wait for one second between sending packets. Use this option
+ to specified a different interval. The timeout value is given in
+ seconds, and can be a floating point number. Optionally, append
+-.Nm msec
++msec
+ or
+-.Nm usec
++usec
+ to specify a timeout in milliseconds or microseconds, respectively.
+-.It
++.IP
+ Specifying a timeout considerably smaller than the packet round-trip
+ time will produce unexpected results.
+-.El
+-.Sh AUTHORS
+-.Nm rds-ping
++
++.SH AUTHORS
++rds-ping
+ was written by Olaf Kirch <[email protected]>.
+-.Sh SEE ALSO
+-.Xr rds 7 ,
+-.Xr rds-info 1 ,
+-.Xr rds-stress 1 .
++.S~ SEE ALSO
++rds 7, rds-info 1, rds-stress 1.
+diff -r -u /tmp/rds-tools-2.0.4/rds-ping.c rds-tools-2.0.4/rds-ping.c
+--- /tmp/rds-tools-2.0.4/rds-ping.c	Wed Aug  4 15:25:10 2010
++++ rds-tools-2.0.4/rds-ping.c	Mon Sep 27 16:18:56 2010
+@@ -48,7 +48,11 @@
+ #include <sys/poll.h>
+ #include <fcntl.h>
+ #include <getopt.h>
++#if defined(__SVR4) && defined(__sun)
++#include <sys/rds.h>
++#else
+ #include "rds.h"
++#endif
+ 
+ #include "pfhack.h"
+ 
+@@ -155,7 +159,12 @@
+ 	}
+ 
+ 	memset(&sin, 0, sizeof(sin));
++#if defined(__SVR4) && defined(__sun)
++	sin.sin_family = AF_INET_OFFLOAD;
++#else
+ 	sin.sin_family = AF_INET;
++#endif
++
+ 	sin.sin_addr = opt_dstaddr;
+ 
+ 	gettimeofday(&next_ts, NULL);
+@@ -181,7 +190,7 @@
+ 				break;
+ 
+ 			timeradd(&next_ts, &opt_wait, &next_ts);
+-			if (sendto(sp->fd, NULL, 0, 0, (struct sockaddr *) &sin, sizeof(sin)))
++			if (sendto(sp->fd, NULL, 0, 0, (struct sockaddr *) &sin, sizeof(sin)) < 0)
+ 				err = errno;
+ 			sp->sent_id = ++sent;
+ 			sp->sent_ts = now;
+@@ -258,7 +267,11 @@
+ 	int pf;
+ 
+ 	memset(&sin, 0, sizeof(sin));
++#if defined(__SVR4) && defined(__sun)
++	sin.sin_family = AF_INET_OFFLOAD;
++#else
+ 	sin.sin_family = AF_INET;
++#endif
+ 
+ #ifdef DYNAMIC_PF_RDS
+         pf = discover_pf_rds();
+@@ -278,6 +291,9 @@
+ 		if (ufd < 0)
+ 			die_errno("unable to create UDP socket");
+ 		sin.sin_addr = *dst;
++#if defined(__SVR4) && defined(__sun)
++		sin.sin_family = AF_INET;
++#endif
+ 		sin.sin_port = htons(1);
+ 		if (connect(ufd, (struct sockaddr *) &sin, sizeof(sin)) < 0)
+ 			die_errno("unable to connect to %s",
+@@ -289,6 +305,9 @@
+ 
+ 		*src = sin.sin_addr;
+ 		close(ufd);
++#if defined(__SVR4) && defined(__sun)
++		sin.sin_family = AF_INET_OFFLOAD;
++#endif
+ 	}
+ 
+ 	sin.sin_addr = *src;
+diff -r -u /tmp/rds-tools-2.0.4/Makefile.in rds-tools-2.0.4/Makefile.in
+--- /tmp/rds-tools-2.0.4/Makefile.in	Wed Aug  4 15:25:11 2010
++++ rds-tools-2.0.4/Makefile.in	Wed Sep 29 07:33:02 2010
+@@ -4,10 +4,14 @@
+ mandir		= $(DESTDIR)@mandir@
+ incdir		= $(DESTDIR)@includedir@
+ 
++CC=gcc
++
+ all: all-programs
+ 
+-CFLAGS = -O2 -Wall -Iinclude
+-CPPFLAGS = -DDEBUG_EXE -DRDS_VERSION=\"@VERSION@\" -MD -MP -MF $(@D)/.$(basename $(@F)).d
++CFLAGS += -O2 -Wall -Iinclude
++CPPFLAGS += -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ \
++	-DDEBUG_EXE -DRDS_VERSION=\"@VERSION@\" -MD -MP -MF $(@D)/.$(basename $(@F)).d
++LDFLAGS += -lsocket -lnsl -llgrp
+ 
+ HEADERS = kernel-list.h pfhack.h include/rds.h
+ COMMON_SOURCES = pfhack.c
+@@ -15,7 +19,7 @@
+ CLEAN_OBJECTS = $(addsuffix .o,$(PROGRAMS)) $(subst .c,.o,$(COMMON_SOURCES))
+ 
+ # This is the default
+-DYNAMIC_PF_RDS = true
++#DYNAMIC_PF_RDS = true
+ 
+ ifneq ($(DYNAMIC_PF_RDS),)
+ CPPFLAGS += -DDYNAMIC_PF_RDS
+@@ -29,14 +33,14 @@
+ all-programs: $(PROGRAMS)
+ 
+ install: $(PROGRAMS)
+-	install -d $(bindir)
+-	install -m 555 -s $(PROGRAMS) $(bindir)
+-	install -d $(mandir)/man1
+-	install -d $(mandir)/man7
+-	install -m 644 *.1 $(mandir)/man1
+-	install -m 644 *.7 $(mandir)/man7
+-	install -d $(incdir)/net
+-	install -m 444 include/rds.h $(incdir)/net
++	$(INSTALL) -d $(bindir)
++	$(INSTALL) -m 755 -s $(PROGRAMS) $(bindir)
++	$(INSTALL) -d $(mandir)/man1
++	$(INSTALL) -d $(mandir)/man7
++	$(INSTALL) -m 644 *.1 $(mandir)/man1
++	$(INSTALL) -m 644 *.7 $(mandir)/man7
++	$(INSTALL) -d $(incdir)/net
++	$(INSTALL) -m 444 include/rds.h $(incdir)/net
+ 
+ clean:
+ 	rm -f $(PROGRAMS) $(CLEAN_OBJECTS)
+@@ -47,7 +51,7 @@
+ 
+ 
+ $(PROGRAMS) : % : %.o $(COMMON_OBJECTS)
+-	gcc $(CFLAGS) $(LDFLAGS) -o $@ $^
++	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $^
+ 
+ LOCAL_DFILES := $(wildcard .*.d)
+ ifneq ($(LOCAL_DFILES),)
+diff -r -u /tmp/rds-tools-2.0.4/examples/rds-sample.c rds-tools-2.0.4/examples/rds-sample.c
+--- /tmp/rds-tools-2.0.4/examples/rds-sample.c	Wed Aug  4 15:25:11 2010
++++ rds-tools-2.0.4/examples/rds-sample.c	Mon Sep 27 16:16:36 2010
+@@ -26,6 +26,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ 
++#if !(defined(__SVR4) && defined(__sun))
+ /* FIXME - this is a hack to getaround RDS not exporting any header files.
+  * This is a local copy of the file found at net/rds/
+  */
+@@ -33,6 +34,9 @@
+ /* These are defined in rds.h....but that file is not happily included */
+ #define SOL_RDS		272
+ #define PF_RDS		28
++#else
++#include <sys/rds.h>
++#endif
+ 
+ 
+ #define TESTPORT	4000
+@@ -107,12 +111,12 @@
+ 	cmsg->cmsg_type = RDS_CMSG_RDMA_ARGS;
+ 	cmsg->cmsg_len = CMSG_LEN(sizeof(struct rds_rdma_args));
+ 
+-	iov.addr = (uint64_t) buf;
++	iov.addr = (uint64_t)(uintptr_t)buf;
+ 	iov.bytes = sizeof(struct rdss_message);
+ 
+ 	args->remote_vec.addr = 0;
+ 	args->remote_vec.bytes = sizeof(struct rdss_message);
+-	args->local_vec_addr = (uint64_t) &iov;
++	args->local_vec_addr = (uint64_t)(uintptr_t)&iov;
+ 	args->nr_local = 1;
+ 	args->flags = remote_flags ? (RDS_RDMA_READWRITE | RDS_RDMA_FENCE) : 0;
+ 	args->flags |= RDS_RDMA_NOTIFY_ME;
+@@ -244,9 +248,9 @@
+ 	void *ctlbuf;
+ 	struct iovec *iov;
+ 
+-	mr_args.vec.addr = (uint64_t) buf;
++	mr_args.vec.addr = (uint64_t)(uintptr_t)buf;
+ 	mr_args.vec.bytes = sizeof(struct rdss_message);
+-	mr_args.cookie_addr = (uint64_t) cookie;
++	mr_args.cookie_addr = (uint64_t)(uintptr_t)cookie;
+ 	mr_args.flags = RDS_RDMA_USE_ONCE;
+ 
+ 	ctlbuf = calloc(1, CMSG_SPACE(sizeof(mr_args)));
+diff -r -u /tmp/rds-tools-2.0.4/examples/Makefile rds-tools-2.0.4/examples/Makefile
+--- /tmp/rds-tools-2.0.4/examples/Makefile	Wed Aug  4 15:25:11 2010
++++ rds-tools-2.0.4/examples/Makefile	Mon Sep 27 16:15:56 2010
+@@ -1,6 +1,12 @@
++CC=gcc
++LIBS = -lsocket -lnsl
++CPPFLAGS += -D_XOPEN_SOURCE=500 -D__EXTENSIONS__
+ 
+ all: rds-sample
+ 
+-rds-sample: rds-sample.o
++rds-sample: rds-sample.c
++	$(CC) $(CPPFLAGS) $(CFLAGS) -o rds-sample rds-sample.c $(LIBS)
+ 
+-CFLAGS = -I ../include
++clean:
++	rm -rf rds-sample
++
+diff -r -u /tmp/rds-tools-2.0.4/rds-stress.1 rds-tools-2.0.4/rds-stress.1
+--- /tmp/rds-tools-2.0.4/rds-stress.1	Wed Aug  4 15:25:11 2010
++++ rds-tools-2.0.4/rds-stress.1	Mon Sep 27 16:19:46 2010
+@@ -1,99 +1,103 @@
+-.Dd May 15, 2007
+-.Dt RDS-STRESS 1
+-.Os
+-.Sh NAME
+-.Nm rds-stress
+-.Nd send messages between processes over RDS sockets
+-.Pp
+-.Sh SYNOPSIS
+-.Nm rds-stress
+-.Bk -words
+-.Op Fl p Ar port_number
+-.Op Fl r Ar receive_address
+-.Op Fl s Ar send_address
+-.Op Fl a Ar ack_bytes
+-.Op Fl q Ar request_bytes
+-.Op Fl D Ar rdma_bytes
+-.Op Fl d Ar queue_depth
+-.Op Fl t Ar nr_tasks
+-.Op Fl c
+-.Op Fl R
+-.Op Fl V
+-.Op Fl v
++.TH RDS-STRESS 1 " May 15, 2007"
++.SH "NAME"
++rds-stress - send messages between processes over RDS sockets
++.PP
++.SH SYNOPSIS
++.HP
++.nf
++rds-stress [-p port_number] -r [receive_address] [-s send_address]
++      [-a ack_bytes] [-q request_bytes] [-D rdma_bytes]
++      [-d queue_depth] [-t Ar nr_tasks] [-c] [-R] [-V] [-v] [-o] 
++      [-I iovecs] -M [nr] [-z] [-g lgrpid]
++.fi
+ 
+-.Sh DESCRIPTION
+-.Nm rds-stress
++
++.SH DESCRIPTION
++.PP
++.Nm
++rds-stress
+ sends messages between groups tasks, usually running on seperate
+ machines.
+-.Pp
++.PP
+ First a passive receiving instance is started.
+-.Pp
+-.Dl $ rds-stress
+-.Pp
++.RS 12
++
++	$ rds-stress
++.RE
++.PP
+ Then an active sending instance is started, giving it
+ the address and port at which it will find a listening
+ passive receiver.  In addition, it is given configuration options which
+ both instances will use.
+-.Pp
+-.Dl $ rds-stress -s recvhost -p 4000 -t 1 -d 1
+-.Pp
++.PP
++.RS 12
++	$ rds-stress -s recvhost -p 4000 -t 1 -d 1
++.RE
++.PP
+ The active sender will parse the options, connect to the passive receiver, and
+ send the options over this connection.  From this point on both instances
+ exhibit the exact same behaviour.
+-.Pp
++.PP
+ They will create a number of child tasks as specified by the -t option.  Once
+ the children are created the parent sleeps for a second at a time, printing a
+ summary of statistics at each interval. 
+-.Pp
++.PP
+ Each child will open an RDS socket, each binding to a port number in order
+ after the port number given on the command line.  The first child would bind to
+ port 4001 in our example.  Each child sets the send and receive buffers to
+ exactly fit the number of messages, requests and acks, that will be in flight
+ as determind by the command line arguments.
+-.Pp
++.PP
+ The children then enter their loop.  They will keep a number of sent messages
+ outstanding as specified by the -d option.  When they reach this limit they
+ will wait to receive acks which will allow them to send again.  As they receive
+ messages from their peers they immediately send acks.
+-.Pp
++.PP
+ Every second, the parent process will display statistics of the ongoing
+ stress test. The output is described in section OUTPUT below.
+-.Pp
++.PP
+ If the -T option is given, the test will terminate after the specified time,
+ and a summary is printed.
+-.Pp
++.PP
+ Each child maintains outstanding messages to all other children of the other instance.
+ They do not send to their siblings.
+-.Sh OPTIONS
++.SH OPTIONS
++.PP
+ The following options are available for use on the command line:
+-.Bl -tag -width Ds
+-.It Fl p Ar port_number
++
++.TP 7
++\fB\-p  port_number
+ Each parent binds a TCP socket to this port number and their respective
+ address.  They will trade the negotiated options over this socket.  Each
+ child will bind an RDS socket to the range of ports immediately following
+ this port number, for as many children as there are.
+-.It Fl s Ar send_address
++.TP
++\fB\-s send_address
+ A connection attempt is made to this address.  Once its complete and the
+ options are sent over it then children will be created and work will proceed.
+-.It Fl r Ar receive_address
++.TP
++\fB\-r receive_address
+ This specifies the address that messages will be sent from.  If -s is not
+ specified then rds-stress waits for a connection on this address before
+ proceeding.
+-.Pp
++
+ If this option is not given, rds-stress will choose an appropriate address.
+ The passive process will accept connections on all local interfaces, and
+ obtain the address once the control connection is established.
+ The active process will choose a local address based on the interface through
+ which it connects to the destination address.
+-.It Fl a Ar ack_bytes
++.TP
++\fB\-a ack_bytes
+ This specifies the size of the ack messages, in bytes. There is a minimum size
+ which depends on the format of the ack messages, which may change over time.
+ See section "Message Sizes" below.
+-.It Fl q Ar request_bytes
++.TP
++\fB\-q request_bytes
+ This specifies the size of the request messages, in bytes.
+ It also has a minimum size which may change over time.
+ See section "Message Sizes" below.
+-.It Fl D Ar rdma_bytes
++.TP
++\fB\-D rdma_bytes
+ RDSv3 is capable of transmitting part of a message via RDMA directly from
+ application buffer to application buffer. This option enables RDMA support
+ in rds-stress: request packets include parameters for an RDMA READ or WRITE
+@@ -100,20 +104,25 @@
+ operation, which the receiving process executes at the time the ACK packet
+ is sent.
+ See section "Message Sizes" below.
+-.It Fl d Ar queue_depth
++.TP
++\fB\-d queue_depth
+ Each child will try to maintain this many sent messages outstanding to each
+ of its peers on the remote address.
+-.It Fl t Ar nr_tasks
++.TP
++\fB\-t nr_tasks
+ Each parent will create this many children tasks.
+-.It Fl T Ar seconds
++.TP
++\fB\-T seconds
+ Specify the duration of the test run. After the specified number of seconds,
+ all processes on both ends of the connection will terminate, and the
+ active instance will print a summary. By default, rds-stress will keep
+ on sending and receiving messages.
+-.It Fl z
++.TP
++\fB\-z
+ This flag can be used in conjunction with -T. It suppresses the ongoing
+ display of statistics, and prints a summary only.
+-.It Fl c
++.TP
++\fB\-c
+ This causes rds-stress to create child tasks which just consume CPU cycles.
+ One task is created for each CPU in the system.  First each child observes the
+ maximum rate at which it can consume cycles.  This means that this option
+@@ -121,50 +130,78 @@
+ use of the system by observing the lesser rate at which the children consume
+ cycles.  This option is *not* shared between the active and passive instances.
+ It must be specified on each rds-stress command line.
+-.It Fl R
++.TP
++\fB\-R
+ This tells the rds-stress parent process to run with SCHED_RR priority,
+ giving it precedence over the child processes. This is useful when running
+ with lots of tasks, where there is a risk of the child processes starving
+ the parent, and skewing the results.
+-.It Fl v
++.TP
++\fB\-v
+ With this option enabled, packets are filled with a pattern that is
+ verified by the receiver. This check can help detect data corruption
+ occuring under high load.
+-.El
+-.Pp
++.TP
++\fB\-o
++Datagrams sent one way only (default is both)
++.TP
++\fB\-I iovecs
++RDMA: number of user buffers to target (default is 1, max is 512)
++.TP
++\fB\-M nr
++RDMA: mode (0=readwrite,1=readonly,2=writeonly)
++.TP
++\fB\-g lgrpid
++bind the process to the specified lgrp
++.PP
+ 
+-.Ss Message Sizes
++.SS Message Sizes
+ Options which set a message size (such as -a) specify a number of bytes
+ by default. By appending \fBK\fP, \fBM\fP, or \fBG\fP, you can specify the size
+ in kilobytes, megabytes or gigabytes, respectively. For instance,
+ the following will run rds-stress with a message and ACK size of 1024
+ bytes, and an RDMA message size of 1048576 bytes:
+-.Pp
+-.Dl rds-stress ... -q 1K -a 1K -D 1M
+-.Pp
+-.Pp
+-.Sh OUTPUT
++.PP
++.RS 12
++rds-stress ... -q 1K -a 1K -D 1M
++.RE
++.PP
++.PP
++.SH OUTPUT
+ Each parent outputs columns of statistics at a regular interval:
+-.Bl -tag -width Ds
+-.It tsks
++.TP 8
++tsks
+ The number of child tasks which are running.
+-.It tx/s
++.TP
++tx/s
+ The number of sendmsg() calls that all children are executing, per second. 
+-.It tx+rx K/s
++.TP
++rx/s
++The number of recvmsg() calls that all children are executing, per second. 
++.TP
++tx+rx K/s
+ The total number of bytes that are flowing through sendmsg() and recvmsg() for all children.
+ This includes both request and ack messages.
+-.It rw+rr K/s
+-The total number of bytes that are being transferred via RDMA READs and
++.TP
++mbi K/s
++The total number of bytes that are being received via RDMA READs and
+ WRITEs for all children.
+-.It tx us/c
++.TP
++mbi K/s
++The total number of bytes that are being transmited via RDMA READs and
++WRITEs for all children.
++.TP
++tx us/c
+ The average number of microseconds spent in sendmsg() calls.
+-.It rtt us
++.TP
++rtt us
+ The average round trip time for a request and ack message pair.  This measures
+ the total time between when a task sends a request and when it finally receives
+ the ack for that message.  Because it includes the time it takes for the
+ receiver to wake up, receive the message, and send an ack, it can grow to be
+ quite large under load. 
+-.It cpu %
++.TP
++cpu %
+ This is the percentage of available CPU resources on this machine that are being
+ consumed since rds-stress started running.  It will show -1.00 if -c is not
+ given.  It is calculated based on the amount of CPU resources that CPU soaking
+@@ -171,4 +208,3 @@
+ tasks are able to consume.  This lets it measure CPU use by the system, say in
+ interrupt handlers, that task-based CPU accounting does not include.
+ For this to work rds-stress must be started with -c on an idle system.
+-.El
Binary file usr/src/cmd/ofusr/rds-tools/rds-tools-2.0.4.tar.gz has changed
--- a/usr/src/cmd/samba/METADATA	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/cmd/samba/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -1,10 +1,10 @@
 NAME:             samba
-VERSION:          3.5.4
+VERSION:          3.5.5
 DESCRIPTION:      CIFS volume and printing server
 LICENSE:          GPLv3
 PACKAGE:          SUNWsmbar SUNWsmbau
 PROJECT_URL:      http://www.samba.org
-SOURCE_DOWNLOAD:  http://us1.samba.org/samba/ftp/stable/samba-3.5.4.tar.gz
+SOURCE_DOWNLOAD:  http://us1.samba.org/samba/ftp/stable/samba-3.5.5.tar.gz
 SUPPORT:          C
 BUGTRAQ:          solaris/utility/samba
 OSR:              8443
Binary file usr/src/cmd/samba/samba-3.5.4.tar.gz has changed
Binary file usr/src/cmd/samba/samba-3.5.5.tar.gz has changed
--- a/usr/src/cmd/sudo/METADATA	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/cmd/sudo/METADATA	Fri Oct 15 22:35:17 2010 -0700
@@ -1,10 +1,10 @@
 NAME:             sudo
-VERSION:          1.7.0
+VERSION:          1.7.4p4
 DESCRIPTION:      delegate authority
 LICENSE:          ISC-like, BSD
 PACKAGE:          SUNWsudor SUNWsudou
 PROJECT_URL:      http://www.sudo.ws/
-SOURCE_DOWNLOAD:  http://www.sudo.ws/sudo/dist/sudo-1.7.0.tar.gz
+SOURCE_DOWNLOAD:  http://www.sudo.ws/sudo/dist/sudo-1.7.4p4.tar.gz
 SUPPORT:          C
 BUGTRAQ:          solaris/utility/sudo
 OSR:              11289
--- a/usr/src/cmd/sudo/Makefile.sfw	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/cmd/sudo/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -18,13 +18,12 @@
 #
 # CDDL HEADER END
 #
-# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
+# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-#pragma ident	"@(#)Makefile.sfw	1.3	09/06/15 SMI"
+#pragma ident	"@(#)Makefile.sfw	1.4	10/10/06 SMI"
 #
 
-VER=sudo-1.7.0
+VER=$(COMPONENT_NAME:sh)-$(COMPONENT_VERSION:sh)
 
 include ../Makefile.cmd
 
@@ -49,7 +48,10 @@
 	    DESTDIR=$(ROOT) \
 	    INSTALL="$(SRC)/tools/install-proto.pl" \
 	    $(CCSMAKE) -e install)
-	(DESTDIR=$(ROOT) $(SH) ./install.sfw)
+	$(RM) $(ROOTBIN)/sudoreplay $(ROOT)/usr/share/man/man1m/sudoreplay.1m
+	$(RM) $(ROOT)/usr/share/man/man4/sudoers.ldap.4
+	$(RM) -r $(ROOT)/var/run/sudo $(ROOT)/usr/share/doc/sudo
+	(DESTDIR=$(ROOT) $(SH) ./install.sfw $(VER))
 
 $(VER)/config.status: $(VER)/configure
 	(cd $(VER); env \
@@ -62,8 +64,8 @@
 			--with-noexec=/usr/lib/sudo_noexec.so \
 	    		--with-CC=cc \
 			--with-ldap \
-			--with-project )
-
+			--with-project \
+			--with-timedir=/var/run/sudo )
 
 #
 # We apply original patches and also the solaris.patch that
@@ -82,3 +84,4 @@
 	-rm -rf $(VER)
 
 include ../Makefile.targ
+
--- a/usr/src/cmd/sudo/install.sfw	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/cmd/sudo/install.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -20,13 +20,12 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
+# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-#pragma ident	"@(#)install.sfw	1.2	08/08/19 SMI"
+#pragma ident	"@(#)install.sfw	1.3	10/10/06 SMI"
 #
 
-VERS=sudo-1.6.9p16
+VERS=$1
 
 PREFIX=${ROOT}/usr
 BINDIR=${PREFIX}/bin
@@ -40,13 +39,17 @@
 # append warning about sudo and auditing, the stability and availability. 
 
 MANSCRIPT=sunman-sedscript
-for page in sudo.1m sudoedit.1m visudo.1m
+for page in sudo.1m visudo.1m
 do
     _install M ${ROOTDIR}/${MAN1mDIR}/${page} ${ROOTDIR}/${MAN1mDIR}/${page}.temporary 444
     mv -f ${ROOTDIR}/${MAN1mDIR}/${page}.temporary ${ROOTDIR}/${MAN1mDIR}/${page}
 done
 
-for page in sudoers.4
+# relink sudoedit.1m
+rm -f ${ROOTDIR}/${MAN1mDIR}/sudoedit.1m
+ln ${ROOTDIR}/${MAN1mDIR}/sudo.1m ${ROOTDIR}/${MAN1mDIR}/sudoedit.1m 
+
+for page in sudoers.4 
 do
     _install M ${ROOTDIR}/${MAN4DIR}/${page} ${ROOTDIR}/${MAN4DIR}/${page}.temporary 444
     mv -f ${ROOTDIR}/${MAN4DIR}/${page}.temporary ${ROOTDIR}/${MAN4DIR}/${page}
--- a/usr/src/cmd/sudo/solaris.patch	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/cmd/sudo/solaris.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -1,9 +1,9 @@
-diff -c -r sudo-1.7.0/Makefile.in sudo-1.7.0.sun/Makefile.in
-*** sudo-1.7.0/Makefile.in	Wed Dec  3 21:40:58 2008
---- sudo-1.7.0.sun/Makefile.in	Tue Feb 17 14:35:04 2009
+diff -c -r sudo-1.7.4p4/Makefile.in sudo-1.7.4p4.sun/Makefile.in
+*** sudo-1.7.4p4/Makefile.in	Fri Sep  3 23:43:57 2010
+--- sudo-1.7.4p4.sun/Makefile.in	Thu Sep 23 22:07:12 2010
 ***************
-*** 26,31 ****
---- 26,33 ----
+*** 24,29 ****
+--- 24,31 ----
   
   #### Start of system configuration section. ####
   
@@ -13,8 +13,8 @@
   devdir = @devdir@
   authdir = $(srcdir)/auth
 ***************
-*** 84,89 ****
---- 86,94 ----
+*** 86,91 ****
+--- 88,96 ----
   mandirsu = $(mandir)/$(mantype)$(mansectsu)
   mandirform = $(mandir)/$(mantype)$(mansectform)
   
@@ -25,9 +25,9 @@
   install_uid = 0
   install_gid = 0
 ***************
-*** 199,204 ****
---- 204,220 ----
-  sudo_noexec.la: sudo_noexec.lo
+*** 207,212 ****
+--- 212,228 ----
+  libsudo_noexec.la: sudo_noexec.lo
   	$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ sudo_noexec.lo -avoid-version -rpath $(noexecdir)
   
 + #
@@ -36,46 +36,53 @@
 + $(MACH64)/sudo_noexec.lo: $(srcdir)/sudo_noexec.c
 + 	$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS64) $(DEFS) $(OPTIONS) -o $(MACH64)/sudo_noexec.o $(srcdir)/sudo_noexec.c
 + 
-+ $(MACH64)/sudo_noexec.la: $(MACH64)/sudo_noexec.lo
-+ 	$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -64 -o $@ $(MACH64)/sudo_noexec.lo -avoid-version -rpath $(noexecdir)
++ $(MACH64)/libsudo_noexec.la: $(MACH64)/sudo_noexec.lo
++ 	$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -m64 -o $@ $(MACH64)/sudo_noexec.lo -avoid-version -rpath $(noexecdir)
 + 
-+ sudo_noexec: sudo_noexec.la $(MACH64)/sudo_noexec.la
++ libsudo_noexec: libsudo_noexec.la $(MACH64)/libsudo_noexec.la
 + 
   # Uncomment the following if you want "make distclean" to clean the parser
-  @DEV@GENERATED = gram.h gram.c toke.c def_data.c def_data.h
+  @DEV@GENERATED = gram.h gram.c toke.c def_data.c def_data.h getdate
   
 ***************
-*** 399,436 ****
-  ChangeLog:
-  	cvs2cl --follow-only trunk
+*** 475,519 ****
+  	    hg log --style=changelog -b default --date '<2010-01-18 00:00:00' >> $@; \
+  	fi
   
-! install: install-dirs install-binaries @INSTALL_NOEXEC@ install-sudoers install-man
+! install: install-dirs install-binaries @INSTALL_NOEXEC@ install-sudoers install-doc
   
   install-dirs:
   	$(SHELL) $(srcdir)/mkinstalldirs $(DESTDIR)$(sudodir) \
-  	    $(DESTDIR)$(visudodir) $(DESTDIR)$(sudoersdir) \
-  	    $(DESTDIR)$(mandirsu) $(DESTDIR)$(mandirform) \
-! 	    $(DESTDIR)$(noexecdir)
+  	    $(DESTDIR)$(visudodir) $(DESTDIR)$(noexecdir) \
+  	    $(DESTDIR)$(sudoersdir) $(DESTDIR)$(docdir) \
+! 	    $(DESTDIR)$(mandirsu) $(DESTDIR)$(mandirform)
+  	$(SHELL) $(srcdir)/mkinstalldirs -m 0700 $(DESTDIR)$(timedir)
   
-  install-binaries: $(PROGS)
-! 	$(INSTALL) -O $(install_uid) -G $(install_gid) -M 4111 -s sudo $(DESTDIR)$(sudodir)/sudo
+  install-binaries: install-dirs $(PROGS)
+! 	$(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -M 04111 sudo $(DESTDIR)$(sudodir)/sudo
   	rm -f $(DESTDIR)$(sudodir)/sudoedit
   	ln $(DESTDIR)$(sudodir)/sudo $(DESTDIR)$(sudodir)/sudoedit
-! 	$(INSTALL) -O $(install_uid) -G $(install_gid) -M 0111 -s visudo $(DESTDIR)$(visudodir)/visudo
-! @SELINUX@	$(INSTALL) -O $(install_uid) -G $(install_gid) -M 0111 -s sesh $(DESTDIR)$(libexecdir)/sesh
+! 	if [ -f sudoreplay ]; then $(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -M 0111 sudoreplay $(DESTDIR)$(sudodir)/sudoreplay; fi
+! 	$(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -M 0111 visudo $(DESTDIR)$(visudodir)/visudo
+! 	if [ -f sesh ]; then $(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -M 0111 sesh $(DESTDIR)$(libexecdir)/sesh; fi
   
-! install-noexec: sudo_noexec.la
-! 	test -f .libs/$(noexecfile) && $(INSTALL) -O $(install_uid) -G $(install_gid) -M 0755 .libs/$(noexecfile) $(DESTDIR)$(noexecdir)
+! install-noexec: install-dirs libsudo_noexec.la
+! 	if [ -f .libs/lib$(noexecfile) ]; then $(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -M 0755 .libs/lib$(noexecfile) $(DESTDIR)$(noexecdir)/$(noexecfile); fi
   
-  install-sudoers:
+  install-sudoers: install-dirs
+! 	$(INSTALL) -d -O $(sudoers_uid) -G $(sudoers_gid) -M 0750 \
+  	    $(DESTDIR)$(sudoersdir)/sudoers.d
   	test -f $(DESTDIR)$(sudoersdir)/sudoers || \
 ! 	    $(INSTALL) -O $(sudoers_uid) -G $(sudoers_gid) -M $(sudoers_mode) \
-  		$(srcdir)/sudoers $(DESTDIR)$(sudoersdir)/sudoers
+  		sudoers $(DESTDIR)$(sudoersdir)/sudoers
   
-  install-man:
+  install-doc: install-dirs ChangeLog
+! 	(cd $(srcdir) && for f in ChangeLog HISTORY LICENSE NEWS README TROUBLESHOOTING UPGRADE sample.*; do $(INSTALL) -O $(install_uid) -G $(install_gid) -M 0444 $$f $(DESTDIR)$(docdir); done)
+! 	@LDAP@(cd $(srcdir) && for f in README.LDAP schema.* sudoers2ldif; do $(INSTALL) -O $(install_uid) -G $(install_gid) -M 0444 $$f $(DESTDIR)$(docdir); done)
 ! 	$(INSTALL) -O $(install_uid) -G $(install_gid) -M 0444 @mansrcdir@/sudo.$(mantype) $(DESTDIR)$(mandirsu)/sudo.$(mansectsu)
   	@rm -f $(DESTDIR)$(mandirsu)/sudoedit.$(mansectsu)
   	ln $(DESTDIR)$(mandirsu)/sudo.$(mansectsu) $(DESTDIR)$(mandirsu)/sudoedit.$(mansectsu)
+! 	@REPLAY@$(INSTALL) -O $(install_uid) -G $(install_gid) -M 0444 @mansrcdir@/sudoreplay.$(mantype) $(DESTDIR)$(mandirsu)/sudoreplay.$(mansectsu)
 ! 	$(INSTALL) -O $(install_uid) -G $(install_gid) -M 0444 @mansrcdir@/visudo.$(mantype) $(DESTDIR)$(mandirsu)/visudo.$(mansectsu)
 ! 	$(INSTALL) -O $(install_uid) -G $(install_gid) -M 0444 @mansrcdir@/sudoers.$(mantype) $(DESTDIR)$(mandirform)/sudoers.$(mansectform)
 ! 	@LDAP@$(INSTALL) -O $(install_uid) -G $(install_gid) -M 0444 @mansrcdir@/sudoers.ldap.$(mantype) $(DESTDIR)$(mandirform)/sudoers.ldap.$(mansectform)
@@ -84,38 +91,46 @@
   check:
   	@echo nothing to check
   
---- 415,458 ----
-  ChangeLog:
-  	cvs2cl --follow-only trunk
+--- 491,542 ----
+  	    hg log --style=changelog -b default --date '<2010-01-18 00:00:00' >> $@; \
+  	fi
   
-! install: install-dirs install-binaries @INSTALL_NOEXEC@ install-sudoers install-man install-ldif
+! install: install-dirs install-binaries @INSTALL_NOEXEC@ install-sudoers install-doc install-ldif
   
   install-dirs:
   	$(SHELL) $(srcdir)/mkinstalldirs $(DESTDIR)$(sudodir) \
-  	    $(DESTDIR)$(visudodir) $(DESTDIR)$(sudoersdir) \
-  	    $(DESTDIR)$(mandirsu) $(DESTDIR)$(mandirform) \
-! 	    $(DESTDIR)$(noexecdir) $(DESTDIR)$(ldifdir)
+  	    $(DESTDIR)$(visudodir) $(DESTDIR)$(noexecdir) \
+  	    $(DESTDIR)$(sudoersdir) $(DESTDIR)$(docdir) \
+! 	    $(DESTDIR)$(mandirsu) $(DESTDIR)$(mandirform) \
+! 	    $(DESTDIR)$(ldifdir)
+  	$(SHELL) $(srcdir)/mkinstalldirs -m 0700 $(DESTDIR)$(timedir)
   
-  install-binaries: $(PROGS)
-! 	$(INSTALL) -O $(install_uid) -G $(install_gid) -m 4511 -s sudo $(DESTDIR)$(sudodir)/sudo
+  install-binaries: install-dirs $(PROGS)
+! 	$(INSTALL) -O $(install_uid) -G $(install_gid) -m 04511 sudo $(DESTDIR)$(sudodir)/sudo
   	rm -f $(DESTDIR)$(sudodir)/sudoedit
   	ln $(DESTDIR)$(sudodir)/sudo $(DESTDIR)$(sudodir)/sudoedit
-! 	$(INSTALL) -O $(install_uid) -G $(install_gid) -m 0511 -s visudo $(DESTDIR)$(visudodir)/visudo
-! @SELINUX@	$(INSTALL) -O $(install_uid) -G $(install_gid) -m 0111 -s sesh $(DESTDIR)$(libexecdir)/sesh
+! 	if [ -f sudoreplay ]; then $(INSTALL) -O $(install_uid) -G $(install_gid) -m 0111 sudoreplay $(DESTDIR)$(sudodir)/sudoreplay; fi
+! 	$(INSTALL) -O $(install_uid) -G $(install_gid) -m 0511 visudo $(DESTDIR)$(visudodir)/visudo
+! 	if [ -f sesh ]; then $(INSTALL) -O $(install_uid) -G $(install_gid) -m 0511 sesh $(DESTDIR)$(libexecdir)/sesh; fi
   
-! install-noexec: sudo_noexec.la $(MACH64)/sudo_noexec.la
-! 	test -f .libs/$(noexecfile) && $(INSTALL) -O $(install_uid) -G $(install_gid) -m 0755 .libs/$(noexecfile) $(DESTDIR)$(noexecdir)
-! 	test -f $(MACH64)/.libs/$(noexecfile) && $(INSTALL) -O $(install_uid) -G $(install_gid) -m 0755 $(MACH64)/.libs/$(noexecfile) $(DESTDIR)$(noexecdir)/$(MACH64)/
+! install-noexec: install-dirs libsudo_noexec.la $(MACH64)/libsudo_noexec.la
+! 	if [ -f .libs/lib$(noexecfile) ]; then $(INSTALL) -O $(install_uid) -G $(install_gid) -m 0755 .libs/lib$(noexecfile) $(DESTDIR)$(noexecdir)/$(noexecfile); fi
+! 	if [ -f $(MACH64)/.libs/lib$(noexecfile) ]; then $(INSTALL) -O $(install_uid) -G $(install_gid) -m 0755 $(MACH64)/.libs/lib$(noexecfile) $(DESTDIR)$(noexecdir)/$(MACH64)/$(noexecfile); fi
   
-  install-sudoers:
+  install-sudoers: install-dirs
+! 	$(INSTALL) -d -O $(sudoers_uid) -G $(sudoers_gid) -m 0750 \
+  	    $(DESTDIR)$(sudoersdir)/sudoers.d
   	test -f $(DESTDIR)$(sudoersdir)/sudoers || \
 ! 	    $(INSTALL) -O $(sudoers_uid) -G $(sudoers_gid) -m $(sudoers_mode) \
-  		$(srcdir)/sudoers $(DESTDIR)$(sudoersdir)/sudoers
+  		sudoers $(DESTDIR)$(sudoersdir)/sudoers
   
-  install-man:
+  install-doc: install-dirs ChangeLog
+! 	(cd $(srcdir) && for f in ChangeLog HISTORY LICENSE NEWS README TROUBLESHOOTING UPGRADE sample.*; do $(INSTALL) -O $(install_uid) -G $(install_gid) -m 0444 $$f $(DESTDIR)$(docdir); done)
+! 	@LDAP@(cd $(srcdir) && for f in README.LDAP schema.* sudoers2ldif; do $(INSTALL) -O $(install_uid) -G $(install_gid) -m 0444 $$f $(DESTDIR)$(docdir); done)
 ! 	$(INSTALL) -O $(install_uid) -G $(install_gid) -m 0444 @mansrcdir@/sudo.$(mantype) $(DESTDIR)$(mandirsu)/sudo.$(mansectsu)
   	@rm -f $(DESTDIR)$(mandirsu)/sudoedit.$(mansectsu)
   	ln $(DESTDIR)$(mandirsu)/sudo.$(mansectsu) $(DESTDIR)$(mandirsu)/sudoedit.$(mansectsu)
+! 	@REPLAY@$(INSTALL) -O $(install_uid) -G $(install_gid) -m 0444 @mansrcdir@/sudoreplay.$(mantype) $(DESTDIR)$(mandirsu)/sudoreplay.$(mansectsu)
 ! 	$(INSTALL) -O $(install_uid) -G $(install_gid) -m 0444 @mansrcdir@/visudo.$(mantype) $(DESTDIR)$(mandirsu)/visudo.$(mansectsu)
 ! 	$(INSTALL) -O $(install_uid) -G $(install_gid) -m 0444 @mansrcdir@/sudoers.$(mantype) $(DESTDIR)$(mandirform)/sudoers.$(mansectform)
 ! 	@LDAP@$(INSTALL) -O $(install_uid) -G $(install_gid) -m 0444 @mansrcdir@/sudoers.ldap.$(mantype) $(DESTDIR)$(mandirform)/sudoers.ldap.$(mansectform)
@@ -130,52 +145,53 @@
   	@echo nothing to check
   
 ***************
-*** 441,447 ****
+*** 524,530 ****
   
   distclean: clean
   	-rm -rf Makefile pathnames.h config.h config.status config.cache \
-! 		config.log libtool sudo_noexec.lo .libs $(GENERATED) \
-  		sudo.man sudoers.man sudoers.ldap.man visudo.man sudo_usage.h \
-  		Makefile.binary
+! 		config.log libtool sudoers sudo_noexec.lo .libs $(GENERATED) \
+  		sudo.man sudoers.man sudoers.ldap.man sudoreplay.man \
+  		visudo.man sudo_usage.h Makefile.binary
   
---- 463,469 ----
+--- 547,554 ----
   
   distclean: clean
   	-rm -rf Makefile pathnames.h config.h config.status config.cache \
-! 		config.log libtool sudo_noexec.lo $(MACH64) .libs $(GENERATED) \
-  		sudo.man sudoers.man sudoers.ldap.man visudo.man sudo_usage.h \
-  		Makefile.binary
+! 		config.log libtool sudoers sudo_noexec.lo $(MACH64) \
+! 		.libs $(GENERATED) \
+  		sudo.man sudoers.man sudoers.ldap.man sudoreplay.man \
+  		visudo.man sudo_usage.h Makefile.binary
   
-Common subdirectories: sudo-1.7.0/auth and sudo-1.7.0.sun/auth
-diff -c -r sudo-1.7.0/configure sudo-1.7.0.sun/configure
-*** sudo-1.7.0/configure	Tue Dec  9 22:04:36 2008
---- sudo-1.7.0.sun/configure	Tue Feb 17 13:30:46 2009
+Common subdirectories: sudo-1.7.4p4/auth and sudo-1.7.4p4.sun/auth
+diff -c -r sudo-1.7.4p4/configure sudo-1.7.4p4.sun/configure
+*** sudo-1.7.4p4/configure	Mon Sep  6 14:03:39 2010
+--- sudo-1.7.4p4.sun/configure	Fri Sep 17 14:22:18 2010
 ***************
-*** 23472,23478 ****
+*** 18438,18444 ****
   	fi
       fi
       if test X"$with_noexec" != X"no"; then
-! 	PROGS="${PROGS} sudo_noexec.la"
+! 	PROGS="${PROGS} libsudo_noexec.la"
   	INSTALL_NOEXEC="install-noexec"
   
   	eval noexec_file="$with_noexec"
---- 23472,23478 ----
+--- 18438,18444 ----
   	fi
       fi
       if test X"$with_noexec" != X"no"; then
-! 	PROGS="${PROGS} sudo_noexec"
+! 	PROGS="${PROGS} libsudo_noexec"
   	INSTALL_NOEXEC="install-noexec"
   
   	eval noexec_file="$with_noexec"
-Common subdirectories: sudo-1.7.0/emul and sudo-1.7.0.sun/emul
-diff -c -r sudo-1.7.0/env.c sudo-1.7.0.sun/env.c
-*** sudo-1.7.0/env.c	Sun Nov  9 15:13:12 2008
---- sudo-1.7.0.sun/env.c	Tue Feb 17 14:39:19 2009
+Common subdirectories: sudo-1.7.4p4/emul and sudo-1.7.4p4.sun/emul
+diff -c -r sudo-1.7.4p4/env.c sudo-1.7.4p4.sun/env.c
+*** sudo-1.7.4p4/env.c	Wed Aug 18 21:27:03 2010
+--- sudo-1.7.4p4.sun/env.c	Fri Sep 17 14:32:17 2010
 ***************
-*** 642,648 ****
---- 642,669 ----
+*** 792,798 ****
+--- 792,819 ----
   #  ifdef _AIX
-  	_sudo_setenv("LDR_PRELOAD", def_noexec_file, TRUE);
+  	sudo_setenv("LDR_PRELOAD", def_noexec_file, TRUE);
   #  else
 + #    ifdef __sun
 + 	{
@@ -183,22 +199,23 @@
 + 	    char path[MAXPATHLEN], path64[MAXPATHLEN];
 + 
 + 	    if (strlcpy(path, def_noexec_file, sizeof (path)) < sizeof (path))
-+ 	    	p = strrchr(path, '/');
++ 	        p = strrchr(path, '/');
 + 	    if (p != NULL) {
-+ 		/* full pathname specified; set both 32/64 LD_PRELOAD vars */
++ 	        /* full pathname specified; set both 32/64 LD_PRELOAD vars */
 + 		*p = '\0';
 + 		if (snprintf(path64, sizeof (path64), "%s/64/%s",
 + 			path, p+1) < sizeof (path64))
-+ 		    _sudo_setenv("LD_PRELOAD_64", path64, TRUE);
-+ 	        _sudo_setenv("LD_PRELOAD_32", def_noexec_file, TRUE);
++ 		    sudo_setenv("LD_PRELOAD_64", path64, TRUE);
++ 		sudo_setenv("LD_PRELOAD_32", def_noexec_file, TRUE);
 + 	    } else {
 + 	        /* relative pathname specified, ld.so.1 will search */
-+ 		_sudo_setenv("LD_PRELOAD", def_noexec_file,  TRUE);
++ 		sudo_setenv("LD_PRELOAD", def_noexec_file,  TRUE);
 + 	    }
 + 	}
 + #    else
-  	_sudo_setenv("LD_PRELOAD", def_noexec_file, TRUE);
+  	sudo_setenv("LD_PRELOAD", def_noexec_file, TRUE);
 + #    endif /* __sun */
   #  endif /* _AIX */
   # endif /* __osf__ || __sgi */
   #endif /* __darwin__ || __APPLE__ */
+Common subdirectories: sudo-1.7.4p4/m4 and sudo-1.7.4p4.sun/m4
Binary file usr/src/cmd/sudo/sudo-1.7.0.tar.gz has changed
Binary file usr/src/cmd/sudo/sudo-1.7.4p4.tar.gz has changed
--- a/usr/src/cmd/sudo/sunman-sedscript	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/cmd/sudo/sunman-sedscript	Fri Oct 15 22:35:17 2010 -0700
@@ -1,8 +1,8 @@
 1i\
-\.\\"\
+'\\" t\
 \.\\" Modified for Solaris to to add the Solaris stability classification,\
 \.\\" and to add a note about auditing and source availability\
-\.\\" 
+\.\\"\ 
 $a\
 \.\\" Begin Sun update\
 .SH ATTRIBUTES\
--- a/usr/src/cmd/vim/runtime.patch	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/cmd/vim/runtime.patch	Fri Oct 15 22:35:17 2010 -0700
@@ -3101,7 +3101,7 @@
 +      \%f:%l:%c:\ %m,
        \%f:%l:\ %m,
        \\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
-       \10/09/28*\\a[%*\\d]:\ Entering\ directory\ `%f',
+       \10/10/11*\\a[%*\\d]:\ Entering\ directory\ `%f',
 diff -Nur runtime.patched/compiler/jikes.vim runtime/compiler/jikes.vim
 --- runtime.patched/compiler/jikes.vim	2004-06-07 07:32:36.000000000 -0700
 +++ runtime/compiler/jikes.vim	2009-01-28 08:23:44.000000000 -0800
--- a/usr/src/lib/gd2/Makefile.sfw	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/lib/gd2/Makefile.sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -19,9 +19,9 @@
 # CDDL HEADER END
 #
 #
-# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-# ident	"@(#)Makefile.sfw	1.8	10/04/15 SMI"
+# ident	"@(#)Makefile.sfw	1.9	10/10/05 SMI"
 
 #
 # This makefile builds both 32 and 64 bit versions of the library.
@@ -35,15 +35,11 @@
 LARGEFILES=	-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
 PREFIX = /usr
 
-# We need to do this because of missing freetype-config for 64-bit,
-# and because gd's libtool generator adds the wrong RPATH to LDFLAGS
-EXTRA_LDFLAGS32 = -Y P,/usr/sfw/lib:/usr/lib -i
-EXTRA_LDFLAGS32 += -L/usr/sfw/lib
-EXTRA_LDFLAGS32 += -R/usr/sfw/lib
+EXTRA_LDFLAGS32 += -L/usr/X11/lib
+EXTRA_LDFLAGS32 += -R/usr/X11/lib
 
-EXTRA_LDFLAGS64 = -Y P,/usr/sfw/lib/$(MACH64):/usr/lib/$(MACH64) -i
-EXTRA_LDFLAGS64 += -L/usr/sfw/lib/$(MACH64)
-EXTRA_LDFLAGS64 += -R/usr/sfw/lib/$(MACH64)
+EXTRA_LDFLAGS64 += -L/usr/X11/lib/$(MACH64)
+EXTRA_LDFLAGS64 += -R/usr/X11/lib/$(MACH64)
 
 include ../Makefile.lib
 
@@ -79,7 +75,7 @@
 
 $(VER)/config.status: $(VER)/configure
 	(cd $(VER); \
-	    env "CC=$(CC)" "CFLAGS=$(CPPFLAGS) $(CFLAGS)" \
+	    env - "CC=$(CC)" "CFLAGS=$(CPPFLAGS) $(CFLAGS)" \
 	    "CPP=$(CC) $(CFLAGS) $(CPPFLAGS) -E" \
 	    "CXX=$(CCC)" "CXXFLAGS=$(CPPFLAGS) $(CCFLAGS)" \
 	    "CXXCPP=$(CCC) $(CPPFLAGS) $(CCFLAGS) -E" \
@@ -87,6 +83,8 @@
 	    "XTRA_LDFLAGS=$(EXTRA_LDFLAGS32)" \
 	    "CXXLDFLAGS=$(LDFLAGS)" \
 	    "CXXLD=$(CCC) $(LDFLAGS)" \
+	    "LIBPNG_CONFIG=$(PREFIX)/bin/libpng-config" \
+	    "FREETYPE_CONFIG=$(PREFIX)/bin/freetype-config" \
 	    PATH=$(SFW_PATH) \
 	    "MAKE=$(CCSMAKE)" \
 	    ./configure --prefix=$(PREFIX) \
@@ -97,14 +95,14 @@
 	    --with-png=$(PREFIX) \
 	    --with-jpeg=$(PREFIX) \
 	    --with-fontconfig=$(PREFIX) \
-	    --with-freetype=$(PREFIX)/sfw \
+	    --with-freetype=$(PREFIX) \
 	    --with-xpm=$(PREFIX)/X11 \
 	    --with-x \
 	    --with-pic)
 
 $(VER64)/config.status: $(VER64)/configure
 	(cd $(VER64); \
-	    env "CC=$(CC64)" "CFLAGS=$(CPPFLAGS) $(CFLAGS64)" \
+	    env - "CC=$(CC64)" "CFLAGS=$(CPPFLAGS) $(CFLAGS64)" \
 	    "CPP=$(CC64) $(CFLAGS64) $(CPPFLAGS) -E" \
 	    "CXX=$(CCC64)" "CXXFLAGS=$(CPPFLAGS) $(CCFLAGS64)" \
 	    "CXXCPP=$(CCC64) $(CPPFLAGS) $(CCFLAGS64) -E" \
@@ -114,8 +112,8 @@
 	    "CXXLD=$(CCC64) $(EXTRA_LDFLAGS64)" \
 	    "CXXLINKLIB=$(CCC64) $(EXTRA_LDFLAGS64)" \
 	    "MACH64=$(MACH64)" \
-	    "LIBPNG12_CONFIG=$(PREFIX)/bin/libpng12-config" \
-	    "LIBPNG_CONFIG=$(PREFIX)/bin/libpng-config" \
+	    "LIBPNG_CONFIG=$(PREFIX)/bin/$(MACH64)/libpng-config" \
+	    "FREETYPE_CONFIG=$(PREFIX)/bin/$(MACH64)/freetype-config" \
 	    PATH=$(SFW_PATH) \
 	    "MAKE=$(CCSMAKE)" \
 	    ./configure --prefix=$(PREFIX) \
@@ -131,7 +129,7 @@
 	    --with-png=$(PREFIX) \
 	    --with-jpeg=$(PREFIX) \
 	    --with-fontconfig=$(PREFIX) \
-	    --with-freetype=$(PREFIX)/sfw \
+	    --with-freetype=$(PREFIX) \
 	    --with-xpm=$(PREFIX)/X11 \
 	    --with-x \
 	    --with-pic)
@@ -142,6 +140,7 @@
 	( cd $(VER) ; \
 	    gpatch -p0 <../Solaris/Makefile.in.0.diff ; \
 	    gpatch -p0 <../Solaris/Makefile.in.1.diff ; \
+	    gpatch -p0 <../Solaris/configure.2.diff ; \
 	    gpatch -p0 <../Solaris/default_fontpath.diff ; \
 	    touch -acm configure ; \
 	    chmod 0755 configure ; \
@@ -153,6 +152,7 @@
 	( cd $(VER64) ; \
 	    gpatch -p0 <../Solaris/Makefile.in.0.diff ; \
 	    gpatch -p0 <../Solaris/Makefile.in.1.diff ; \
+	    gpatch -p0 <../Solaris/configure.2.diff ; \
 	    gpatch -p0 <../Solaris/default_fontpath.diff ; \
 	    touch -acm configure ; \
 	    chmod 0755 configure ; \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/lib/gd2/Solaris/configure.2.diff	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,4392 @@
+--- configure	2007-04-23 10:57:52.000000000 -0400
++++ configure	2010-10-05 12:06:03.000000000 -0400
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.61 for GD 2.0.34.
++# Generated by GNU Autoconf 2.61 for GD 2.0.35.
+ #
+ # Report bugs to <http://bugs.libgd.org>.
+ #
+@@ -728,8 +728,8 @@
+ # Identity of this package.
+ PACKAGE_NAME='GD'
+ PACKAGE_TARNAME='gd'
+-PACKAGE_VERSION='2.0.34'
+-PACKAGE_STRING='GD 2.0.34'
++PACKAGE_VERSION='2.0.35'
++PACKAGE_STRING='GD 2.0.35'
+ PACKAGE_BUGREPORT='http://bugs.libgd.org'
+ 
+ ac_unique_file="gd.c"
+@@ -826,6 +826,7 @@
+ INSTALL_PROGRAM
+ INSTALL_SCRIPT
+ INSTALL_DATA
++am__isrc
+ CYGPATH_W
+ PACKAGE
+ VERSION
+@@ -861,12 +862,15 @@
+ CCDEPMODE
+ am__fastdepCC_TRUE
+ am__fastdepCC_FALSE
++SED
+ GREP
+ EGREP
+ LN_S
+ ECHO
+ AR
+ RANLIB
++DSYMUTIL
++NMEDIT
+ CPP
+ CXX
+ CXXFLAGS
+@@ -882,7 +886,6 @@
+ XMKMF
+ LIBICONV
+ LTLIBICONV
+-LIBPNG12_CONFIG
+ LIBPNG_CONFIG
+ FREETYPE_CONFIG
+ acx_pthread_config
+@@ -1410,7 +1413,7 @@
+   # Omit some internal or obsolete options to make the list less imposing.
+   # This message is too long to be a string in the A/UX 3.1 sh.
+   cat <<_ACEOF
+-\`configure' configures GD 2.0.34 to adapt to many kinds of systems.
++\`configure' configures GD 2.0.35 to adapt to many kinds of systems.
+ 
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+ 
+@@ -1485,7 +1488,7 @@
+ 
+ if test -n "$ac_init_help"; then
+   case $ac_init_help in
+-     short | recursive ) echo "Configuration of GD 2.0.34:";;
++     short | recursive ) echo "Configuration of GD 2.0.35:";;
+    esac
+   cat <<\_ACEOF
+ 
+@@ -1598,7 +1601,7 @@
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+   cat <<\_ACEOF
+-GD configure 2.0.34
++GD configure 2.0.35
+ generated by GNU Autoconf 2.61
+ 
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+@@ -1612,7 +1615,7 @@
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+ 
+-It was created by GD $as_me 2.0.34, which was
++It was created by GD $as_me 2.0.35, which was
+ generated by GNU Autoconf 2.61.  Invocation command line was
+ 
+   $ $0 $@
+@@ -2126,7 +2129,7 @@
+ 
+ GDLIB_MAJOR=2
+ GDLIB_MINOR=0
+-GDLIB_REVISION=34
++GDLIB_REVISION=35
+ GDLIBNAME=gd
+ #Expanded by tests later in this file. TBB 2.0.26
+ #2.0.28: GIF is standard now. Doesn't depend on anything else,
+@@ -2139,7 +2142,8 @@
+ 
+ 
+ 
+-am__api_version="1.9"
++am__api_version='1.10'
++
+ # Find a good install program.  We prefer a C program (faster),
+ # so one script is as good as another.  But avoid the broken or
+ # incompatible versions:
+@@ -2291,38 +2295,53 @@
+ echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+ fi
+ 
+-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+-  # We used to keeping the `.' as first argument, in order to
+-  # allow $(mkdir_p) to be used without argument.  As in
+-  #   $(mkdir_p) $(somedir)
+-  # where $(somedir) is conditionally defined.  However this is wrong
+-  # for two reasons:
+-  #  1. if the package is installed by a user who cannot write `.'
+-  #     make install will fail,
+-  #  2. the above comment should most certainly read
+-  #     $(mkdir_p) $(DESTDIR)$(somedir)
+-  #     so it does not work when $(somedir) is undefined and
+-  #     $(DESTDIR) is not.
+-  #  To support the latter case, we have to write
+-  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+-  #  so the `.' trick is pointless.
+-  mkdir_p='mkdir -p --'
+-else
+-  # On NextStep and OpenStep, the `mkdir' command does not
+-  # recognize any option.  It will interpret all options as
+-  # directories to create, and then abort because `.' already
+-  # exists.
+-  for d in ./-p ./--version;
+-  do
+-    test -d $d && rmdir $d
+-  done
+-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+-  if test -f "$ac_aux_dir/mkinstalldirs"; then
+-    mkdir_p='$(mkinstalldirs)'
++{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
++echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; }
++if test -z "$MKDIR_P"; then
++  if test "${ac_cv_path_mkdir+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_prog in mkdir gmkdir; do
++	 for ac_exec_ext in '' $ac_executable_extensions; do
++	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
++	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
++	     'mkdir (GNU coreutils) '* | \
++	     'mkdir (coreutils) '* | \
++	     'mkdir (fileutils) '4.1*)
++	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
++	       break 3;;
++	   esac
++	 done
++       done
++done
++IFS=$as_save_IFS
++
++fi
++
++  if test "${ac_cv_path_mkdir+set}" = set; then
++    MKDIR_P="$ac_cv_path_mkdir -p"
+   else
+-    mkdir_p='$(install_sh) -d'
++    # As a last resort, use the slow shell script.  Don't cache a
++    # value for MKDIR_P within a source directory, because that will
++    # break other packages using the cache if that directory is
++    # removed, or if the value is a relative name.
++    test -d ./--version && rmdir ./--version
++    MKDIR_P="$ac_install_sh -d"
+   fi
+ fi
++{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5
++echo "${ECHO_T}$MKDIR_P" >&6; }
++
++mkdir_p="$MKDIR_P"
++case $mkdir_p in
++  [\\/$]* | ?:[\\/]*) ;;
++  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
++esac
+ 
+ for ac_prog in gawk mawk nawk awk
+ do
+@@ -2405,13 +2424,17 @@
+ fi
+ rmdir .tst 2>/dev/null
+ 
++if test "`cd $srcdir && pwd`" != "`pwd`"; then
++  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
++  # is not polluted with repeated "-I."
++  am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+-if test "`cd $srcdir && pwd`" != "`pwd`" &&
+-   test -f $srcdir/config.status; then
++  if test -f $srcdir/config.status; then
+   { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
+ echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
++fi
+ 
+ # test whether we have cygpath
+ if test -z "$CYGPATH_W"; then
+@@ -2425,7 +2448,7 @@
+ 
+ # Define the identity of the package.
+  PACKAGE='gd'
+- VERSION='2.0.34'
++ VERSION='2.0.35'
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+@@ -2453,7 +2476,7 @@
+ 
+ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+ 
+-install_sh=${install_sh-"$am_aux_dir/install-sh"}
++install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
+ 
+ # Installed binaries are usually stripped using `strip' when the user
+ # run `make install-strip'.  However `strip' might not be the right
+@@ -2557,7 +2580,7 @@
+ fi
+ 
+ fi
+-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
++INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+ 
+ # We need awk for the "check" target.  The system "awk" is bad on
+ # some platforms.
+@@ -3559,8 +3582,6 @@
+   am_depcomp="$ac_aux_dir/depcomp"
+   AMDEPBACKSLASH='\'
+ fi
+-
+-
+ if test "x$enable_dependency_tracking" != xno; then
+   AMDEP_TRUE=
+   AMDEP_FALSE='#'
+@@ -3571,7 +3592,6 @@
+ 
+ 
+ 
+-
+ depcc="$CC"   am_compiler_list=
+ 
+ { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+@@ -3639,6 +3659,7 @@
+        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+        $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+          >/dev/null 2>conftest.err &&
++       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+@@ -3668,8 +3689,6 @@
+ echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
+ CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+ 
+-
+-
+ if
+   test "x$enable_dependency_tracking" != xno \
+   && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+@@ -4424,6 +4443,7 @@
+        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+        $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+          >/dev/null 2>conftest.err &&
++       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+@@ -4453,8 +4473,6 @@
+ echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
+ CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+ 
+-
+-
+ if
+   test "x$enable_dependency_tracking" != xno \
+   && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+@@ -4635,12 +4653,13 @@
+   test -z "$as_dir" && as_dir=.
+   for lt_ac_prog in sed gsed; do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
++      if { test -f "$as_dir/$lt_ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$lt_ac_prog$ac_exec_ext"; }; then
+         lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+       fi
+     done
+   done
+ done
++IFS=$as_save_IFS
+ lt_ac_max=0
+ lt_ac_count=0
+ # Add /usr/xpg4/bin/sed as it is typically found on Solaris
+@@ -4675,6 +4694,7 @@
+ fi
+ 
+ SED=$lt_cv_path_SED
++
+ { echo "$as_me:$LINENO: result: $SED" >&5
+ echo "${ECHO_T}$SED" >&6; }
+ 
+@@ -5036,8 +5056,8 @@
+ echo "${ECHO_T}no, using $LN_S" >&6; }
+ fi
+ 
+-{ echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
+-echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6; }
++{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
++echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; }
+ if test "${lt_cv_deplibs_check_method+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+@@ -5056,7 +5076,7 @@
+ # whether `pass_all' will *always* work, you probably want this one.
+ 
+ case $host_os in
+-aix4* | aix5*)
++aix[4-9]*)
+   lt_cv_deplibs_check_method=pass_all
+   ;;
+ 
+@@ -5078,9 +5098,15 @@
+ 
+ mingw* | pw32*)
+   # Base MSYS/MinGW do not provide the 'file' command needed by
+-  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
++  # func_win32_libid shell function, so use a weaker test based on 'objdump',
++  # unless we find 'file', for example because we are cross-compiling.
++  if ( file / ) >/dev/null 2>&1; then
++    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
++    lt_cv_file_magic_cmd='func_win32_libid'
++  else
+   lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+   lt_cv_file_magic_cmd='$OBJDUMP -f'
++  fi
+   ;;
+ 
+ darwin* | rhapsody*)
+@@ -5125,7 +5151,7 @@
+   esac
+   ;;
+ 
+-interix3*)
++interix[3-9]*)
+   # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+   lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+   ;;
+@@ -5145,7 +5171,7 @@
+   lt_cv_deplibs_check_method=pass_all
+   ;;
+ 
+-netbsd* | netbsdelf*-gnu)
++netbsd*)
+   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+   else
+@@ -5175,6 +5201,10 @@
+   lt_cv_deplibs_check_method=pass_all
+   ;;
+ 
++rdos*)
++  lt_cv_deplibs_check_method=pass_all
++  ;;
++
+ solaris*)
+   lt_cv_deplibs_check_method=pass_all
+   ;;
+@@ -5262,7 +5292,7 @@
+   ;;
+ *-*-irix6*)
+   # Find out which ABI we are using.
+-  echo '#line 5265 "configure"' > conftest.$ac_ext
++  echo '#line 5295 "configure"' > conftest.$ac_ext
+   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+@@ -5297,7 +5327,8 @@
+   rm -rf conftest*
+   ;;
+ 
+-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
++x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
++s390*-*linux*|sparc*-*linux*)
+   # Find out which ABI we are using.
+   echo 'int i;' > conftest.$ac_ext
+   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+@@ -5308,6 +5339,9 @@
+     case `/usr/bin/file conftest.o` in
+     *32-bit*)
+       case $host in
++        x86_64-*kfreebsd*-gnu)
++          LD="${LD-ld} -m elf_i386_fbsd"
++          ;;
+         x86_64-*linux*)
+           LD="${LD-ld} -m elf_i386"
+           ;;
+@@ -5324,6 +5358,9 @@
+       ;;
+     *64-bit*)
+       case $host in
++        x86_64-*kfreebsd*-gnu)
++          LD="${LD-ld} -m elf_x86_64_fbsd"
++          ;;
+         x86_64-*linux*)
+           LD="${LD-ld} -m elf_x86_64"
+           ;;
+@@ -5427,7 +5464,11 @@
+     *64-bit*)
+       case $lt_cv_prog_gnu_ld in
+       yes*) LD="${LD-ld} -m elf64_sparc" ;;
+-      *)    LD="${LD-ld} -64" ;;
++      *)
++        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
++	  LD="${LD-ld} -64"
++	fi
++	;;
+       esac
+       ;;
+     esac
+@@ -6491,6 +6532,7 @@
+        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+        $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+          >/dev/null 2>conftest.err &&
++       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+@@ -6520,8 +6562,6 @@
+ echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; }
+ CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+ 
+-
+-
+ if
+   test "x$enable_dependency_tracking" != xno \
+   && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+@@ -7030,7 +7070,6 @@
+ 
+ 
+ # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+-
+ # find the maximum length of command line arguments
+ { echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+ echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; }
+@@ -7117,9 +7156,11 @@
+     fi
+     ;;
+   *)
+-    # If test is not a shell built-in, we'll probably end up computing a
+-    # maximum length that is only half of the actual maximum length, but
+-    # we can't tell.
++    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
++    if test -n "$lt_cv_sys_max_cmd_len"; then
++      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
++      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
++    else
+     SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+     while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
+ 	       = "XX$teststring") >/dev/null 2>&1 &&
+@@ -7135,6 +7176,7 @@
+     # amounts of additional arguments before passing them to the linker.
+     # It appears as though 1/2 is a usable value.
+     lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
++    fi
+     ;;
+   esac
+ 
+@@ -7151,6 +7193,7 @@
+ 
+ 
+ 
++
+ # Check for command to grab the raw symbol name followed by C symbol from nm.
+ { echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+ echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; }
+@@ -7341,7 +7384,7 @@
+     echo "$progname: failed program was:" >&5
+     cat conftest.$ac_ext >&5
+   fi
+-  rm -f conftest* conftst*
++  rm -rf conftest* conftst*
+ 
+   # Do not use the global_symbol_pipe unless it works.
+   if test "$pipe_works" = yes; then
+@@ -7739,7 +7782,7 @@
+ test -z "$ac_objext" && ac_objext=o
+ 
+ # Determine commands to create old-style static archives.
+-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+ old_postinstall_cmds='chmod 644 $oldlib'
+ old_postuninstall_cmds=
+ 
+@@ -7901,6 +7944,318 @@
+   ;;
+ esac
+ 
++
++  case $host_os in
++    rhapsody* | darwin*)
++    if test -n "$ac_tool_prefix"; then
++  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
++set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
++if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  if test -n "$DSYMUTIL"; then
++  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++IFS=$as_save_IFS
++
++fi
++fi
++DSYMUTIL=$ac_cv_prog_DSYMUTIL
++if test -n "$DSYMUTIL"; then
++  { echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
++echo "${ECHO_T}$DSYMUTIL" >&6; }
++else
++  { echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_DSYMUTIL"; then
++  ac_ct_DSYMUTIL=$DSYMUTIL
++  # Extract the first word of "dsymutil", so it can be a program name with args.
++set dummy dsymutil; ac_word=$2
++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
++if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  if test -n "$ac_ct_DSYMUTIL"; then
++  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
++if test -n "$ac_ct_DSYMUTIL"; then
++  { echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
++echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6; }
++else
++  { echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6; }
++fi
++
++  if test "x$ac_ct_DSYMUTIL" = x; then
++    DSYMUTIL=":"
++  else
++    case $cross_compiling:$ac_tool_warned in
++yes:)
++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
++whose name does not start with the host triplet.  If you think this
++configuration is useful to you, please write to [email protected]." >&5
++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
++whose name does not start with the host triplet.  If you think this
++configuration is useful to you, please write to [email protected]." >&2;}
++ac_tool_warned=yes ;;
++esac
++    DSYMUTIL=$ac_ct_DSYMUTIL
++  fi
++else
++  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
++fi
++
++    if test -n "$ac_tool_prefix"; then
++  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
++set dummy ${ac_tool_prefix}nmedit; ac_word=$2
++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
++if test "${ac_cv_prog_NMEDIT+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  if test -n "$NMEDIT"; then
++  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++IFS=$as_save_IFS
++
++fi
++fi
++NMEDIT=$ac_cv_prog_NMEDIT
++if test -n "$NMEDIT"; then
++  { echo "$as_me:$LINENO: result: $NMEDIT" >&5
++echo "${ECHO_T}$NMEDIT" >&6; }
++else
++  { echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_NMEDIT"; then
++  ac_ct_NMEDIT=$NMEDIT
++  # Extract the first word of "nmedit", so it can be a program name with args.
++set dummy nmedit; ac_word=$2
++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
++if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  if test -n "$ac_ct_NMEDIT"; then
++  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++    ac_cv_prog_ac_ct_NMEDIT="nmedit"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
++if test -n "$ac_ct_NMEDIT"; then
++  { echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
++echo "${ECHO_T}$ac_ct_NMEDIT" >&6; }
++else
++  { echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6; }
++fi
++
++  if test "x$ac_ct_NMEDIT" = x; then
++    NMEDIT=":"
++  else
++    case $cross_compiling:$ac_tool_warned in
++yes:)
++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
++whose name does not start with the host triplet.  If you think this
++configuration is useful to you, please write to [email protected]." >&5
++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
++whose name does not start with the host triplet.  If you think this
++configuration is useful to you, please write to [email protected]." >&2;}
++ac_tool_warned=yes ;;
++esac
++    NMEDIT=$ac_ct_NMEDIT
++  fi
++else
++  NMEDIT="$ac_cv_prog_NMEDIT"
++fi
++
++
++    { echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
++echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6; }
++if test "${lt_cv_apple_cc_single_mod+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  lt_cv_apple_cc_single_mod=no
++      if test -z "${LT_MULTI_MODULE}"; then
++   # By default we will add the -single_module flag. You can override
++   # by either setting the environment variable LT_MULTI_MODULE
++   # non-empty at configure time, or by adding -multi_module to the
++   # link flags.
++   echo "int foo(void){return 1;}" > conftest.c
++   $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
++     -dynamiclib ${wl}-single_module conftest.c
++   if test -f libconftest.dylib; then
++     lt_cv_apple_cc_single_mod=yes
++     rm -rf libconftest.dylib*
++   fi
++   rm conftest.c
++      fi
++fi
++{ echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
++echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; }
++    { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
++echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; }
++if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  lt_cv_ld_exported_symbols_list=no
++      save_LDFLAGS=$LDFLAGS
++      echo "_main" > conftest.sym
++      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
++      cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++
++int
++main ()
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (ac_try="$ac_link"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
++  (eval "$ac_link") 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } && {
++	 test -z "$ac_c_werror_flag" ||
++	 test ! -s conftest.err
++       } && test -s conftest$ac_exeext &&
++       $as_test_x conftest$ac_exeext; then
++  lt_cv_ld_exported_symbols_list=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++	lt_cv_ld_exported_symbols_list=no
++fi
++
++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
++      conftest$ac_exeext conftest.$ac_ext
++   LDFLAGS="$save_LDFLAGS"
++
++fi
++{ echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
++echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6; }
++    case $host_os in
++    rhapsody* | darwin1.[0123])
++      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
++    darwin1.*)
++     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
++    darwin*)
++      # if running on 10.5 or later, the deployment target defaults
++      # to the OS version, if on x86, and 10.4, the deployment
++      # target defaults to 10.4. Don't you love it?
++      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
++   10.0,*86*-darwin8*|10.0,*-darwin[91]*)
++     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
++   10.[012]*)
++     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
++   10.*)
++     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
++      esac
++    ;;
++  esac
++    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
++      _lt_dar_single_mod='$single_module'
++    fi
++    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
++      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
++    else
++      _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}"
++    fi
++    if test "$DSYMUTIL" != ":"; then
++      _lt_dsymutil="~$DSYMUTIL \$lib || :"
++    else
++      _lt_dsymutil=
++    fi
++    ;;
++  esac
++
++
+ enable_dlopen=no
+ enable_win32_dll=no
+ 
+@@ -7939,10 +8294,10 @@
+ objext=$objext
+ 
+ # Code to be used in simple compile tests
+-lt_simple_compile_test_code="int some_variable = 0;\n"
++lt_simple_compile_test_code="int some_variable = 0;"
+ 
+ # Code to be used in simple link tests
+-lt_simple_link_test_code='int main(){return(0);}\n'
++lt_simple_link_test_code='int main(){return(0);}'
+ 
+ 
+ # If no C compiler was specified, use CC.
+@@ -7957,16 +8312,16 @@
+ 
+ # save warnings/boilerplate of simple test code
+ ac_outfile=conftest.$ac_objext
+-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
++echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+ eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+ _lt_compiler_boilerplate=`cat conftest.err`
+ $rm conftest*
+ 
+ ac_outfile=conftest.$ac_objext
+-printf "$lt_simple_link_test_code" >conftest.$ac_ext
++echo "$lt_simple_link_test_code" >conftest.$ac_ext
+ eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+ _lt_linker_boilerplate=`cat conftest.err`
+-$rm conftest*
++$rm -r conftest*
+ 
+ 
+ 
+@@ -7983,7 +8338,7 @@
+ else
+   lt_cv_prog_compiler_rtti_exceptions=no
+   ac_outfile=conftest.$ac_objext
+-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+    lt_compiler_flag="-fno-rtti -fno-exceptions"
+    # Insert the option either (1) after the last *FLAGS variable, or
+    # (2) before a word containing "conftest.", or (3) at the end.
+@@ -7994,11 +8349,11 @@
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:7997: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:8352: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>conftest.err)
+    ac_status=$?
+    cat conftest.err >&5
+-   echo "$as_me:8001: \$? = $ac_status" >&5
++   echo "$as_me:8356: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s "$ac_outfile"; then
+      # The compiler can only warn and ignore the option if not recognized
+      # So say no if there are warnings other than the usual output.
+@@ -8049,13 +8404,15 @@
+       lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+       ;;
+ 
+-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
++    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+       # PIC is the default for these OSes.
+       ;;
+ 
+-    mingw* | pw32* | os2*)
++    mingw* | cygwin* | pw32* | os2*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
++      # Although the cygwin gcc ignores -fPIC, still need this for old-style
++      # (--disable-auto-import) libraries
+       lt_prog_compiler_pic='-DDLL_EXPORT'
+       ;;
+ 
+@@ -8065,7 +8422,7 @@
+       lt_prog_compiler_pic='-fno-common'
+       ;;
+ 
+-    interix3*)
++    interix[3-9]*)
+       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+       # Instead, we relocate shared libraries at runtime.
+       ;;
+@@ -8123,7 +8480,7 @@
+        esac
+        ;;
+ 
+-    mingw* | pw32* | os2*)
++    mingw* | cygwin* | pw32* | os2*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
+       lt_prog_compiler_pic='-DDLL_EXPORT'
+@@ -8175,6 +8532,22 @@
+         # All Alpha code is PIC.
+         lt_prog_compiler_static='-non_shared'
+         ;;
++      *)
++        case `$CC -V 2>&1 | sed 5q` in
++	*Sun\ C*)
++	  # Sun C 5.9
++	  lt_prog_compiler_pic='-KPIC'
++	  lt_prog_compiler_static='-Bstatic'
++	  lt_prog_compiler_wl='-Wl,'
++	  ;;
++	*Sun\ F*)
++	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
++	  lt_prog_compiler_pic='-KPIC'
++	  lt_prog_compiler_static='-Bstatic'
++	  lt_prog_compiler_wl=''
++	  ;;
++	esac
++	;;
+       esac
+       ;;
+ 
+@@ -8184,6 +8557,10 @@
+       lt_prog_compiler_static='-non_shared'
+       ;;
+ 
++    rdos*)
++      lt_prog_compiler_static='-non_shared'
++      ;;
++
+     solaris*)
+       lt_prog_compiler_pic='-KPIC'
+       lt_prog_compiler_static='-Bstatic'
+@@ -8246,12 +8623,12 @@
+ 
+ { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+ echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; }
+-if test "${lt_prog_compiler_pic_works+set}" = set; then
++if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  lt_prog_compiler_pic_works=no
++  lt_cv_prog_compiler_pic_works=no
+   ac_outfile=conftest.$ac_objext
+-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+    lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+    # Insert the option either (1) after the last *FLAGS variable, or
+    # (2) before a word containing "conftest.", or (3) at the end.
+@@ -8262,27 +8639,27 @@
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:8265: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:8642: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>conftest.err)
+    ac_status=$?
+    cat conftest.err >&5
+-   echo "$as_me:8269: \$? = $ac_status" >&5
++   echo "$as_me:8646: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s "$ac_outfile"; then
+      # The compiler can only warn and ignore the option if not recognized
+      # So say no if there are warnings other than the usual output.
+      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+-       lt_prog_compiler_pic_works=yes
++       lt_cv_prog_compiler_pic_works=yes
+      fi
+    fi
+    $rm conftest*
+ 
+ fi
+-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
+-echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; }
++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
++echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6; }
+ 
+-if test x"$lt_prog_compiler_pic_works" = xyes; then
++if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+     case $lt_prog_compiler_pic in
+      "" | " "*) ;;
+      *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+@@ -8309,13 +8686,13 @@
+ wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+ { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+ echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
+-if test "${lt_prog_compiler_static_works+set}" = set; then
++if test "${lt_cv_prog_compiler_static_works+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  lt_prog_compiler_static_works=no
++  lt_cv_prog_compiler_static_works=no
+    save_LDFLAGS="$LDFLAGS"
+    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
++   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+      # The linker can only warn and ignore the option if not recognized
+      # So say no if there are warnings
+@@ -8325,20 +8702,20 @@
+        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+        if diff conftest.exp conftest.er2 >/dev/null; then
+-         lt_prog_compiler_static_works=yes
++         lt_cv_prog_compiler_static_works=yes
+        fi
+      else
+-       lt_prog_compiler_static_works=yes
++       lt_cv_prog_compiler_static_works=yes
+      fi
+    fi
+-   $rm conftest*
++   $rm -r conftest*
+    LDFLAGS="$save_LDFLAGS"
+ 
+ fi
+-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
+-echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; }
++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
++echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6; }
+ 
+-if test x"$lt_prog_compiler_static_works" = xyes; then
++if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+     :
+ else
+     lt_prog_compiler_static=
+@@ -8355,7 +8732,7 @@
+    mkdir conftest
+    cd conftest
+    mkdir out
+-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ 
+    lt_compiler_flag="-o out/conftest2.$ac_objext"
+    # Insert the option either (1) after the last *FLAGS variable, or
+@@ -8366,11 +8743,11 @@
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:8369: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:8746: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>out/conftest.err)
+    ac_status=$?
+    cat out/conftest.err >&5
+-   echo "$as_me:8373: \$? = $ac_status" >&5
++   echo "$as_me:8750: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s out/conftest2.$ac_objext
+    then
+      # The compiler can only warn and ignore the option if not recognized
+@@ -8450,12 +8827,13 @@
+   # it will be wrapped by ` (' and `)$', so one must not match beginning or
+   # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+   # as well as any symbol that contains `d'.
+-  exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
++  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+   # platforms (ab)use it in PIC code, but their linkers get confused if
+   # the symbol is explicitly referenced.  Since portable code cannot
+   # rely on this symbol name, it's probably fine to never include it in
+   # preloaded symbol tables.
++  # Exclude shared library initialization/finalization symbols.
+   extract_expsyms_cmds=
+   # Just being paranoid about ensuring that cc_basename is set.
+   for cc_temp in $compiler""; do
+@@ -8514,7 +8892,7 @@
+ 
+     # See if GNU ld supports shared libraries.
+     case $host_os in
+-    aix3* | aix4* | aix5*)
++    aix[3-9]*)
+       # On AIX/PPC, the GNU linker is very broken
+       if test "$host_cpu" != ia64; then
+ 	ld_shlibs=no
+@@ -8562,7 +8940,7 @@
+       allow_undefined_flag=unsupported
+       always_export_symbols=no
+       enable_shared_with_static_runtimes=yes
+-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
++      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+ 
+       if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+         archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+@@ -8580,7 +8958,7 @@
+       fi
+       ;;
+ 
+-    interix3*)
++    interix[3-9]*)
+       hardcode_direct=no
+       hardcode_shlibpath_var=no
+       hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+@@ -8595,7 +8973,7 @@
+       archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+       ;;
+ 
+-    linux* | k*bsd*-gnu)
++    gnu* | linux* | k*bsd*-gnu)
+       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ 	tmp_addflag=
+ 	case $cc_basename,$host_cpu in
+@@ -8613,21 +8991,29 @@
+ 	ifc* | ifort*)			# Intel Fortran compiler
+ 	  tmp_addflag=' -nofor_main' ;;
+ 	esac
+-	archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++	case `$CC -V 2>&1 | sed 5q` in
++	*Sun\ C*)			# Sun C 5.9
++	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
++	  tmp_sharedflag='-G' ;;
++	*Sun\ F*)			# Sun Fortran 8.3
++	  tmp_sharedflag='-G' ;;
++	*)
++	  tmp_sharedflag='-shared' ;;
++	esac
++	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ 
+ 	if test $supports_anon_versioning = yes; then
+ 	  archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
+   cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+   $echo "local: *; };" >> $output_objdir/$libname.ver~
+-	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
++	  $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ 	fi
+-	link_all_deplibs=no
+       else
+ 	ld_shlibs=no
+       fi
+       ;;
+ 
+-    netbsd* | netbsdelf*-gnu)
++    netbsd*)
+       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ 	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ 	wlarc=
+@@ -8725,7 +9111,7 @@
+       fi
+       ;;
+ 
+-    aix4* | aix5*)
++    aix[4-9]*)
+       if test "$host_cpu" = ia64; then
+ 	# On IA64, the linker does run time linking by default, so we don't
+ 	# have to do anything special.
+@@ -8745,7 +9131,7 @@
+ 	# Test if we are trying to use run time linking or normal
+ 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ 	# need to do runtime linking.
+-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
++	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ 	  for ld_flag in $LDFLAGS; do
+   	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+   	    aix_use_runtimelinking=yes
+@@ -8779,7 +9165,7 @@
+   	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+ 	  then
+   	  # We have reworked collect2
+-  	  hardcode_direct=yes
++  	  :
+ 	  else
+   	  # We have old collect2
+   	  hardcode_direct=unsupported
+@@ -8853,11 +9239,18 @@
+        } && test -s conftest$ac_exeext &&
+        $as_test_x conftest$ac_exeext; then
+ 
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`
++lt_aix_libpath_sed='
++    /Import File Strings/,/^$/ {
++	/^0/ {
++	    s/^0  *\(.*\)$/\1/
++	    p
++	}
++    }'
++aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`; fi
++if test -z "$aix_libpath"; then
++  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++fi
+ else
+   echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+@@ -8912,11 +9305,18 @@
+        } && test -s conftest$ac_exeext &&
+        $as_test_x conftest$ac_exeext; then
+ 
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`
++lt_aix_libpath_sed='
++    /Import File Strings/,/^$/ {
++	/^0/ {
++	    s/^0  *\(.*\)$/\1/
++	    p
++	}
++    }'
++aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`; fi
++if test -z "$aix_libpath"; then
++  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++fi
+ else
+   echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+@@ -8970,7 +9370,7 @@
+       # The linker will automatically build a .lib file if we build a DLL.
+       old_archive_From_new_cmds='true'
+       # FIXME: Should let the user specify the lib program.
+-      old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
++      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       fix_srcfile_path='`cygpath -w "$srcfile"`'
+       enable_shared_with_static_runtimes=yes
+       ;;
+@@ -9003,19 +9403,18 @@
+       link_all_deplibs=yes
+     if test "$GCC" = yes ; then
+     	output_verbose_link_cmd='echo'
+-        archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+-      module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+-      archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+-      module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
++        archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
++        module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
++        archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
++        module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+     else
+       case $cc_basename in
+         xlc*)
+          output_verbose_link_cmd='echo'
+-         archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
++         archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+          module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+           # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+-         archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
++         archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+           module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+           ;;
+        *)
+@@ -9157,7 +9556,7 @@
+       link_all_deplibs=yes
+       ;;
+ 
+-    netbsd* | netbsdelf*-gnu)
++    netbsd*)
+       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ 	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+       else
+@@ -9177,6 +9576,7 @@
+       ;;
+ 
+     openbsd*)
++      if test -f /usr/libexec/ld.so; then
+       hardcode_direct=yes
+       hardcode_shlibpath_var=no
+       if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+@@ -9196,6 +9596,9 @@
+ 	   ;;
+        esac
+       fi
++      else
++	ld_shlibs=no
++      fi
+       ;;
+ 
+     os2*)
+@@ -9253,17 +9656,16 @@
+       case $host_os in
+       solaris2.[0-5] | solaris2.[0-5].*) ;;
+       *)
+- 	# The compiler driver will combine linker options so we
+- 	# cannot just pass the convience library names through
+- 	# without $wl, iff we do not link with $LD.
+- 	# Luckily, gcc supports the same syntax we need for Sun Studio.
++	# The compiler driver will combine and reorder linker options,
++	# but understands `-z linker_flag'.  GCC discards it without `$wl',
++	# but is careful enough not to reorder.
+  	# Supported since Solaris 2.6 (maybe 2.5.1?)
+- 	case $wlarc in
+- 	'')
+- 	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+- 	*)
+- 	  whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+- 	esac ;;
++	if test "$GCC" = yes; then
++	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
++	else
++	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
++	fi
++	;;
+       esac
+       link_all_deplibs=yes
+       ;;
+@@ -9320,7 +9722,7 @@
+       fi
+       ;;
+ 
+-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
++    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+       no_undefined_flag='${wl}-z,text'
+       archive_cmds_need_lc=no
+       hardcode_shlibpath_var=no
+@@ -9397,7 +9799,7 @@
+       { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+       $rm conftest*
+-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ 
+       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+@@ -9455,17 +9857,55 @@
+ version_type=none
+ dynamic_linker="$host_os ld.so"
+ sys_lib_dlsearch_path_spec="/lib /usr/lib"
++
+ if test "$GCC" = yes; then
+-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
++  case $host_os in
++    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
++    *) lt_awk_arg="/^libraries:/" ;;
++  esac
++  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
++  if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then
+     # if the path contains ";" then we assume it to be the separator
+     # otherwise default to the standard path separator (i.e. ":") - it is
+     # assumed that no part of a normal pathname contains ";" but that should
+     # okay in the real world where ";" in dirpaths is itself problematic.
+-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
++    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+   else
+-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
++    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+   fi
++  # Ok, now we have the path, separated by spaces, we can step through it
++  # and add multilib dir if necessary.
++  lt_tmp_lt_search_path_spec=
++  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
++  for lt_sys_path in $lt_search_path_spec; do
++    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
++      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
++    else
++      test -d "$lt_sys_path" && \
++	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
++    fi
++  done
++  lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk '
++BEGIN {RS=" "; FS="/|\n";} {
++  lt_foo="";
++  lt_count=0;
++  for (lt_i = NF; lt_i > 0; lt_i--) {
++    if ($lt_i != "" && $lt_i != ".") {
++      if ($lt_i == "..") {
++        lt_count++;
++      } else {
++        if (lt_count == 0) {
++          lt_foo="/" $lt_i lt_foo;
++        } else {
++          lt_count--;
++        }
++      }
++    }
++  }
++  if (lt_foo != "") { lt_freq[lt_foo]++; }
++  if (lt_freq[lt_foo] == 1) { print lt_foo; }
++}'`
++  sys_lib_search_path_spec=`echo $lt_search_path_spec`
+ else
+   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ fi
+@@ -9486,7 +9926,7 @@
+   soname_spec='${libname}${release}${shared_ext}$major'
+   ;;
+ 
+-aix4* | aix5*)
++aix[4-9]*)
+   version_type=linux
+   need_lib_prefix=no
+   need_version=no
+@@ -9625,12 +10065,8 @@
+   shlibpath_overrides_runpath=yes
+   shlibpath_var=DYLD_LIBRARY_PATH
+   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+-  if test "$GCC" = yes; then
+-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+-  else
+-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+-  fi
++
++  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+   sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+   ;;
+ 
+@@ -9684,7 +10120,7 @@
+     shlibpath_overrides_runpath=no
+     hardcode_into_libs=yes
+     ;;
+-  freebsd*) # from 4.6 on
++  *) # from 4.6 on, and DragonFly
+     shlibpath_overrides_runpath=yes
+     hardcode_into_libs=yes
+     ;;
+@@ -9747,7 +10183,7 @@
+   postinstall_cmds='chmod 555 $lib'
+   ;;
+ 
+-interix3*)
++interix[3-9]*)
+   version_type=linux
+   need_lib_prefix=no
+   need_version=no
+@@ -9818,7 +10254,7 @@
+ 
+   # Append ld.so.conf contents to the search path
+   if test -f /etc/ld.so.conf; then
+-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
++    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+   fi
+ 
+@@ -9831,18 +10267,6 @@
+   dynamic_linker='GNU/Linux ld.so'
+   ;;
+ 
+-netbsdelf*-gnu)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=no
+-  hardcode_into_libs=yes
+-  dynamic_linker='NetBSD ld.elf_so'
+-  ;;
+-
+ netbsd*)
+   version_type=sunos
+   need_lib_prefix=no
+@@ -9924,6 +10348,10 @@
+   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+   ;;
+ 
++rdos*)
++  dynamic_linker=no
++  ;;
++
+ solaris*)
+   version_type=linux
+   need_lib_prefix=no
+@@ -10020,6 +10448,21 @@
+ echo "${ECHO_T}$dynamic_linker" >&6; }
+ test "$dynamic_linker" = no && can_build_shared=no
+ 
++if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
++fi
++
++sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
++if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
++fi
++
++sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
++
+ variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+ if test "$GCC" = yes; then
+   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+@@ -10077,6 +10520,7 @@
+    darwin*)
+        if test -n "$STRIP" ; then
+          striplib="$STRIP -x"
++         old_striplib="$STRIP -S"
+          { echo "$as_me:$LINENO: result: yes" >&5
+ echo "${ECHO_T}yes" >&6; }
+        else
+@@ -10338,7 +10782,7 @@
+ { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+ echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
+ if test $ac_cv_lib_dld_shl_load = yes; then
+-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
++  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+ else
+   { echo "$as_me:$LINENO: checking for dlopen" >&5
+ echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
+@@ -10614,7 +11058,7 @@
+ { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+ echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
+ if test $ac_cv_lib_dld_dld_link = yes; then
+-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
++  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+ fi
+ 
+ 
+@@ -10663,7 +11107,7 @@
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<EOF
+-#line 10666 "configure"
++#line 11110 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -10763,7 +11207,7 @@
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<EOF
+-#line 10766 "configure"
++#line 11210 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -10890,7 +11334,7 @@
+   fi
+   ;;
+ 
+-aix4* | aix5*)
++aix[4-9]*)
+   if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+     test "$enable_shared" = yes && enable_static=no
+   fi
+@@ -10946,6 +11390,7 @@
+     predeps \
+     postdeps \
+     compiler_lib_search_path \
++    compiler_lib_search_dirs \
+     archive_cmds \
+     archive_expsym_cmds \
+     postinstall_cmds \
+@@ -10961,6 +11406,7 @@
+     module_cmds \
+     module_expsym_cmds \
+     lt_cv_prog_compiler_c_o \
++    fix_srcfile_path \
+     exclude_expsyms \
+     include_expsyms; do
+ 
+@@ -11005,7 +11451,7 @@
+ # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+ # NOTE: Changes made to this file will be lost: look at ltmain.sh.
+ #
+-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ # Free Software Foundation, Inc.
+ #
+ # This file is part of GNU Libtool:
+@@ -11241,6 +11687,10 @@
+ # shared library.
+ postdeps=$lt_postdeps
+ 
++# The directories searched by this compiler when creating a shared
++# library
++compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
++
+ # The library search path used internally by the compiler when linking
+ # a shared library.
+ compiler_lib_search_path=$lt_compiler_lib_search_path
+@@ -11329,7 +11779,7 @@
+ sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+ 
+ # Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path="$fix_srcfile_path"
++fix_srcfile_path=$lt_fix_srcfile_path
+ 
+ # Set to yes if exported symbols are required.
+ always_export_symbols=$always_export_symbols
+@@ -11489,6 +11939,7 @@
+ predeps_CXX=
+ postdeps_CXX=
+ compiler_lib_search_path_CXX=
++compiler_lib_search_dirs_CXX=
+ 
+ # Source file extension for C++ test sources.
+ ac_ext=cpp
+@@ -11498,10 +11949,10 @@
+ objext_CXX=$objext
+ 
+ # Code to be used in simple compile tests
+-lt_simple_compile_test_code="int some_variable = 0;\n"
++lt_simple_compile_test_code="int some_variable = 0;"
+ 
+ # Code to be used in simple link tests
+-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
++lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
+ 
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ 
+@@ -11517,16 +11968,16 @@
+ 
+ # save warnings/boilerplate of simple test code
+ ac_outfile=conftest.$ac_objext
+-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
++echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+ eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+ _lt_compiler_boilerplate=`cat conftest.err`
+ $rm conftest*
+ 
+ ac_outfile=conftest.$ac_objext
+-printf "$lt_simple_link_test_code" >conftest.$ac_ext
++echo "$lt_simple_link_test_code" >conftest.$ac_ext
+ eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+ _lt_linker_boilerplate=`cat conftest.err`
+-$rm conftest*
++$rm -r conftest*
+ 
+ 
+ # Allow CC to be a program name with arguments.
+@@ -11733,7 +12184,7 @@
+     # FIXME: insert proper C++ library support
+     ld_shlibs_CXX=no
+     ;;
+-  aix4* | aix5*)
++  aix[4-9]*)
+     if test "$host_cpu" = ia64; then
+       # On IA64, the linker does run time linking by default, so we don't
+       # have to do anything special.
+@@ -11746,7 +12197,7 @@
+       # Test if we are trying to use run time linking or normal
+       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+       # need to do runtime linking.
+-      case $host_os in aix4.[23]|aix4.[23].*|aix5*)
++      case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ 	for ld_flag in $LDFLAGS; do
+ 	  case $ld_flag in
+ 	  *-brtl*)
+@@ -11782,7 +12233,7 @@
+ 	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+ 	then
+ 	  # We have reworked collect2
+-	  hardcode_direct_CXX=yes
++	  :
+ 	else
+ 	  # We have old collect2
+ 	  hardcode_direct_CXX=unsupported
+@@ -11856,11 +12307,18 @@
+        } && test -s conftest$ac_exeext &&
+        $as_test_x conftest$ac_exeext; then
+ 
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`
++lt_aix_libpath_sed='
++    /Import File Strings/,/^$/ {
++	/^0/ {
++	    s/^0  *\(.*\)$/\1/
++	    p
++	}
++    }'
++aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`; fi
++if test -z "$aix_libpath"; then
++  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++fi
+ else
+   echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+@@ -11916,11 +12374,18 @@
+        } && test -s conftest$ac_exeext &&
+        $as_test_x conftest$ac_exeext; then
+ 
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`
++lt_aix_libpath_sed='
++    /Import File Strings/,/^$/ {
++	/^0/ {
++	    s/^0  *\(.*\)$/\1/
++	    p
++	}
++    }'
++aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`; fi
++if test -z "$aix_libpath"; then
++  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++fi
+ else
+   echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+@@ -11990,59 +12455,31 @@
+     fi
+   ;;
+       darwin* | rhapsody*)
+-        case $host_os in
+-        rhapsody* | darwin1.[012])
+-         allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress'
+-         ;;
+-       *) # Darwin 1.3 on
+-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+-           allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+-         else
+-           case ${MACOSX_DEPLOYMENT_TARGET} in
+-             10.[012])
+-               allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+-               ;;
+-             10.*)
+-               allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup'
+-               ;;
+-           esac
+-         fi
+-         ;;
+-        esac
+       archive_cmds_need_lc_CXX=no
+       hardcode_direct_CXX=no
+       hardcode_automatic_CXX=yes
+       hardcode_shlibpath_var_CXX=unsupported
+       whole_archive_flag_spec_CXX=''
+       link_all_deplibs_CXX=yes
+-
++      allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
+     if test "$GXX" = yes ; then
+-      lt_int_apple_cc_single_mod=no
+       output_verbose_link_cmd='echo'
+-      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
+-       lt_int_apple_cc_single_mod=yes
+-      fi
+-      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+-       archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+-      else
+-          archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+-        fi
+-        module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+-        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+-          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+-            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+-          else
+-            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
++      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
++      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
++      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
++      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
++      if test "$lt_cv_apple_cc_single_mod" != "yes"; then
++        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
++        archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+           fi
+-            module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+       else
+       case $cc_basename in
+         xlc*)
+          output_verbose_link_cmd='echo'
+-          archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
++          archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+           module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+           # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+-          archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
++          archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+           module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+           ;;
+        *)
+@@ -12125,9 +12562,7 @@
+       hardcode_libdir_separator_CXX=:
+ 
+       case $host_cpu in
+-      hppa*64*|ia64*)
+-	hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
+-        ;;
++      hppa*64*|ia64*) ;;
+       *)
+ 	export_dynamic_flag_spec_CXX='${wl}-E'
+         ;;
+@@ -12195,7 +12630,7 @@
+ 	;;
+     esac
+     ;;
+-  interix3*)
++  interix[3-9]*)
+     hardcode_direct_CXX=no
+     hardcode_shlibpath_var_CXX=no
+     hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+@@ -12287,7 +12722,7 @@
+ 	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ 	whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ 	;;
+-      pgCC*)
++      pgCC* | pgcpp*)
+         # Portland Group C++ compiler
+ 	archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+   	archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+@@ -12315,6 +12750,29 @@
+ 	# dependencies.
+ 	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ 	;;
++      *)
++	case `$CC -V 2>&1 | sed 5q` in
++	*Sun\ C*)
++	  # Sun C++ 5.9
++	  no_undefined_flag_CXX=' -zdefs'
++	  archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
++	  archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
++	  hardcode_libdir_flag_spec_CXX='-R$libdir'
++	  whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
++
++	  # Not sure whether something based on
++	  # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
++	  # would be better.
++	  output_verbose_link_cmd='echo'
++
++	  # Archives containing C++ object files must be created using
++	  # "CC -xar", where "CC" is the Sun C++ compiler.  This is
++	  # necessary to make sure instantiated templates are included
++	  # in the archive.
++	  old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
++	  ;;
++	esac
++	;;
+     esac
+     ;;
+   lynxos*)
+@@ -12337,7 +12795,7 @@
+ 	;;
+     esac
+     ;;
+-  netbsd* | netbsdelf*-gnu)
++  netbsd*)
+     if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+       archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+       wlarc=
+@@ -12353,6 +12811,7 @@
+     ld_shlibs_CXX=no
+     ;;
+   openbsd*)
++    if test -f /usr/libexec/ld.so; then
+     hardcode_direct_CXX=yes
+     hardcode_shlibpath_var_CXX=no
+     archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+@@ -12363,6 +12822,9 @@
+       whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+     fi
+     output_verbose_link_cmd='echo'
++    else
++      ld_shlibs_CXX=no
++    fi
+     ;;
+   osf3*)
+     case $cc_basename in
+@@ -12524,15 +12986,10 @@
+ 	case $host_os in
+ 	  solaris2.[0-5] | solaris2.[0-5].*) ;;
+ 	  *)
+-	    # The C++ compiler is used as linker so we must use $wl
+-	    # flag to pass the commands to the underlying system
+-	    # linker. We must also pass each convience library through
+-	    # to the system linker between allextract/defaultextract.
+-	    # The C++ compiler will combine linker options so we
+-	    # cannot just pass the convience library names through
+-	    # without $wl.
++	    # The compiler driver will combine and reorder linker options,
++	    # but understands `-z linker_flag'.
+ 	    # Supported since Solaris 2.6 (maybe 2.5.1?)
+-	    whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
++	    whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
+ 	    ;;
+ 	esac
+ 	link_all_deplibs_CXX=yes
+@@ -12579,6 +13036,12 @@
+ 	  fi
+ 
+ 	  hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
++	  case $host_os in
++	  solaris2.[0-5] | solaris2.[0-5].*) ;;
++	  *)
++	    whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
++	    ;;
++	  esac
+ 	fi
+ 	;;
+     esac
+@@ -12666,7 +13129,6 @@
+ GCC_CXX="$GXX"
+ LD_CXX="$LD"
+ 
+-
+ cat > conftest.$ac_ext <<EOF
+ class Foo
+ {
+@@ -12768,9 +13230,14 @@
+ 
+ $rm -f confest.$objext
+ 
++compiler_lib_search_dirs_CXX=
++if test -n "$compiler_lib_search_path_CXX"; then
++  compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
++fi
++
+ # PORTME: override above test on systems where it is broken
+ case $host_os in
+-interix3*)
++interix[3-9]*)
+   # Interix 3.5 installs completely hosed .la files for C++, so rather than
+   # hack all around it, let's just trust "g++" to DTRT.
+   predep_objects_CXX=
+@@ -12778,19 +13245,51 @@
+   postdeps_CXX=
+   ;;
+ 
++linux*)
++  case `$CC -V 2>&1 | sed 5q` in
++  *Sun\ C*)
++    # Sun C++ 5.9
++    #
++    # The more standards-conforming stlport4 library is
++    # incompatible with the Cstd library. Avoid specifying
++    # it if it's in CXXFLAGS. Ignore libCrun as
++    # -library=stlport4 depends on it.
++    case " $CXX $CXXFLAGS " in
++    *" -library=stlport4 "*)
++      solaris_use_stlport4=yes
++      ;;
++    esac
++    if test "$solaris_use_stlport4" != yes; then
++      postdeps_CXX='-library=Cstd -library=Crun'
++    fi
++    ;;
++  esac
++  ;;
++
+ solaris*)
+   case $cc_basename in
+   CC*)
++    # The more standards-conforming stlport4 library is
++    # incompatible with the Cstd library. Avoid specifying
++    # it if it's in CXXFLAGS. Ignore libCrun as
++    # -library=stlport4 depends on it.
++    case " $CXX $CXXFLAGS " in
++    *" -library=stlport4 "*)
++      solaris_use_stlport4=yes
++      ;;
++    esac
++
+     # Adding this requires a known-good setup of shared libraries for
+     # Sun compiler versions before 5.6, else PIC objects from an old
+     # archive will be linked into the output, leading to subtle bugs.
+-    postdeps_CXX='-lCstd -lCrun'
++    if test "$solaris_use_stlport4" != yes; then
++      postdeps_CXX='-library=Cstd -library=Crun'
++    fi
+     ;;
+   esac
+   ;;
+ esac
+ 
+-
+ case " $postdeps_CXX " in
+ *" -lc "*) archive_cmds_need_lc_CXX=no ;;
+ esac
+@@ -12821,12 +13320,14 @@
+       # like `-m68040'.
+       lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+       ;;
+-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
++    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+       # PIC is the default for these OSes.
+       ;;
+-    mingw* | os2* | pw32*)
++    mingw* | cygwin* | os2* | pw32*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
++      # Although the cygwin gcc ignores -fPIC, still need this for old-style
++      # (--disable-auto-import) libraries
+       lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+       ;;
+     darwin* | rhapsody*)
+@@ -12838,7 +13339,7 @@
+       # DJGPP does not support shared libraries at all
+       lt_prog_compiler_pic_CXX=
+       ;;
+-    interix3*)
++    interix[3-9]*)
+       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+       # Instead, we relocate shared libraries at runtime.
+       ;;
+@@ -12864,7 +13365,7 @@
+     esac
+   else
+     case $host_os in
+-      aix4* | aix5*)
++      aix[4-9]*)
+ 	# All AIX code is PIC.
+ 	if test "$host_cpu" = ia64; then
+ 	  # AIX 5 now supports IA64 processor
+@@ -12960,7 +13461,7 @@
+ 	    lt_prog_compiler_pic_CXX='-KPIC'
+ 	    lt_prog_compiler_static_CXX='-static'
+ 	    ;;
+-	  pgCC*)
++	  pgCC* | pgcpp*)
+ 	    # Portland Group C++ compiler.
+ 	    lt_prog_compiler_wl_CXX='-Wl,'
+ 	    lt_prog_compiler_pic_CXX='-fpic'
+@@ -12974,6 +13475,14 @@
+ 	    lt_prog_compiler_static_CXX='-non_shared'
+ 	    ;;
+ 	  *)
++	    case `$CC -V 2>&1 | sed 5q` in
++	    *Sun\ C*)
++	      # Sun C++ 5.9
++	      lt_prog_compiler_pic_CXX='-KPIC'
++	      lt_prog_compiler_static_CXX='-Bstatic'
++	      lt_prog_compiler_wl_CXX='-Qoption ld '
++	      ;;
++	    esac
+ 	    ;;
+ 	esac
+ 	;;
+@@ -12990,7 +13499,7 @@
+ 	    ;;
+ 	esac
+ 	;;
+-      netbsd* | netbsdelf*-gnu)
++      netbsd*)
+ 	;;
+       osf3* | osf4* | osf5*)
+ 	case $cc_basename in
+@@ -13083,12 +13592,12 @@
+ 
+ { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+ echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; }
+-if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
++if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  lt_prog_compiler_pic_works_CXX=no
++  lt_cv_prog_compiler_pic_works_CXX=no
+   ac_outfile=conftest.$ac_objext
+-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+    lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
+    # Insert the option either (1) after the last *FLAGS variable, or
+    # (2) before a word containing "conftest.", or (3) at the end.
+@@ -13099,27 +13608,27 @@
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:13102: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:13611: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>conftest.err)
+    ac_status=$?
+    cat conftest.err >&5
+-   echo "$as_me:13106: \$? = $ac_status" >&5
++   echo "$as_me:13615: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s "$ac_outfile"; then
+      # The compiler can only warn and ignore the option if not recognized
+      # So say no if there are warnings other than the usual output.
+      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+-       lt_prog_compiler_pic_works_CXX=yes
++       lt_cv_prog_compiler_pic_works_CXX=yes
+      fi
+    fi
+    $rm conftest*
+ 
+ fi
+-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
+-echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; }
++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
++echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_CXX" >&6; }
+ 
+-if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
++if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
+     case $lt_prog_compiler_pic_CXX in
+      "" | " "*) ;;
+      *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+@@ -13146,13 +13655,13 @@
+ wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
+ { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+ echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
+-if test "${lt_prog_compiler_static_works_CXX+set}" = set; then
++if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  lt_prog_compiler_static_works_CXX=no
++  lt_cv_prog_compiler_static_works_CXX=no
+    save_LDFLAGS="$LDFLAGS"
+    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
++   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+      # The linker can only warn and ignore the option if not recognized
+      # So say no if there are warnings
+@@ -13162,20 +13671,20 @@
+        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+        if diff conftest.exp conftest.er2 >/dev/null; then
+-         lt_prog_compiler_static_works_CXX=yes
++         lt_cv_prog_compiler_static_works_CXX=yes
+        fi
+      else
+-       lt_prog_compiler_static_works_CXX=yes
++       lt_cv_prog_compiler_static_works_CXX=yes
+      fi
+    fi
+-   $rm conftest*
++   $rm -r conftest*
+    LDFLAGS="$save_LDFLAGS"
+ 
+ fi
+-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5
+-echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; }
++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5
++echo "${ECHO_T}$lt_cv_prog_compiler_static_works_CXX" >&6; }
+ 
+-if test x"$lt_prog_compiler_static_works_CXX" = xyes; then
++if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
+     :
+ else
+     lt_prog_compiler_static_CXX=
+@@ -13192,7 +13701,7 @@
+    mkdir conftest
+    cd conftest
+    mkdir out
+-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ 
+    lt_compiler_flag="-o out/conftest2.$ac_objext"
+    # Insert the option either (1) after the last *FLAGS variable, or
+@@ -13203,11 +13712,11 @@
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:13206: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:13715: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>out/conftest.err)
+    ac_status=$?
+    cat out/conftest.err >&5
+-   echo "$as_me:13210: \$? = $ac_status" >&5
++   echo "$as_me:13719: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s out/conftest2.$ac_objext
+    then
+      # The compiler can only warn and ignore the option if not recognized
+@@ -13260,7 +13769,7 @@
+ 
+   export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+   case $host_os in
+-  aix4* | aix5*)
++  aix[4-9]*)
+     # If we're using GNU nm, then we don't want the "-C" option.
+     # -C means demangle to AIX nm, but means don't demangle with GNU nm
+     if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+@@ -13273,15 +13782,13 @@
+     export_symbols_cmds_CXX="$ltdll_cmds"
+   ;;
+   cygwin* | mingw*)
+-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+-  ;;
+-  linux* | k*bsd*-gnu)
+-    link_all_deplibs_CXX=no
++    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+   ;;
+   *)
+     export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+   ;;
+   esac
++  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ 
+ { echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+ echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
+@@ -13307,7 +13814,7 @@
+       { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+       $rm conftest*
+-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ 
+       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+@@ -13365,20 +13872,7 @@
+ version_type=none
+ dynamic_linker="$host_os ld.so"
+ sys_lib_dlsearch_path_spec="/lib /usr/lib"
+-if test "$GCC" = yes; then
+-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+-    # if the path contains ";" then we assume it to be the separator
+-    # otherwise default to the standard path separator (i.e. ":") - it is
+-    # assumed that no part of a normal pathname contains ";" but that should
+-    # okay in the real world where ";" in dirpaths is itself problematic.
+-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+-  else
+-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+-  fi
+-else
+-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+-fi
++
+ need_lib_prefix=unknown
+ hardcode_into_libs=no
+ 
+@@ -13396,7 +13890,7 @@
+   soname_spec='${libname}${release}${shared_ext}$major'
+   ;;
+ 
+-aix4* | aix5*)
++aix[4-9]*)
+   version_type=linux
+   need_lib_prefix=no
+   need_version=no
+@@ -13535,12 +14029,7 @@
+   shlibpath_overrides_runpath=yes
+   shlibpath_var=DYLD_LIBRARY_PATH
+   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+-  if test "$GCC" = yes; then
+-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+-  else
+-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+-  fi
++
+   sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+   ;;
+ 
+@@ -13594,7 +14083,7 @@
+     shlibpath_overrides_runpath=no
+     hardcode_into_libs=yes
+     ;;
+-  freebsd*) # from 4.6 on
++  *) # from 4.6 on, and DragonFly
+     shlibpath_overrides_runpath=yes
+     hardcode_into_libs=yes
+     ;;
+@@ -13657,7 +14146,7 @@
+   postinstall_cmds='chmod 555 $lib'
+   ;;
+ 
+-interix3*)
++interix[3-9]*)
+   version_type=linux
+   need_lib_prefix=no
+   need_version=no
+@@ -13728,7 +14217,7 @@
+ 
+   # Append ld.so.conf contents to the search path
+   if test -f /etc/ld.so.conf; then
+-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
++    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+   fi
+ 
+@@ -13741,18 +14230,6 @@
+   dynamic_linker='GNU/Linux ld.so'
+   ;;
+ 
+-netbsdelf*-gnu)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=no
+-  hardcode_into_libs=yes
+-  dynamic_linker='NetBSD ld.elf_so'
+-  ;;
+-
+ netbsd*)
+   version_type=sunos
+   need_lib_prefix=no
+@@ -13834,6 +14311,10 @@
+   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+   ;;
+ 
++rdos*)
++  dynamic_linker=no
++  ;;
++
+ solaris*)
+   version_type=linux
+   need_lib_prefix=no
+@@ -13930,6 +14411,21 @@
+ echo "${ECHO_T}$dynamic_linker" >&6; }
+ test "$dynamic_linker" = no && can_build_shared=no
+ 
++if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
++fi
++
++sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
++if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
++fi
++
++sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
++
+ variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+ if test "$GCC" = yes; then
+   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+@@ -14013,6 +14509,7 @@
+     predeps_CXX \
+     postdeps_CXX \
+     compiler_lib_search_path_CXX \
++    compiler_lib_search_dirs_CXX \
+     archive_cmds_CXX \
+     archive_expsym_cmds_CXX \
+     postinstall_cmds_CXX \
+@@ -14028,6 +14525,7 @@
+     module_cmds_CXX \
+     module_expsym_cmds_CXX \
+     lt_cv_prog_compiler_c_o_CXX \
++    fix_srcfile_path_CXX \
+     exclude_expsyms_CXX \
+     include_expsyms_CXX; do
+ 
+@@ -14260,6 +14758,10 @@
+ # shared library.
+ postdeps=$lt_postdeps_CXX
+ 
++# The directories searched by this compiler when creating a shared
++# library
++compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
++
+ # The library search path used internally by the compiler when linking
+ # a shared library.
+ compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+@@ -14348,7 +14850,7 @@
+ sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+ 
+ # Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path="$fix_srcfile_path_CXX"
++fix_srcfile_path=$lt_fix_srcfile_path
+ 
+ # Set to yes if exported symbols are required.
+ always_export_symbols=$always_export_symbols_CXX
+@@ -14439,10 +14941,17 @@
+ objext_F77=$objext
+ 
+ # Code to be used in simple compile tests
+-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
++lt_simple_compile_test_code="\
++      subroutine t
++      return
++      end
++"
+ 
+ # Code to be used in simple link tests
+-lt_simple_link_test_code="      program t\n      end\n"
++lt_simple_link_test_code="\
++      program t
++      end
++"
+ 
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ 
+@@ -14458,16 +14967,16 @@
+ 
+ # save warnings/boilerplate of simple test code
+ ac_outfile=conftest.$ac_objext
+-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
++echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+ eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+ _lt_compiler_boilerplate=`cat conftest.err`
+ $rm conftest*
+ 
+ ac_outfile=conftest.$ac_objext
+-printf "$lt_simple_link_test_code" >conftest.$ac_ext
++echo "$lt_simple_link_test_code" >conftest.$ac_ext
+ eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+ _lt_linker_boilerplate=`cat conftest.err`
+-$rm conftest*
++$rm -r conftest*
+ 
+ 
+ # Allow CC to be a program name with arguments.
+@@ -14505,7 +15014,7 @@
+     postinstall_cmds='$RANLIB $lib'
+   fi
+   ;;
+-aix4* | aix5*)
++aix[4-9]*)
+   if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+     test "$enable_shared" = yes && enable_static=no
+   fi
+@@ -14551,13 +15060,15 @@
+       lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+       ;;
+ 
+-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
++    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+       # PIC is the default for these OSes.
+       ;;
+ 
+-    mingw* | pw32* | os2*)
++    mingw* | cygwin* | pw32* | os2*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
++      # Although the cygwin gcc ignores -fPIC, still need this for old-style
++      # (--disable-auto-import) libraries
+       lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+       ;;
+ 
+@@ -14567,7 +15078,7 @@
+       lt_prog_compiler_pic_F77='-fno-common'
+       ;;
+ 
+-    interix3*)
++    interix[3-9]*)
+       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+       # Instead, we relocate shared libraries at runtime.
+       ;;
+@@ -14625,7 +15136,7 @@
+        esac
+        ;;
+ 
+-    mingw* | pw32* | os2*)
++    mingw* | cygwin* | pw32* | os2*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
+       lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+@@ -14677,6 +15188,22 @@
+         # All Alpha code is PIC.
+         lt_prog_compiler_static_F77='-non_shared'
+         ;;
++      *)
++        case `$CC -V 2>&1 | sed 5q` in
++	*Sun\ C*)
++	  # Sun C 5.9
++	  lt_prog_compiler_pic_F77='-KPIC'
++	  lt_prog_compiler_static_F77='-Bstatic'
++	  lt_prog_compiler_wl_F77='-Wl,'
++	  ;;
++	*Sun\ F*)
++	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
++	  lt_prog_compiler_pic_F77='-KPIC'
++	  lt_prog_compiler_static_F77='-Bstatic'
++	  lt_prog_compiler_wl_F77=''
++	  ;;
++	esac
++	;;
+       esac
+       ;;
+ 
+@@ -14686,6 +15213,10 @@
+       lt_prog_compiler_static_F77='-non_shared'
+       ;;
+ 
++    rdos*)
++      lt_prog_compiler_static_F77='-non_shared'
++      ;;
++
+     solaris*)
+       lt_prog_compiler_pic_F77='-KPIC'
+       lt_prog_compiler_static_F77='-Bstatic'
+@@ -14748,12 +15279,12 @@
+ 
+ { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
+ echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; }
+-if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
++if test "${lt_cv_prog_compiler_pic_works_F77+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  lt_prog_compiler_pic_works_F77=no
++  lt_cv_prog_compiler_pic_works_F77=no
+   ac_outfile=conftest.$ac_objext
+-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+    lt_compiler_flag="$lt_prog_compiler_pic_F77"
+    # Insert the option either (1) after the last *FLAGS variable, or
+    # (2) before a word containing "conftest.", or (3) at the end.
+@@ -14764,27 +15295,27 @@
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:14767: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:15298: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>conftest.err)
+    ac_status=$?
+    cat conftest.err >&5
+-   echo "$as_me:14771: \$? = $ac_status" >&5
++   echo "$as_me:15302: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s "$ac_outfile"; then
+      # The compiler can only warn and ignore the option if not recognized
+      # So say no if there are warnings other than the usual output.
+      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+-       lt_prog_compiler_pic_works_F77=yes
++       lt_cv_prog_compiler_pic_works_F77=yes
+      fi
+    fi
+    $rm conftest*
+ 
+ fi
+-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
+-echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; }
++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_F77" >&5
++echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_F77" >&6; }
+ 
+-if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
++if test x"$lt_cv_prog_compiler_pic_works_F77" = xyes; then
+     case $lt_prog_compiler_pic_F77 in
+      "" | " "*) ;;
+      *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
+@@ -14811,13 +15342,13 @@
+ wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\"
+ { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+ echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
+-if test "${lt_prog_compiler_static_works_F77+set}" = set; then
++if test "${lt_cv_prog_compiler_static_works_F77+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  lt_prog_compiler_static_works_F77=no
++  lt_cv_prog_compiler_static_works_F77=no
+    save_LDFLAGS="$LDFLAGS"
+    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
++   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+      # The linker can only warn and ignore the option if not recognized
+      # So say no if there are warnings
+@@ -14827,20 +15358,20 @@
+        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+        if diff conftest.exp conftest.er2 >/dev/null; then
+-         lt_prog_compiler_static_works_F77=yes
++         lt_cv_prog_compiler_static_works_F77=yes
+        fi
+      else
+-       lt_prog_compiler_static_works_F77=yes
++       lt_cv_prog_compiler_static_works_F77=yes
+      fi
+    fi
+-   $rm conftest*
++   $rm -r conftest*
+    LDFLAGS="$save_LDFLAGS"
+ 
+ fi
+-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5
+-echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; }
++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_F77" >&5
++echo "${ECHO_T}$lt_cv_prog_compiler_static_works_F77" >&6; }
+ 
+-if test x"$lt_prog_compiler_static_works_F77" = xyes; then
++if test x"$lt_cv_prog_compiler_static_works_F77" = xyes; then
+     :
+ else
+     lt_prog_compiler_static_F77=
+@@ -14857,7 +15388,7 @@
+    mkdir conftest
+    cd conftest
+    mkdir out
+-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ 
+    lt_compiler_flag="-o out/conftest2.$ac_objext"
+    # Insert the option either (1) after the last *FLAGS variable, or
+@@ -14868,11 +15399,11 @@
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:14871: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:15402: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>out/conftest.err)
+    ac_status=$?
+    cat out/conftest.err >&5
+-   echo "$as_me:14875: \$? = $ac_status" >&5
++   echo "$as_me:15406: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s out/conftest2.$ac_objext
+    then
+      # The compiler can only warn and ignore the option if not recognized
+@@ -14952,12 +15483,13 @@
+   # it will be wrapped by ` (' and `)$', so one must not match beginning or
+   # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+   # as well as any symbol that contains `d'.
+-  exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_"
++  exclude_expsyms_F77='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+   # platforms (ab)use it in PIC code, but their linkers get confused if
+   # the symbol is explicitly referenced.  Since portable code cannot
+   # rely on this symbol name, it's probably fine to never include it in
+   # preloaded symbol tables.
++  # Exclude shared library initialization/finalization symbols.
+   extract_expsyms_cmds=
+   # Just being paranoid about ensuring that cc_basename is set.
+   for cc_temp in $compiler""; do
+@@ -15016,7 +15548,7 @@
+ 
+     # See if GNU ld supports shared libraries.
+     case $host_os in
+-    aix3* | aix4* | aix5*)
++    aix[3-9]*)
+       # On AIX/PPC, the GNU linker is very broken
+       if test "$host_cpu" != ia64; then
+ 	ld_shlibs_F77=no
+@@ -15064,7 +15596,7 @@
+       allow_undefined_flag_F77=unsupported
+       always_export_symbols_F77=no
+       enable_shared_with_static_runtimes_F77=yes
+-      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
++      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+ 
+       if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+         archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+@@ -15082,7 +15614,7 @@
+       fi
+       ;;
+ 
+-    interix3*)
++    interix[3-9]*)
+       hardcode_direct_F77=no
+       hardcode_shlibpath_var_F77=no
+       hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+@@ -15097,7 +15629,7 @@
+       archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+       ;;
+ 
+-    linux* | k*bsd*-gnu)
++    gnu* | linux* | k*bsd*-gnu)
+       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ 	tmp_addflag=
+ 	case $cc_basename,$host_cpu in
+@@ -15115,21 +15647,29 @@
+ 	ifc* | ifort*)			# Intel Fortran compiler
+ 	  tmp_addflag=' -nofor_main' ;;
+ 	esac
+-	archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++	case `$CC -V 2>&1 | sed 5q` in
++	*Sun\ C*)			# Sun C 5.9
++	  whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
++	  tmp_sharedflag='-G' ;;
++	*Sun\ F*)			# Sun Fortran 8.3
++	  tmp_sharedflag='-G' ;;
++	*)
++	  tmp_sharedflag='-shared' ;;
++	esac
++	archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ 
+ 	if test $supports_anon_versioning = yes; then
+ 	  archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
+   cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+   $echo "local: *; };" >> $output_objdir/$libname.ver~
+-	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
++	  $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ 	fi
+-	link_all_deplibs_F77=no
+       else
+ 	ld_shlibs_F77=no
+       fi
+       ;;
+ 
+-    netbsd* | netbsdelf*-gnu)
++    netbsd*)
+       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ 	archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ 	wlarc=
+@@ -15227,7 +15767,7 @@
+       fi
+       ;;
+ 
+-    aix4* | aix5*)
++    aix[4-9]*)
+       if test "$host_cpu" = ia64; then
+ 	# On IA64, the linker does run time linking by default, so we don't
+ 	# have to do anything special.
+@@ -15247,7 +15787,7 @@
+ 	# Test if we are trying to use run time linking or normal
+ 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ 	# need to do runtime linking.
+-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
++	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ 	  for ld_flag in $LDFLAGS; do
+   	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+   	    aix_use_runtimelinking=yes
+@@ -15281,7 +15821,7 @@
+   	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+ 	  then
+   	  # We have reworked collect2
+-  	  hardcode_direct_F77=yes
++  	  :
+ 	  else
+   	  # We have old collect2
+   	  hardcode_direct_F77=unsupported
+@@ -15345,11 +15885,18 @@
+        } && test -s conftest$ac_exeext &&
+        $as_test_x conftest$ac_exeext; then
+ 
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`
++lt_aix_libpath_sed='
++    /Import File Strings/,/^$/ {
++	/^0/ {
++	    s/^0  *\(.*\)$/\1/
++	    p
++	}
++    }'
++aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`; fi
++if test -z "$aix_libpath"; then
++  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++fi
+ else
+   echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+@@ -15394,11 +15941,18 @@
+        } && test -s conftest$ac_exeext &&
+        $as_test_x conftest$ac_exeext; then
+ 
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`
++lt_aix_libpath_sed='
++    /Import File Strings/,/^$/ {
++	/^0/ {
++	    s/^0  *\(.*\)$/\1/
++	    p
++	}
++    }'
++aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`; fi
++if test -z "$aix_libpath"; then
++  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++fi
+ else
+   echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+@@ -15452,7 +16006,7 @@
+       # The linker will automatically build a .lib file if we build a DLL.
+       old_archive_From_new_cmds_F77='true'
+       # FIXME: Should let the user specify the lib program.
+-      old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
++      old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
+       enable_shared_with_static_runtimes_F77=yes
+       ;;
+@@ -15485,19 +16039,18 @@
+       link_all_deplibs_F77=yes
+     if test "$GCC" = yes ; then
+     	output_verbose_link_cmd='echo'
+-        archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+-      module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+-      archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+-      module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
++        archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
++        module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
++        archive_expsym_cmds_F77="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
++        module_expsym_cmds_F77="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+     else
+       case $cc_basename in
+         xlc*)
+          output_verbose_link_cmd='echo'
+-         archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
++         archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+          module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+           # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+-         archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
++         archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+           module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+           ;;
+        *)
+@@ -15639,7 +16192,7 @@
+       link_all_deplibs_F77=yes
+       ;;
+ 
+-    netbsd* | netbsdelf*-gnu)
++    netbsd*)
+       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ 	archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+       else
+@@ -15659,6 +16212,7 @@
+       ;;
+ 
+     openbsd*)
++      if test -f /usr/libexec/ld.so; then
+       hardcode_direct_F77=yes
+       hardcode_shlibpath_var_F77=no
+       if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+@@ -15678,6 +16232,9 @@
+ 	   ;;
+        esac
+       fi
++      else
++	ld_shlibs_F77=no
++      fi
+       ;;
+ 
+     os2*)
+@@ -15735,17 +16292,16 @@
+       case $host_os in
+       solaris2.[0-5] | solaris2.[0-5].*) ;;
+       *)
+- 	# The compiler driver will combine linker options so we
+- 	# cannot just pass the convience library names through
+- 	# without $wl, iff we do not link with $LD.
+- 	# Luckily, gcc supports the same syntax we need for Sun Studio.
++	# The compiler driver will combine and reorder linker options,
++	# but understands `-z linker_flag'.  GCC discards it without `$wl',
++	# but is careful enough not to reorder.
+  	# Supported since Solaris 2.6 (maybe 2.5.1?)
+- 	case $wlarc in
+- 	'')
+- 	  whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
+- 	*)
+- 	  whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+- 	esac ;;
++	if test "$GCC" = yes; then
++	  whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
++	else
++	  whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract'
++	fi
++	;;
+       esac
+       link_all_deplibs_F77=yes
+       ;;
+@@ -15802,7 +16358,7 @@
+       fi
+       ;;
+ 
+-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
++    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+       no_undefined_flag_F77='${wl}-z,text'
+       archive_cmds_need_lc_F77=no
+       hardcode_shlibpath_var_F77=no
+@@ -15879,7 +16435,7 @@
+       { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+       $rm conftest*
+-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ 
+       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+@@ -15937,20 +16493,7 @@
+ version_type=none
+ dynamic_linker="$host_os ld.so"
+ sys_lib_dlsearch_path_spec="/lib /usr/lib"
+-if test "$GCC" = yes; then
+-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+-    # if the path contains ";" then we assume it to be the separator
+-    # otherwise default to the standard path separator (i.e. ":") - it is
+-    # assumed that no part of a normal pathname contains ";" but that should
+-    # okay in the real world where ";" in dirpaths is itself problematic.
+-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+-  else
+-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+-  fi
+-else
+-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+-fi
++
+ need_lib_prefix=unknown
+ hardcode_into_libs=no
+ 
+@@ -15968,7 +16511,7 @@
+   soname_spec='${libname}${release}${shared_ext}$major'
+   ;;
+ 
+-aix4* | aix5*)
++aix[4-9]*)
+   version_type=linux
+   need_lib_prefix=no
+   need_version=no
+@@ -16107,12 +16650,7 @@
+   shlibpath_overrides_runpath=yes
+   shlibpath_var=DYLD_LIBRARY_PATH
+   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+-  if test "$GCC" = yes; then
+-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+-  else
+-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+-  fi
++
+   sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+   ;;
+ 
+@@ -16166,7 +16704,7 @@
+     shlibpath_overrides_runpath=no
+     hardcode_into_libs=yes
+     ;;
+-  freebsd*) # from 4.6 on
++  *) # from 4.6 on, and DragonFly
+     shlibpath_overrides_runpath=yes
+     hardcode_into_libs=yes
+     ;;
+@@ -16229,7 +16767,7 @@
+   postinstall_cmds='chmod 555 $lib'
+   ;;
+ 
+-interix3*)
++interix[3-9]*)
+   version_type=linux
+   need_lib_prefix=no
+   need_version=no
+@@ -16300,7 +16838,7 @@
+ 
+   # Append ld.so.conf contents to the search path
+   if test -f /etc/ld.so.conf; then
+-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
++    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+   fi
+ 
+@@ -16313,18 +16851,6 @@
+   dynamic_linker='GNU/Linux ld.so'
+   ;;
+ 
+-netbsdelf*-gnu)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=no
+-  hardcode_into_libs=yes
+-  dynamic_linker='NetBSD ld.elf_so'
+-  ;;
+-
+ netbsd*)
+   version_type=sunos
+   need_lib_prefix=no
+@@ -16406,6 +16932,10 @@
+   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+   ;;
+ 
++rdos*)
++  dynamic_linker=no
++  ;;
++
+ solaris*)
+   version_type=linux
+   need_lib_prefix=no
+@@ -16502,6 +17032,21 @@
+ echo "${ECHO_T}$dynamic_linker" >&6; }
+ test "$dynamic_linker" = no && can_build_shared=no
+ 
++if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
++fi
++
++sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
++if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
++fi
++
++sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
++
+ variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+ if test "$GCC" = yes; then
+   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+@@ -16585,6 +17130,7 @@
+     predeps_F77 \
+     postdeps_F77 \
+     compiler_lib_search_path_F77 \
++    compiler_lib_search_dirs_F77 \
+     archive_cmds_F77 \
+     archive_expsym_cmds_F77 \
+     postinstall_cmds_F77 \
+@@ -16600,6 +17146,7 @@
+     module_cmds_F77 \
+     module_expsym_cmds_F77 \
+     lt_cv_prog_compiler_c_o_F77 \
++    fix_srcfile_path_F77 \
+     exclude_expsyms_F77 \
+     include_expsyms_F77; do
+ 
+@@ -16832,6 +17379,10 @@
+ # shared library.
+ postdeps=$lt_postdeps_F77
+ 
++# The directories searched by this compiler when creating a shared
++# library
++compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_F77
++
+ # The library search path used internally by the compiler when linking
+ # a shared library.
+ compiler_lib_search_path=$lt_compiler_lib_search_path_F77
+@@ -16920,7 +17471,7 @@
+ sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+ 
+ # Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path="$fix_srcfile_path_F77"
++fix_srcfile_path=$lt_fix_srcfile_path
+ 
+ # Set to yes if exported symbols are required.
+ always_export_symbols=$always_export_symbols_F77
+@@ -16978,10 +17529,10 @@
+ objext_GCJ=$objext
+ 
+ # Code to be used in simple compile tests
+-lt_simple_compile_test_code="class foo {}\n"
++lt_simple_compile_test_code="class foo {}"
+ 
+ # Code to be used in simple link tests
+-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
++lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }'
+ 
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ 
+@@ -16997,16 +17548,16 @@
+ 
+ # save warnings/boilerplate of simple test code
+ ac_outfile=conftest.$ac_objext
+-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
++echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+ eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+ _lt_compiler_boilerplate=`cat conftest.err`
+ $rm conftest*
+ 
+ ac_outfile=conftest.$ac_objext
+-printf "$lt_simple_link_test_code" >conftest.$ac_ext
++echo "$lt_simple_link_test_code" >conftest.$ac_ext
+ eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+ _lt_linker_boilerplate=`cat conftest.err`
+-$rm conftest*
++$rm -r conftest*
+ 
+ 
+ # Allow CC to be a program name with arguments.
+@@ -17044,7 +17595,7 @@
+ else
+   lt_cv_prog_compiler_rtti_exceptions=no
+   ac_outfile=conftest.$ac_objext
+-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+    lt_compiler_flag="-fno-rtti -fno-exceptions"
+    # Insert the option either (1) after the last *FLAGS variable, or
+    # (2) before a word containing "conftest.", or (3) at the end.
+@@ -17055,11 +17606,11 @@
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:17058: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:17609: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>conftest.err)
+    ac_status=$?
+    cat conftest.err >&5
+-   echo "$as_me:17062: \$? = $ac_status" >&5
++   echo "$as_me:17613: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s "$ac_outfile"; then
+      # The compiler can only warn and ignore the option if not recognized
+      # So say no if there are warnings other than the usual output.
+@@ -17110,14 +17661,16 @@
+       lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+       ;;
+ 
+-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
++    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+       # PIC is the default for these OSes.
+       ;;
+ 
+-    mingw* | pw32* | os2*)
++    mingw* | cygwin* | pw32* | os2*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
+-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
++      # Although the cygwin gcc ignores -fPIC, still need this for old-style
++      # (--disable-auto-import) libraries
++
+       ;;
+ 
+     darwin* | rhapsody*)
+@@ -17126,7 +17679,7 @@
+       lt_prog_compiler_pic_GCJ='-fno-common'
+       ;;
+ 
+-    interix3*)
++    interix[3-9]*)
+       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+       # Instead, we relocate shared libraries at runtime.
+       ;;
+@@ -17184,10 +17737,10 @@
+        esac
+        ;;
+ 
+-    mingw* | pw32* | os2*)
++    mingw* | cygwin* | pw32* | os2*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
+-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
++
+       ;;
+ 
+     hpux9* | hpux10* | hpux11*)
+@@ -17236,6 +17789,22 @@
+         # All Alpha code is PIC.
+         lt_prog_compiler_static_GCJ='-non_shared'
+         ;;
++      *)
++        case `$CC -V 2>&1 | sed 5q` in
++	*Sun\ C*)
++	  # Sun C 5.9
++	  lt_prog_compiler_pic_GCJ='-KPIC'
++	  lt_prog_compiler_static_GCJ='-Bstatic'
++	  lt_prog_compiler_wl_GCJ='-Wl,'
++	  ;;
++	*Sun\ F*)
++	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
++	  lt_prog_compiler_pic_GCJ='-KPIC'
++	  lt_prog_compiler_static_GCJ='-Bstatic'
++	  lt_prog_compiler_wl_GCJ=''
++	  ;;
++	esac
++	;;
+       esac
+       ;;
+ 
+@@ -17245,6 +17814,10 @@
+       lt_prog_compiler_static_GCJ='-non_shared'
+       ;;
+ 
++    rdos*)
++      lt_prog_compiler_static_GCJ='-non_shared'
++      ;;
++
+     solaris*)
+       lt_prog_compiler_pic_GCJ='-KPIC'
+       lt_prog_compiler_static_GCJ='-Bstatic'
+@@ -17307,12 +17880,12 @@
+ 
+ { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
+ echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; }
+-if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
++if test "${lt_cv_prog_compiler_pic_works_GCJ+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  lt_prog_compiler_pic_works_GCJ=no
++  lt_cv_prog_compiler_pic_works_GCJ=no
+   ac_outfile=conftest.$ac_objext
+-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+    lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
+    # Insert the option either (1) after the last *FLAGS variable, or
+    # (2) before a word containing "conftest.", or (3) at the end.
+@@ -17323,27 +17896,27 @@
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:17326: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:17899: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>conftest.err)
+    ac_status=$?
+    cat conftest.err >&5
+-   echo "$as_me:17330: \$? = $ac_status" >&5
++   echo "$as_me:17903: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s "$ac_outfile"; then
+      # The compiler can only warn and ignore the option if not recognized
+      # So say no if there are warnings other than the usual output.
+      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+-       lt_prog_compiler_pic_works_GCJ=yes
++       lt_cv_prog_compiler_pic_works_GCJ=yes
+      fi
+    fi
+    $rm conftest*
+ 
+ fi
+-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
+-echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; }
++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_GCJ" >&5
++echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_GCJ" >&6; }
+ 
+-if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
++if test x"$lt_cv_prog_compiler_pic_works_GCJ" = xyes; then
+     case $lt_prog_compiler_pic_GCJ in
+      "" | " "*) ;;
+      *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
+@@ -17370,13 +17943,13 @@
+ wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\"
+ { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+ echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
+-if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then
++if test "${lt_cv_prog_compiler_static_works_GCJ+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  lt_prog_compiler_static_works_GCJ=no
++  lt_cv_prog_compiler_static_works_GCJ=no
+    save_LDFLAGS="$LDFLAGS"
+    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
++   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+      # The linker can only warn and ignore the option if not recognized
+      # So say no if there are warnings
+@@ -17386,20 +17959,20 @@
+        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+        if diff conftest.exp conftest.er2 >/dev/null; then
+-         lt_prog_compiler_static_works_GCJ=yes
++         lt_cv_prog_compiler_static_works_GCJ=yes
+        fi
+      else
+-       lt_prog_compiler_static_works_GCJ=yes
++       lt_cv_prog_compiler_static_works_GCJ=yes
+      fi
+    fi
+-   $rm conftest*
++   $rm -r conftest*
+    LDFLAGS="$save_LDFLAGS"
+ 
+ fi
+-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5
+-echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; }
++{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_GCJ" >&5
++echo "${ECHO_T}$lt_cv_prog_compiler_static_works_GCJ" >&6; }
+ 
+-if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then
++if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then
+     :
+ else
+     lt_prog_compiler_static_GCJ=
+@@ -17416,7 +17989,7 @@
+    mkdir conftest
+    cd conftest
+    mkdir out
+-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ 
+    lt_compiler_flag="-o out/conftest2.$ac_objext"
+    # Insert the option either (1) after the last *FLAGS variable, or
+@@ -17427,11 +18000,11 @@
+    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+    -e 's:$: $lt_compiler_flag:'`
+-   (eval echo "\"\$as_me:17430: $lt_compile\"" >&5)
++   (eval echo "\"\$as_me:18003: $lt_compile\"" >&5)
+    (eval "$lt_compile" 2>out/conftest.err)
+    ac_status=$?
+    cat out/conftest.err >&5
+-   echo "$as_me:17434: \$? = $ac_status" >&5
++   echo "$as_me:18007: \$? = $ac_status" >&5
+    if (exit $ac_status) && test -s out/conftest2.$ac_objext
+    then
+      # The compiler can only warn and ignore the option if not recognized
+@@ -17511,12 +18084,13 @@
+   # it will be wrapped by ` (' and `)$', so one must not match beginning or
+   # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+   # as well as any symbol that contains `d'.
+-  exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_"
++  exclude_expsyms_GCJ='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+   # platforms (ab)use it in PIC code, but their linkers get confused if
+   # the symbol is explicitly referenced.  Since portable code cannot
+   # rely on this symbol name, it's probably fine to never include it in
+   # preloaded symbol tables.
++  # Exclude shared library initialization/finalization symbols.
+   extract_expsyms_cmds=
+   # Just being paranoid about ensuring that cc_basename is set.
+   for cc_temp in $compiler""; do
+@@ -17575,7 +18149,7 @@
+ 
+     # See if GNU ld supports shared libraries.
+     case $host_os in
+-    aix3* | aix4* | aix5*)
++    aix[3-9]*)
+       # On AIX/PPC, the GNU linker is very broken
+       if test "$host_cpu" != ia64; then
+ 	ld_shlibs_GCJ=no
+@@ -17623,7 +18197,7 @@
+       allow_undefined_flag_GCJ=unsupported
+       always_export_symbols_GCJ=no
+       enable_shared_with_static_runtimes_GCJ=yes
+-      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
++      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+ 
+       if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+         archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+@@ -17641,7 +18215,7 @@
+       fi
+       ;;
+ 
+-    interix3*)
++    interix[3-9]*)
+       hardcode_direct_GCJ=no
+       hardcode_shlibpath_var_GCJ=no
+       hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+@@ -17656,7 +18230,7 @@
+       archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+       ;;
+ 
+-    linux* | k*bsd*-gnu)
++    gnu* | linux* | k*bsd*-gnu)
+       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ 	tmp_addflag=
+ 	case $cc_basename,$host_cpu in
+@@ -17674,21 +18248,29 @@
+ 	ifc* | ifort*)			# Intel Fortran compiler
+ 	  tmp_addflag=' -nofor_main' ;;
+ 	esac
+-	archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++	case `$CC -V 2>&1 | sed 5q` in
++	*Sun\ C*)			# Sun C 5.9
++	  whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
++	  tmp_sharedflag='-G' ;;
++	*Sun\ F*)			# Sun Fortran 8.3
++	  tmp_sharedflag='-G' ;;
++	*)
++	  tmp_sharedflag='-shared' ;;
++	esac
++	archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ 
+ 	if test $supports_anon_versioning = yes; then
+ 	  archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
+   cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+   $echo "local: *; };" >> $output_objdir/$libname.ver~
+-	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
++	  $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ 	fi
+-	link_all_deplibs_GCJ=no
+       else
+ 	ld_shlibs_GCJ=no
+       fi
+       ;;
+ 
+-    netbsd* | netbsdelf*-gnu)
++    netbsd*)
+       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ 	archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ 	wlarc=
+@@ -17786,7 +18368,7 @@
+       fi
+       ;;
+ 
+-    aix4* | aix5*)
++    aix[4-9]*)
+       if test "$host_cpu" = ia64; then
+ 	# On IA64, the linker does run time linking by default, so we don't
+ 	# have to do anything special.
+@@ -17806,7 +18388,7 @@
+ 	# Test if we are trying to use run time linking or normal
+ 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ 	# need to do runtime linking.
+-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
++	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ 	  for ld_flag in $LDFLAGS; do
+   	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+   	    aix_use_runtimelinking=yes
+@@ -17840,7 +18422,7 @@
+   	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+ 	  then
+   	  # We have reworked collect2
+-  	  hardcode_direct_GCJ=yes
++  	  :
+ 	  else
+   	  # We have old collect2
+   	  hardcode_direct_GCJ=unsupported
+@@ -17914,11 +18496,18 @@
+        } && test -s conftest$ac_exeext &&
+        $as_test_x conftest$ac_exeext; then
+ 
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`
++lt_aix_libpath_sed='
++    /Import File Strings/,/^$/ {
++	/^0/ {
++	    s/^0  *\(.*\)$/\1/
++	    p
++	}
++    }'
++aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`; fi
++if test -z "$aix_libpath"; then
++  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++fi
+ else
+   echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+@@ -17973,11 +18562,18 @@
+        } && test -s conftest$ac_exeext &&
+        $as_test_x conftest$ac_exeext; then
+ 
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`
++lt_aix_libpath_sed='
++    /Import File Strings/,/^$/ {
++	/^0/ {
++	    s/^0  *\(.*\)$/\1/
++	    p
++	}
++    }'
++aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+-}'`; fi
++if test -z "$aix_libpath"; then
++  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++fi
+ else
+   echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+@@ -18031,7 +18627,7 @@
+       # The linker will automatically build a .lib file if we build a DLL.
+       old_archive_From_new_cmds_GCJ='true'
+       # FIXME: Should let the user specify the lib program.
+-      old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
++      old_archive_cmds_GCJ='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`'
+       enable_shared_with_static_runtimes_GCJ=yes
+       ;;
+@@ -18064,19 +18660,18 @@
+       link_all_deplibs_GCJ=yes
+     if test "$GCC" = yes ; then
+     	output_verbose_link_cmd='echo'
+-        archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+-      module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+-      archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+-      module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
++        archive_cmds_GCJ="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
++        module_cmds_GCJ="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
++        archive_expsym_cmds_GCJ="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
++        module_expsym_cmds_GCJ="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+     else
+       case $cc_basename in
+         xlc*)
+          output_verbose_link_cmd='echo'
+-         archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
++         archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+          module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+           # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+-         archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
++         archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+           module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+           ;;
+        *)
+@@ -18218,7 +18813,7 @@
+       link_all_deplibs_GCJ=yes
+       ;;
+ 
+-    netbsd* | netbsdelf*-gnu)
++    netbsd*)
+       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ 	archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+       else
+@@ -18238,6 +18833,7 @@
+       ;;
+ 
+     openbsd*)
++      if test -f /usr/libexec/ld.so; then
+       hardcode_direct_GCJ=yes
+       hardcode_shlibpath_var_GCJ=no
+       if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+@@ -18257,6 +18853,9 @@
+ 	   ;;
+        esac
+       fi
++      else
++	ld_shlibs_GCJ=no
++      fi
+       ;;
+ 
+     os2*)
+@@ -18314,17 +18913,16 @@
+       case $host_os in
+       solaris2.[0-5] | solaris2.[0-5].*) ;;
+       *)
+- 	# The compiler driver will combine linker options so we
+- 	# cannot just pass the convience library names through
+- 	# without $wl, iff we do not link with $LD.
+- 	# Luckily, gcc supports the same syntax we need for Sun Studio.
++	# The compiler driver will combine and reorder linker options,
++	# but understands `-z linker_flag'.  GCC discards it without `$wl',
++	# but is careful enough not to reorder.
+  	# Supported since Solaris 2.6 (maybe 2.5.1?)
+- 	case $wlarc in
+- 	'')
+- 	  whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
+- 	*)
+- 	  whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+- 	esac ;;
++	if test "$GCC" = yes; then
++	  whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
++	else
++	  whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract'
++	fi
++	;;
+       esac
+       link_all_deplibs_GCJ=yes
+       ;;
+@@ -18381,7 +18979,7 @@
+       fi
+       ;;
+ 
+-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
++    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+       no_undefined_flag_GCJ='${wl}-z,text'
+       archive_cmds_need_lc_GCJ=no
+       hardcode_shlibpath_var_GCJ=no
+@@ -18458,7 +19056,7 @@
+       { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+       $rm conftest*
+-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
++      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ 
+       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+@@ -18516,20 +19114,7 @@
+ version_type=none
+ dynamic_linker="$host_os ld.so"
+ sys_lib_dlsearch_path_spec="/lib /usr/lib"
+-if test "$GCC" = yes; then
+-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+-    # if the path contains ";" then we assume it to be the separator
+-    # otherwise default to the standard path separator (i.e. ":") - it is
+-    # assumed that no part of a normal pathname contains ";" but that should
+-    # okay in the real world where ";" in dirpaths is itself problematic.
+-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+-  else
+-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+-  fi
+-else
+-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+-fi
++
+ need_lib_prefix=unknown
+ hardcode_into_libs=no
+ 
+@@ -18547,7 +19132,7 @@
+   soname_spec='${libname}${release}${shared_ext}$major'
+   ;;
+ 
+-aix4* | aix5*)
++aix[4-9]*)
+   version_type=linux
+   need_lib_prefix=no
+   need_version=no
+@@ -18686,12 +19271,7 @@
+   shlibpath_overrides_runpath=yes
+   shlibpath_var=DYLD_LIBRARY_PATH
+   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+-  if test "$GCC" = yes; then
+-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+-  else
+-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+-  fi
++
+   sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+   ;;
+ 
+@@ -18745,7 +19325,7 @@
+     shlibpath_overrides_runpath=no
+     hardcode_into_libs=yes
+     ;;
+-  freebsd*) # from 4.6 on
++  *) # from 4.6 on, and DragonFly
+     shlibpath_overrides_runpath=yes
+     hardcode_into_libs=yes
+     ;;
+@@ -18808,7 +19388,7 @@
+   postinstall_cmds='chmod 555 $lib'
+   ;;
+ 
+-interix3*)
++interix[3-9]*)
+   version_type=linux
+   need_lib_prefix=no
+   need_version=no
+@@ -18879,7 +19459,7 @@
+ 
+   # Append ld.so.conf contents to the search path
+   if test -f /etc/ld.so.conf; then
+-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
++    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+   fi
+ 
+@@ -18892,18 +19472,6 @@
+   dynamic_linker='GNU/Linux ld.so'
+   ;;
+ 
+-netbsdelf*-gnu)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+-  soname_spec='${libname}${release}${shared_ext}$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=no
+-  hardcode_into_libs=yes
+-  dynamic_linker='NetBSD ld.elf_so'
+-  ;;
+-
+ netbsd*)
+   version_type=sunos
+   need_lib_prefix=no
+@@ -18985,6 +19553,10 @@
+   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+   ;;
+ 
++rdos*)
++  dynamic_linker=no
++  ;;
++
+ solaris*)
+   version_type=linux
+   need_lib_prefix=no
+@@ -19081,6 +19653,21 @@
+ echo "${ECHO_T}$dynamic_linker" >&6; }
+ test "$dynamic_linker" = no && can_build_shared=no
+ 
++if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
++fi
++
++sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
++if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
++fi
++
++sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
++
+ variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+ if test "$GCC" = yes; then
+   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+@@ -19164,6 +19751,7 @@
+     predeps_GCJ \
+     postdeps_GCJ \
+     compiler_lib_search_path_GCJ \
++    compiler_lib_search_dirs_GCJ \
+     archive_cmds_GCJ \
+     archive_expsym_cmds_GCJ \
+     postinstall_cmds_GCJ \
+@@ -19179,6 +19767,7 @@
+     module_cmds_GCJ \
+     module_expsym_cmds_GCJ \
+     lt_cv_prog_compiler_c_o_GCJ \
++    fix_srcfile_path_GCJ \
+     exclude_expsyms_GCJ \
+     include_expsyms_GCJ; do
+ 
+@@ -19411,6 +20000,10 @@
+ # shared library.
+ postdeps=$lt_postdeps_GCJ
+ 
++# The directories searched by this compiler when creating a shared
++# library
++compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_GCJ
++
+ # The library search path used internally by the compiler when linking
+ # a shared library.
+ compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
+@@ -19499,7 +20092,7 @@
+ sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+ 
+ # Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path="$fix_srcfile_path_GCJ"
++fix_srcfile_path=$lt_fix_srcfile_path
+ 
+ # Set to yes if exported symbols are required.
+ always_export_symbols=$always_export_symbols_GCJ
+@@ -19556,7 +20149,7 @@
+ objext_RC=$objext
+ 
+ # Code to be used in simple compile tests
+-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
++lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+ 
+ # Code to be used in simple link tests
+ lt_simple_link_test_code="$lt_simple_compile_test_code"
+@@ -19575,16 +20168,16 @@
+ 
+ # save warnings/boilerplate of simple test code
+ ac_outfile=conftest.$ac_objext
+-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
++echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+ eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+ _lt_compiler_boilerplate=`cat conftest.err`
+ $rm conftest*
+ 
+ ac_outfile=conftest.$ac_objext
+-printf "$lt_simple_link_test_code" >conftest.$ac_ext
++echo "$lt_simple_link_test_code" >conftest.$ac_ext
+ eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+ _lt_linker_boilerplate=`cat conftest.err`
+-$rm conftest*
++$rm -r conftest*
+ 
+ 
+ # Allow CC to be a program name with arguments.
+@@ -19644,6 +20237,7 @@
+     predeps_RC \
+     postdeps_RC \
+     compiler_lib_search_path_RC \
++    compiler_lib_search_dirs_RC \
+     archive_cmds_RC \
+     archive_expsym_cmds_RC \
+     postinstall_cmds_RC \
+@@ -19659,6 +20253,7 @@
+     module_cmds_RC \
+     module_expsym_cmds_RC \
+     lt_cv_prog_compiler_c_o_RC \
++    fix_srcfile_path_RC \
+     exclude_expsyms_RC \
+     include_expsyms_RC; do
+ 
+@@ -19891,6 +20486,10 @@
+ # shared library.
+ postdeps=$lt_postdeps_RC
+ 
++# The directories searched by this compiler when creating a shared
++# library
++compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_RC
++
+ # The library search path used internally by the compiler when linking
+ # a shared library.
+ compiler_lib_search_path=$lt_compiler_lib_search_path_RC
+@@ -19979,7 +20578,7 @@
+ sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+ 
+ # Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path="$fix_srcfile_path_RC"
++fix_srcfile_path=$lt_fix_srcfile_path
+ 
+ # Set to yes if exported symbols are required.
+ always_export_symbols=$always_export_symbols_RC
+@@ -20842,12 +21441,14 @@
+ { echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5
+ echo "${ECHO_T}$acl_cv_rpath" >&6; }
+   wl="$acl_cv_wl"
+-  libext="$acl_cv_libext"
+-  shlibext="$acl_cv_shlibext"
+-  hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+-  hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+-  hardcode_direct="$acl_cv_hardcode_direct"
+-  hardcode_minus_L="$acl_cv_hardcode_minus_L"
++  acl_libext="$acl_cv_libext"
++  acl_shlibext="$acl_cv_shlibext"
++  acl_libname_spec="$acl_cv_libname_spec"
++  acl_library_names_spec="$acl_cv_library_names_spec"
++  acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
++  acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
++  acl_hardcode_direct="$acl_cv_hardcode_direct"
++  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+     # Check whether --enable-rpath was given.
+ if test "${enable_rpath+set}" = set; then
+   enableval=$enable_rpath; :
+@@ -20882,6 +21483,7 @@
+ 
+ 
+ 
++
+     use_additional=yes
+ 
+   acl_save_prefix="$prefix"
+@@ -20926,6 +21528,7 @@
+       LIBICONV=
+   LTLIBICONV=
+   INCICONV=
++  LIBICONV_PREFIX=
+   rpathdirs=
+   ltrpathdirs=
+   names_already_handled=
+@@ -20959,29 +21562,52 @@
+           found_la=
+           found_so=
+           found_a=
++          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
++          if test -n "$acl_shlibext"; then
++            shrext=".$acl_shlibext"             # typically: shrext=.so
++          else
++            shrext=
++          fi
+           if test $use_additional = yes; then
+-            if test -n "$shlibext" \
+-               && { test -f "$additional_libdir/lib$name.$shlibext" \
+-                    || { test "$shlibext" = dll \
+-                         && test -f "$additional_libdir/lib$name.dll.a"; }; }; then
+-              found_dir="$additional_libdir"
+-              if test -f "$additional_libdir/lib$name.$shlibext"; then
+-                found_so="$additional_libdir/lib$name.$shlibext"
+-              else
+-                found_so="$additional_libdir/lib$name.dll.a"
+-              fi
+-              if test -f "$additional_libdir/lib$name.la"; then
+-                found_la="$additional_libdir/lib$name.la"
+-              fi
+-            else
+-              if test -f "$additional_libdir/lib$name.$libext"; then
+-                found_dir="$additional_libdir"
+-                found_a="$additional_libdir/lib$name.$libext"
+-                if test -f "$additional_libdir/lib$name.la"; then
+-                  found_la="$additional_libdir/lib$name.la"
++            dir="$additional_libdir"
++                                    if test -n "$acl_shlibext"; then
++              if test -f "$dir/$libname$shrext"; then
++                found_dir="$dir"
++                found_so="$dir/$libname$shrext"
++              else
++                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
++                  ver=`(cd "$dir" && \
++                        for f in "$libname$shrext".*; do echo "$f"; done \
++                        | sed -e "s,^$libname$shrext\\\\.,," \
++                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
++                        | sed 1q ) 2>/dev/null`
++                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
++                    found_dir="$dir"
++                    found_so="$dir/$libname$shrext.$ver"
++                  fi
++                else
++                  eval library_names=\"$acl_library_names_spec\"
++                  for f in $library_names; do
++                    if test -f "$dir/$f"; then
++                      found_dir="$dir"
++                      found_so="$dir/$f"
++                      break
++                    fi
++                  done
+                 fi
+               fi
+             fi
++                        if test "X$found_dir" = "X"; then
++              if test -f "$dir/$libname.$acl_libext"; then
++                found_dir="$dir"
++                found_a="$dir/$libname.$acl_libext"
++              fi
++            fi
++            if test "X$found_dir" != "X"; then
++              if test -f "$dir/$libname.la"; then
++                found_la="$dir/$libname.la"
++              fi
++            fi
+           fi
+           if test "X$found_dir" = "X"; then
+             for x in $LDFLAGS $LTLIBICONV; do
+@@ -20997,26 +21623,42 @@
+               case "$x" in
+                 -L*)
+                   dir=`echo "X$x" | sed -e 's/^X-L//'`
+-                  if test -n "$shlibext" \
+-                     && { test -f "$dir/lib$name.$shlibext" \
+-                          || { test "$shlibext" = dll \
+-                               && test -f "$dir/lib$name.dll.a"; }; }; then
++                                    if test -n "$acl_shlibext"; then
++                    if test -f "$dir/$libname$shrext"; then
+                     found_dir="$dir"
+-                    if test -f "$dir/lib$name.$shlibext"; then
+-                      found_so="$dir/lib$name.$shlibext"
++                      found_so="$dir/$libname$shrext"
+                     else
+-                      found_so="$dir/lib$name.dll.a"
+-                    fi
+-                    if test -f "$dir/lib$name.la"; then
+-                      found_la="$dir/lib$name.la"
++                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
++                        ver=`(cd "$dir" && \
++                              for f in "$libname$shrext".*; do echo "$f"; done \
++                              | sed -e "s,^$libname$shrext\\\\.,," \
++                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
++                              | sed 1q ) 2>/dev/null`
++                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
++                          found_dir="$dir"
++                          found_so="$dir/$libname$shrext.$ver"
+                     fi
+                   else
+-                    if test -f "$dir/lib$name.$libext"; then
++                        eval library_names=\"$acl_library_names_spec\"
++                        for f in $library_names; do
++                          if test -f "$dir/$f"; then
++                            found_dir="$dir"
++                            found_so="$dir/$f"
++                            break
++                          fi
++                        done
++                      fi
++                    fi
++                  fi
++                                    if test "X$found_dir" = "X"; then
++                    if test -f "$dir/$libname.$acl_libext"; then
+                       found_dir="$dir"
+-                      found_a="$dir/lib$name.$libext"
+-                      if test -f "$dir/lib$name.la"; then
+-                        found_la="$dir/lib$name.la"
++                      found_a="$dir/$libname.$acl_libext"
++                    fi
+                       fi
++                  if test "X$found_dir" != "X"; then
++                    if test -f "$dir/$libname.la"; then
++                      found_la="$dir/$libname.la"
+                     fi
+                   fi
+                   ;;
+@@ -21042,10 +21684,10 @@
+                 if test -z "$haveit"; then
+                   ltrpathdirs="$ltrpathdirs $found_dir"
+                 fi
+-                                if test "$hardcode_direct" = yes; then
++                                if test "$acl_hardcode_direct" = yes; then
+                                                       LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                 else
+-                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
++                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+                                                             LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                                                             haveit=
+                     for x in $rpathdirs; do
+@@ -21077,7 +21719,7 @@
+                     if test -z "$haveit"; then
+                       LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
+                     fi
+-                    if test "$hardcode_minus_L" != no; then
++                    if test "$acl_hardcode_minus_L" != no; then
+                                                                                         LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                     else
+                                                                                                                                                                                 LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+@@ -21096,6 +21738,7 @@
+             case "$found_dir" in
+               */$acl_libdirstem | */$acl_libdirstem/)
+                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
++                LIBICONV_PREFIX="$basedir"
+                 additional_includedir="$basedir/include"
+                 ;;
+             esac
+@@ -21246,21 +21889,21 @@
+     done
+   done
+   if test "X$rpathdirs" != "X"; then
+-    if test -n "$hardcode_libdir_separator"; then
++    if test -n "$acl_hardcode_libdir_separator"; then
+                         alldirs=
+       for found_dir in $rpathdirs; do
+-        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
++        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+       done
+             acl_save_libdir="$libdir"
+       libdir="$alldirs"
+-      eval flag=\"$hardcode_libdir_flag_spec\"
++      eval flag=\"$acl_hardcode_libdir_flag_spec\"
+       libdir="$acl_save_libdir"
+       LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+     else
+             for found_dir in $rpathdirs; do
+         acl_save_libdir="$libdir"
+         libdir="$found_dir"
+-        eval flag=\"$hardcode_libdir_flag_spec\"
++        eval flag=\"$acl_hardcode_libdir_flag_spec\"
+         libdir="$acl_save_libdir"
+         LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+       done
+@@ -21414,6 +22057,132 @@
+ { echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5
+ echo "${ECHO_T}$am_cv_func_iconv" >&6; }
+   if test "$am_cv_func_iconv" = yes; then
++    { echo "$as_me:$LINENO: checking for working iconv" >&5
++echo $ECHO_N "checking for working iconv... $ECHO_C" >&6; }
++if test "${am_cv_func_iconv_works+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++            am_save_LIBS="$LIBS"
++      if test $am_cv_lib_iconv = yes; then
++        LIBS="$LIBS $LIBICONV"
++      fi
++      if test "$cross_compiling" = yes; then
++  case "$host_os" in
++           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
++           *)            am_cv_func_iconv_works="guessing yes" ;;
++         esac
++else
++  cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++
++#include <iconv.h>
++#include <string.h>
++int main ()
++{
++  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
++     returns.  */
++  {
++    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
++    if (cd_utf8_to_88591 != (iconv_t)(-1))
++      {
++        static const char input[] = "\342\202\254"; /* EURO SIGN */
++        char buf[10];
++        const char *inptr = input;
++        size_t inbytesleft = strlen (input);
++        char *outptr = buf;
++        size_t outbytesleft = sizeof (buf);
++        size_t res = iconv (cd_utf8_to_88591,
++                            (char **) &inptr, &inbytesleft,
++                            &outptr, &outbytesleft);
++        if (res == 0)
++          return 1;
++      }
++  }
++#if 0 /* This bug could be worked around by the caller.  */
++  /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
++  {
++    iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
++    if (cd_88591_to_utf8 != (iconv_t)(-1))
++      {
++        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
++        char buf[50];
++        const char *inptr = input;
++        size_t inbytesleft = strlen (input);
++        char *outptr = buf;
++        size_t outbytesleft = sizeof (buf);
++        size_t res = iconv (cd_88591_to_utf8,
++                            (char **) &inptr, &inbytesleft,
++                            &outptr, &outbytesleft);
++        if ((int)res > 0)
++          return 1;
++      }
++  }
++#endif
++  /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
++     provided.  */
++  if (/* Try standardized names.  */
++      iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
++      /* Try IRIX, OSF/1 names.  */
++      && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
++      /* Try AIX names.  */
++      && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
++      /* Try HP-UX names.  */
++      && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
++    return 1;
++  return 0;
++}
++_ACEOF
++rm -f conftest$ac_exeext
++if { (ac_try="$ac_link"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
++  (eval "$ac_link") 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
++  { (case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
++  (eval "$ac_try") 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  am_cv_func_iconv_works=yes
++else
++  echo "$as_me: program exited with status $ac_status" >&5
++echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++( exit $ac_status )
++am_cv_func_iconv_works=no
++fi
++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
++fi
++
++
++      LIBS="$am_save_LIBS"
++
++fi
++{ echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5
++echo "${ECHO_T}$am_cv_func_iconv_works" >&6; }
++    case "$am_cv_func_iconv_works" in
++      *no) am_func_iconv=no am_cv_lib_iconv=no ;;
++      *)   am_func_iconv=yes ;;
++    esac
++  else
++    am_func_iconv=no am_cv_lib_iconv=no
++  fi
++  if test "$am_func_iconv" = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_ICONV 1
+@@ -21945,46 +22714,6 @@
+ # authors decide to do this AGAIN. Which I really hope they won't. TBB
+ 
+ if test "$withval" != no; then
+-  # Extract the first word of "libpng12-config", so it can be a program name with args.
+-set dummy libpng12-config; ac_word=$2
+-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+-if test "${ac_cv_path_LIBPNG12_CONFIG+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  case $LIBPNG12_CONFIG in
+-  [\\/]* | ?:[\\/]*)
+-  ac_cv_path_LIBPNG12_CONFIG="$LIBPNG12_CONFIG" # Let the user override the test with a path.
+-  ;;
+-  *)
+-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+-    ac_cv_path_LIBPNG12_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-IFS=$as_save_IFS
+-
+-  ;;
+-esac
+-fi
+-LIBPNG12_CONFIG=$ac_cv_path_LIBPNG12_CONFIG
+-if test -n "$LIBPNG12_CONFIG"; then
+-  { echo "$as_me:$LINENO: result: $LIBPNG12_CONFIG" >&5
+-echo "${ECHO_T}$LIBPNG12_CONFIG" >&6; }
+-else
+-  { echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6; }
+-fi
+-
+-
+   # Extract the first word of "libpng-config", so it can be a program name with args.
+ set dummy libpng-config; ac_word=$2
+ { echo "$as_me:$LINENO: checking for $ac_word" >&5
+@@ -22025,12 +22754,7 @@
+ fi
+ 
+ 
+-  if test -n "$LIBPNG12_CONFIG"; then
+-    libpng_CPPFLAGS=`libpng12-config --cflags`
+-    # should be --ldopts, but it's currently broken
+-    libpng_LDFLAGS=`libpng12-config --ldflags`
+-    libpng_LDFLAGS=`echo " $libpng_LDFLAGS" | sed 's/ -l[^ ][^ ]*//g'`
+-  elif test -n "$LIBPNG_CONFIG"; then
++  if test -n "$LIBPNG_CONFIG"; then
+     libpng_CPPFLAGS=`libpng-config --cflags`
+     # should be --ldopts, but it's currently broken
+     libpng_LDFLAGS=`libpng-config --ldflags`
+@@ -22337,83 +23061,7 @@
+   _ldflags="$LDFLAGS"
+   LDFLAGS="$libpng_LDFLAGS $LDFLAGS"
+ 
+-  if test -n "$LIBPNG12_CONFIG"; then
+-    { echo "$as_me:$LINENO: checking for png_create_read_struct in -lpng12" >&5
+-echo $ECHO_N "checking for png_create_read_struct in -lpng12... $ECHO_C" >&6; }
+-if test "${ac_cv_lib_png12_png_create_read_struct+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lpng12  $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-/* Override any GCC internal prototype to avoid an error.
+-   Use char because int might match the return type of a GCC
+-   builtin and then its argument prototype would still apply.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char png_create_read_struct ();
+-int
+-main ()
+-{
+-return png_create_read_struct ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (ac_try="$ac_link"
+-case "(($ac_try" in
+-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+-  *) ac_try_echo=$ac_try;;
+-esac
+-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+-  (eval "$ac_link") 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } && {
+-	 test -z "$ac_c_werror_flag" ||
+-	 test ! -s conftest.err
+-       } && test -s conftest$ac_exeext &&
+-       $as_test_x conftest$ac_exeext; then
+-  ac_cv_lib_png12_png_create_read_struct=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-	ac_cv_lib_png12_png_create_read_struct=no
+-fi
+-
+-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+-      conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-{ echo "$as_me:$LINENO: result: $ac_cv_lib_png12_png_create_read_struct" >&5
+-echo "${ECHO_T}$ac_cv_lib_png12_png_create_read_struct" >&6; }
+-if test $ac_cv_lib_png12_png_create_read_struct = yes; then
+-  LIBS="-lpng12 $LIBS"
+-       FEATURES="GD_PNG $FEATURES"
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_LIBPNG 1
+-_ACEOF
+-
+-else
+-  LDFLAGS="$_ldflags"
+-       { echo "$as_me:$LINENO: WARNING: libpng is required - see http://www.libpng.org/pub/png/" >&5
+-echo "$as_me: WARNING: libpng is required - see http://www.libpng.org/pub/png/" >&2;}
+-fi
+-
+-  elif test -n "$LIBPNG_CONFIG"; then
++  if test -n "$LIBPNG_CONFIG"; then
+     { echo "$as_me:$LINENO: checking for png_create_read_struct in -lpng" >&5
+ echo $ECHO_N "checking for png_create_read_struct in -lpng... $ECHO_C" >&6; }
+ if test "${ac_cv_lib_png_png_create_read_struct+set}" = set; then
+@@ -24075,7 +24723,7 @@
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by GD $as_me 2.0.34, which was
++This file was extended by GD $as_me 2.0.35, which was
+ generated by GNU Autoconf 2.61.  Invocation command line was
+ 
+   CONFIG_FILES    = $CONFIG_FILES
+@@ -24128,7 +24776,7 @@
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF
+ ac_cs_version="\\
+-GD config.status 2.0.34
++GD config.status 2.0.35
+ configured by $0, generated by GNU Autoconf 2.61,
+   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+ 
+@@ -24139,6 +24787,7 @@
+ ac_pwd='$ac_pwd'
+ srcdir='$srcdir'
+ INSTALL='$INSTALL'
++MKDIR_P='$MKDIR_P'
+ _ACEOF
+ 
+ cat >>$CONFIG_STATUS <<\_ACEOF
+@@ -24366,6 +25015,7 @@
+ INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
+ INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
+ INSTALL_DATA!$INSTALL_DATA$ac_delim
++am__isrc!$am__isrc$ac_delim
+ CYGPATH_W!$CYGPATH_W$ac_delim
+ PACKAGE!$PACKAGE$ac_delim
+ VERSION!$VERSION$ac_delim
+@@ -24401,11 +25051,10 @@
+ CCDEPMODE!$CCDEPMODE$ac_delim
+ am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
+ am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
++SED!$SED$ac_delim
+ GREP!$GREP$ac_delim
+ EGREP!$EGREP$ac_delim
+ LN_S!$LN_S$ac_delim
+-ECHO!$ECHO$ac_delim
+-AR!$AR$ac_delim
+ _ACEOF
+ 
+   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
+@@ -24447,7 +25096,11 @@
+ ac_delim='%!_!# '
+ for ac_last_try in false false false false false :; do
+   cat >conf$$subs.sed <<_ACEOF
++ECHO!$ECHO$ac_delim
++AR!$AR$ac_delim
+ RANLIB!$RANLIB$ac_delim
++DSYMUTIL!$DSYMUTIL$ac_delim
++NMEDIT!$NMEDIT$ac_delim
+ CPP!$CPP$ac_delim
+ CXX!$CXX$ac_delim
+ CXXFLAGS!$CXXFLAGS$ac_delim
+@@ -24463,7 +25116,6 @@
+ XMKMF!$XMKMF$ac_delim
+ LIBICONV!$LIBICONV$ac_delim
+ LTLIBICONV!$LTLIBICONV$ac_delim
+-LIBPNG12_CONFIG!$LIBPNG12_CONFIG$ac_delim
+ LIBPNG_CONFIG!$LIBPNG_CONFIG$ac_delim
+ FREETYPE_CONFIG!$FREETYPE_CONFIG$ac_delim
+ acx_pthread_config!$acx_pthread_config$ac_delim
+@@ -24474,7 +25126,7 @@
+ LTLIBOBJS!$LTLIBOBJS$ac_delim
+ _ACEOF
+ 
+-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 25; then
++  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 28; then
+     break
+   elif $ac_last_try; then
+     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+@@ -24701,6 +25353,11 @@
+   [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+   *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+   esac
++  ac_MKDIR_P=$MKDIR_P
++  case $MKDIR_P in
++  [\\/$]* | ?:[\\/]* ) ;;
++  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
++  esac
+ _ACEOF
+ 
+ cat >>$CONFIG_STATUS <<\_ACEOF
+@@ -24754,6 +25411,7 @@
+ s&@abs_builddir@&$ac_abs_builddir&;t t
+ s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+ s&@INSTALL@&$ac_INSTALL&;t t
++s&@MKDIR_P@&$ac_MKDIR_P&;t t
+ $ac_datarootdir_hack
+ " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
+ 
+@@ -24869,21 +25527,22 @@
+   fi
+   rm -f "$tmp/out12"
+ # Compute $ac_file's index in $config_headers.
++_am_arg=$ac_file
+ _am_stamp_count=1
+ for _am_header in $config_headers :; do
+   case $_am_header in
+-    $ac_file | $ac_file:* )
++    $_am_arg | $_am_arg:* )
+       break ;;
+     * )
+       _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+   esac
+ done
+-echo "timestamp for $ac_file" >`$as_dirname -- $ac_file ||
+-$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-	 X$ac_file : 'X\(//\)[^/]' \| \
+-	 X$ac_file : 'X\(//\)$' \| \
+-	 X$ac_file : 'X\(/\)' \| . 2>/dev/null ||
+-echo X$ac_file |
++echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
++$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++	 X"$_am_arg" : 'X\(//\)[^/]' \| \
++	 X"$_am_arg" : 'X\(//\)$' \| \
++	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
++echo X"$_am_arg" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ 	    s//\1/
+ 	    q
+@@ -24918,8 +25577,9 @@
+   # some people rename them; so instead we look at the file content.
+   # Grep'ing the first line is not enough: some people post-process
+   # each Makefile.in and add a new line on top of each file to say so.
+-  # So let's grep whole file.
+-  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
++  # Grep'ing the whole file is not good either: AIX grep has a line
++  # limit of 2048, but all sed's we know have understand at least 4000.
++  if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+     dirpart=`$as_dirname -- "$mf" ||
+ $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ 	 X"$mf" : 'X\(//\)[^/]' \| \
--- a/usr/src/lib/gd2/install-sfw	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/lib/gd2/install-sfw	Fri Oct 15 22:35:17 2010 -0700
@@ -20,10 +20,9 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
+# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-#ident	"@(#)install-sfw	1.3	10/02/19 SMI"
+#ident	"@(#)install-sfw	1.4	10/10/05 SMI"
 
 PREFIX=${ROOT}/usr
 LIBDIR=${PREFIX}/lib
@@ -54,9 +53,6 @@
 _install E .libs/pngtogd2 ${BINDIR}/pngtogd2 0555
 _install E .libs/webpng ${BINDIR}/webpng 0555
 
-sed -e "s#-Y P,/usr/openwin/lib:/usr/sfw/lib:/usr/lib -i ##g" config/gdlib-config > config/gdlib-config.sed
-cp -fp config/gdlib-config.sed config/gdlib-config
-
 _install S config/gdlib-config ${BINDIR}/gdlib-config 0555
 
 _install N index.html ${HTMLDOCDIR}/index.html 0444
--- a/usr/src/lib/gd2/install-sfw-64	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/lib/gd2/install-sfw-64	Fri Oct 15 22:35:17 2010 -0700
@@ -20,10 +20,9 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
+# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-#ident	"@(#)install-sfw-64	1.3	10/02/19 SMI"
+#ident	"@(#)install-sfw-64	1.4	10/10/05 SMI"
 
 UNAMEP=`uname -p`
 MACH=""
@@ -38,6 +37,7 @@
 PREFIX=${ROOT}/usr
 LIBDIR=${PREFIX}/lib/${MACH64}
 BINDIR=${PREFIX}/bin/${MACH64}
+SED=/usr/gnu/bin/sed
 
 . ${SRC}/tools/install.subr
 
@@ -46,8 +46,10 @@
 mkdir -p ${BINDIR}
 mkdir -p ${LIBDIR}
 
-sed -e "s#-Y P,/usr/openwin/lib/${MACH}:/usr/sfw/lib/${MACH}:/usr/lib/${MACH} -i ##g" config/gdlib-config > config/gdlib-config.sed
+${SED} -e "s#-L/usr/lib ##g" config/gdlib-config > config/gdlib-config.sed
 cp -fp config/gdlib-config.sed config/gdlib-config
+perl -pi -e 's#-L/usr/X11/lib$##g' config/gdlib-config
+perl -pi -e 's#-L/usr/X11/lib"$#"#g' config/gdlib-config
 
 _install S config/gdlib-config ${BINDIR}/gdlib-config 0555
 
--- a/usr/src/pkgdefs/Makefile	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/pkgdefs/Makefile	Fri Oct 15 22:35:17 2010 -0700
@@ -22,7 +22,7 @@
 #
 # Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-# ident	"@(#)Makefile	1.284	10/08/03 SMI"
+# ident	"@(#)Makefile	1.285	10/10/07 SMI"
 #
 
 #
@@ -271,6 +271,7 @@
 	SUNWntpr \
 	SUNWntpu \
 	SUNWocaml \
+	SUNWofusr \
 	SUNWopenexr \
 	SUNWopenldapr \
 	SUNWopenldapu \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWofusr/Makefile	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,37 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# ident	"@(#)Makefile	1.2	10/10/11 SMI"
+#
+
+include ../Makefile.com
+
+DATAFILES=
+
+.KEEP_STATE:
+
+all: $(FILES)
+install: all pkg
+
+include ../Makefile.targ
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWofusr/copyright	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,3170 @@
+DO NOT TRANSLATE OR LOCALIZE.
+
+Oracle elects to use this software under and governed by the  OpenIB.org BSD
+license (see below for details) for any software where a choice of
+OpenIB.org BSD license or the GNU General Public License (GPL) Version 2 are
+made available with the language indicating that OpenIB.org BSD license or the
+GNU General Public License (GPL) Version 2 may be used.  Unless specifically
+stated otherwise, where a choice exists between another license and either the
+OpenIB.org BSD license or the GPL, Oracle chooses the OpenIB.org BSD license.
+
+The Software contains the following Copyrights, which are reproduced for
+this distribution as per OpenIB.org BSD license conditions:
+
+ibutils-1.2/COPYING:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/INSTALL:
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004 Free
+Software Foundation, Inc.
+
+ibutils-1.2/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+ibutils-1.2/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+ibutils-1.2/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+ibutils-1.2/ibutils.spec.in
+Copyright (c) 2006 Mellanox Technologies. All rights reserved.
+
+ibutils-1.2/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+ibutils-1.2/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+ibutils-1.2/ibdiag/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdiag/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibdiag/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibdiag/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+ibutils-1.2/ibdiag/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ibutils-1.2/ibdiag/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+ibutils-1.2/ibdiag/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+ibutils-1.2/ibdiag/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+ibutils-1.2/ibdiag/doc/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdiag/doc/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdiag/src/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdiag/src/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdiag/src/ibdiagnet.tcl:
+Copyright (c) 2005 Mellanox Technologies. All rights reserved.
+
+ibutils-1.2/ibdiag/src/ibdiagpath.tcl:
+Copyright (c) 2005 Mellanox Technologies. All rights reserved.
+
+ibutils-1.2/ibdm/COPYING:
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ibutils-1.2/ibdm/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/config/config.sub:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/config/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+ibutils-1.2/ibdm/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+ibutils-1.2/ibdm/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+ibutils-1.2/ibdm/config/ylwrap:
+Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/datamodel/Congestion.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/Congestion.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/CredLoops.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/CredLoops.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/Fabric.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/Fabric.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/FatTree.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/LinkCover.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/Regexp.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/SubnMgt.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/SubnMgt.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/SysDef.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/SysDef.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/TopoMatch.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/TopoMatch.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/TraceRoute.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/TraceRoute.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/fixSwigWrapper:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/ibdm.i:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/ibdm_wrap.cpp:
+Portions Copyright (c) 1995-1998
+The University of Utah and The Regents of the University of California.
+
+ibutils-1.2/ibdm/datamodel/ibdmsh_wrap.cpp:
+Portions Copyright (c) 1995-1998
+The University of Utah and The Regents of the University of California.
+
+ibutils-1.2/ibdm/datamodel/ibnl_parser.cc:
+Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc
+
+ibutils-1.2/ibdm/datamodel/ibnl_parser.h:
+Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc
+
+ibutils-1.2/ibdm/datamodel/ibnl_parser.yy:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/ibnl_scanner.ll:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/datamodel/swig_alternate_mangling.cpp
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/doc/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibdm/doc/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ 2003, 2004, 2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/replace/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/replace/malloc.c:
+Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/replace/memset.c:
+Copyright (C) 1991 Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/replace/realloc.c:
+ Copyright (C) 1997 Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/replace/regex.c:
+Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/replace/regex.h:
+Copyright (C) 1985,89,90,91,92,93,95,96,97,98 Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/src/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibdm/src/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibdm/src/fabric_sim.cpp:
+Copyright (C) Jan. 2004, Mellanox Technologies Ltd.  ALL RIGHTS RESERVED.
+
+ibutils-1.2/ibdm/src/fabric_tr.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/src/osm_check.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/src/test_ibnl_parser.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibdm/src/test_topo_match.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/COPYING:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/INSTALL:
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+ibutils-1.2/ibis/LICENSE:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibis/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibis/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+ibutils-1.2/ibis/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ibutils-1.2/ibis/config/config.sub:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ibutils-1.2/ibis/config/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ibutils-1.2/ibis/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+ibutils-1.2/ibis/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+ibutils-1.2/ibis/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+ibutils-1.2/ibis/doc/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/doc/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibis/src/ibbbm.c:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibbbm.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibbbm.i:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibbbm_base.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibcr.c:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibcr.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibcr.i:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibcr_base.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibis.c:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibis.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibis.i:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibis_api.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibis_base.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibis_gsi_mad_ctrl.c:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibis_gsi_mad_ctrl.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibis_typemaps.i:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibis_wrap.c:
+Portions Copyright (c) 1995-1998
+The University of Utah and The Regents of the University of California.
+
+ibutils-1.2/ibis/src/ibissh_wrap.cpp:
+Portions Copyright (c) 1995-1998
+The University of Utah and The Regents of the University of California.
+
+ibutils-1.2/ibis/src/ibpm.c:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibpm.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibpm.i:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibpm_base.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibsac.c:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibsac.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibsac.i:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibsm.c:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibsm.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibsm.i:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibvs.c:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibvs.i:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/ibvs_base.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/src/swig_extended_obj.c:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibis/tests/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibmgtsim/COPYING:
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ibutils-1.2/ibmgtsim/INSTALL:
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+ibutils-1.2/ibmgtsim/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibmgtsim/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibmgtsim/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibmgtsim/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+ibutils-1.2/ibmgtsim/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ibutils-1.2/ibmgtsim/config/config.sub:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ibutils-1.2/ibmgtsim/config/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ibutils-1.2/ibmgtsim/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+ibutils-1.2/ibmgtsim/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+ibutils-1.2/ibmgtsim/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+ibutils-1.2/ibmgtsim/doc/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibmgtsim/doc/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibmgtsim/src/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+ibutils-1.2/ibmgtsim/src/client.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/dispatcher.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/dispatcher.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/helper.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/ib_types.i:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/ib_types_extend.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/ibms_client_api.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/ibmssh_wrap.cpp:
+Portions Copyright (c) 1995-1998
+The University of Utah and The Regents of the University of California.
+
+ibutils-1.2/ibmgtsim/src/mads.i:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/msgmgr.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/msgmgr.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/node.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/node.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/pma.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/pma.h
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/randmgr.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/randmgr.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/server.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/server.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/sim.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/sim.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/sim.i:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/simmsg.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/simmsg.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/sma.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/sma.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/swig_alternate_mangling.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/tcpcomm.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/tcpcomm.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/vsa.cpp:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/src/vsa.h:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved
+
+ibutils-1.2/ibmgtsim/tests/Makefile.am
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibmgtsim/tests/Makefile.in
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibmgtsim/utils/IBMgtSim:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibmgtsim/utils/LICENSE.txt:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibmgtsim/utils/Makefile.am:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibmgtsim/utils/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibmgtsim/utils/RunSimTest:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibmgtsim/utils/fixSwigWrapper:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibmgtsim/utils/header.c:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibmgtsim/utils/header.sh:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibmgtsim/utils/install.sh:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+ibutils-1.2/ibmgtsim/utils/uninstall.sh:
+Copyright (c) 2004 Mellanox Technologies LTD. All rights reserved.
+
+infiniband-diags-1.3.6/COPYING:
+Copyright (c) 2004, 2005 Voltaire, Inc.  All rights reserved
+
+infiniband-diags-1.3.6/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+infiniband-diags-1.3.6/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+infiniband-diags-1.3.6/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+infiniband-diags-1.3.6/config/compile:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+Written by Tom Tromey <[email protected]>.
+
+infiniband-diags-1.3.6/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+infiniband-diags-1.3.6/config/config.sub:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+infiniband-diags-1.3.6/config/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+infiniband-diags-1.3.6/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+infiniband-diags-1.3.6/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+infiniband-diags-1.3.6/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+infiniband-diags-1.3.6/include/grouping.h:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+Copyright (c) 2007 Xsigo Systems Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/include/ibdiag_common.h:
+Copyright (c) 2006-2007 The Regents of the University of California.
+Copyright (c) 2004-2006 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/include/ibdiag_version.h:
+Copyright (c) 2008 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/include/ibdiag_version.h.in:
+Copyright (c) 2008 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/include/ibnetdiscover.h:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+Copyright (c) 2007 Xsigo Systems Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/scripts/IBswcountlimits.pm:
+Copyright (c) 2006 The Regents of the University of California.
+Copyright (c) 2006-2007 Voltaire, Inc. All rights reserved.
+
+infiniband-diags-1.3.6/scripts/ibfindnodesusing.pl:
+Copyright (C) 2001-2003 The Regents of the University of California.
+Copyright (c) 2006 The Regents of the University of California.
+Copyright (c) 2007 Voltaire, Inc. All rights reserved.
+
+infiniband-diags-1.3.6/scripts/ibidsverify.pl:
+Copyright (c) 2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2006 The Regents of the University of California.
+
+infiniband-diags-1.3.6/scripts/iblinkinfo.pl:
+Copyright (c) 2006 The Regents of the University of California.
+Copyright (c) 2007 Voltaire, Inc. All rights reserved.
+
+infiniband-diags-1.3.6/scripts/ibprintca.pl:
+Copyright (c) 2006 The Regents of the University of California.
+Copyright (c) 2007 Voltaire, Inc. All rights reserved.
+
+infiniband-diags-1.3.6/scripts/ibprintrt.pl:
+Copyright (c) 2006 The Regents of the University of California.
+Copyright (c) 2007 Voltaire, Inc. All rights reserved.
+
+infiniband-diags-1.3.6/scripts/ibprintswitch.pl:
+Copyright (c) 2006 The Regents of the University of California.
+
+infiniband-diags-1.3.6/scripts/ibqueryerrors.pl:
+Copyright (c) 2006 The Regents of the University of California.
+
+infiniband-diags-1.3.6/scripts/ibswportwatch.pl:
+Copyright (c) 2006 The Regents of the University of California.
+
+infiniband-diags-1.3.6/src/solaris_set_nodedesc.c:
+Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+
+infiniband-diags-1.3.6/src/grouping.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+Copyright (c) 2007 Xsigo Systems Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/src/ibaddr.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/src/ibdiag_common.c:
+Copyright (c) 2006-2007 The Regents of the University of California.
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+
+infiniband-diags-1.3.6/src/ibnetdiscover.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+Copyright (c) 2007 Xsigo Systems Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/src/ibping.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/src/ibportstate.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/src/ibroute.c:
+Copyright (c) 2004-2006 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/src/ibstat.c:
+Copyright (c) 2004-2006 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/src/ibsysstat.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/src/ibtracert.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/src/mcm_rereg_test.c:
+Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+
+infiniband-diags-1.3.6/src/perfquery.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+Copyright (c) 2007 Xsigo Systems Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/src/saquery.c:
+Copyright (c) 2006,2007 The Regents of the University of California.
+Copyright (c) 2004-2008 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+infiniband-diags-1.3.6/src/sminfo.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/src/smpdump.c:
+Copyright (c) 2004-2006 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/src/smpquery.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/src/vendstat.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/include/grouping.h:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+Copyright (c) 2007 Xsigo Systems Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/include/ibdiag_common.h:
+Copyright (c) 2006-2007 The Regents of the University of California.
+Copyright (c) 2004-2006 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/include/ibdiag_version.h:
+Copyright (c) 2008 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/include/ibdiag_version.h.in:
+Copyright (c) 2008 Voltaire Inc.  All rights reserved.
+
+infiniband-diags-1.3.6/include/ibnetdiscover.h:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+Copyright (c) 2007 Xsigo Systems Inc.  All rights reserved.
+
+libibcommon-1.0.8/COPYING:
+Copyright (c) 2004, 2005 Voltaire, Inc.  All rights reserved
+
+libibcommon-1.0.8/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+libibcommon-1.0.8/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+libibcommon-1.0.8/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+libibcommon-1.0.8/config/compile:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+Written by Tom Tromey <[email protected]>.
+
+libibcommon-1.0.8/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libibcommon-1.0.8/config/config.sub:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libibcommon-1.0.8/config/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libibcommon-1.0.8/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+libibcommon-1.0.8/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+libibcommon-1.0.8/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+libibcommon-1.0.8/src/hash.c:
+Copyright (c) 2005 Voltaire Inc.  All rights reserved.
+
+libibcommon-1.0.8/src/stack.c:
+Copyright (c) 2004,2005 Voltaire Inc.  All rights reserved.
+
+libibcommon-1.0.8/src/sysfs.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+libibcommon-1.0.8/src/time.c:
+Copyright (c) 2004,2005 Voltaire Inc.  All rights reserved.
+
+libibcommon-1.0.8/src/util.c:
+Copyright (c) 2004,2005 Voltaire Inc.  All rights reserved
+
+libibcommon-1.0.8/include/infiniband/common.h:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+libibmad-1.1.6/COPYING:
+Copyright (c) 2004, 2005 Voltaire, Inc.  All rights reserved
+
+libibmad-1.1.6/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+libibmad-1.1.6/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+libibmad-1.1.6/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+libibmad-1.1.6/config/compile:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+Written by Tom Tromey <[email protected]>.
+
+libibmad-1.1.6/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libibmad-1.1.6/config/config.sub:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libibmad-1.1.6/config/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libibmad-1.1.6/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+libibmad-1.1.6/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+libibmad-1.1.6/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+libibmad-1.1.6/src/dump.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+Copyright (c) 2007 Xsigo Systems Inc.  All rights reserved.
+
+libibmad-1.1.6/src/fields.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+libibmad-1.1.6/src/gs.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+libibmad-1.1.6/src/mad.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+libibmad-1.1.6/src/portid.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+libibmad-1.1.6/src/register.c:
+Copyright (c) 2004,2005 Voltaire Inc.  All rights reserved.
+
+libibmad-1.1.6/src/resolve.c:
+Copyright (c) 2004-2006 Voltaire Inc.  All rights reserved.
+
+libibmad-1.1.6/src/rpc.c:
+Copyright (c) 2004-2006 Voltaire Inc.  All rights reserved.
+
+libibmad-1.1.6/src/sa.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+libibmad-1.1.6/src/serv.c:
+Copyright (c) 2004,2005 Voltaire Inc.  All rights reserved.
+
+libibmad-1.1.6/src/smp.c:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+libibmad-1.1.6/src/vendor.c:
+Copyright (c) 2004,2005 Voltaire Inc.  All rights reserved.
+
+libibmad-1.1.6/include/infiniband/mad.h:
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+libibumad-1.1.7/COPYING:
+Copyright (c) 2004, 2005 Voltaire, Inc.  All rights reserved
+
+libibumad-1.1.7/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+libibumad-1.1.7/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+libibumad-1.1.7/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+libibumad-1.1.7/config/compile:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+Written by Tom Tromey <[email protected]>.
+
+libibumad-1.1.7/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libibumad-1.1.7/config/config.sub:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libibumad-1.1.7/config/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libibumad-1.1.7/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+libibumad-1.1.7/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+libibumad-1.1.7/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+libibumad-1.1.7/src/umad.c
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+libibumad-1.1.7/include/infiniband/umad.h
+Copyright (c) 2004-2007 Voltaire Inc.  All rights reserved.
+
+libibverbs-1.1.1/COPYING:
+Copyright (c) 2004 Topspin Communications.  All rights reserved.
+
+libibverbs-1.1.1/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+libibverbs-1.1.1/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+libibverbs-1.1.1/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+libibverbs-1.1.1/config/compile:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+Written by Tom Tromey <[email protected]>.
+
+libibverbs-1.1.1/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libibverbs-1.1.1/config/config.sub:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libibverbs-1.1.1/config/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libibverbs-1.1.1/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+libibverbs-1.1.1/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+libibverbs-1.1.1/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+libibverbs-1.1.1/examples/pingpong.h:
+Copyright (c) 2006 Cisco Systems.  All rights reserved.
+
+libibverbs-1.1.1/examples/asyncwatch.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+
+libibverbs-1.1.1/examples/device_list.c:
+Copyright (c) 2004 Topspin Communications.  All rights reserved.
+
+libibverbs-1.1.1/examples/devinfo.c:
+Copyright (c) 2005 Cisco Systems.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+
+libibverbs-1.1.1/examples/pingpong.c:
+Copyright (c) 2006 Cisco Systems.  All rights reserved.
+
+libibverbs-1.1.1/examples/rc_pingpong.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+
+libibverbs-1.1.1/examples/srq_pingpong.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+
+libibverbs-1.1.1/examples/ud_pingpong.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+
+libibverbs-1.1.1/examples/uc_pingpong.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+
+libibverbs-1.1.1/include/infiniband/arch.h:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+ 
+libibverbs-1.1.1/include/infiniband/driver.h:
+Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005, 2006 Cisco Systems, Inc.  All rights reserved.
+Copyright (c) 2005 PathScale, Inc.  All rights reserved.
+ 
+libibverbs-1.1.1/include/infiniband/kern-abi.h:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005, 2006 Cisco Systems.  All rights reserved.
+Copyright (c) 2005 PathScale, Inc.  All rights reserved.
+ 
+libibverbs-1.1.1/include/infiniband/marshall.h:
+Copyright (c) 2005 Intel Corporation.  All rights reserved.
+ 
+libibverbs-1.1.1/include/infiniband/opcode.h:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+ 
+libibverbs-1.1.1/include/infiniband/sa-kern-abi.h:
+Copyright (c) 2005 Intel Corporation.  All rights reserved.
+ 
+libibverbs-1.1.1/include/infiniband/sa.h:
+Copyright (c) 2004 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Voltaire, Inc. All rights reserved.
+
+libibverbs-1.1.1/include/infiniband/ofa_solaris.h:
+Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ 
+libibverbs-1.1.1/include/infiniband/verbs.h:
+Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2004 Intel Corporation.  All rights reserved.
+Copyright (c) 2005, 2006, 2007 Cisco Systems, Inc.  All rights reserved.
+Copyright (c) 2005 PathScale, Inc.  All rights reserved.
+
+libibverbs-1.1.1/src/ibverbs.h:
+Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2007 Cisco Systems, Inc.  All rights reserved.
+ 
+libibverbs-1.1.1/src/kern_abi.h:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+ 
+libibverbs-1.1.1/src/cmd.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 PathScale, Inc.  All rights reserved.
+Copyright (c) 2006 Cisco Systems, Inc.  All rights reserved.
+ 
+libibverbs-1.1.1/src/compat-1_0.c:
+Copyright (c) 2007 Cisco Systems, Inc.  All rights reserved.
+ 
+libibverbs-1.1.1/src/device.c:
+Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2006, 2007 Cisco Systems, Inc.  All rights reserved.
+ 
+libibverbs-1.1.1/src/init.c:
+Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2006 Cisco Systems, Inc.  All rights reserved.
+ 
+libibverbs-1.1.1/src/marshall.c:
+Copyright (c) 2005 Intel Corporation.  All rights reserved.
+ 
+libibverbs-1.1.1/src/memory.c:
+Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2006 Cisco Systems, Inc.  All rights reserved.
+ 
+libibverbs-1.1.1/src/sysfs.c:
+Copyright (c) 2006 Cisco Systems, Inc.  All rights reserved.
+
+libibverbs-1.1.1/src/solaris_compatibility.c
+Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+
+libibverbs-1.1.1/src/verbs.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2006, 2007 Cisco Systems, Inc.  All rights reserved.
+
+
+libmlx4-1.0/COPYING:
+Copyright (c) 2007 Cisco, Inc.  All rights reserved.
+
+libmlx4-1.0/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+libmlx4-1.0/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+libmlx4-1.0/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+libmlx4-1.0/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libmlx4-1.0/config/config.sub:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libmlx4-1.0/config/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libmlx4-1.0/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+libmlx4-1.0/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+libmlx4-1.0/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+libmlx4-1.0/src/doorbell.h
+Copyright (c) 2007 Cisco, Inc.  All rights reserved.
+
+libmlx4-1.0/src/mlx4-abi.h:
+Copyright (c) 2007 Cisco, Inc.  All rights reserved.
+
+libmlx4-1.0/src/mlx4.h:
+Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005, 2006, 2007 Cisco Systems.  All rights reserved.
+
+libmlx4-1.0/src/wqe.h:
+Copyright (c) 2007 Cisco, Inc.  All rights reserved.
+
+libmlx4-1.0/src/buf.c:
+Copyright (c) 2006, 2007 Cisco, Inc.  All rights reserved.
+
+libmlx4-1.0/src/cq.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+Copyright (c) 2006, 2007 Cisco Systems.  All rights reserved.
+
+libmlx4-1.0/src/dbrec.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+
+libmlx4-1.0/src/mlx4.c:
+Copyright (c) 2007 Cisco, Inc.  All rights reserved.
+
+libmlx4-1.0/src/qp.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+Copyright (c) 2007 Cisco, Inc.  All rights reserved.
+ 
+libmlx4-1.0/src/srq.c:
+Copyright (c) 2007 Cisco, Inc.  All rights reserved.
+ 
+libmlx4-1.0/src/verbs.c:
+Copyright (c) 2007 Cisco, Inc.  All rights reserved.
+
+libmthca-1.0.4/COPYING:
+Copyright (c) 2004 Topspin Communications.  All rights reserved.
+
+libmthca-1.0.4/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+libmthca-1.0.4/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+libmthca-1.0.4/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+libmthca-1.0.4/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libmthca-1.0.4/config/config.sub:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libmthca-1.0.4/config/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libmthca-1.0.4/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+libmthca-1.0.4/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+libmthca-1.0.4/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+libmthca-1.0.4/src/doorbell.h:
+Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
+
+libmthca-1.0.4/src/mthca-abi.h:
+Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2006 Cisco Systems.  All rights reserved.
+
+libmthca-1.0.4/src/mthca.h
+Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005, 2006 Cisco Systems.  All rights reserved.
+
+libmthca-1.0.4/src/wqe.h
+Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Cisco Systems.  All rights reserved.
+
+libmthca-1.0.4/src/ah.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+
+libmthca-1.0.4/src/buf.c:
+Copyright (c) 2006 Cisco Systems, Inc.  All rights reserved.
+
+libmthca-1.0.4/src/cq.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+Copyright (c) 2006 Cisco Systems.  All rights reserved.
+
+libmthca-1.0.4/src/memfree.c:
+libmthca-1.0.4/src/mthca.c
+Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2006 Cisco Systems.  All rights reserved.
+ 
+libmthca-1.0.4/src/qp.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+ 
+libmthca-1.0.4/src/srq.c:
+Copyright (c) 2005 Cisco Systems.  All rights reserved.
+ 
+libmthca-1.0.4/src/verbs.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005, 2006 Cisco Systems.  All rights reserved.
+
+librdmacm-1.0.6/COPYING:
+Copyright (c) 2005 Intel Corporation.  All rights reserved.
+
+librdmacm-1.0.6/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+librdmacm-1.0.6/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+librdmacm-1.0.6/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+librdmacm-1.0.6/config/compile:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+Written by Tom Tromey <[email protected]>.
+
+librdmacm-1.0.6/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+librdmacm-1.0.6/config/config.sub:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+librdmacm-1.0.6/config/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+librdmacm-1.0.6/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+librdmacm-1.0.6/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+librdmacm-1.0.6/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+librdmacm-1.0.6/examples/cmatose.c:
+Copyright (c) 2005-2006 Intel Corporation.  All rights reserved.
+
+librdmacm-1.0.6/examples/mckey.c:
+Copyright (c) 2005-2007 Intel Corporation.  All rights reserved.
+
+librdmacm-1.0.6/examples/rping.c:
+Copyright (c) 2005 Ammasso, Inc. All rights reserved.
+Copyright (c) 2006 Open Grid Computing, Inc. All rights reserved.
+
+librdmacm-1.0.6/examples/udaddy.c:
+Copyright (c) 2005-2006 Intel Corporation.  All rights reserved.
+
+librdmacm-1.0.6/include/rdma/rdma_cma.h:
+Copyright (c) 2005 Voltaire Inc.  All rights reserved.
+Copyright (c) 2005-2007 Intel Corporation.  All rights reserved.
+
+librdmacm-1.0.6/include/rdma/rdma_cma_abi.h:
+Copyright (c) 2005-2006 Intel Corporation.  All rights reserved.
+
+librdmacm-1.0.6/src/cma.c:
+Copyright (c) 2005-2006 Intel Corporation.  All rights reserved.
+
+
+libsdp-1.1.99/COPYING:
+Copyright (c) 2004 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+
+libsdp-1.1.99/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+libsdp-1.1.99/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+libsdp-1.1.99/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+libsdp-1.1.99/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libsdp-1.1.99/config/config.sub:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libsdp-1.1.99/config/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+libsdp-1.1.99/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+libsdp-1.1.99/config/libsdp_indent:
+Copyright (c) 2006 Mellanox Technologies LTD. All rights reserved.
+
+libsdp-1.1.99/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+libsdp-1.1.99/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+libsdp-1.1.99/src/Makefile.in
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+libsdp-1.1.99/src/config_parser.y:
+Copyright (c) 2006 Mellanox Technologies Ltd. All rights reserved.
+
+libsdp-1.1.99/src/config_scanner.l:
+Copyright (c) 2006 Mellanox Technologies Ltd. All rights reserved.
+
+libsdp-1.1.99/src/config_parser.h:
+Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+libsdp-1.1.99/src/libsdp.h:
+Copyright (c) 2004 Topspin Communications.  All rights reserved.
+Copyright (c) 2005-2006 Mellanox Technologies Ltd.  All rights reserved.
+
+libsdp-1.1.99/src/sdp_inet.h:
+Copyright (c) 2004 Topspin Communications.  All rights reserved.
+
+libsdp-1.1.99/src/config_parser.c:
+Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+libsdp-1.1.99/src/config_scanner.c:
+Copyright (c) 2006 Mellanox Technologies Ltd. All rights reserved.
+
+libsdp-1.1.99/src/log.c:
+Copyright (c) 2004 Topspin Communications.  All rights reserved.
+
+libsdp-1.1.99/src/match.c:
+Copyright (c) 2004 Topspin Communications.  All rights reserved.
+Copyright (c) 2005-2006 Mellanox Technologies Ltd.  All rights reserved.
+ 
+libsdp-1.1.99/src/port.c:
+Copyright (c) 2004 Topspin Communications.  All rights reserved.
+Copyright (c) 2005-2006 Mellanox Technologies Ltd.  All rights reserved.
+ 
+libsdp-1.1.99/src/socket.c:
+Copyright (c) 2004 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+
+perftest-1.2/get_clock.c:
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+
+perftest-1.2/get_clock.h:
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+
+perftest-1.2/rdma_bw.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+
+perftest-1.2/rdma_lat.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+Copyright (c) 2005 Hewlett Packard, Inc (Grant Grundler)
+
+perftest-1.2/read_bw.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2006 Mellanox Technologies Ltd.  All rights reserved.
+
+perftest-1.2/read_lat.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+Copyright (c) 2005 Hewlett Packard, Inc (Grant Grundler)
+
+perftest-1.2/send_bw.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+
+perftest-1.2/send_lat.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+Copyright (c) 2005 Hewlett Packard, Inc (Grant Grundler)
+
+perftest-1.2/write_bw.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+
+perftest-1.2/write_bw_postlist.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+
+perftest-1.2/write_lat.c:
+Copyright (c) 2005 Topspin Communications.  All rights reserved.
+Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
+Copyright (c) 2005 Hewlett Packard, Inc (Grant Grundler)
+
+qperf-0.4.0/COPYING:
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+
+qperf-0.4.0/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+qperf-0.4.0/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+qperf-0.4.0/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+qperf-0.4.0/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+qperf-0.4.0/install-sh:
+Copyright (C) 1994 X Consortium
+
+qperf-0.4.0/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+qperf-0.4.0/src/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+qperf-0.4.0/src/help.c:
+Copyright (c) 2002-2008 Johann George.  All rights reserved.
+Copyright (c) 2006-2008 QLogic Corporation.  All rights reserved.
+
+qperf-0.4.0/src/mkhelp:
+Copyright (c) 2002-2008 Johann George.  All rights reserved.
+Copyright (c) 2006-2008 QLogic Corporation.  All rights reserved. 
+
+qperf-0.4.0/src/qperf.c:
+Copyright (c) 2002-2008 Johann George.  All rights reserved.
+Copyright (c) 2006-2008 QLogic Corporation.  All rights reserved.
+
+qperf-0.4.0/src/qperf.h:
+Copyright (c) 2002-2008 Johann George.  All rights reserved.
+Copyright (c) 2006-2008 QLogic Corporation.  All rights reserved.
+
+qperf-0.4.0/src/rdma.c:
+Copyright (c) 2002-2008 Johann George.  All rights reserved.
+Copyright (c) 2006-2008 QLogic Corporation.  All rights reserved.
+
+qperf-0.4.0/src/rds.c:
+Copyright (c) 2002-2008 Johann George.  All rights reserved.
+Copyright (c) 2006-2008 QLogic Corporation.  All rights reserved.
+
+qperf-0.4.0/src/socket.c:
+Copyright (c) 2002-2008 Johann George.  All rights reserved.
+Copyright (c) 2006-2008 QLogic Corporation.  All rights reserved.
+
+qperf-0.4.0/src/support.c:
+Copyright (c) 2002-2008 Johann George.  All rights reserved.
+Copyright (c) 2006-2008 QLogic Corporation.  All rights reserved.
+
+rds-tools-2.0.4/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+rds-tools-2.0.4/kernel-list.h:
+Copyright (c) 2006 Oracle.  All rights reserved.
+
+rds-tools-2.0.4/pfhack.c:
+Copyright (c) 2006 Oracle.  All rights reserved.
+
+rds-tools-2.0.4/pfhack.h:
+Copyright (c) 2006 Oracle.  All rights reserved.
+
+rds-tools-2.0.4/rds-info.c:
+Copyright (c) 2006 Oracle.  All rights reserved.
+
+rds-tools-2.0.4/rds-ping.c:
+Copyright (C) 2008 Oracle.  All rights reserved.
+
+rds-tools-2.0.4/examples/rds-sample.c:
+Copyright (c) 2008 Chelsio, Inc. All rights reserved.
+
+rds-tools-2.0.4/include/rds.h:
+Copyright (c) 2008 Oracle.  All rights reserved.
+
+opensm-3.1.10/COPYING:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/INSTALL:
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004 Free
+Software Foundation, Inc.
+
+opensm-3.1.10/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+opensm-3.1.10/aclocal.m4:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+2005  Free Software Foundation, Inc.
+
+opensm-3.1.10/configure:
+Copyright (C) 2003 Free Software Foundation, Inc.
+
+opensm-3.1.10/config/compile:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+Written by Tom Tromey <[email protected]>.
+
+opensm-3.1.10/config/config.guess:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+opensm-3.1.10/config/config.sub:
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+opensm-3.1.10/config/depcomp:
+Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+opensm-3.1.10/config/install-sh:
+Copyright (C) 1994 X Consortium
+
+opensm-3.1.10/config/ltmain.sh:
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Gordon Matzigkeit <[email protected]>, 1996
+
+opensm-3.1.10/config/missing:
+Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+opensm-3.1.10/complib/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+opensm-3.1.10/complib/cl_complib.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/cl_dispatcher.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/cl_event.c:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/cl_event_wheel.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/cl_list.c:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/cl_log.c:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/cl_map.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/cl_nodenamemap.c:
+Copyright (c) 2007 Lawrence Livermore National Lab
+
+opensm-3.1.10/complib/cl_pool.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/cl_ptr_vector.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/cl_spinlock.c:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/cl_statustext.c:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/cl_thread.c:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/cl_threadpool.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/cl_timer.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved
+
+opensm-3.1.10/complib/cl_vector.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/complib/ib_statustext.c:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+opensm-3.1.10/include/complib/cl_atomic.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_atomic_osd.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_byteswap.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_byteswap_osd.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_comppool.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_debug.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_debug_osd.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_dispatcher.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_event.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_event_osd.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_event_wheel.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_fleximap.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_list.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_log.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_map.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_math.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_nodenamemap.h:
+Copyright (c) 2007 Lawrence Livermore National Lab 
+
+opensm-3.1.10/include/complib/cl_packoff.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_packon.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_passivelock.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_pool.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved
+
+opensm-3.1.10/include/complib/cl_ptr_vector.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_qcomppool.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_qlist.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_qlockpool.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_qmap.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_qpool.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_spinlock.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved
+
+opensm-3.1.10/include/complib/cl_spinlock_osd.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_thread.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_thread_osd.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_threadpool.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_timer.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_timer_osd.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved
+
+opensm-3.1.10/include/complib/cl_types.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_types_osd.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/complib/cl_vector.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/iba/ib_cm_types.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/iba/ib_types.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved
+
+opensm-3.1.10/include/opensm/osm_attrib_req.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_base.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_console.h:
+Copyright (c) 2005-2007 Voltaire, Inc. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_db.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_db_pack.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_drop_mgr.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_errors.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_event_plugin.h:
+Copyright (c) 2007 The Regents of the University of California.
+
+opensm-3.1.10/include/opensm/osm_fwd_tbl.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved
+
+opensm-3.1.10/include/opensm/osm_helper.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_inform.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_lid_mgr.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_lin_fwd_rcv.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_lin_fwd_tbl.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_link_mgr.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_log.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_mad_pool.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_madw.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_mcast_fwd_rcv.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_mcast_mgr.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_mcast_tbl.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_mcm_info.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_mcm_port.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_msgdef.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_mtree.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_multicast.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_node.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_node_desc_rcv.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_node_info_rcv.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_opensm.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_partition.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_path.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_perfmgr.h:
+Copyright (c) 2007 The Regents of the University of California.
+Copyright (c) 2007 Voltaire, Inc. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_perfmgr_db.h:
+Copyright (c) 2007 The Regents of the University of California.
+
+opensm-3.1.10/include/opensm/osm_pkey.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_pkey_mgr.h:
+Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_pkey_rcv.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_port.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_port_info_rcv.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_port_profile.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_prefix_route.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_qos_parser_y.h:
+Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+Free Software Foundation, Inc.
+
+opensm-3.1.10/include/opensm/osm_qos_policy.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_rand_fwd_tbl.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_remote_sm.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_req.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_resp.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_router.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_class_port_info.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_guidinfo_record.h:
+Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_informinfo.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_lft_record.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_link_record.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_mad_ctrl.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_mcmember_record.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_mft_record.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_multipath_record.h:
+Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_node_record.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_path_record.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_pkey_record.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_portinfo_record.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_response.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_service_record.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_slvl_record.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_sminfo_record.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_sw_info_record.h:
+Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sa_vlarb_record.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_service.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_slvl_map_rcv.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sm.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sm_mad_ctrl.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sm_state_mgr.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sminfo_rcv.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_state_mgr.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_stats.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_subnet.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sw_info_rcv.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_sweep_fail_ctrl.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_switch.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_trap_rcv.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_ucast_mgr.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_version.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_version.h.in:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_vl15intf.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/osm_vl_arb_rcv.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/opensm/st.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_mtl_bind.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_pkt_randomizer.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_ts_useraccess.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_umadt.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_al.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_api.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_ibumad.h:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mlx.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mlx_defs.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mlx_dispatcher.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mlx_hca.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mlx_inout.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mlx_rmpp_ctx.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mlx_sar.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mlx_sender.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mlx_svc.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mlx_transport.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mlx_transport_anafa.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mlx_txn.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mtl.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mtl_hca_guid.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_mtl_transaction_mgr.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_sa_api.h:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_select.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_test.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_ts.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/include/vendor/osm_vendor_umadt.h:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+opensm-3.1.10/libvendor/osm_pkt_randomizer.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_al.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_ibumad.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_ibumad_sa.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_anafa.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_dispatcher.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_hca.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_hca_anafa.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_hca_pfs.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_hca_sim.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_ibmgt.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_rmpp_ctx.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_sa.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_sar.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_sender.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_sim.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_ts.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_ts_anafa.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mlx_txn.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mtl.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mtl_hca_guid.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_mtl_transaction_mgr.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_test.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_ts.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/libvendor/osm_vendor_umadt.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/osmeventplugin/Makefile.in
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+opensm-3.1.10/osmeventplugin/src/osmeventplugin.c
+Copyright (c) 2007 The Regents of the University of California.
+
+opensm-3.1.10/osmtest/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+opensm-3.1.10/osmtest/main.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+
+opensm-3.1.10/osmtest/osmt_inform.c:
+Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/osmtest/osmt_mtl_regular_qp.c:
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/osmtest/osmt_multicast.c:
+Copyright (c) 2006-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/osmtest/osmt_service.c:
+Copyright (c) 2006-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/osmtest/osmt_slvl_vl_arb.c:
+Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/osmtest/osmtest.c:
+Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/osmtest/include/osmt_inform.h:
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/osmtest/include/osmt_mtl_regular_qp.h:
+Copyright (c) 2001-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/osmtest/include/osmtest.h:
+Copyright (c) 2006 Voltaire, Inc. All rights reserved. 
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/osmtest/include/osmtest_base.h:
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/osmtest/include/osmtest_subnet.h:
+Copyright (c) 2006 Voltaire, Inc. All rights reserved. 
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/scripts/opensm.init:
+Copyright 2006 PathScale, Inc.  All Rights Reserved.
+
+opensm-3.1.10/scripts/opensm.init.in:
+Copyright 2006 PathScale, Inc.  All Rights Reserved.
+
+opensm-3.1.10/scripts/opensmd:
+Copyright (c) 2006 Mellanox Technologies. All rights reserved.
+
+opensm-3.1.10/scripts/opensmd.in:
+Copyright (c) 2006 Mellanox Technologies. All rights reserved.
+
+opensm-3.1.10/scripts/redhat-opensm.init:
+Copyright (c) 2006 Mellanox Technologies. All rights reserved.
+
+opensm-3.1.10/scripts/redhat-opensm.init.in:
+Copyright (c) 2006 Mellanox Technologies. All rights reserved.
+
+opensm-3.1.10/scripts/sldd.sh:
+Copyright (c) 2006 Mellanox Technologies. All rights reserved.
+
+opensm-3.1.10/scripts/sldd.sh.in:
+Copyright (c) 2006 Mellanox Technologies. All rights reserved.
+
+opensm-3.1.10/opensm/Makefile.in:
+Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005  Free Software Foundation, Inc.
+
+opensm-3.1.10/opensm/main.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_check:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_check_n_fix:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved. 
+
+opensm-3.1.10/opensm/osm_console.c:
+Copyright (c) 2005-2007 Voltaire, Inc. All rights reserved.
+
+opensm-3.1.10/opensm/osm_db_files.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_db_pack.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_drop_mgr.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_dump.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_event_plugin.c:
+Copyright (c) 2007 The Regents of the University of California.
+
+opensm-3.1.10/opensm/osm_fwd_tbl.c:
+Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_helper.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_indent:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_inform.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_lid_mgr.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_lin_fwd_rcv.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_lin_fwd_tbl.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_link_mgr.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_log.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_mad_pool.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_mcast_fwd_rcv.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_mcast_mgr.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_mcast_tbl.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_mcm_info.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_mcm_port.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_mtree.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_multicast.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_node.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_node_desc_rcv.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_node_info_rcv.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_opensm.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_perfmgr.c:
+Copyright (c) 2007 The Regents of the University of California.
+Copyright (c) 2007 Voltaire, Inc. All rights reserved. 
+
+opensm-3.1.10/opensm/osm_perfmgr_db.c:
+Copyright (c) 2007 The Regents of the University of California.
+
+opensm-3.1.10/opensm/osm_pkey.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_pkey_mgr.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_pkey_rcv.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_port.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_port_info_rcv.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_prtn.c:
+Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+
+opensm-3.1.10/opensm/osm_prtn_config.c:
+Copyright (c) 2006-2007 Voltaire, Inc. All rights reserved.
+
+opensm-3.1.10/opensm/osm_qos.c:
+Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+
+opensm-3.1.10/opensm/osm_qos_parser.l:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved. 
+
+opensm-3.1.10/opensm/osm_qos_parser.y:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved. 
+
+opensm-3.1.10/opensm/osm_qos_parser_l.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved. 
+
+opensm-3.1.10/opensm/osm_qos_parser_y.c:
+Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+Free Software Foundation, Inc.
+
+opensm-3.1.10/opensm/osm_qos_policy.c
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_remote_sm.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_req.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_resp.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_router.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_class_port_info.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_guidinfo_record.c:
+Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_informinfo.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_lft_record.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_link_record.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_mad_ctrl.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_mcmember_record.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_mft_record.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_multipath_record.c:
+Copyright (c) 2006-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_node_record.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_path_record.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_pkey_record.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_portinfo_record.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_response.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_service_record.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_slvl_record.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_sminfo_record.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_sw_info_record.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sa_vlarb_record.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_service.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_slvl_map_rcv.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sm.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sm_mad_ctrl.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sm_state_mgr.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sminfo_rcv.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_state_mgr.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_subnet.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sw_info_rcv.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_sweep_fail_ctrl.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_switch.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_trap_rcv.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_ucast_file.c:
+Copyright (c) 2006,2007 Voltaire, Inc. All rights reserved.
+
+opensm-3.1.10/opensm/osm_ucast_ftree.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2007 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_ucast_lash.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+Copyright (c) 2007      Simula Research Laboratory. All rights reserved.
+Copyright (c) 2007      Silicon Graphics Inc. All rights reserved.
+
+opensm-3.1.10/opensm/osm_ucast_mgr.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_ucast_updn.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_vl15intf.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/osm_vl_arb_rcv.c:
+Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+opensm-3.1.10/opensm/st.c:
+Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
+Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+
+
+
+
+
+============================================================================
+
+
+			OpenIB.org BSD License
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice, this
+list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWofusr/depend	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,52 @@
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#ident	"@(#)depend	1.1	10/10/07 SMI"
+#
+# This package information file defines software dependencies associated
+# with the pkg.  You can define three types of pkg dependencies with this file:
+#	 P indicates a prerequisite for installation
+#	 I indicates an incompatible package
+#	 R indicates a reverse dependency
+# <pkg.abbr> see pkginfo(4), PKG parameter
+# <name> see pkginfo(4), NAME parameter
+# <version> see pkginfo(4), VERSION parameter
+# <arch> see pkginfo(4), ARCH parameter
+# <type> <pkg.abbr> <name>
+# 	(<arch>)<version>
+# 	(<arch>)<version>
+# 	...
+# <type> <pkg.abbr> <name>
+# ...
+#
+
+P SUNWcar	Core Architecture, (Root)
+P SUNWcakr	Core Solaris Kernel Architecture (Root)
+P SUNWkvm	Core Architecture, (Kvm)
+P SUNWcsr	Core Solaris, (Root)
+P SUNWckr	Core Solaris Kernel (Root)
+P SUNWcnetr	Core Solaris Network Infrastructure (Root)
+P SUNWcsu	Core Solaris, (Usr)
+P SUNWcsd	Core Solaris Devices
+P SUNWcsl	Core Solaris Libraries
+P SUNWpcre	Perl-Compatible Regular Expressions
+P SUNWgccruntime SUNWgccruntime GCC Runtime libraries
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWofusr/pkginfo.tmpl	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,57 @@
+#
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+
+#ident	"@(#)pkginfo.tmpl	1.1	10/10/07 SMI"
+
+#
+# This required package information file describes characteristics of the
+# package, such as package abbreviation, full package name, package version,
+# and package architecture.
+#
+PKG="SUNWofusr"
+NAME="Oracle Solaris OpenFabrics userland libraries and applications" 
+ARCH="ISA"
+VERSION="SFWVERS,REV=0.0.0"
+SUNW_PRODNAME="SunOS"
+SUNW_PRODVERS="RELEASE/VERSION"
+SUNW_PKGTYPE="usr"
+MAXINST="1000"
+CATEGORY="system"
+DESC="Oracle Solaris OpenFabrics userland libraries and applications" 
+VENDOR="Oracle Corporation"
+HOTLINE="Please contact your local service provider"
+EMAIL=""
+CLASSES="none"
+BASEDIR=/
+SUNW_PKGVERS="1.0"
+SUNW_PKG_ALLZONES="false"
+SUNW_PKG_HOLLOW="false"
+SUNW_PKG_THISZONE="false"
+#VSTOCK="<reserved by Release Engineering for package part #>"
+#ISTATES="<developer defined>"
+#RSTATES='<developer defined>'
+#ULIMIT="<developer defined>"
+#ORDER="<developer defined>"
+#PSTAMP="<developer defined>"
+#INTONLY="<developer defined>"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWofusr/prototype_com	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,348 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+
+#ident	"@(#)prototype_com	1.1	10/10/07 SMI"
+
+#
+# This required package information file contains a list of package contents.
+# The 'pkgmk' command uses this file to identify the contents of a package
+# and their location on the development machine when building the package.
+# Can be created via a text editor or through use of the 'pkgproto' command.
+
+#!search <pathname pathname ...>	# where to find pkg objects
+#!include <filename>			# include another 'prototype' file
+#!default <mode> <owner> <group>	# default used if not specified on entry
+#!<param>=<value>			# puts parameter in pkg environment
+
+# packaging files
+i pkginfo
+i copyright
+i depend
+#
+# source locations relative to the prototype file
+#
+# SUNWofusr
+#
+d none etc 0755 root sys 
+d none usr 0755 root sys 
+d none usr/bin 0755 root bin 
+d none usr/sbin 0755 root bin 
+d none usr/share 0755 root sys 
+d none usr/share/libibverbs.d 0755 root bin 
+d none usr/lib 0755 root bin 
+d none usr/lib/secure 0755 root bin 
+d none usr/lib/ibis1.2 0755 root bin 
+d none usr/lib/ibdiagnet1.2 0755 root bin 
+d none usr/lib/ibdm1.2 0755 root bin 
+d none usr/lib/ibdm1.2/ibnl 0755 root bin 
+d none usr/include 0755 root bin 
+d none usr/include/infiniband 0755 root bin 
+d none usr/include/rdma 0755 root bin 
+d none usr/perl5 0755 root bin
+d none usr/perl5/site_perl 0755 root bin
+d none usr/perl5/site_perl/5.8.4 0755 root bin
+d none usr/share/man 0755 root bin 
+d none usr/share/man/man1 0755 root bin 
+d none usr/share/man/man3 0755 root bin 
+d none usr/share/man/man7 0755 root bin 
+d none usr/share/man/man1m 0755 root bin 
+d none usr/share/man/man4 0755 root bin 
+d none usr/share/man/man3lib 0755 root bin 
+f none usr/lib/libibcommon.so.1.0.0 0755 root root
+s none usr/lib/libibcommon.so.1=libibcommon.so.1.0.0
+f none usr/lib/libibverbs.so.1.0.0 0755 root root
+s none usr/lib/libibverbs.so.1=libibverbs.so.1.0.0
+s none usr/lib/libibverbs.so=libibverbs.so.1.0.0
+f none usr/lib/libmlx4-rdmav2.so 0755 root root
+f none usr/lib/libmthca-rdmav2.so 0755 root root
+f none usr/lib/librdmacm.so.1.0.0 0755 root root
+s none usr/lib/librdmacm.so.1=librdmacm.so.1.0.0
+s none usr/lib/librdmacm.so=librdmacm.so.1.0.0
+f none usr/lib/secure/libsdp.so.1.0.0 0755 root root
+s none usr/lib/secure/libsdp.so.1=libsdp.so.1.0.0
+s none usr/lib/secure/libsdp.so=libsdp.so.1.0.0
+f none usr/lib/libopensm.so.1.1.0 0755 root root
+s none usr/lib/libopensm.so.1=libopensm.so.1.1.0
+f none usr/lib/libosmvendor.so.2.0.0 0755 root root
+s none usr/lib/libosmvendor.so.2=libosmvendor.so.2.0.0
+f none usr/lib/libibumad.so.1.0.3 0755 root root
+s none usr/lib/libibumad.so.1=libibumad.so.1.0.3
+f none usr/lib/libibmad.so.1.2.0 0755 root root
+s none usr/lib/libibmad.so.1=libibmad.so.1.2.0
+f none usr/lib/libosmcomp.so.2.0.4 0755 root root
+s none usr/lib/libosmcomp.so.2=libosmcomp.so.2.0.4
+#
+# header files
+#
+f none usr/include/rdma/rdma_cma.h 0644 root bin
+f none usr/include/infiniband/arch.h 0644 root bin
+f none usr/include/infiniband/common.h 0644 root bin
+f none usr/include/infiniband/driver.h 0644 root bin
+f none usr/include/infiniband/kern-abi.h 0644 root bin
+f none usr/include/infiniband/verbs.h 0644 root bin
+f none usr/include/infiniband/sa.h 0644 root bin
+f none usr/include/infiniband/ofa_solaris.h 0644 root bin
+#
+# usr/share non configurable data
+#
+f none usr/share/libibverbs.d/mthca.driver 0644 root bin
+f none usr/share/libibverbs.d/mlx4.driver 0644 root bin
+#
+# etc config
+#
+f none etc/libsdp.conf 0644 root bin
+#
+# commands
+#
+f none usr/bin/ib_rdma_lat 0755 root bin
+f none usr/bin/ib_rdma_bw 0755 root bin
+f none usr/bin/ib_read_lat 0755 root bin
+f none usr/bin/ib_read_bw 0755 root bin
+f none usr/bin/ib_write_lat 0755 root bin
+f none usr/bin/ib_write_bw 0755 root bin
+f none usr/bin/ib_write_bw_postlist 0755 root bin
+f none usr/bin/ib_send_lat 0755 root bin
+f none usr/bin/ib_send_bw 0755 root bin
+f none usr/bin/ibv_asyncwatch 0755 root bin
+f none usr/bin/ibv_devices 0755 root bin
+f none usr/bin/ibv_devinfo 0755 root bin
+f none usr/bin/ibv_rc_pingpong 0755 root bin
+f none usr/bin/ibv_ud_pingpong 0755 root bin
+f none usr/bin/ibv_srq_pingpong 0755 root bin
+f none usr/bin/mckey 0755 root bin
+f none usr/bin/qperf 0755 root bin
+f none usr/bin/udaddy 0755 root bin
+f none usr/bin/rping 0755 root bin
+f none usr/bin/ucmatose 0755 root bin
+f none usr/sbin/ibaddr 0755 root bin
+f none usr/sbin/ibcheckerrors 0755 root bin
+f none usr/sbin/ibcheckerrs 0755 root bin
+f none usr/sbin/ibchecknet 0755 root bin
+f none usr/sbin/ibchecknode 0755 root bin
+f none usr/sbin/ibcheckport 0755 root bin
+f none usr/sbin/ibcheckportstate 0755 root bin
+f none usr/sbin/ibcheckportwidth 0755 root bin
+f none usr/sbin/ibcheckstate 0755 root bin
+f none usr/sbin/ibcheckwidth 0755 root bin
+f none usr/sbin/ibclearcounters 0755 root bin
+f none usr/sbin/ibclearerrors 0755 root bin
+f none usr/sbin/ibdatacounters 0755 root bin
+f none usr/sbin/ibdatacounts 0755 root bin
+f none usr/sbin/ibdiscover.pl 0755 root bin
+f none usr/sbin/ibhosts 0755 root bin
+f none usr/sbin/iblinkinfo.pl 0755 root bin
+f none usr/sbin/ibnetdiscover 0755 root bin
+f none usr/sbin/ibnodes 0755 root bin
+f none usr/sbin/ibping 0755 root bin
+f none usr/sbin/ibportstate 0755 root bin
+f none usr/sbin/ibprintca.pl 0755 root bin
+f none usr/sbin/ibprintrt.pl 0755 root bin
+f none usr/sbin/ibprintswitch.pl 0755 root bin
+f none usr/sbin/ibqueryerrors.pl 0755 root bin
+f none usr/sbin/ibroute 0755 root bin
+f none usr/sbin/ibrouters 0755 root bin
+f none usr/sbin/ibstat 0755 root bin
+f none usr/sbin/ibstatus 0755 root bin
+f none usr/sbin/ibswitches 0755 root bin
+f none usr/sbin/ibswportwatch.pl 0755 root bin
+f none usr/sbin/ibsysstat 0755 root bin
+f none usr/sbin/ibtracert 0755 root bin
+f none usr/sbin/perfquery 0755 root bin
+f none usr/sbin/saquery 0755 root bin
+f none usr/sbin/set_nodedesc.sh 0755 root bin
+f none usr/sbin/sminfo 0755 root bin
+f none usr/sbin/smpdump 0755 root bin
+f none usr/sbin/smpquery 0755 root bin
+f none usr/sbin/solaris_set_nodedesc 0755 root bin
+#
+#
+# rds tools
+#
+f none usr/bin/rds-info 0755 root bin
+f none usr/bin/rds-ping 0755 root bin
+f none usr/bin/rds-stress 0755 root bin
+#
+# ibdiagnet
+#
+f none usr/sbin/ibdiagnet 0755 root bin
+f none usr/sbin/ibis 0755 root bin
+f none usr/lib/ibdiagnet1.2/ibdebug_if.tcl 0644 root bin
+f none usr/lib/ibdiagnet1.2/ibdiagnet.tcl 0644 root bin
+f none usr/lib/ibdiagnet1.2/pkgIndex.tcl 0644 root bin
+f none usr/lib/ibdiagnet1.2/git_version.tcl 0644 root bin
+f none usr/lib/ibdiagnet1.2/ibdebug.tcl 0644 root bin
+f none usr/lib/ibis1.2/pkgIndex.tcl 0644 root bin
+f none usr/lib/ibis1.2/libibis.so.1.2 0755 root bin
+f none usr/lib/ibdm1.2/pkgIndex.tcl 0644 root bin
+f none usr/lib/ibdm1.2/libibdm.so.1.2 0755 root bin
+f none usr/lib/ibdm1.2/ibnl/RhinoBased512.lst 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/MTS2400-12T4.ibnl 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/RhinoBased512.no_sp2-3.lst 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/Cheetah.ibnl 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/MTS14400-IntraDDR.ibnl 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/FullGnu.topo 0755 root bin
+f none usr/lib/ibdm1.2/ibnl/MTS2400-24.ibnl 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/RhinoBased512.topo 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/MTS14400-DDR.ibnl 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/MTS14400-48.ibnl 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/Lion.ibnl 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/PartialGazelle.topo 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/LionMini.ibnl 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/Cougar.ibnl 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/subnet.lst 0755 root bin
+f none usr/lib/ibdm1.2/ibnl/Buffalo.ibnl 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/SingleGazelle.topo 0755 root bin
+f none usr/lib/ibdm1.2/ibnl/SingleRhino.topo 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/MTS14400.ibnl 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/Gnu.ibnl 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/Gazelle.ibnl 0644 root bin
+f none usr/lib/ibdm1.2/ibnl/Buffalo8.topo 0755 root bin
+#
+# man pages
+#
+f none usr/share/man/man1/ibv_asyncwatch.1 0644 root bin
+f none usr/share/man/man1/ibv_devices.1 0644 root bin
+f none usr/share/man/man1/ibv_devinfo.1 0644 root bin
+f none usr/share/man/man1/ibv_rc_pingpong.1 0644 root bin
+f none usr/share/man/man1/ibv_ud_pingpong.1 0644 root bin
+f none usr/share/man/man1/ibv_srq_pingpong.1 0644 root bin
+f none usr/share/man/man1/mckey.1 0644 root bin
+f none usr/share/man/man1/qperf.1 0644 root bin
+f none usr/share/man/man1/rping.1 0644 root bin
+f none usr/share/man/man1/ucmatose.1 0644 root bin
+f none usr/share/man/man1/udaddy.1 0644 root bin
+f none usr/share/man/man1/rds-info.1 0644 root bin
+f none usr/share/man/man1/rds-ping.1 0644 root bin
+f none usr/share/man/man1/rds-stress.1 0644 root bin
+f none usr/share/man/man1/ibdiagnet.1 0644 root bin
+f none usr/share/man/man1/ibis.1 0644 root bin
+s none usr/share/man/man3/ibv_ack_async_event.3=ibv_get_async_event.3
+s none usr/share/man/man3/ibv_ack_cq_events.3=ibv_get_cq_event.3
+f none usr/share/man/man3/ibv_alloc_pd.3 0644 root bin
+f none usr/share/man/man3/ibv_attach_mcast.3 0644 root bin
+s none usr/share/man/man3/ibv_close_device.3=ibv_open_device.3
+f none usr/share/man/man3/ibv_create_ah_from_wc.3 0644 root bin
+f none usr/share/man/man3/ibv_create_ah.3 0644 root bin
+f none usr/share/man/man3/ibv_create_comp_channel.3 0644 root bin
+f none usr/share/man/man3/ibv_create_cq.3 0644 root bin
+f none usr/share/man/man3/ibv_create_qp.3 0644 root bin
+f none usr/share/man/man3/ibv_create_srq.3 0644 root bin
+s none usr/share/man/man3/ibv_dealloc_pd.3=ibv_alloc_pd.3
+s none usr/share/man/man3/ibv_dereg_mr.3=ibv_reg_mr.3
+s none usr/share/man/man3/ibv_destroy_ah.3=ibv_create_ah.3
+s none usr/share/man/man3/ibv_destroy_comp_channel.3=ibv_create_comp_channel.3
+s none usr/share/man/man3/ibv_destroy_cq.3=ibv_create_cq.3
+s none usr/share/man/man3/ibv_destroy_qp.3=ibv_create_qp.3
+s none usr/share/man/man3/ibv_destroy_srq.3=ibv_create_srq.3
+s none usr/share/man/man3/ibv_detach_mcast.3=ibv_attach_mcast.3
+f none usr/share/man/man3/ibv_fork_init.3 0644 root bin
+s none usr/share/man/man3/ibv_free_device_list.3=ibv_get_device_list.3
+f none usr/share/man/man3/ibv_get_async_event.3 0644 root bin
+f none usr/share/man/man3/ibv_get_cq_event.3 0644 root bin
+f none usr/share/man/man3/ibv_get_device_guid.3 0644 root bin
+f none usr/share/man/man3/ibv_get_device_list.3 0644 root bin
+f none usr/share/man/man3/ibv_get_device_name.3 0644 root bin
+s none usr/share/man/man3/ibv_init_ah_from_wc.3=ibv_create_ah_from_wc.3
+f none usr/share/man/man3/ibv_modify_qp.3 0644 root bin
+f none usr/share/man/man3/ibv_modify_srq.3 0644 root bin
+f none usr/share/man/man3/ibv_open_device.3 0644 root bin
+f none usr/share/man/man3/ibv_poll_cq.3 0644 root bin
+f none usr/share/man/man3/ibv_post_recv.3 0644 root bin
+f none usr/share/man/man3/ibv_post_send.3 0644 root bin
+f none usr/share/man/man3/ibv_post_srq_recv.3 0644 root bin
+f none usr/share/man/man3/ibv_query_device.3 0644 root bin
+f none usr/share/man/man3/ibv_query_gid.3 0644 root bin
+f none usr/share/man/man3/ibv_query_pkey.3 0644 root bin
+f none usr/share/man/man3/ibv_query_port.3 0644 root bin
+f none usr/share/man/man3/ibv_query_qp.3 0644 root bin
+f none usr/share/man/man3/ibv_query_srq.3 0644 root bin
+f none usr/share/man/man3/ibv_rate_to_mult.3 0644 root bin
+f none usr/share/man/man3/ibv_reg_mr.3 0644 root bin
+f none usr/share/man/man3/ibv_req_notify_cq.3 0644 root bin
+f none usr/share/man/man3/ibv_resize_cq.3 0644 root bin
+s none usr/share/man/man3/mult_to_ibv_rate.3=ibv_rate_to_mult.3
+f none usr/share/man/man3/rdma_accept.3 0644 root bin
+f none usr/share/man/man3/rdma_ack_cm_event.3 0644 root bin
+f none usr/share/man/man3/rdma_bind_addr.3 0644 root bin
+f none usr/share/man/man3/rdma_connect.3 0644 root bin
+f none usr/share/man/man3/rdma_create_event_channel.3 0644 root bin
+f none usr/share/man/man3/rdma_create_id.3 0644 root bin
+f none usr/share/man/man3/rdma_create_qp.3 0644 root bin
+f none usr/share/man/man3/rdma_destroy_event_channel.3 0644 root bin
+f none usr/share/man/man3/rdma_destroy_id.3 0644 root bin
+f none usr/share/man/man3/rdma_destroy_qp.3 0644 root bin
+f none usr/share/man/man3/rdma_disconnect.3 0644 root bin
+f none usr/share/man/man3/rdma_free_devices.3 0644 root bin
+f none usr/share/man/man3/rdma_get_cm_event.3 0644 root bin
+f none usr/share/man/man3/rdma_get_devices.3 0644 root bin
+f none usr/share/man/man3/rdma_get_dst_port.3 0644 root bin
+f none usr/share/man/man3/rdma_get_src_port.3 0644 root bin
+f none usr/share/man/man3/rdma_join_multicast.3 0644 root bin
+f none usr/share/man/man3/rdma_leave_multicast.3 0644 root bin
+f none usr/share/man/man3/rdma_listen.3 0644 root bin
+f none usr/share/man/man3/rdma_notify.3 0644 root bin
+f none usr/share/man/man3/rdma_reject.3 0644 root bin
+f none usr/share/man/man3/rdma_resolve_addr.3 0644 root bin
+f none usr/share/man/man3/rdma_resolve_route.3 0644 root bin
+f none usr/share/man/man7/rdma_cm.7 0644 root bin
+f none usr/share/man/man1m/ibaddr.1m 0644 root bin
+f none usr/share/man/man1m/ibcheckerrors.1m 0644 root bin
+f none usr/share/man/man1m/ibcheckerrs.1m 0644 root bin
+f none usr/share/man/man1m/ibchecknet.1m 0644 root bin
+f none usr/share/man/man1m/ibchecknode.1m 0644 root bin
+f none usr/share/man/man1m/ibcheckport.1m 0644 root bin
+f none usr/share/man/man1m/ibcheckportstate.1m 0644 root bin
+f none usr/share/man/man1m/ibcheckportwidth.1m 0644 root bin
+f none usr/share/man/man1m/ibcheckstate.1m 0644 root bin
+f none usr/share/man/man1m/ibcheckwidth.1m 0644 root bin
+f none usr/share/man/man1m/ibclearcounters.1m 0644 root bin
+f none usr/share/man/man1m/ibclearerrors.1m 0644 root bin
+f none usr/share/man/man1m/ibdatacounters.1m 0644 root bin
+f none usr/share/man/man1m/ibdatacounts.1m 0644 root bin
+f none usr/share/man/man1m/ibdiscover.1m 0644 root bin
+f none usr/share/man/man1m/ibhosts.1m 0644 root bin
+f none usr/share/man/man1m/iblinkinfo.1m 0644 root bin
+f none usr/share/man/man1m/ibnetdiscover.1m 0644 root bin
+f none usr/share/man/man1m/ibnodes.1m 0644 root bin
+f none usr/share/man/man1m/ibping.1m 0644 root bin
+f none usr/share/man/man1m/ibportstate.1m 0644 root bin
+f none usr/share/man/man1m/ibprintca.1m 0644 root bin
+f none usr/share/man/man1m/ibprintrt.1m 0644 root bin
+f none usr/share/man/man1m/ibprintswitch.1m 0644 root bin
+f none usr/share/man/man1m/ibqueryerrors.1m 0644 root bin
+f none usr/share/man/man1m/ibroute.1m 0644 root bin
+f none usr/share/man/man1m/ibrouters.1m 0644 root bin
+f none usr/share/man/man1m/ibstat.1m 0644 root bin
+f none usr/share/man/man1m/ibstatus.1m 0644 root bin
+f none usr/share/man/man1m/ibswitches.1m 0644 root bin
+f none usr/share/man/man1m/ibswportwatch.1m 0644 root bin
+f none usr/share/man/man1m/ibsysstat.1m 0644 root bin
+f none usr/share/man/man1m/ibtracert.1m 0644 root bin
+f none usr/share/man/man1m/perfquery.1m 0644 root bin
+f none usr/share/man/man1m/saquery.1m 0644 root bin
+f none usr/share/man/man1m/sminfo.1m 0644 root bin
+f none usr/share/man/man1m/smpdump.1m 0644 root bin
+f none usr/share/man/man1m/smpquery.1m 0644 root bin
+f none usr/share/man/man4/libsdp.conf.4 0644 root bin
+f none usr/share/man/man3lib/libsdp.3lib 0644 root bin
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWofusr/prototype_i386	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,100 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+
+#ident	"@(#)prototype_i386	1.1	10/10/07 SMI"
+
+#
+# This required package information file contains a list of package contents.
+# The 'pkgmk' command uses this file to identify the contents of a package
+# and their location on the development machine when building the package.
+# Can be created via a text editor or through use of the 'pkgproto' command.
+
+#!search <pathname pathname ...>	# where to find pkg objects
+#!include <filename>			# include another 'prototype' file
+#!default <mode> <owner> <group>	# default used if not specified on entry
+#!<param>=<value>			# puts parameter in pkg environment
+
+#
+# Include ISA independent files (prototype_com)
+#
+!include prototype_com
+#
+#
+#
+# List files which are I386 specific here
+#
+# source locations relative to the prototype file
+#
+#
+# SUNWofusr
+#
+d none usr/bin/amd64 0755 root bin
+d none usr/sbin/amd64 0755 root bin
+d none usr/lib/amd64 0755 root bin
+d none usr/lib/secure/amd64 0755 root bin
+d none usr/perl5/site_perl/5.8.4/i86pc-solaris-64int 0755 root bin
+#
+s none usr/lib/amd64/libibcommon.so.1=libibcommon.so.1.0.0
+f none usr/lib/amd64/libibcommon.so.1.0.0 0755 root root
+s none usr/lib/amd64/libibverbs.so=libibverbs.so.1.0.0
+s none usr/lib/amd64/libibverbs.so.1=libibverbs.so.1.0.0
+f none usr/lib/amd64/libibverbs.so.1.0.0 0755 root root
+f none usr/lib/amd64/libmlx4-rdmav2.so 0755 root root
+f none usr/lib/amd64/libmthca-rdmav2.so 0755 root root
+s none usr/lib/amd64/librdmacm.so=librdmacm.so.1.0.0
+s none usr/lib/amd64/librdmacm.so.1=librdmacm.so.1.0.0
+f none usr/lib/amd64/librdmacm.so.1.0.0 0755 root root
+s none usr/lib/secure/amd64/libsdp.so.1=libsdp.so.1.0.0
+f none usr/lib/secure/amd64/libsdp.so.1.0.0 0755 root root
+s none usr/lib/secure/amd64/libsdp.so=libsdp.so.1.0.0
+f none usr/lib/amd64/libopensm.so.1.1.0 0755 root root
+s none usr/lib/amd64/libopensm.so.1=libopensm.so.1.1.0
+f none usr/lib/amd64/libosmvendor.so.2.0.0 0755 root root
+s none usr/lib/amd64/libosmvendor.so.2=libosmvendor.so.2.0.0
+f none usr/lib/amd64/libibumad.so.1.0.3 0755 root root
+s none usr/lib/amd64/libibumad.so.1=libibumad.so.1.0.3
+s none usr/lib/amd64/libibmad.so.1=libibmad.so.1.2.0
+f none usr/lib/amd64/libibmad.so.1.2.0 0755 root root
+f none usr/lib/amd64/libosmcomp.so.2.0.4 0755 root root
+s none usr/lib/amd64/libosmcomp.so.2=libosmcomp.so.2.0.4
+#
+# commands
+#
+f none usr/bin/amd64/ib_rdma_lat 0755 root bin
+f none usr/bin/amd64/ib_rdma_bw 0755 root bin
+f none usr/bin/amd64/ib_read_lat 0755 root bin
+f none usr/bin/amd64/ib_read_bw 0755 root bin
+f none usr/bin/amd64/ib_write_lat 0755 root bin
+f none usr/bin/amd64/ib_write_bw 0755 root bin
+f none usr/bin/amd64/ib_write_bw_postlist 0755 root bin
+f none usr/bin/amd64/ib_send_lat 0755 root bin
+f none usr/bin/amd64/ib_send_bw 0755 root bin
+f none usr/bin/amd64/qperf 0755 root bin
+f none usr/perl5/site_perl/5.8.4/i86pc-solaris-64int/IBswcountlimits.pm 0444 root bin
+#
+# rds tools
+#
+f none usr/bin/amd64/rds-info 0755 root bin
+f none usr/bin/amd64/rds-ping 0755 root bin
+f none usr/bin/amd64/rds-stress 0755 root bin
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkgdefs/SUNWofusr/prototype_sparc	Fri Oct 15 22:35:17 2010 -0700
@@ -0,0 +1,101 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+
+#ident	"@(#)prototype_sparc	1.1	10/10/07 SMI"
+
+#
+# This required package information file contains a list of package contents.
+# The 'pkgmk' command uses this file to identify the contents of a package
+# and their location on the development machine when building the package.
+# Can be created via a text editor or through use of the 'pkgproto' command.
+
+#!search <pathname pathname ...>	# where to find pkg objects
+#!include <filename>			# include another 'prototype' file
+#!default <mode> <owner> <group>	# default used if not specified on entry
+#!<param>=<value>			# puts parameter in pkg environment
+
+#
+# Include ISA independent files (prototype_com)
+#
+!include prototype_com
+#
+#
+#
+# List files which are SPARC specific here
+#
+# source locations relative to the prototype file
+#
+#
+# SUNWofusr
+#
+
+d none usr/bin/sparcv9 0755 root bin
+d none usr/sbin/sparcv9 0755 root bin
+d none usr/lib/sparcv9 0755 root bin
+d none usr/lib/secure/sparcv9 0755 root bin
+d none usr/perl5/site_perl/5.8.4/sun4-solaris-64int 0755 root bin
+#
+s none usr/lib/sparcv9/libibcommon.so.1=libibcommon.so.1.0.0
+f none usr/lib/sparcv9/libibcommon.so.1.0.0 0755 root root
+s none usr/lib/sparcv9/libibverbs.so=libibverbs.so.1.0.0
+s none usr/lib/sparcv9/libibverbs.so.1=libibverbs.so.1.0.0
+f none usr/lib/sparcv9/libibverbs.so.1.0.0 0755 root root
+f none usr/lib/sparcv9/libmlx4-rdmav2.so 0755 root root
+f none usr/lib/sparcv9/libmthca-rdmav2.so 0755 root root
+s none usr/lib/sparcv9/librdmacm.so=librdmacm.so.1.0.0
+s none usr/lib/sparcv9/librdmacm.so.1=librdmacm.so.1.0.0
+f none usr/lib/sparcv9/librdmacm.so.1.0.0 0755 root root
+s none usr/lib/secure/sparcv9/libsdp.so.1=libsdp.so.1.0.0
+f none usr/lib/secure/sparcv9/libsdp.so.1.0.0 0755 root root
+s none usr/lib/secure/sparcv9/libsdp.so=libsdp.so.1.0.0
+f none usr/lib/sparcv9/libopensm.so.1.1.0 0755 root root
+s none usr/lib/sparcv9/libopensm.so.1=libopensm.so.1.1.0
+f none usr/lib/sparcv9/libosmvendor.so.2.0.0 0755 root root
+s none usr/lib/sparcv9/libosmvendor.so.2=libosmvendor.so.2.0.0
+f none usr/lib/sparcv9/libibumad.so.1.0.3 0755 root root
+s none usr/lib/sparcv9/libibumad.so.1=libibumad.so.1.0.3
+s none usr/lib/sparcv9/libibmad.so.1=libibmad.so.1.2.0
+f none usr/lib/sparcv9/libibmad.so.1.2.0 0755 root root
+f none usr/lib/sparcv9/libosmcomp.so.2.0.4 0755 root root
+s none usr/lib/sparcv9/libosmcomp.so.2=libosmcomp.so.2.0.4
+#
+# commands
+#
+f none usr/bin/sparcv9/ib_rdma_lat 0755 root bin
+f none usr/bin/sparcv9/ib_rdma_bw 0755 root bin
+f none usr/bin/sparcv9/ib_read_lat 0755 root bin
+f none usr/bin/sparcv9/ib_read_bw 0755 root bin
+f none usr/bin/sparcv9/ib_write_lat 0755 root bin
+f none usr/bin/sparcv9/ib_write_bw 0755 root bin
+f none usr/bin/sparcv9/ib_write_bw_postlist 0755 root bin
+f none usr/bin/sparcv9/ib_send_lat 0755 root bin
+f none usr/bin/sparcv9/ib_send_bw 0755 root bin
+f none usr/bin/sparcv9/qperf 0755 root bin
+f none usr/perl5/site_perl/5.8.4/sun4-solaris-64int/IBswcountlimits.pm 0444 root bin
+#
+# rds tools
+#
+f none usr/bin/sparcv9/rds-info 0755 root bin
+f none usr/bin/sparcv9/rds-ping 0755 root bin
+f none usr/bin/sparcv9/rds-stress 0755 root bin
--- a/usr/src/pkgdefs/SUNWsudor/copyright	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/pkgdefs/SUNWsudor/copyright	Fri Oct 15 22:35:17 2010 -0700
@@ -1,6 +1,6 @@
 Sudo is distributed under the following ISC-style license:
 
-   Copyright (c) 1994-1996, 1998-2008
+   Copyright (c) 1994-1996, 1998-2010
         Todd C. Miller <[email protected]>
 
    Permission to use, copy, modify, and distribute this software for any
@@ -48,3 +48,31 @@
    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGE.
+
+nonunix.h and vasgroups.c bear the following license:
+
+   Copyright (c) 2006 Quest Software, Inc.  All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+   3. Neither the name of Quest Software, Inc. nor the names of its
+      contributors may be used to endorse or promote products derived from
+      this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+   POSSIBILITY OF SUCH DAMAGE.
--- a/usr/src/pkgdefs/SUNWsudor/pkginfo.tmpl	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/pkgdefs/SUNWsudor/pkginfo.tmpl	Fri Oct 15 22:35:17 2010 -0700
@@ -20,7 +20,7 @@
 #
 # Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-# ident	"@(#)pkginfo.tmpl	1.3	10/07/22 SMI"
+# ident	"@(#)pkginfo.tmpl	1.4	10/10/06 SMI"
 
 #
 #
@@ -29,7 +29,7 @@
 # and package architecture.
 #
 PKG="SUNWsudor"
-NAME="sudo (Root)"
+NAME="sudo - Tool to allow certain tasks to be run as root by ordinary users (Root). "
 ARCH="ISA"
 VERSION="SFWVERS,REV=0.0.0"
 SUNW_PRODNAME="SunOS"
@@ -37,7 +37,7 @@
 SUNW_PKGTYPE="root"
 MAXINST="1000"
 CATEGORY="system"
-DESC="sudo (Root)"
+DESC="sudo - Tool to allow certain tasks to be run as root by ordinary users (Root). 1.7.4p4"
 VENDOR="COMPANY"
 HOTLINE="Please contact your local service provider"
 EMAIL=""
--- a/usr/src/pkgdefs/SUNWsudor/prototype_com	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/pkgdefs/SUNWsudor/prototype_com	Fri Oct 15 22:35:17 2010 -0700
@@ -18,10 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
+# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-# ident	"@(#)prototype_com	1.2	09/04/03 SMI"
+# ident	"@(#)prototype_com	1.3	10/10/06 SMI"
 #
 #
 # This required package information file contains a list of package contents.
@@ -46,4 +45,5 @@
 # SUNWsudor
 #
 d none etc 0755 root sys
+d none etc/sudoers.d 0750 root root
 e preserve etc/sudoers 0440 root root
--- a/usr/src/pkgdefs/SUNWsudou/copyright	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/pkgdefs/SUNWsudou/copyright	Fri Oct 15 22:35:17 2010 -0700
@@ -1,6 +1,7 @@
 Sudo is distributed under the following ISC-style license:
 
-   Copyright (c) 1994-1996,1998-2005 Todd C. Miller <[email protected]>
+   Copyright (c) 1994-1996, 1998-2010
+        Todd C. Miller <[email protected]>
 
    Permission to use, copy, modify, and distribute this software for any
    purpose with or without fee is hereby granted, provided that the above
@@ -18,11 +19,11 @@
    Agency (DARPA) and Air Force Research Laboratory, Air Force
    Materiel Command, USAF, under agreement number F39502-99-1-0512.
 
-Additionally, fnmatch.c, fnmatch.h, getcwd.c, glob.c, glob.h, mkstemp.c
-and snprintf.c bear the following UCB license:
+Additionally, fnmatch.c, fnmatch.h, getcwd.c, glob.c, glob.h and snprintf.c
+bear the following UCB license:
 
    Copyright (c) 1987, 1989, 1990, 1991, 1992, 1993, 1994
-	The Regents of the University of California.  All rights reserved.
+        The Regents of the University of California.  All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
@@ -47,3 +48,31 @@
    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGE.
+
+nonunix.h and vasgroups.c bear the following license:
+
+   Copyright (c) 2006 Quest Software, Inc.  All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+   3. Neither the name of Quest Software, Inc. nor the names of its
+      contributors may be used to endorse or promote products derived from
+      this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+   POSSIBILITY OF SUCH DAMAGE.
--- a/usr/src/pkgdefs/SUNWsudou/pkginfo.tmpl	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/pkgdefs/SUNWsudou/pkginfo.tmpl	Fri Oct 15 22:35:17 2010 -0700
@@ -20,7 +20,7 @@
 #
 # Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-# ident	"@(#)pkginfo.tmpl	1.2	10/07/22 SMI"
+# ident	"@(#)pkginfo.tmpl	1.3	10/10/06 SMI"
 #
 #
 # This required package information file describes characteristics of the
@@ -28,7 +28,7 @@
 # and package architecture.
 #
 PKG="SUNWsudou"
-NAME="sudo (usr)"
+NAME="sudo - Tool to allow certain tasks to be run as root by ordinary users (usr)"
 ARCH="ISA"
 VERSION="SFWVERS,REV=0.0.0"
 SUNW_PRODNAME="SunOS"
@@ -36,7 +36,7 @@
 SUNW_PKGTYPE="usr"
 MAXINST="1000"
 CATEGORY="system"
-DESC="sudo (usr)"
+DESC="sudo - Tool to allow certain tasks to be run as root by ordinary users (usr) 1.7.4p4"
 VENDOR="COMPANY"
 HOTLINE="Please contact your local service provider"
 EMAIL=""
--- a/usr/src/pkgdefs/SUNWsudou/prototype_com	Tue Oct 05 00:10:47 2010 -0700
+++ b/usr/src/pkgdefs/SUNWsudou/prototype_com	Fri Oct 15 22:35:17 2010 -0700
@@ -18,10 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
+# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-# ident	"@(#)prototype_com	1.2	08/08/19 SMI"
+# ident	"@(#)prototype_com	1.3	10/10/06 SMI"
 
 #
 # This required package information file contains a list of package contents.
@@ -61,7 +60,7 @@
 d none usr/share/man 0755 root bin
 d none usr/share/man/man1m 0755 root bin
 f none usr/share/man/man1m/sudo.1m 0444 root bin
-f none usr/share/man/man1m/sudoedit.1m 0444 root bin
+l none usr/share/man/man1m/sudoedit.1m=sudo.1m
 f none usr/share/man/man1m/visudo.1m 0444 root bin
 d none usr/share/man/man4 0755 root bin
 f none usr/share/man/man4/sudoers.4 0444 root bin