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
--- 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