From freebsd@grem.de  Fri Sep 14 16:38:23 2012
Return-Path: <freebsd@grem.de>
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 71A871065678
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 14 Sep 2012 16:38:23 +0000 (UTC)
	(envelope-from freebsd@grem.de)
Received: from mail.grem.de (outcast.grem.de [213.239.217.27])
	by mx1.freebsd.org (Postfix) with SMTP id 0E55A8FC24
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 14 Sep 2012 16:38:21 +0000 (UTC)
Received: (qmail 43836 invoked by uid 0); 14 Sep 2012 16:38:14 -0000
Message-Id: <20120914163814.43835.qmail@mail.grem.de>
Date: 14 Sep 2012 16:38:14 -0000
From: Michael Gmelin <freebsd@grem.de>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [MAINTAINER] devel/ice: Fixes for Clang, C++11, libc++
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         171643
>Category:       ports
>Synopsis:       [MAINTAINER] devel/ice: Fixes for Clang, C++11, libc++
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    bsam
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Fri Sep 14 16:40:11 UTC 2012
>Closed-Date:    Sun Sep 23 14:47:00 UTC 2012
>Last-Modified:  Sun Sep 23 14:50:08 UTC 2012
>Originator:     Michael Gmelin
>Release:        FreeBSD 9.1-RC1 amd64
>Organization:
Grem Equity GmbH
>Environment:
System: FreeBSD clangcompile 9.1-RC1 FreeBSD 9.1-RC1 #1 r240177: Fri Sep  7 14:37:21 UTC 2012
>Description:
This allows running Ice, built using Clang in C++11 mode and libc++
(-std=c++11 -stdlib=libc++) on FreeBSD 9.1-RC1 (all patches are
backwards compatible, so it still will build on earlier version of
FreeBSD using gcc 4.2. See also:

http://www.zeroc.com/forums/patches/5817-patch-compiling-ice-clang-c-11-libc.html

This also incorporates a patch published by ZeroC that fixes an
assert bug in IceStrom, see also:

http://www.zeroc.com/forums/patches/5781-patch-4-ice-3-4-2-icestorm-assert-bug-fix.html

I also changed the port skeleton, so it makes use of new-style options.
Part of this was increasing the indentation level, therefore the patch
to Makefile looks a lot more dramatic than it is.

Added file(s):
- files/patch-cpp-demo-Freeze-customEvictor-Evictor.h
- files/patch-cpp-include-IceUtil-Cache.h
- files/patch-cpp-include-IceUtil-Config.h
- files/patch-cpp-include-IceUtil-Shared.h
- files/patch-cpp-src-Freeze-MapI.h
- files/patch-cpp-src-Freeze-ObjectStore.cpp
- files/patch-cpp-src-Freeze-ObjectStore.h
- files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp
- files/patch-cpp-src-Freeze-TransactionalEvictorContext.h
- files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp
- files/patch-cpp-src-IceGrid-FileCache.cpp
- files/patch-cpp-src-IceStorm-Replica.h
- files/patch-cpp-src-IceStorm-TopicI.cpp
- files/patch-cpp-src-IceStorm-TopicManagerI.cpp
- files/patch-cpp-src-IceUtil-Shared.cpp
- files/patch-cpp-src-slice2cpp-Main.cpp
- files/patch-cpp-src-slice2cs-Main.cpp
- files/patch-cpp-src-slice2freeze-Main.cpp
- files/patch-cpp-src-slice2freezej-Main.cpp
- files/patch-cpp-src-slice2html-Main.cpp
- files/patch-cpp-src-slice2java-Main.cpp
- files/patch-cpp-src-slice2php-Main.cpp
- files/patch-cpp-src-slice2py-Main.cpp
- files/patch-cpp-src-slice2rb-Main.cpp

Generated with FreeBSD Port Tools 0.99_6 (mode: change, diff: suffix)
>How-To-Repeat:
Try building the port using an /etc/make.conf that contains

CC=clang
CXX=clang++
CXXFLAGS+=-std=c++11 -stdlib=libc++
CPP=clang-cpp

>Fix:
Apply the following patch.

--- Ice-3.4.2_3.patch begins here ---
diff -ruN --exclude=CVS ../ice.orig/Makefile ./Makefile
--- ../ice.orig/Makefile	2012-03-24 16:57:39.000000000 +0100
+++ ./Makefile	2012-09-12 02:48:59.834014502 +0200
@@ -5,93 +5,92 @@
 # $FreeBSD: ports/devel/ice/Makefile,v 1.22 2012/03/24 15:57:39 miwi Exp $
 #
 
-PORTNAME=	Ice
-PORTVERSION=	3.4.2
-PORTREVISION=	2
-CATEGORIES=	devel
-MASTER_SITES=	http://download.zeroc.com/Ice/3.4/
-
-MAINTAINER=	freebsd@grem.de
-COMMENT=	A modern alternative to object middleware such as CORBA/COM/DCOM/COM+
-
-LIB_DEPENDS=	expat.6:${PORTSDIR}/textproc/expat2 \
-		mcpp.3:${PORTSDIR}/devel/mcpp
-
-OPTIONS=	TESTS "Build and run tests (requires lang/python)" on \
-		DEMOS "Build demos" on
+PORTNAME=		Ice
+PORTVERSION=		3.4.2
+PORTREVISION=		3
+CATEGORIES=		devel
+MASTER_SITES=		http://download.zeroc.com/Ice/3.4/
+
+MAINTAINER=		freebsd@grem.de
+COMMENT=		A modern alternative to object middleware such as CORBA/COM/DCOM/COM+
+
+LIB_DEPENDS=		expat.6:${PORTSDIR}/textproc/expat2 \
+			mcpp.3:${PORTSDIR}/devel/mcpp
+
+OPTIONS_DEFINE=		DEBUG DEMOS DOCS TESTS
+OPTIONS_DEFAULT=	DEMOS TESTS
+TESTS_DESC=		Build and run tests (requires lang/python)
+DEMOS_DESC=		Build demos
 
 .include <bsd.port.options.mk>
 
-.if defined(WITH_TESTS)
+.if ${PORT_OPTIONS:MTESTS}
 USE_PYTHON_BUILD=	yes
 .endif
 
-USE_GMAKE=	yes
-USE_ICONV=	yes
-USE_BDB=	42+
+USE_GMAKE=		yes
+USE_ICONV=		yes
+USE_BDB=		42+
 INVALID_BDB_VER=	2 3 40 41
-USE_LDCONFIG=	yes
-BUILD_WRKSRC=	${WRKSRC}/cpp
-INSTALL_WRKSRC=	${WRKSRC}/cpp
-
-CFLAGS+=	-ftemplate-depth-128 -fPIC -DPIC -Wall -D_REENTRANT ${PTHREAD_CFLAGS} -I${LOCALBASE}/include
-.if defined(DEBUG)
-CFLAGS+=	-g
-.else
-CFLAGS+=	-DNDEBUG
+USE_LDCONFIG=		yes
+BUILD_WRKSRC=		${WRKSRC}/cpp
+INSTALL_WRKSRC=		${WRKSRC}/cpp
+
+CFLAGS+=		-ftemplate-depth-128 -fPIC -DPIC -Wall -D_REENTRANT ${PTHREAD_CFLAGS} -I${LOCALBASE}/include
+.if !${PORT_OPTIONS:MDEBUG}
+CFLAGS+=		-DNDEBUG
 .endif
 
-.include <bsd.port.pre.mk>
 .if ${ARCH} == "ia64"
-BROKEN=		does not compile on ia64
+BROKEN=			does not compile on ia64
 .endif
 
 .if ${ARCH} == "sparc64"
-BROKEN=		fails to link
+BROKEN=			fails to link
 .endif
 
 .if ((${ARCH} != i386) && (${ARCH} != powerpc))
-MAKE_ENV=	LP64=yes
+MAKE_ENV=		LP64=yes
 .endif
 
-.if !defined(WITH_TESTS)
-MAKE_ENV+=	NOTESTS=yes
+.if !${PORT_OPTIONS:MTESTS}
+MAKE_ENV+=		NOTESTS=yes
 .endif
 
-.if !defined(WITH_DEMOS)
-MAKE_ENV+=	NODEMOS=yes
+.if !${PORT_OPTIONS:MDEMOS}
+MAKE_ENV+=		NODEMOS=yes
 .endif
 
-.if defined(NOPORTDOCS)
-MAKE_ENV+=	NOPORTDOCS=yes
+.if !${PORT_OPTIONS:MDOCS}
+MAKE_ENV+=		NOPORTDOCS=yes
 .endif
 
 post-patch:
-	${SED} 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g; \
+	@${SED} 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g; \
 		s|%%PREFIX%%|${PREFIX}|g; \
 		s|%%DATADIR%%|${DATADIR}|g; \
 		s|%%DOCSDIR%%|${DOCSDIR}|g; \
 		s|%%INSTALL_PROGRAM%%|${INSTALL_PROGRAM}|g; \
 		s|%%INSTALL_DATA%%|${INSTALL_DATA}|g' \
 		${FILESDIR}/Make.rules.FreeBSD > ${WRKSRC}/cpp/config/Make.rules.FreeBSD
-	${REINPLACE_CMD} 's|%%BDB_LIB_CXX_NAME%%|${BDB_LIB_CXX_NAME}|g; \
+	@${REINPLACE_CMD} 's|%%BDB_LIB_CXX_NAME%%|${BDB_LIB_CXX_NAME}|g; \
 		s|%%BDB_LIB_DIR%%|${BDB_LIB_DIR}|g; \
 		s|%%BDB_INCLUDE_DIR%%|${BDB_INCLUDE_DIR}|g; \
 		/install_docdir/d' \
 		${WRKSRC}/cpp/config/Make.rules
-	${REINPLACE_CMD} '/install_configdir/d' \
+	@${REINPLACE_CMD} '/install_configdir/d' \
 		${WRKSRC}/cpp/config/Make.rules
-	${REINPLACE_CMD} 's|INSTALL_PROGRAM|INSTALL_DATA|g' \
+	@${REINPLACE_CMD} 's|INSTALL_PROGRAM|INSTALL_DATA|g' \
 		${WRKSRC}/cpp/src/ca/Makefile
-	${REINPLACE_CMD} '/LICENSE/s/prefix/install_slicedir/' \
+	@${REINPLACE_CMD} '/LICENSE/s/prefix/install_slicedir/' \
 		${WRKSRC}/config/Make.common.rules
 
-.if defined(WITH_TESTS)
-TEST_CMD=	@cd ${BUILD_WRKSRC} && ${PYTHON_CMD} ./allTests.py
+.if ${PORT_OPTIONS:MTESTS}
+TEST_CMD=		@cd ${BUILD_WRKSRC} && ${PYTHON_CMD} ./allTests.py
 post-build:
 	${TEST_CMD}
 regression-test test: build
 	${TEST_CMD}
 .endif
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-demo-Freeze-customEvictor-Evictor.h ./files/patch-cpp-demo-Freeze-customEvictor-Evictor.h
--- ../ice.orig/files/patch-cpp-demo-Freeze-customEvictor-Evictor.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-demo-Freeze-customEvictor-Evictor.h	2012-09-10 19:33:16.673709677 +0200
@@ -0,0 +1,10 @@
+--- cpp.orig/demo/Freeze/customEvictor/Evictor.h	2011-06-15 21:43:58.000000000 +0200
++++ cpp/demo/Freeze/customEvictor/Evictor.h	2012-09-10 11:43:58.000000000 +0200
+@@ -66,6 +66,7 @@ class Evictor : public Ice::ServantLocator
+ public:
+     
+     Evictor(CurrentDatabase&, int);
++    virtual ~Evictor() ICE_NOEXCEPT_TRUE {};
+     
+     virtual Ice::ObjectPtr locate(const Ice::Current&, Ice::LocalObjectPtr&);
+     virtual void finished(const Ice::Current&, const Ice::ObjectPtr&, const Ice::LocalObjectPtr&);
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-Ice-Stream.h ./files/patch-cpp-include-Ice-Stream.h
--- ../ice.orig/files/patch-cpp-include-Ice-Stream.h	2012-03-24 16:57:39.000000000 +0100
+++ ./files/patch-cpp-include-Ice-Stream.h	2012-09-10 19:38:57.073749905 +0200
@@ -77,3 +77,14 @@
          }
          v = static_cast<T>(val);
      }
+--- cpp.orig/include/Ice/Stream.h	2011-06-15 21:43:58.000000000 +0200
++++ cpp/include/Ice/Stream.h	2012-09-10 11:43:58.000000000 +0200
+@@ -664,7 +664,7 @@ struct StreamWriter<StreamTraitTypeSequenceBool>
+         outS->writeSize(static_cast<Int>(v.size()));
+         for(typename T::const_iterator p = v.begin(); p != v.end(); ++p)
+         {
+-            outS->write(*p);
++            outS->write(static_cast<bool>(*p));
+         }
+     }
+ };
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-IceUtil-Cache.h ./files/patch-cpp-include-IceUtil-Cache.h
--- ../ice.orig/files/patch-cpp-include-IceUtil-Cache.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-include-IceUtil-Cache.h	2012-09-14 16:50:03.842305516 +0200
@@ -0,0 +1,10 @@
+--- cpp.orig/include/IceUtil/Cache.h	2011-06-15 21:43:58.000000000 +0200
++++ cpp/include/IceUtil/Cache.h	2012-09-10 11:43:58.000000000 +0200
+@@ -77,6 +77,6 @@ protected:
+     {
+     }
+     
+-    virtual ~Cache()
++    virtual ~Cache() ICE_NOEXCEPT_FALSE
+     {
+     }
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-IceUtil-Config.h ./files/patch-cpp-include-IceUtil-Config.h
--- ../ice.orig/files/patch-cpp-include-IceUtil-Config.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-include-IceUtil-Config.h	2012-09-10 23:25:21.254929179 +0200
@@ -0,0 +1,19 @@
+--- cpp.orig/include/IceUtil/Config.h	2011-06-15 21:43:58.000000000 +0200
++++ cpp/include/IceUtil/Config.h	2012-09-10 11:43:58.000000000 +0200
+@@ -248,3 +248,16 @@ public:
+ #define ICE_DEFAULT_MUTEX_PROTOCOL PrioNone
+ 
+ #endif
++
++
++//
++// Macro used for declaring destructors that might throw - required for C++11
++//
++#if __cplusplus >= 201103L
++#define ICE_DESTRUCTORS_DONT_THROW_BY_DEFAULT
++#define ICE_NOEXCEPT_FALSE noexcept(false)
++#define ICE_NOEXCEPT_TRUE noexcept(true)
++#else
++#define ICE_NOEXCEPT_FALSE
++#define ICE_NOEXCEPT_TRUE
++#endif
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-IceUtil-Shared.h ./files/patch-cpp-include-IceUtil-Shared.h
--- ../ice.orig/files/patch-cpp-include-IceUtil-Shared.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-include-IceUtil-Shared.h	2012-09-10 21:49:08.451696645 +0200
@@ -0,0 +1,72 @@
+--- cpp.orig/include/IceUtil/Shared.h	2011-06-15 21:43:58.000000000 +0200
++++ cpp/include/IceUtil/Shared.h	2012-09-10 11:43:58.000000000 +0200
+@@ -50,6 +50,11 @@
+ //
+ // A non thread-safe base class for reference-counted types.
+ //
++// IceUtil::SimpleSharedUnsafeDestructor
++// =====================
++//
++// A non thread-safe base class for reference-counted types - destructor might throw.
++//
+ // IceUtil::Shared
+ // ===============
+ //
+@@ -109,6 +114,57 @@ private:
+     bool _noDelete;
+ };
+ 
++class ICE_UTIL_API SimpleSharedUnsafeDestructor
++{
++public:
++
++    SimpleSharedUnsafeDestructor();
++    SimpleSharedUnsafeDestructor(const SimpleSharedUnsafeDestructor&);
++
++    virtual ~SimpleSharedUnsafeDestructor() ICE_NOEXCEPT_FALSE
++    {
++    }
++
++    SimpleSharedUnsafeDestructor& operator=(const SimpleSharedUnsafeDestructor&)
++    {
++        return *this;
++    }
++
++    void __incRef()
++    {
++        assert(_ref >= 0);
++        ++_ref;
++    }
++
++    void __decRef()
++    {
++        assert(_ref > 0);
++        if(--_ref == 0)
++        {
++            if(!_noDelete)
++            {
++                _noDelete = true;
++                delete this;
++            }
++        }
++    }
++
++    int __getRef() const
++    {
++        return _ref;
++    }
++
++    void __setNoDelete(bool b)
++    {
++        _noDelete = b;
++    }
++
++private:
++
++    int _ref;
++    bool _noDelete;
++};
++
+ class ICE_UTIL_API Shared
+ {
+ public:
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-MapDb.cpp ./files/patch-cpp-src-Freeze-MapDb.cpp
--- ../ice.orig/files/patch-cpp-src-Freeze-MapDb.cpp	2012-03-24 16:57:39.000000000 +0100
+++ ./files/patch-cpp-src-Freeze-MapDb.cpp	2012-09-10 22:04:07.519687409 +0200
@@ -1,5 +1,19 @@
 --- cpp.orig/src/Freeze/MapDb.cpp	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Freeze/MapDb.cpp	2012-03-04 20:14:52.000000000 +0100
++++ cpp/src/Freeze/MapDb.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -72,7 +72,13 @@ Freeze::MapDb::~MapDb()
+         }
+         catch(const ::DbException& dx)
+         {
++#if defined(ICE_DESTRUCTORS_DONT_THROW_BY_DEFAULT)
++            Error out(_communicator->getLogger());
++            out << "DbException while closing database " << _dbName << ": "
++                << dx.what();
++#else
+             throw DatabaseException(__FILE__, __LINE__, dx.what());
++#endif
+         }
+     }
+ }
 @@ -229,7 +229,11 @@
  #ifndef NDEBUG
                  bool inserted = 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-MapI.h ./files/patch-cpp-src-Freeze-MapI.h
--- ../ice.orig/files/patch-cpp-src-Freeze-MapI.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-Freeze-MapI.h	2012-09-10 21:54:08.599554544 +0200
@@ -0,0 +1,18 @@
+--- cpp.orig/src/Freeze/MapI.h	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/Freeze/MapI.h	2012-09-10 11:43:58.000000000 +0200
+@@ -63,12 +63,13 @@ public:
+     void
+     close();
+ 
+-    class Tx : public IceUtil::SimpleShared
++    class Tx : public IceUtil::SimpleSharedUnsafeDestructor
+     {
+     public:
+ 
+         Tx(const MapHelperI&);
+-        ~Tx();
++        ~Tx() ICE_NOEXCEPT_FALSE;
++        ;
+ 
+         void dead();
+ 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-ObjectStore.cpp ./files/patch-cpp-src-Freeze-ObjectStore.cpp
--- ../ice.orig/files/patch-cpp-src-Freeze-ObjectStore.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-Freeze-ObjectStore.cpp	2012-09-11 03:59:42.835768363 +0200
@@ -0,0 +1,11 @@
+--- cpp.orig/src/Freeze/ObjectStore.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/Freeze/ObjectStore.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -189,7 +189,7 @@ Freeze::ObjectStoreBase::ObjectStoreBase(const string& facet, const string& face
+     }
+ }
+ 
+-Freeze::ObjectStoreBase::~ObjectStoreBase()
++Freeze::ObjectStoreBase::~ObjectStoreBase() ICE_NOEXCEPT_FALSE
+ {
+     try
+     {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-ObjectStore.h ./files/patch-cpp-src-Freeze-ObjectStore.h
--- ../ice.orig/files/patch-cpp-src-Freeze-ObjectStore.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-Freeze-ObjectStore.h	2012-09-10 21:55:20.209510278 +0200
@@ -0,0 +1,11 @@
+--- cpp.orig/src/Freeze/ObjectStore.h	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/Freeze/ObjectStore.h	2012-09-10 11:43:58.000000000 +0200
+@@ -36,7 +36,7 @@ public:
+     ObjectStoreBase(const std::string&, const std::string&, bool, EvictorIBase*, 
+                     const std::vector<IndexPtr>&, bool);
+ 
+-    virtual ~ObjectStoreBase();
++    virtual ~ObjectStoreBase() ICE_NOEXCEPT_FALSE;
+ 
+     const Ice::ObjectPtr& sampleServant() const;
+ 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp ./files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp
--- ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp	2012-09-10 21:56:29.779531328 +0200
@@ -0,0 +1,11 @@
+--- cpp.orig/src/Freeze/TransactionalEvictorContext.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/Freeze/TransactionalEvictorContext.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -273,7 +273,7 @@ Freeze::TransactionalEvictorContext::ServantHolder::ServantHolder() :
+ }
+ 
+ 
+-Freeze::TransactionalEvictorContext::ServantHolder::~ServantHolder()
++Freeze::TransactionalEvictorContext::ServantHolder::~ServantHolder() ICE_NOEXCEPT_FALSE
+ {
+     if(_ownBody && _body.ownServant)
+     {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorContext.h ./files/patch-cpp-src-Freeze-TransactionalEvictorContext.h
--- ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorContext.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-Freeze-TransactionalEvictorContext.h	2012-09-10 21:56:46.249518436 +0200
@@ -0,0 +1,11 @@
+--- cpp.orig/src/Freeze/TransactionalEvictorContext.h	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/Freeze/TransactionalEvictorContext.h	2012-09-10 11:43:58.000000000 +0200
+@@ -34,7 +34,7 @@ public:
+     public:
+         
+         ServantHolder();
+-        ~ServantHolder();
++        ~ServantHolder() ICE_NOEXCEPT_FALSE;
+ 
+         void init(const TransactionalEvictorContextPtr&, const Ice::Current&, ObjectStore<TransactionalEvictorElement>*);
+ 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp ./files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp
--- ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp	2012-09-10 21:56:57.809805567 +0200
@@ -0,0 +1,11 @@
+--- cpp.orig/src/Freeze/TransactionalEvictorI.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/Freeze/TransactionalEvictorI.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -346,7 +346,7 @@ Freeze::TransactionalEvictorI::dispatch(Request& request)
+         {
+         }
+         
+-        ~CtxHolder()
++        ~CtxHolder() ICE_NOEXCEPT_FALSE
+         {
+             if(_ownCtx)
+             {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Ice-Network.cpp ./files/patch-cpp-src-Ice-Network.cpp
--- ../ice.orig/files/patch-cpp-src-Ice-Network.cpp	2011-07-31 17:43:29.000000000 +0200
+++ ./files/patch-cpp-src-Ice-Network.cpp	2012-09-10 22:03:51.659742361 +0200
@@ -1,5 +1,5 @@
 --- cpp.orig/src/Ice/Network.cpp	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Ice/Network.cpp	2011-07-15 23:40:26.000000000 +0200
++++ cpp/src/Ice/Network.cpp	2012-09-10 11:43:58.000000000 +0200
 @@ -715,7 +715,11 @@
      WSASetLastError(error);
  #else
@@ -13,3 +13,12 @@
      {
          SocketException ex(__FILE__, __LINE__);
          ex.error = getSocketErrno();
+@@ -1098,7 +1098,7 @@ IceInternal::doBind(SOCKET fd, const struct sockaddr_storage& addr)
+         size = 0; // Keep the compiler happy.
+     }
+ 
+-    if(bind(fd, reinterpret_cast<const struct sockaddr*>(&addr), size) == SOCKET_ERROR)
++    if(::bind(fd, reinterpret_cast<const struct sockaddr*>(&addr), size) == SOCKET_ERROR)
+     {
+         closeSocketNoThrow(fd);
+         SocketException ex(__FILE__, __LINE__);
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceGrid-FileCache.cpp ./files/patch-cpp-src-IceGrid-FileCache.cpp
--- ../ice.orig/files/patch-cpp-src-IceGrid-FileCache.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-IceGrid-FileCache.cpp	2012-09-11 03:06:33.769768355 +0200
@@ -0,0 +1,20 @@
+--- cpp.orig/src/IceGrid/FileCache.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/IceGrid/FileCache.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -195,15 +195,12 @@ FileCache::read(const string& file, Ice::Long offset, int size, Ice::Long& newOf
+ 
+         totalSize += lineSize;
+         lines.push_back(line);
+-#if defined(_MSC_VER) && (_MSC_VER < 1300)
+-        if(is.eof())
++        
++        if(is.eof() || is.fail())
+         {
+             newOffset += line.size();
+         }
+         else
+-#else
+-        if(!is.fail())
+-#endif
+         {
+             newOffset = is.tellg();
+         }
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceStorm-Replica.h ./files/patch-cpp-src-IceStorm-Replica.h
--- ../ice.orig/files/patch-cpp-src-IceStorm-Replica.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-IceStorm-Replica.h	2012-09-10 21:52:16.229537684 +0200
@@ -0,0 +1,15 @@
+--- cpp.orig/src/IceStorm/Replica.h	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/IceStorm/Replica.h	2012-09-10 11:43:58.000000000 +0200
+@@ -23,9 +23,9 @@ struct GroupNodeInfo
+     GroupNodeInfo(int i, LogUpdate l, const Ice::ObjectPrx& o = Ice::ObjectPrx());
+     bool operator<(const GroupNodeInfo& rhs) const;
+     bool operator==(const GroupNodeInfo& rhs) const;
+-    const int id;
+-    const LogUpdate llu;
+-    const Ice::ObjectPrx observer;
++    int id;
++    LogUpdate llu;
++    Ice::ObjectPrx observer;
+ };
+ 
+ class Replica : virtual public IceUtil::Shared
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceStorm-TopicI.cpp ./files/patch-cpp-src-IceStorm-TopicI.cpp
--- ../ice.orig/files/patch-cpp-src-IceStorm-TopicI.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-IceStorm-TopicI.cpp	2012-09-12 22:38:08.054841760 +0200
@@ -0,0 +1,74 @@
+--- cpp.orig/src/IceStorm/TopicI.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/IceStorm/TopicI.cpp	2012-09-12 22:14:00.000000000 +0200
+@@ -666,7 +666,7 @@ TopicImpl::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj)
+         {
+             try
+             {
+-                DatabaseConnectionPtr connection = _databaseCache->getConnection();
++                DatabaseConnectionPtr connection = _databaseCache->newConnection();
+                 TransactionHolder txn(connection);
+ 
+                 SubscriberRecordKey key;
+@@ -703,7 +703,7 @@ TopicImpl::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj)
+     {
+         try
+         {
+-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
+             TransactionHolder txn(connection);
+ 
+             SubscriberRecordKey key;
+@@ -788,7 +788,7 @@ TopicImpl::subscribeAndGetPublisher(const QoS& qos, const Ice::ObjectPrx& obj)
+     {
+         try
+         {
+-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
+             TransactionHolder txn(connection);
+ 
+             SubscriberRecordKey key;
+@@ -912,7 +912,7 @@ TopicImpl::link(const TopicPrx& topic, Ice::Int cost)
+     {
+         try
+         {
+-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
+             TransactionHolder txn(connection);
+ 
+             SubscriberRecordKey key;
+@@ -1311,7 +1311,7 @@ TopicImpl::observerAddSubscriber(const LogUpdate& llu, const SubscriberRecord& r
+     {
+         try
+         {
+-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
+             TransactionHolder txn(connection);
+ 
+             SubscriberRecordKey key;
+@@ -1380,7 +1380,7 @@ TopicImpl::observerRemoveSubscriber(const LogUpdate& llu, const Ice::IdentitySeq
+     {
+         try
+         {
+-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
+             TransactionHolder txn(connection);
+ 
+             for(Ice::IdentitySeq::const_iterator id = ids.begin(); id != ids.end(); ++id)
+@@ -1456,7 +1456,7 @@ TopicImpl::destroyInternal(const LogUpdate& origLLU, bool master)
+     {
+         try
+         {
+-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
+             TransactionHolder txn(connection);
+ 
+             // Erase all subscriber records and the topic record.
+@@ -1531,7 +1531,7 @@ TopicImpl::removeSubscribers(const Ice::IdentitySeq& ids)
+     {
+         try
+         {
+-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
+             TransactionHolder txn(connection);
+ 
+             for(Ice::IdentitySeq::const_iterator id = ids.begin(); id != ids.end(); ++id)
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceStorm-TopicManagerI.cpp ./files/patch-cpp-src-IceStorm-TopicManagerI.cpp
--- ../ice.orig/files/patch-cpp-src-IceStorm-TopicManagerI.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-IceStorm-TopicManagerI.cpp	2012-09-12 22:38:05.534737389 +0200
@@ -0,0 +1,47 @@
+--- cpp.orig/src/IceStorm/TopicManagerI.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/IceStorm/TopicManagerI.cpp	2012-09-12 22:14:00.000000000 +0200
+@@ -312,7 +312,7 @@ TopicManagerImpl::TopicManagerImpl(const InstancePtr& instance) :
+             _sync = _instance->nodeAdapter()->addWithUUID(_syncImpl);
+         }
+ 
+-        DatabaseConnectionPtr connection = _databaseCache->getConnection();
++        DatabaseConnectionPtr connection = _databaseCache->newConnection();
+ 
+         // Ensure that the llu counter is present in the log.
+         LLUWrapperPtr lluWrapper = _databaseCache->getLLU(connection);
+@@ -381,7 +381,7 @@ TopicManagerImpl::create(const string& name)
+     {
+         try
+         {
+-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
+             TransactionHolder txn(connection);
+ 
+             SubscriberRecordKey key;
+@@ -486,7 +486,7 @@ TopicManagerImpl::observerInit(const LogUpdate& llu, const TopicContentSeq& cont
+     {
+         try
+         {
+-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
+             TransactionHolder txn(connection);
+ 
+             LLUWrapperPtr lluWrapper = _databaseCache->getLLU(connection);
+@@ -590,7 +590,7 @@ TopicManagerImpl::observerCreateTopic(const LogUpdate& llu, const string& name)
+     {
+         try
+         {
+-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
+             TransactionHolder txn(connection);
+ 
+             SubscriberRecordKey key;
+@@ -776,7 +776,7 @@ TopicManagerImpl::initMaster(const set<GroupNodeInfo>& slaves, const LogUpdate&
+         {
+             content.clear();
+ 
+-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
+             TransactionHolder txn(connection);
+ 
+             for(map<string, TopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p)
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceUtil-Shared.cpp ./files/patch-cpp-src-IceUtil-Shared.cpp
--- ../ice.orig/files/patch-cpp-src-IceUtil-Shared.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-IceUtil-Shared.cpp	2012-09-10 21:50:42.709551485 +0200
@@ -0,0 +1,21 @@
+--- cpp.orig/src/IceUtil/Shared.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/IceUtil/Shared.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -96,6 +96,18 @@ IceUtil::SimpleShared::SimpleShared(const SimpleShared&) :
+ {
+ }
+ 
++IceUtil::SimpleSharedUnsafeDestructor::SimpleSharedUnsafeDestructor() :
++    _ref(0),
++    _noDelete(false)
++{
++}
++
++IceUtil::SimpleSharedUnsafeDestructor::SimpleSharedUnsafeDestructor(const SimpleSharedUnsafeDestructor&) :
++    _ref(0),
++    _noDelete(false)
++{
++}
++
+ IceUtil::Shared::Shared() :
+     _ref(0),
+     _noDelete(false)
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2cpp-Main.cpp ./files/patch-cpp-src-slice2cpp-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2cpp-Main.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-slice2cpp-Main.cpp	2012-09-10 21:49:54.469553384 +0200
@@ -0,0 +1,46 @@
+--- cpp.orig/src/slice2cpp/Main.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2cpp/Main.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -22,7 +22,7 @@ using namespace Slice;
+ namespace
+ {
+ 
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+ 
+ class Init
+@@ -31,13 +31,13 @@ public:
+ 
+     Init()
+     {
+-        mutex = new IceUtil::Mutex;
++        mtx = new IceUtil::Mutex;
+     }
+ 
+     ~Init()
+     {
+-        delete mutex;
+-        mutex = 0;
++        delete mtx;
++        mtx = 0;
+     }
+ };
+ 
+@@ -48,7 +48,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+     interrupted = true;
+ }
+@@ -294,7 +294,7 @@ compile(int argc, char* argv[])
+         }
+ 
+         {
+-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+             if(interrupted)
+             {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2cs-Main.cpp ./files/patch-cpp-src-slice2cs-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2cs-Main.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-slice2cs-Main.cpp	2012-09-10 21:49:54.469553384 +0200
@@ -0,0 +1,46 @@
+--- cpp.orig/src/slice2cs/Main.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2cs/Main.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -22,7 +22,7 @@ using namespace Slice;
+ namespace
+ {
+ 
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+ 
+ class Init
+@@ -31,13 +31,13 @@ public:
+ 
+     Init()
+     {
+-        mutex = new IceUtil::Mutex;
++        mtx = new IceUtil::Mutex;
+     }
+ 
+     ~Init()
+     {
+-        delete mutex;
+-        mutex = 0;
++        delete mtx;
++        mtx = 0;
+     }
+ };
+ 
+@@ -48,7 +48,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+     interrupted = true;
+ }
+@@ -303,7 +303,7 @@ compile(int argc, char* argv[])
+         }
+ 
+         {
+-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+             if(interrupted)
+             {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2freeze-Main.cpp ./files/patch-cpp-src-slice2freeze-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2freeze-Main.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-slice2freeze-Main.cpp	2012-09-10 21:49:54.469553384 +0200
@@ -0,0 +1,55 @@
+--- cpp.orig/src/slice2freeze/Main.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2freeze/Main.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -28,7 +28,7 @@ using namespace Slice;
+ namespace
+ {
+ 
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+ 
+ class Init
+@@ -37,13 +37,13 @@ public:
+ 
+     Init()
+     {
+-        mutex = new IceUtil::Mutex;
++        mtx = new IceUtil::Mutex;
+     }
+ 
+     ~Init()
+     {
+-        delete mutex;
+-        mutex = 0;
++        delete mtx;
++        mtx = 0;
+     }
+ };
+ 
+@@ -56,7 +56,7 @@ string ICE_ENCODING_COMPARE = "Freeze::IceEncodingCompare";
+ void
+ interruptedCallback(int signal)
+ {
+-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+     interrupted = true;
+ }
+@@ -1995,7 +1995,7 @@ compile(int argc, char* argv[])
+         }
+ 
+         {
+-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+             if(interrupted)
+             {
+@@ -2042,7 +2042,7 @@ compile(int argc, char* argv[])
+     u->destroy();
+ 
+     {
+-        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+         if(interrupted)
+         {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2freezej-Main.cpp ./files/patch-cpp-src-slice2freezej-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2freezej-Main.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-slice2freezej-Main.cpp	2012-09-10 21:49:54.469553384 +0200
@@ -0,0 +1,55 @@
+--- cpp.orig/src/slice2freezej/Main.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2freezej/Main.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -26,7 +26,7 @@ using namespace IceUtilInternal;
+ namespace
+ {
+ 
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+ 
+ class Init
+@@ -35,13 +35,13 @@ public:
+ 
+     Init()
+     {
+-        mutex = new IceUtil::Mutex;
++        mtx = new IceUtil::Mutex;
+     }
+ 
+     ~Init()
+     {
+-        delete mutex;
+-        mutex = 0;
++        delete mtx;
++        mtx = 0;
+     }
+ };
+ 
+@@ -52,7 +52,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(mutex);
++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(mtx);
+ 
+     interrupted = true;
+ }
+@@ -1828,7 +1828,7 @@ compile(int argc, char* argv[])
+         }
+ 
+         {
+-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+             if(interrupted)
+             {
+@@ -1923,7 +1923,7 @@ compile(int argc, char* argv[])
+     u->destroy();
+ 
+     {
+-        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+         if(interrupted)
+         {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2html-Main.cpp ./files/patch-cpp-src-slice2html-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2html-Main.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-slice2html-Main.cpp	2012-09-10 21:49:54.469553384 +0200
@@ -0,0 +1,55 @@
+--- cpp.orig/src/slice2html/Main.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2html/Main.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -24,7 +24,7 @@ using namespace IceUtil;
+ namespace
+ {
+ 
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+ 
+ class Init
+@@ -33,13 +33,13 @@ public:
+ 
+     Init()
+     {
+-        mutex = new IceUtil::Mutex;
++        mtx = new IceUtil::Mutex;
+     }
+ 
+     ~Init()
+     {
+-        delete mutex;
+-        mutex = 0;
++        delete mtx;
++        mtx = 0;
+     }
+ };
+ 
+@@ -50,7 +50,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+     interrupted = true;
+ }
+@@ -254,7 +254,7 @@ compile(int argc, char* argv[])
+         }
+ 
+         {
+-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+             if(interrupted)
+             {
+@@ -296,7 +296,7 @@ compile(int argc, char* argv[])
+     p->destroy();
+ 
+     {
+-        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+         if(interrupted)
+         {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2java-Main.cpp ./files/patch-cpp-src-slice2java-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2java-Main.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-slice2java-Main.cpp	2012-09-10 21:49:54.469553384 +0200
@@ -0,0 +1,46 @@
+--- cpp.orig/src/slice2java/Main.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2java/Main.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -23,7 +23,7 @@ using namespace Slice;
+ namespace
+ {
+ 
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+ 
+ class Init
+@@ -32,13 +32,13 @@ public:
+ 
+     Init()
+     {
+-        mutex = new IceUtil::Mutex;
++        mtx = new IceUtil::Mutex;
+     }
+ 
+     ~Init()
+     {
+-        delete mutex;
+-        mutex = 0;
++        delete mtx;
++        mtx = 0;
+     }
+ };
+ 
+@@ -49,7 +49,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+     interrupted = true;
+ }
+@@ -356,7 +356,7 @@ compile(int argc, char* argv[])
+         }
+ 
+         {
+-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+             if(interrupted)
+             {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2php-Main.cpp ./files/patch-cpp-src-slice2php-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2php-Main.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-slice2php-Main.cpp	2012-09-10 21:49:54.469553384 +0200
@@ -0,0 +1,46 @@
+--- cpp.orig/src/slice2php/Main.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2php/Main.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -1488,7 +1488,7 @@ printHeader(IceUtilInternal::Output& out)
+ namespace
+ {
+ 
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+ 
+ class Init
+@@ -1497,13 +1497,13 @@ public:
+ 
+     Init()
+     {
+-        mutex = new IceUtil::Mutex;
++        mtx = new IceUtil::Mutex;
+     }
+ 
+     ~Init()
+     {
+-        delete mutex;
+-        mutex = 0;
++        delete mtx;
++        mtx = 0;
+     }
+ };
+ 
+@@ -1514,7 +1514,7 @@ Init init;
+ static void
+ interruptedCallback(int signal)
+ {
+-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+     interrupted = true;
+ }
+@@ -1777,7 +1777,7 @@ compile(int argc, char* argv[])
+         }
+ 
+         {
+-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+             if(interrupted)
+             {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2py-Main.cpp ./files/patch-cpp-src-slice2py-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2py-Main.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-slice2py-Main.cpp	2012-09-10 21:49:54.469553384 +0200
@@ -0,0 +1,46 @@
+--- cpp.orig/src/slice2py/Main.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2py/Main.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -40,7 +40,7 @@ using namespace Slice::Python;
+ namespace
+ {
+ 
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+ 
+ class Init
+@@ -49,13 +49,13 @@ public:
+ 
+     Init()
+     {
+-        mutex = new IceUtil::Mutex;
++        mtx = new IceUtil::Mutex;
+     }
+ 
+     ~Init()
+     {
+-        delete mutex;
+-        mutex = 0;
++        delete mtx;
++        mtx = 0;
+     }
+ };
+ 
+@@ -66,7 +66,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+     interrupted = true;
+ }
+@@ -631,7 +631,7 @@ compile(int argc, char* argv[])
+         }
+ 
+         {
+-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+             if(interrupted)
+             {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2rb-Main.cpp ./files/patch-cpp-src-slice2rb-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2rb-Main.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-slice2rb-Main.cpp	2012-09-10 21:49:54.469553384 +0200
@@ -0,0 +1,46 @@
+--- cpp.orig/src/slice2rb/Main.cpp	2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2rb/Main.cpp	2012-09-10 11:43:58.000000000 +0200
+@@ -39,7 +39,7 @@ using namespace Slice::Ruby;
+ namespace
+ {
+ 
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+ 
+ class Init
+@@ -48,13 +48,13 @@ public:
+ 
+     Init()
+     {
+-        mutex = new IceUtil::Mutex;
++        mtx = new IceUtil::Mutex;
+     }
+ 
+     ~Init()
+     {
+-        delete mutex;
+-        mutex = 0;
++        delete mtx;
++        mtx = 0;
+     }
+ };
+ 
+@@ -65,7 +65,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+     interrupted = true;
+ }
+@@ -316,7 +316,7 @@ compile(int argc, char* argv[])
+         }
+ 
+         {
+-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+ 
+             if(interrupted)
+             {
--- Ice-3.4.2_3.patch ends here ---

>Release-Note:
>Audit-Trail:
Class-Changed-From-To: change-request->maintainer-update 
Class-Changed-By: edwin 
Class-Changed-When: Fri Sep 14 16:40:25 UTC 2012 
Class-Changed-Why:  
Fix category (submitter is maintainer) (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=171643 
Responsible-Changed-From-To: freebsd-ports-bugs->bsam 
Responsible-Changed-By: bsam 
Responsible-Changed-When: Sun Sep 23 12:09:06 UTC 2012 
Responsible-Changed-Why:  
Take. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=171643 
State-Changed-From-To: open->closed 
State-Changed-By: bsam 
State-Changed-When: Sun Sep 23 14:46:58 UTC 2012 
State-Changed-Why:  
Committed, thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=171643 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/171643: commit references a PR
Date: Sun, 23 Sep 2012 14:45:50 +0000 (UTC)

 Author: bsam
 Date: Sun Sep 23 14:45:33 2012
 New Revision: 304742
 URL: http://svn.freebsd.org/changeset/ports/304742
 
 Log:
   Changes from the PR:
   . fix built using Clang in C++11 mode and libc++ (-std=c++11
   -stdlib=libc++);
   . incorporate a patch that fixes an assert bug in IceStrom;
   . adopt new-style options;
   
   While I'm here:
   . adopt new-style headers;
   . remove indefinite article form COMMENT;
   . remove library versions from LIB_DEPENDS.
   
   PR:		ports/171643
   Submitted by:	Michael Gmelin <freebsd@grem.de> (maintainer)
 
 Added:
   head/devel/ice/files/patch-cpp-demo-Freeze-customEvictor-Evictor.h   (contents, props changed)
   head/devel/ice/files/patch-cpp-include-IceUtil-Cache.h   (contents, props changed)
   head/devel/ice/files/patch-cpp-include-IceUtil-Config.h   (contents, props changed)
   head/devel/ice/files/patch-cpp-include-IceUtil-Shared.h   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-Freeze-MapI.h   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-Freeze-ObjectStore.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-Freeze-ObjectStore.h   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.h   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-IceGrid-FileCache.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-IceStorm-Replica.h   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-IceStorm-TopicI.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-IceStorm-TopicManagerI.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-IceUtil-Shared.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-slice2cpp-Main.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-slice2cs-Main.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-slice2freeze-Main.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-slice2freezej-Main.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-slice2html-Main.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-slice2java-Main.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-slice2php-Main.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-slice2py-Main.cpp   (contents, props changed)
   head/devel/ice/files/patch-cpp-src-slice2rb-Main.cpp   (contents, props changed)
 Modified:
   head/devel/ice/Makefile
   head/devel/ice/files/patch-cpp-include-Ice-Stream.h
   head/devel/ice/files/patch-cpp-src-Freeze-MapDb.cpp
   head/devel/ice/files/patch-cpp-src-Ice-Network.cpp
 
 Modified: head/devel/ice/Makefile
 ==============================================================================
 --- head/devel/ice/Makefile	Sun Sep 23 14:04:51 2012	(r304741)
 +++ head/devel/ice/Makefile	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -1,97 +1,92 @@
 -# New ports collection makefile for:	ice
 -# Date created:		2004-02-02
 -# Whom:			Stefan Ehmann <shoesoft@gmx.net>
 -#
 +# Created by: Stefan Ehmann <shoesoft@gmx.net>
  # $FreeBSD$
 -#
  
 -PORTNAME=	Ice
 -PORTVERSION=	3.4.2
 -PORTREVISION=	2
 -CATEGORIES=	devel
 -MASTER_SITES=	http://download.zeroc.com/Ice/3.4/
 -
 -MAINTAINER=	freebsd@grem.de
 -COMMENT=	A modern alternative to object middleware such as CORBA/COM/DCOM/COM+
 -
 -LIB_DEPENDS=	expat.6:${PORTSDIR}/textproc/expat2 \
 -		mcpp.3:${PORTSDIR}/devel/mcpp
 -
 -OPTIONS=	TESTS "Build and run tests (requires lang/python)" on \
 -		DEMOS "Build demos" on
 +PORTNAME=		Ice
 +PORTVERSION=		3.4.2
 +PORTREVISION=		3
 +CATEGORIES=		devel
 +MASTER_SITES=		http://download.zeroc.com/Ice/3.4/
 +
 +MAINTAINER=		freebsd@grem.de
 +COMMENT=		Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
 +
 +LIB_DEPENDS=		expat:${PORTSDIR}/textproc/expat2 \
 +			mcpp:${PORTSDIR}/devel/mcpp
 +
 +OPTIONS_DEFINE=		DEBUG DEMOS DOCS TESTS
 +OPTIONS_DEFAULT=	DEMOS TESTS
 +TESTS_DESC=		Build and run tests (requires lang/python)
 +DEMOS_DESC=		Build demos
  
  .include <bsd.port.options.mk>
  
 -.if defined(WITH_TESTS)
 +.if ${PORT_OPTIONS:MTESTS}
  USE_PYTHON_BUILD=	yes
  .endif
  
 -USE_GMAKE=	yes
 -USE_ICONV=	yes
 -USE_BDB=	42+
 +USE_GMAKE=		yes
 +USE_ICONV=		yes
 +USE_BDB=		42+
  INVALID_BDB_VER=	2 3 40 41
 -USE_LDCONFIG=	yes
 -BUILD_WRKSRC=	${WRKSRC}/cpp
 -INSTALL_WRKSRC=	${WRKSRC}/cpp
 -
 -CFLAGS+=	-ftemplate-depth-128 -fPIC -DPIC -Wall -D_REENTRANT ${PTHREAD_CFLAGS} -I${LOCALBASE}/include
 -.if defined(DEBUG)
 -CFLAGS+=	-g
 -.else
 -CFLAGS+=	-DNDEBUG
 +USE_LDCONFIG=		yes
 +BUILD_WRKSRC=		${WRKSRC}/cpp
 +INSTALL_WRKSRC=		${WRKSRC}/cpp
 +
 +CFLAGS+=		-ftemplate-depth-128 -fPIC -DPIC -Wall -D_REENTRANT ${PTHREAD_CFLAGS} -I${LOCALBASE}/include
 +.if !${PORT_OPTIONS:MDEBUG}
 +CFLAGS+=		-DNDEBUG
  .endif
  
 -.include <bsd.port.pre.mk>
  .if ${ARCH} == "ia64"
 -BROKEN=		does not compile on ia64
 +BROKEN=			does not compile on ia64
  .endif
  
  .if ${ARCH} == "sparc64"
 -BROKEN=		fails to link
 +BROKEN=			fails to link
  .endif
  
  .if ((${ARCH} != i386) && (${ARCH} != powerpc))
 -MAKE_ENV=	LP64=yes
 +MAKE_ENV=		LP64=yes
  .endif
  
 -.if !defined(WITH_TESTS)
 -MAKE_ENV+=	NOTESTS=yes
 +.if !${PORT_OPTIONS:MTESTS}
 +MAKE_ENV+=		NOTESTS=yes
  .endif
  
 -.if !defined(WITH_DEMOS)
 -MAKE_ENV+=	NODEMOS=yes
 +.if !${PORT_OPTIONS:MDEMOS}
 +MAKE_ENV+=		NODEMOS=yes
  .endif
  
 -.if defined(NOPORTDOCS)
 -MAKE_ENV+=	NOPORTDOCS=yes
 +.if !${PORT_OPTIONS:MDOCS}
 +MAKE_ENV+=		NOPORTDOCS=yes
  .endif
  
  post-patch:
 -	${SED} 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g; \
 +	@${SED} 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g; \
  		s|%%PREFIX%%|${PREFIX}|g; \
  		s|%%DATADIR%%|${DATADIR}|g; \
  		s|%%DOCSDIR%%|${DOCSDIR}|g; \
  		s|%%INSTALL_PROGRAM%%|${INSTALL_PROGRAM}|g; \
  		s|%%INSTALL_DATA%%|${INSTALL_DATA}|g' \
  		${FILESDIR}/Make.rules.FreeBSD > ${WRKSRC}/cpp/config/Make.rules.FreeBSD
 -	${REINPLACE_CMD} 's|%%BDB_LIB_CXX_NAME%%|${BDB_LIB_CXX_NAME}|g; \
 +	@${REINPLACE_CMD} 's|%%BDB_LIB_CXX_NAME%%|${BDB_LIB_CXX_NAME}|g; \
  		s|%%BDB_LIB_DIR%%|${BDB_LIB_DIR}|g; \
  		s|%%BDB_INCLUDE_DIR%%|${BDB_INCLUDE_DIR}|g; \
  		/install_docdir/d' \
  		${WRKSRC}/cpp/config/Make.rules
 -	${REINPLACE_CMD} '/install_configdir/d' \
 +	@${REINPLACE_CMD} '/install_configdir/d' \
  		${WRKSRC}/cpp/config/Make.rules
 -	${REINPLACE_CMD} 's|INSTALL_PROGRAM|INSTALL_DATA|g' \
 +	@${REINPLACE_CMD} 's|INSTALL_PROGRAM|INSTALL_DATA|g' \
  		${WRKSRC}/cpp/src/ca/Makefile
 -	${REINPLACE_CMD} '/LICENSE/s/prefix/install_slicedir/' \
 +	@${REINPLACE_CMD} '/LICENSE/s/prefix/install_slicedir/' \
  		${WRKSRC}/config/Make.common.rules
  
 -.if defined(WITH_TESTS)
 -TEST_CMD=	@cd ${BUILD_WRKSRC} && ${PYTHON_CMD} ./allTests.py
 +.if ${PORT_OPTIONS:MTESTS}
 +TEST_CMD=		@cd ${BUILD_WRKSRC} && ${PYTHON_CMD} ./allTests.py
  post-build:
  	${TEST_CMD}
  regression-test test: build
  	${TEST_CMD}
  .endif
  
 -.include <bsd.port.post.mk>
 +.include <bsd.port.mk>
 
 Added: head/devel/ice/files/patch-cpp-demo-Freeze-customEvictor-Evictor.h
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-demo-Freeze-customEvictor-Evictor.h	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,10 @@
 +--- cpp.orig/demo/Freeze/customEvictor/Evictor.h	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/demo/Freeze/customEvictor/Evictor.h	2012-09-10 11:43:58.000000000 +0200
 +@@ -66,6 +66,7 @@ class Evictor : public Ice::ServantLocator
 + public:
 +     
 +     Evictor(CurrentDatabase&, int);
 ++    virtual ~Evictor() ICE_NOEXCEPT_TRUE {};
 +     
 +     virtual Ice::ObjectPtr locate(const Ice::Current&, Ice::LocalObjectPtr&);
 +     virtual void finished(const Ice::Current&, const Ice::ObjectPtr&, const Ice::LocalObjectPtr&);
 
 Modified: head/devel/ice/files/patch-cpp-include-Ice-Stream.h
 ==============================================================================
 --- head/devel/ice/files/patch-cpp-include-Ice-Stream.h	Sun Sep 23 14:04:51 2012	(r304741)
 +++ head/devel/ice/files/patch-cpp-include-Ice-Stream.h	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -77,3 +77,14 @@
           }
           v = static_cast<T>(val);
       }
 +--- cpp.orig/include/Ice/Stream.h	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/include/Ice/Stream.h	2012-09-10 11:43:58.000000000 +0200
 +@@ -664,7 +664,7 @@ struct StreamWriter<StreamTraitTypeSequenceBool>
 +         outS->writeSize(static_cast<Int>(v.size()));
 +         for(typename T::const_iterator p = v.begin(); p != v.end(); ++p)
 +         {
 +-            outS->write(*p);
 ++            outS->write(static_cast<bool>(*p));
 +         }
 +     }
 + };
 
 Added: head/devel/ice/files/patch-cpp-include-IceUtil-Cache.h
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-include-IceUtil-Cache.h	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,10 @@
 +--- cpp.orig/include/IceUtil/Cache.h	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/include/IceUtil/Cache.h	2012-09-10 11:43:58.000000000 +0200
 +@@ -77,6 +77,6 @@ protected:
 +     {
 +     }
 +     
 +-    virtual ~Cache()
 ++    virtual ~Cache() ICE_NOEXCEPT_FALSE
 +     {
 +     }
 
 Added: head/devel/ice/files/patch-cpp-include-IceUtil-Config.h
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-include-IceUtil-Config.h	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,19 @@
 +--- cpp.orig/include/IceUtil/Config.h	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/include/IceUtil/Config.h	2012-09-10 11:43:58.000000000 +0200
 +@@ -248,3 +248,16 @@ public:
 + #define ICE_DEFAULT_MUTEX_PROTOCOL PrioNone
 + 
 + #endif
 ++
 ++
 ++//
 ++// Macro used for declaring destructors that might throw - required for C++11
 ++//
 ++#if __cplusplus >= 201103L
 ++#define ICE_DESTRUCTORS_DONT_THROW_BY_DEFAULT
 ++#define ICE_NOEXCEPT_FALSE noexcept(false)
 ++#define ICE_NOEXCEPT_TRUE noexcept(true)
 ++#else
 ++#define ICE_NOEXCEPT_FALSE
 ++#define ICE_NOEXCEPT_TRUE
 ++#endif
 
 Added: head/devel/ice/files/patch-cpp-include-IceUtil-Shared.h
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-include-IceUtil-Shared.h	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,72 @@
 +--- cpp.orig/include/IceUtil/Shared.h	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/include/IceUtil/Shared.h	2012-09-10 11:43:58.000000000 +0200
 +@@ -50,6 +50,11 @@
 + //
 + // A non thread-safe base class for reference-counted types.
 + //
 ++// IceUtil::SimpleSharedUnsafeDestructor
 ++// =====================
 ++//
 ++// A non thread-safe base class for reference-counted types - destructor might throw.
 ++//
 + // IceUtil::Shared
 + // ===============
 + //
 +@@ -109,6 +114,57 @@ private:
 +     bool _noDelete;
 + };
 + 
 ++class ICE_UTIL_API SimpleSharedUnsafeDestructor
 ++{
 ++public:
 ++
 ++    SimpleSharedUnsafeDestructor();
 ++    SimpleSharedUnsafeDestructor(const SimpleSharedUnsafeDestructor&);
 ++
 ++    virtual ~SimpleSharedUnsafeDestructor() ICE_NOEXCEPT_FALSE
 ++    {
 ++    }
 ++
 ++    SimpleSharedUnsafeDestructor& operator=(const SimpleSharedUnsafeDestructor&)
 ++    {
 ++        return *this;
 ++    }
 ++
 ++    void __incRef()
 ++    {
 ++        assert(_ref >= 0);
 ++        ++_ref;
 ++    }
 ++
 ++    void __decRef()
 ++    {
 ++        assert(_ref > 0);
 ++        if(--_ref == 0)
 ++        {
 ++            if(!_noDelete)
 ++            {
 ++                _noDelete = true;
 ++                delete this;
 ++            }
 ++        }
 ++    }
 ++
 ++    int __getRef() const
 ++    {
 ++        return _ref;
 ++    }
 ++
 ++    void __setNoDelete(bool b)
 ++    {
 ++        _noDelete = b;
 ++    }
 ++
 ++private:
 ++
 ++    int _ref;
 ++    bool _noDelete;
 ++};
 ++
 + class ICE_UTIL_API Shared
 + {
 + public:
 
 Modified: head/devel/ice/files/patch-cpp-src-Freeze-MapDb.cpp
 ==============================================================================
 --- head/devel/ice/files/patch-cpp-src-Freeze-MapDb.cpp	Sun Sep 23 14:04:51 2012	(r304741)
 +++ head/devel/ice/files/patch-cpp-src-Freeze-MapDb.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -1,5 +1,19 @@
  --- cpp.orig/src/Freeze/MapDb.cpp	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/src/Freeze/MapDb.cpp	2012-03-04 20:14:52.000000000 +0100
 ++++ cpp/src/Freeze/MapDb.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -72,7 +72,13 @@ Freeze::MapDb::~MapDb()
 +         }
 +         catch(const ::DbException& dx)
 +         {
 ++#if defined(ICE_DESTRUCTORS_DONT_THROW_BY_DEFAULT)
 ++            Error out(_communicator->getLogger());
 ++            out << "DbException while closing database " << _dbName << ": "
 ++                << dx.what();
 ++#else
 +             throw DatabaseException(__FILE__, __LINE__, dx.what());
 ++#endif
 +         }
 +     }
 + }
  @@ -229,7 +229,11 @@
   #ifndef NDEBUG
                   bool inserted = 
 
 Added: head/devel/ice/files/patch-cpp-src-Freeze-MapI.h
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-Freeze-MapI.h	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,18 @@
 +--- cpp.orig/src/Freeze/MapI.h	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/Freeze/MapI.h	2012-09-10 11:43:58.000000000 +0200
 +@@ -63,12 +63,13 @@ public:
 +     void
 +     close();
 + 
 +-    class Tx : public IceUtil::SimpleShared
 ++    class Tx : public IceUtil::SimpleSharedUnsafeDestructor
 +     {
 +     public:
 + 
 +         Tx(const MapHelperI&);
 +-        ~Tx();
 ++        ~Tx() ICE_NOEXCEPT_FALSE;
 ++        ;
 + 
 +         void dead();
 + 
 
 Added: head/devel/ice/files/patch-cpp-src-Freeze-ObjectStore.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-Freeze-ObjectStore.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,11 @@
 +--- cpp.orig/src/Freeze/ObjectStore.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/Freeze/ObjectStore.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -189,7 +189,7 @@ Freeze::ObjectStoreBase::ObjectStoreBase(const string& facet, const string& face
 +     }
 + }
 + 
 +-Freeze::ObjectStoreBase::~ObjectStoreBase()
 ++Freeze::ObjectStoreBase::~ObjectStoreBase() ICE_NOEXCEPT_FALSE
 + {
 +     try
 +     {
 
 Added: head/devel/ice/files/patch-cpp-src-Freeze-ObjectStore.h
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-Freeze-ObjectStore.h	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,11 @@
 +--- cpp.orig/src/Freeze/ObjectStore.h	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/Freeze/ObjectStore.h	2012-09-10 11:43:58.000000000 +0200
 +@@ -36,7 +36,7 @@ public:
 +     ObjectStoreBase(const std::string&, const std::string&, bool, EvictorIBase*, 
 +                     const std::vector<IndexPtr>&, bool);
 + 
 +-    virtual ~ObjectStoreBase();
 ++    virtual ~ObjectStoreBase() ICE_NOEXCEPT_FALSE;
 + 
 +     const Ice::ObjectPtr& sampleServant() const;
 + 
 
 Added: head/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,11 @@
 +--- cpp.orig/src/Freeze/TransactionalEvictorContext.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/Freeze/TransactionalEvictorContext.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -273,7 +273,7 @@ Freeze::TransactionalEvictorContext::ServantHolder::ServantHolder() :
 + }
 + 
 + 
 +-Freeze::TransactionalEvictorContext::ServantHolder::~ServantHolder()
 ++Freeze::TransactionalEvictorContext::ServantHolder::~ServantHolder() ICE_NOEXCEPT_FALSE
 + {
 +     if(_ownBody && _body.ownServant)
 +     {
 
 Added: head/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.h
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.h	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,11 @@
 +--- cpp.orig/src/Freeze/TransactionalEvictorContext.h	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/Freeze/TransactionalEvictorContext.h	2012-09-10 11:43:58.000000000 +0200
 +@@ -34,7 +34,7 @@ public:
 +     public:
 +         
 +         ServantHolder();
 +-        ~ServantHolder();
 ++        ~ServantHolder() ICE_NOEXCEPT_FALSE;
 + 
 +         void init(const TransactionalEvictorContextPtr&, const Ice::Current&, ObjectStore<TransactionalEvictorElement>*);
 + 
 
 Added: head/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,11 @@
 +--- cpp.orig/src/Freeze/TransactionalEvictorI.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/Freeze/TransactionalEvictorI.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -346,7 +346,7 @@ Freeze::TransactionalEvictorI::dispatch(Request& request)
 +         {
 +         }
 +         
 +-        ~CtxHolder()
 ++        ~CtxHolder() ICE_NOEXCEPT_FALSE
 +         {
 +             if(_ownCtx)
 +             {
 
 Modified: head/devel/ice/files/patch-cpp-src-Ice-Network.cpp
 ==============================================================================
 --- head/devel/ice/files/patch-cpp-src-Ice-Network.cpp	Sun Sep 23 14:04:51 2012	(r304741)
 +++ head/devel/ice/files/patch-cpp-src-Ice-Network.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -1,5 +1,5 @@
  --- cpp.orig/src/Ice/Network.cpp	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/src/Ice/Network.cpp	2011-07-15 23:40:26.000000000 +0200
 ++++ cpp/src/Ice/Network.cpp	2012-09-10 11:43:58.000000000 +0200
  @@ -715,7 +715,11 @@
       WSASetLastError(error);
   #else
 @@ -13,3 +13,12 @@
       {
           SocketException ex(__FILE__, __LINE__);
           ex.error = getSocketErrno();
 +@@ -1098,7 +1098,7 @@ IceInternal::doBind(SOCKET fd, const struct sockaddr_storage& addr)
 +         size = 0; // Keep the compiler happy.
 +     }
 + 
 +-    if(bind(fd, reinterpret_cast<const struct sockaddr*>(&addr), size) == SOCKET_ERROR)
 ++    if(::bind(fd, reinterpret_cast<const struct sockaddr*>(&addr), size) == SOCKET_ERROR)
 +     {
 +         closeSocketNoThrow(fd);
 +         SocketException ex(__FILE__, __LINE__);
 
 Added: head/devel/ice/files/patch-cpp-src-IceGrid-FileCache.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-IceGrid-FileCache.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,20 @@
 +--- cpp.orig/src/IceGrid/FileCache.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/IceGrid/FileCache.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -195,15 +195,12 @@ FileCache::read(const string& file, Ice::Long offset, int size, Ice::Long& newOf
 + 
 +         totalSize += lineSize;
 +         lines.push_back(line);
 +-#if defined(_MSC_VER) && (_MSC_VER < 1300)
 +-        if(is.eof())
 ++        
 ++        if(is.eof() || is.fail())
 +         {
 +             newOffset += line.size();
 +         }
 +         else
 +-#else
 +-        if(!is.fail())
 +-#endif
 +         {
 +             newOffset = is.tellg();
 +         }
 
 Added: head/devel/ice/files/patch-cpp-src-IceStorm-Replica.h
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-IceStorm-Replica.h	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,15 @@
 +--- cpp.orig/src/IceStorm/Replica.h	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/IceStorm/Replica.h	2012-09-10 11:43:58.000000000 +0200
 +@@ -23,9 +23,9 @@ struct GroupNodeInfo
 +     GroupNodeInfo(int i, LogUpdate l, const Ice::ObjectPrx& o = Ice::ObjectPrx());
 +     bool operator<(const GroupNodeInfo& rhs) const;
 +     bool operator==(const GroupNodeInfo& rhs) const;
 +-    const int id;
 +-    const LogUpdate llu;
 +-    const Ice::ObjectPrx observer;
 ++    int id;
 ++    LogUpdate llu;
 ++    Ice::ObjectPrx observer;
 + };
 + 
 + class Replica : virtual public IceUtil::Shared
 
 Added: head/devel/ice/files/patch-cpp-src-IceStorm-TopicI.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-IceStorm-TopicI.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,74 @@
 +--- cpp.orig/src/IceStorm/TopicI.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/IceStorm/TopicI.cpp	2012-09-12 22:14:00.000000000 +0200
 +@@ -666,7 +666,7 @@ TopicImpl::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj)
 +         {
 +             try
 +             {
 +-                DatabaseConnectionPtr connection = _databaseCache->getConnection();
 ++                DatabaseConnectionPtr connection = _databaseCache->newConnection();
 +                 TransactionHolder txn(connection);
 + 
 +                 SubscriberRecordKey key;
 +@@ -703,7 +703,7 @@ TopicImpl::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj)
 +     {
 +         try
 +         {
 +-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
 ++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
 +             TransactionHolder txn(connection);
 + 
 +             SubscriberRecordKey key;
 +@@ -788,7 +788,7 @@ TopicImpl::subscribeAndGetPublisher(const QoS& qos, const Ice::ObjectPrx& obj)
 +     {
 +         try
 +         {
 +-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
 ++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
 +             TransactionHolder txn(connection);
 + 
 +             SubscriberRecordKey key;
 +@@ -912,7 +912,7 @@ TopicImpl::link(const TopicPrx& topic, Ice::Int cost)
 +     {
 +         try
 +         {
 +-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
 ++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
 +             TransactionHolder txn(connection);
 + 
 +             SubscriberRecordKey key;
 +@@ -1311,7 +1311,7 @@ TopicImpl::observerAddSubscriber(const LogUpdate& llu, const SubscriberRecord& r
 +     {
 +         try
 +         {
 +-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
 ++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
 +             TransactionHolder txn(connection);
 + 
 +             SubscriberRecordKey key;
 +@@ -1380,7 +1380,7 @@ TopicImpl::observerRemoveSubscriber(const LogUpdate& llu, const Ice::IdentitySeq
 +     {
 +         try
 +         {
 +-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
 ++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
 +             TransactionHolder txn(connection);
 + 
 +             for(Ice::IdentitySeq::const_iterator id = ids.begin(); id != ids.end(); ++id)
 +@@ -1456,7 +1456,7 @@ TopicImpl::destroyInternal(const LogUpdate& origLLU, bool master)
 +     {
 +         try
 +         {
 +-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
 ++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
 +             TransactionHolder txn(connection);
 + 
 +             // Erase all subscriber records and the topic record.
 +@@ -1531,7 +1531,7 @@ TopicImpl::removeSubscribers(const Ice::IdentitySeq& ids)
 +     {
 +         try
 +         {
 +-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
 ++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
 +             TransactionHolder txn(connection);
 + 
 +             for(Ice::IdentitySeq::const_iterator id = ids.begin(); id != ids.end(); ++id)
 
 Added: head/devel/ice/files/patch-cpp-src-IceStorm-TopicManagerI.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-IceStorm-TopicManagerI.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,47 @@
 +--- cpp.orig/src/IceStorm/TopicManagerI.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/IceStorm/TopicManagerI.cpp	2012-09-12 22:14:00.000000000 +0200
 +@@ -312,7 +312,7 @@ TopicManagerImpl::TopicManagerImpl(const InstancePtr& instance) :
 +             _sync = _instance->nodeAdapter()->addWithUUID(_syncImpl);
 +         }
 + 
 +-        DatabaseConnectionPtr connection = _databaseCache->getConnection();
 ++        DatabaseConnectionPtr connection = _databaseCache->newConnection();
 + 
 +         // Ensure that the llu counter is present in the log.
 +         LLUWrapperPtr lluWrapper = _databaseCache->getLLU(connection);
 +@@ -381,7 +381,7 @@ TopicManagerImpl::create(const string& name)
 +     {
 +         try
 +         {
 +-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
 ++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
 +             TransactionHolder txn(connection);
 + 
 +             SubscriberRecordKey key;
 +@@ -486,7 +486,7 @@ TopicManagerImpl::observerInit(const LogUpdate& llu, const TopicContentSeq& cont
 +     {
 +         try
 +         {
 +-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
 ++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
 +             TransactionHolder txn(connection);
 + 
 +             LLUWrapperPtr lluWrapper = _databaseCache->getLLU(connection);
 +@@ -590,7 +590,7 @@ TopicManagerImpl::observerCreateTopic(const LogUpdate& llu, const string& name)
 +     {
 +         try
 +         {
 +-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
 ++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
 +             TransactionHolder txn(connection);
 + 
 +             SubscriberRecordKey key;
 +@@ -776,7 +776,7 @@ TopicManagerImpl::initMaster(const set<GroupNodeInfo>& slaves, const LogUpdate&
 +         {
 +             content.clear();
 + 
 +-            DatabaseConnectionPtr connection = _databaseCache->getConnection();
 ++            DatabaseConnectionPtr connection = _databaseCache->newConnection();
 +             TransactionHolder txn(connection);
 + 
 +             for(map<string, TopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p)
 
 Added: head/devel/ice/files/patch-cpp-src-IceUtil-Shared.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-IceUtil-Shared.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,21 @@
 +--- cpp.orig/src/IceUtil/Shared.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/IceUtil/Shared.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -96,6 +96,18 @@ IceUtil::SimpleShared::SimpleShared(const SimpleShared&) :
 + {
 + }
 + 
 ++IceUtil::SimpleSharedUnsafeDestructor::SimpleSharedUnsafeDestructor() :
 ++    _ref(0),
 ++    _noDelete(false)
 ++{
 ++}
 ++
 ++IceUtil::SimpleSharedUnsafeDestructor::SimpleSharedUnsafeDestructor(const SimpleSharedUnsafeDestructor&) :
 ++    _ref(0),
 ++    _noDelete(false)
 ++{
 ++}
 ++
 + IceUtil::Shared::Shared() :
 +     _ref(0),
 +     _noDelete(false)
 
 Added: head/devel/ice/files/patch-cpp-src-slice2cpp-Main.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-slice2cpp-Main.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,46 @@
 +--- cpp.orig/src/slice2cpp/Main.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/slice2cpp/Main.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -22,7 +22,7 @@ using namespace Slice;
 + namespace
 + {
 + 
 +-IceUtil::Mutex* mutex = 0;
 ++IceUtil::Mutex* mtx = 0;
 + bool interrupted = false;
 + 
 + class Init
 +@@ -31,13 +31,13 @@ public:
 + 
 +     Init()
 +     {
 +-        mutex = new IceUtil::Mutex;
 ++        mtx = new IceUtil::Mutex;
 +     }
 + 
 +     ~Init()
 +     {
 +-        delete mutex;
 +-        mutex = 0;
 ++        delete mtx;
 ++        mtx = 0;
 +     }
 + };
 + 
 +@@ -48,7 +48,7 @@ Init init;
 + void
 + interruptedCallback(int signal)
 + {
 +-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +     interrupted = true;
 + }
 +@@ -294,7 +294,7 @@ compile(int argc, char* argv[])
 +         }
 + 
 +         {
 +-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +             if(interrupted)
 +             {
 
 Added: head/devel/ice/files/patch-cpp-src-slice2cs-Main.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-slice2cs-Main.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,46 @@
 +--- cpp.orig/src/slice2cs/Main.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/slice2cs/Main.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -22,7 +22,7 @@ using namespace Slice;
 + namespace
 + {
 + 
 +-IceUtil::Mutex* mutex = 0;
 ++IceUtil::Mutex* mtx = 0;
 + bool interrupted = false;
 + 
 + class Init
 +@@ -31,13 +31,13 @@ public:
 + 
 +     Init()
 +     {
 +-        mutex = new IceUtil::Mutex;
 ++        mtx = new IceUtil::Mutex;
 +     }
 + 
 +     ~Init()
 +     {
 +-        delete mutex;
 +-        mutex = 0;
 ++        delete mtx;
 ++        mtx = 0;
 +     }
 + };
 + 
 +@@ -48,7 +48,7 @@ Init init;
 + void
 + interruptedCallback(int signal)
 + {
 +-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +     interrupted = true;
 + }
 +@@ -303,7 +303,7 @@ compile(int argc, char* argv[])
 +         }
 + 
 +         {
 +-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +             if(interrupted)
 +             {
 
 Added: head/devel/ice/files/patch-cpp-src-slice2freeze-Main.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-slice2freeze-Main.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,55 @@
 +--- cpp.orig/src/slice2freeze/Main.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/slice2freeze/Main.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -28,7 +28,7 @@ using namespace Slice;
 + namespace
 + {
 + 
 +-IceUtil::Mutex* mutex = 0;
 ++IceUtil::Mutex* mtx = 0;
 + bool interrupted = false;
 + 
 + class Init
 +@@ -37,13 +37,13 @@ public:
 + 
 +     Init()
 +     {
 +-        mutex = new IceUtil::Mutex;
 ++        mtx = new IceUtil::Mutex;
 +     }
 + 
 +     ~Init()
 +     {
 +-        delete mutex;
 +-        mutex = 0;
 ++        delete mtx;
 ++        mtx = 0;
 +     }
 + };
 + 
 +@@ -56,7 +56,7 @@ string ICE_ENCODING_COMPARE = "Freeze::IceEncodingCompare";
 + void
 + interruptedCallback(int signal)
 + {
 +-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +     interrupted = true;
 + }
 +@@ -1995,7 +1995,7 @@ compile(int argc, char* argv[])
 +         }
 + 
 +         {
 +-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +             if(interrupted)
 +             {
 +@@ -2042,7 +2042,7 @@ compile(int argc, char* argv[])
 +     u->destroy();
 + 
 +     {
 +-        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +         if(interrupted)
 +         {
 
 Added: head/devel/ice/files/patch-cpp-src-slice2freezej-Main.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-slice2freezej-Main.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,55 @@
 +--- cpp.orig/src/slice2freezej/Main.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/slice2freezej/Main.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -26,7 +26,7 @@ using namespace IceUtilInternal;
 + namespace
 + {
 + 
 +-IceUtil::Mutex* mutex = 0;
 ++IceUtil::Mutex* mtx = 0;
 + bool interrupted = false;
 + 
 + class Init
 +@@ -35,13 +35,13 @@ public:
 + 
 +     Init()
 +     {
 +-        mutex = new IceUtil::Mutex;
 ++        mtx = new IceUtil::Mutex;
 +     }
 + 
 +     ~Init()
 +     {
 +-        delete mutex;
 +-        mutex = 0;
 ++        delete mtx;
 ++        mtx = 0;
 +     }
 + };
 + 
 +@@ -52,7 +52,7 @@ Init init;
 + void
 + interruptedCallback(int signal)
 + {
 +-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(mutex);
 ++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(mtx);
 + 
 +     interrupted = true;
 + }
 +@@ -1828,7 +1828,7 @@ compile(int argc, char* argv[])
 +         }
 + 
 +         {
 +-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +             if(interrupted)
 +             {
 +@@ -1923,7 +1923,7 @@ compile(int argc, char* argv[])
 +     u->destroy();
 + 
 +     {
 +-        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +         if(interrupted)
 +         {
 
 Added: head/devel/ice/files/patch-cpp-src-slice2html-Main.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-slice2html-Main.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,55 @@
 +--- cpp.orig/src/slice2html/Main.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/slice2html/Main.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -24,7 +24,7 @@ using namespace IceUtil;
 + namespace
 + {
 + 
 +-IceUtil::Mutex* mutex = 0;
 ++IceUtil::Mutex* mtx = 0;
 + bool interrupted = false;
 + 
 + class Init
 +@@ -33,13 +33,13 @@ public:
 + 
 +     Init()
 +     {
 +-        mutex = new IceUtil::Mutex;
 ++        mtx = new IceUtil::Mutex;
 +     }
 + 
 +     ~Init()
 +     {
 +-        delete mutex;
 +-        mutex = 0;
 ++        delete mtx;
 ++        mtx = 0;
 +     }
 + };
 + 
 +@@ -50,7 +50,7 @@ Init init;
 + void
 + interruptedCallback(int signal)
 + {
 +-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +     interrupted = true;
 + }
 +@@ -254,7 +254,7 @@ compile(int argc, char* argv[])
 +         }
 + 
 +         {
 +-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +             if(interrupted)
 +             {
 +@@ -296,7 +296,7 @@ compile(int argc, char* argv[])
 +     p->destroy();
 + 
 +     {
 +-        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +         if(interrupted)
 +         {
 
 Added: head/devel/ice/files/patch-cpp-src-slice2java-Main.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-slice2java-Main.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,46 @@
 +--- cpp.orig/src/slice2java/Main.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/slice2java/Main.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -23,7 +23,7 @@ using namespace Slice;
 + namespace
 + {
 + 
 +-IceUtil::Mutex* mutex = 0;
 ++IceUtil::Mutex* mtx = 0;
 + bool interrupted = false;
 + 
 + class Init
 +@@ -32,13 +32,13 @@ public:
 + 
 +     Init()
 +     {
 +-        mutex = new IceUtil::Mutex;
 ++        mtx = new IceUtil::Mutex;
 +     }
 + 
 +     ~Init()
 +     {
 +-        delete mutex;
 +-        mutex = 0;
 ++        delete mtx;
 ++        mtx = 0;
 +     }
 + };
 + 
 +@@ -49,7 +49,7 @@ Init init;
 + void
 + interruptedCallback(int signal)
 + {
 +-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +     interrupted = true;
 + }
 +@@ -356,7 +356,7 @@ compile(int argc, char* argv[])
 +         }
 + 
 +         {
 +-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +             if(interrupted)
 +             {
 
 Added: head/devel/ice/files/patch-cpp-src-slice2php-Main.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-slice2php-Main.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,46 @@
 +--- cpp.orig/src/slice2php/Main.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/slice2php/Main.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -1488,7 +1488,7 @@ printHeader(IceUtilInternal::Output& out)
 + namespace
 + {
 + 
 +-IceUtil::Mutex* mutex = 0;
 ++IceUtil::Mutex* mtx = 0;
 + bool interrupted = false;
 + 
 + class Init
 +@@ -1497,13 +1497,13 @@ public:
 + 
 +     Init()
 +     {
 +-        mutex = new IceUtil::Mutex;
 ++        mtx = new IceUtil::Mutex;
 +     }
 + 
 +     ~Init()
 +     {
 +-        delete mutex;
 +-        mutex = 0;
 ++        delete mtx;
 ++        mtx = 0;
 +     }
 + };
 + 
 +@@ -1514,7 +1514,7 @@ Init init;
 + static void
 + interruptedCallback(int signal)
 + {
 +-    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +     interrupted = true;
 + }
 +@@ -1777,7 +1777,7 @@ compile(int argc, char* argv[])
 +         }
 + 
 +         {
 +-            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 ++            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 + 
 +             if(interrupted)
 +             {
 
 Added: head/devel/ice/files/patch-cpp-src-slice2py-Main.cpp
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/devel/ice/files/patch-cpp-src-slice2py-Main.cpp	Sun Sep 23 14:45:33 2012	(r304742)
 @@ -0,0 +1,46 @@
 +--- cpp.orig/src/slice2py/Main.cpp	2011-06-15 21:43:58.000000000 +0200
 ++++ cpp/src/slice2py/Main.cpp	2012-09-10 11:43:58.000000000 +0200
 +@@ -40,7 +40,7 @@ using namespace Slice::Python;
 + namespace
 + {
 + 
 +-IceUtil::Mutex* mutex = 0;
 ++IceUtil::Mutex* mtx = 0;
 + bool interrupted = false;
 + 
 + class Init
 +@@ -49,13 +49,13 @@ public:
 + 
 +     Init()
 
 *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
 _______________________________________________
 svn-ports-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-ports-all
 To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
 
>Unformatted:
