[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#680864: marked as done (unblock: zeroc-ice/3.4.2-8.1)



Your message dated Sun, 08 Jul 2012 21:52:34 +0100
with message-id <6f18af3cec689df858b8ee8c3e3678d3@mail.adsl.funky-badger.org>
and subject line Re: Bug#680864: unblock: zeroc-ice/3.4.2-8.1
has caused the Debian Bug report #680864,
regarding unblock: zeroc-ice/3.4.2-8.1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
680864: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680864
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package zeroc-ice

This is a minimal fix reverting the API/ABI breakage introduced in -8,
(which accidentally slipped into testing when reopening #672066 didn't
really block that from happening as intended).

A sourceful upload of mumble has also been made (fixing other bugs in it)
that is now rebuilt with this zeroc-ice version - and I believe that's
the only thing that actually did need to be rebuilt to remedy this now.
The only other -ice dep reported by dak uses the python binding and won't
need further action to fix it.

 Cheers,
 Ron


unblock zeroc-ice/3.4.2-8.1


 changelog                    |   14 
 control                      |    2 
 patches/force_gcc_46.patch   |   22 
 patches/ice_for_gcc4.7.patch | 1367 -------------------------------------------
 patches/series               |    2 
 5 files changed, 38 insertions(+), 1369 deletions(-)


diff -Nru zeroc-ice-3.4.2/debian/changelog zeroc-ice-3.4.2/debian/changelog
--- zeroc-ice-3.4.2/debian/changelog	2012-05-20 03:09:27.000000000 +0930
+++ zeroc-ice-3.4.2/debian/changelog	2012-07-08 04:35:22.000000000 +0930
@@ -1,3 +1,17 @@
+zeroc-ice (3.4.2-8.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Revert the patch 'fixing' the FTBFS with gcc-4.7 that breaks ABI, and
+    add force_gcc_4.6.patch.  We need to do this all in the upstream makefile
+    because it has a silly check for the intel icpc compiler that we need to
+    patch around or the build will fail with anything but c++ as the compiler,
+    and we can't just override CXX in /rules because the wonderful 3.0 (quilt)
+    system will revert that patch before the clean target is run ensuring that
+    hilarious fail is guaranteed.
+    Closes: #672066
+
+ -- Michael Ziegler <diese-addy@funzt-halt.net>  Sat, 07 Jul 2012 15:24:30 +0200
+
 zeroc-ice (3.4.2-8) unstable; urgency=low
 
   * Bug fix: "FTBFS: Handle.h:66:13: error: upCast was not
diff -Nru zeroc-ice-3.4.2/debian/control zeroc-ice-3.4.2/debian/control
--- zeroc-ice-3.4.2/debian/control	2012-05-20 03:05:15.000000000 +0930
+++ zeroc-ice-3.4.2/debian/control	2012-07-08 04:35:22.000000000 +0930
@@ -7,7 +7,7 @@
  patchutils (>= 0.2.25), libdb++-dev, libmcpp-dev (>=
  2.7.1), libreadline-gplv2-dev, libexpat1-dev, libssl-dev, libbz2-dev,
  zlib1g-dev | libz-dev, python-all-dev (>= 2.3.5-11), python-support
- (>= 0.3), php5-dev, ruby1.8-dev, ruby1.8, libqt4-dev
+ (>= 0.3), php5-dev, ruby1.8-dev, ruby1.8, libqt4-dev, g++-4.6
 Build-Depends-Indep: cli-common-dev (>= 0.4.4),
  mono-devel | c-sharp-2.0-compiler, libmono2.0-cil, pkg-config,
  default-jdk | java-gcj-compat, proguard (>= 4.1),
diff -Nru zeroc-ice-3.4.2/debian/patches/force_gcc_46.patch zeroc-ice-3.4.2/debian/patches/force_gcc_46.patch
--- zeroc-ice-3.4.2/debian/patches/force_gcc_46.patch	1970-01-01 09:30:00.000000000 +0930
+++ zeroc-ice-3.4.2/debian/patches/force_gcc_46.patch	2012-07-08 04:35:22.000000000 +0930
@@ -0,0 +1,22 @@
+Description: Force compile using GCC 4.6.
+ Force the use of g++-4.6 when building Ice, because it FTBFS when using 4.7
+ and the previous patch to 'fix' that breaks ABI.
+
+Bug-Debian: http://bugs.debian.org/672066
+Forwarded: not-needed
+Last-Update: <2012-07-07>
+
+--- a/cpp/config/Make.rules.Linux
++++ b/cpp/config/Make.rules.Linux
+@@ -31,7 +31,10 @@ ifeq ($(CXX),g++)
+    CXX			= c++
+ endif
+ 
++export CC  = gcc-4.6
++export CXX = g++-4.6
++
+-ifeq ($(CXX),c++)
++ifneq ($(CXX),icpc)
+ 
+     ifneq ($(SUSE_i586),)
+         CXXARCHFLAGS	+= -march=i586
diff -Nru zeroc-ice-3.4.2/debian/patches/ice_for_gcc4.7.patch zeroc-ice-3.4.2/debian/patches/ice_for_gcc4.7.patch
--- zeroc-ice-3.4.2/debian/patches/ice_for_gcc4.7.patch	2012-05-20 01:16:39.000000000 +0930
+++ zeroc-ice-3.4.2/debian/patches/ice_for_gcc4.7.patch	1970-01-01 09:30:00.000000000 +0930
@@ -1,1367 +0,0 @@
---- a/cpp/allTests.py
-+++ b/cpp/allTests.py
-@@ -25,6 +25,7 @@
- # List of all basic tests.
- #
- tests = [ 
-+
-     ("IceUtil/condvar", ["once", "win32only"]),
-     ("IceUtil/thread",  ["once"]),
-     ("IceUtil/unicode", ["once"]),
-@@ -62,7 +63,7 @@
-     ("Ice/servantLocator", ["core"]),
-     ("Ice/interceptor", ["core"]),
-     ("Ice/stringConverter", ["core"]),
--    ("Ice/udp", ["core"]),
-+    ("Ice/udp", ["core", "nofreebsdjail"]),
-     ("Ice/defaultServant", ["core"]),
-     ("Ice/defaultValue", ["core"]),
-     ("Ice/invoke", ["core", "novc6"]),
-@@ -106,8 +107,8 @@
- #
- if TestUtil.isWin32() or os.getuid() == 0:
-     tests += [
--        ("IceUtil/priority", ["core", "nodarwin"]),
--        ("Ice/threadPoolPriority", ["core", "nodarwin"])
-+        ("IceUtil/priority", ["core", "nodarwin", "nofreebsd"]),
-+        ("Ice/threadPoolPriority", ["core", "nodarwin", "nofreebsd"])
-         ]
- 
- if __name__ == "__main__":
---- a/cpp/include/Freeze/Map.h
-+++ b/cpp/include/Freeze/Map.h
-@@ -426,7 +426,7 @@
- 
-     ConstIterator(MapHelper& mapHelper, const Ice::CommunicatorPtr& communicator) :
-         _helper(IteratorHelper::create(mapHelper, true)), 
--        _communicator(_communicator),
-+        _communicator(communicator),
-         _refValid(false)
-     {
-     }
---- a/cpp/include/Ice/Buffer.h
-+++ b/cpp/include/Ice/Buffer.h
-@@ -10,6 +10,7 @@
- #ifndef ICEE_BUFFER_H
- #define ICEE_BUFFER_H
- 
-+#include <cstddef>
- #include <Ice/Config.h>
- 
- namespace IceInternal
---- a/cpp/include/Ice/ConnectionIF.h
-+++ b/cpp/include/Ice/ConnectionIF.h
-@@ -17,13 +17,13 @@
- {
- 
- class ConnectionI;
-+ICE_API Ice::LocalObject* upCast(Ice::ConnectionI*);
- 
- }
- 
- namespace IceInternal
- {
- 
--ICE_API Ice::LocalObject* upCast(Ice::ConnectionI*);
- 
- enum AsyncStatus
- {
---- a/cpp/include/Ice/IconvStringConverter.h
-+++ b/cpp/include/Ice/IconvStringConverter.h
-@@ -225,10 +225,16 @@
- template<typename charT> /*static*/ void
- IconvStringConverter<charT>::close(std::pair<iconv_t, iconv_t> cdp)
- {
--    int rs = iconv_close(cdp.first);
-+#ifndef NDEBUG
-+    int rs = 
-+#endif
-+    iconv_close(cdp.first);
-     assert(rs == 0);
- 
--    rs = iconv_close(cdp.second);
-+#ifndef NDEBUG
-+    rs = 
-+#endif
-+    iconv_close(cdp.second);
-     assert(rs == 0);
- }
-  
---- a/cpp/include/Ice/IncomingAsyncF.h
-+++ b/cpp/include/Ice/IncomingAsyncF.h
-@@ -28,12 +28,6 @@
- 
- class AMD_Object_ice_invoke;
- class AMD_Array_Object_ice_invoke;
--
--}
--
--namespace IceInternal
--{
--
- ICE_API IceUtil::Shared* upCast(::Ice::AMD_Object_ice_invoke*);
- ICE_API IceUtil::Shared* upCast(::Ice::AMD_Array_Object_ice_invoke*);
- 
---- a/cpp/include/Ice/LocalObjectF.h
-+++ b/cpp/include/Ice/LocalObjectF.h
-@@ -18,12 +18,6 @@
- {
- 
- class LocalObject;
--
--}
--
--namespace IceInternal
--{
--
- ICE_API IceUtil::Shared* upCast(::Ice::LocalObject*);
- 
- }
---- a/cpp/include/Ice/ObjectF.h
-+++ b/cpp/include/Ice/ObjectF.h
-@@ -17,19 +17,8 @@
- {
- 
- class Object;
--
--}
--
--namespace IceInternal
--{
--
- ICE_API IceUtil::Shared* upCast(::Ice::Object*);
- 
--}
--
--namespace Ice
--{
--
- typedef IceInternal::Handle< Object > ObjectPtr;
- 
- void ICE_API __patch__ObjectPtr(void*, ObjectPtr&);
---- a/cpp/include/Ice/OutgoingAsyncF.h
-+++ b/cpp/include/Ice/OutgoingAsyncF.h
-@@ -19,13 +19,13 @@
- 
- class AsyncResult;
- typedef IceInternal::Handle<AsyncResult> AsyncResultPtr;
-+ICE_API IceUtil::Shared* upCast(::Ice::AsyncResult*);
- 
- }
- 
- namespace IceInternal
- {
- 
--ICE_API IceUtil::Shared* upCast(::Ice::AsyncResult*);
- 
- class OutgoingAsync;
- ICE_API IceUtil::Shared* upCast(OutgoingAsync*);
---- a/cpp/include/Ice/Proxy.h
-+++ b/cpp/include/Ice/Proxy.h
-@@ -38,6 +38,8 @@
- 
- class Locator;
- class Router;
-+ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Locator*);
-+ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Router*);
- 
- }
- 
-@@ -46,8 +48,6 @@
- namespace IceInternal
- {
- 
--ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Locator*);
--ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Router*);
- 
- class LocalExceptionWrapper;
- 
-@@ -1172,7 +1172,7 @@
- 
-     TwowayCallbackNC(const TPtr& instance, bool cb, Exception excb, Sent sentcb) : CallbackNC<T>(instance, excb, sentcb)
-     {
--        checkCallback(instance, cb || excb != 0);
-+        this->checkCallback(instance, cb || excb != 0);
-     }
- };
- 
-@@ -1188,7 +1188,7 @@
- 
-     TwowayCallback(const TPtr& instance, bool cb, Exception excb, Sent sentcb) : Callback<T, CT>(instance, excb, sentcb)
-     {
--        checkCallback(instance, cb || excb != 0);
-+        this->checkCallback(instance, cb || excb != 0);
-     }
- };
- 
-@@ -1209,7 +1209,7 @@
-     OnewayCallbackNC(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : 
-         CallbackNC<T>(instance, excb, sentcb), response(cb)
-     {
--        checkCallback(instance, cb != 0 || excb != 0);
-+        this->checkCallback(instance, cb != 0 || excb != 0);
-     }
- 
-     virtual void __completed(const ::Ice::AsyncResultPtr& result) const
-@@ -1254,7 +1254,7 @@
-     OnewayCallback(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : 
-         Callback<T, CT>(instance, excb, sentcb),  response(cb)
-     {
--        checkCallback(instance, cb != 0 || excb != 0);
-+        this->checkCallback(instance, cb != 0 || excb != 0);
-     }
- 
-     virtual void __completed(const ::Ice::AsyncResultPtr& result) const
---- a/cpp/include/Ice/ProxyF.h
-+++ b/cpp/include/Ice/ProxyF.h
-@@ -22,6 +22,11 @@
- {
- 
- class Object;
-+inline ::IceProxy::Ice::Object* 
-+upCast(::IceProxy::Ice::Object* o)
-+{
-+    return o;
-+}
- 
- }
- 
-@@ -34,6 +39,11 @@
- {
- 
- class Object;
-+inline ::IceDelegate::Ice::Object*
-+upCast(::IceDelegate::Ice::Object* o)
-+{
-+    return o;
-+}
- 
- }
- 
-@@ -47,6 +57,12 @@
- 
- class Object;
- 
-+inline ::IceDelegateM::Ice::Object*
-+upCast(::IceDelegateM::Ice::Object* o)
-+{
-+    return o;
-+}
-+
- }
- 
- }
-@@ -58,36 +74,12 @@
- {
- 
- class Object;
--
--}
--
--}
--
--namespace IceInternal
--{
--
--inline ::IceProxy::Ice::Object* 
--upCast(::IceProxy::Ice::Object* o)
--{
--    return o;
--}
--
--inline ::IceDelegate::Ice::Object*
--upCast(::IceDelegate::Ice::Object* o)
--{
--    return o;
--}
--
- inline ::IceDelegateD::Ice::Object*
- upCast(::IceDelegateD::Ice::Object* o)
- {
-     return o;
- }
- 
--inline ::IceDelegateM::Ice::Object*
--upCast(::IceDelegateM::Ice::Object* o)
--{
--    return o;
- }
- 
- }
---- a/cpp/include/Ice/Stream.h
-+++ b/cpp/include/Ice/Stream.h
-@@ -17,6 +17,12 @@
- #include <Ice/Proxy.h>
- #include <IceUtil/Shared.h>
- 
-+namespace IceInternal
-+{
-+    // Forward declaration required for writer specializations.
-+    void delegateThrowMarshalException(const char*, int, const ::std::string&);
-+}
-+
- namespace Ice
- {
-     
-@@ -45,9 +51,6 @@
-     StreamTraitTypeUnknown
- };
- 
--// Forward declaration required for writer specializations.
--class MarshalException;
--
- //
- // Base trait template. This doesn't actually do anything -- we just
- // use it as a template that we can specialize.
-@@ -542,7 +545,7 @@
-     {
-         if(static_cast<int>(v) < 0 || static_cast<int>(v) >= StreamTrait<T>::enumLimit)
-         {
--            throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
-+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
-         }
-         outS->write(static_cast<Byte>(v));
-     }
-@@ -558,7 +561,7 @@
-         inS->read(val);
-         if(val > StreamTrait<T>::enumLimit)
-         {
--            throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
-+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
-         }
-         v = static_cast<T>(val);
-     }
-@@ -573,7 +576,7 @@
-     {
-         if(static_cast<int>(v) < 0 || static_cast<int>(v) >= StreamTrait<T>::enumLimit)
-         {
--            throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
-+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
-         }
-         outS->write(static_cast<Short>(v));
-     }
-@@ -589,7 +592,7 @@
-         inS->read(val);
-         if(val < 0 || val > StreamTrait<T>::enumLimit)
-         {
--            throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
-+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
-         }
-         v = static_cast<T>(val);
-     }
-@@ -603,7 +606,7 @@
-     {
-         if(static_cast<int>(v) < 0 || static_cast<int>(v) >= StreamTrait<T>::enumLimit)
-         {
--            throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
-+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
-         }
-         outS->write(static_cast<Int>(v));
-     }
-@@ -619,7 +622,7 @@
-         inS->read(val);
-         if(val < 0 || val > StreamTrait<T>::enumLimit)
-         {
--            throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
-+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
-         }
-         v = static_cast<T>(val);
-     }
---- a/cpp/include/Ice/StreamF.h
-+++ b/cpp/include/Ice/StreamF.h
-@@ -19,12 +19,6 @@
- 
- class InputStream;
- class OutputStream;
--
--}
--
--namespace IceInternal
--{
--
- ICE_API IceUtil::Shared* upCast(::Ice::InputStream*);
- ICE_API IceUtil::Shared* upCast(::Ice::OutputStream*);
- 
---- a/cpp/include/IceUtil/Mutex.h
-+++ b/cpp/include/IceUtil/Mutex.h
-@@ -251,8 +251,11 @@
- inline
- Mutex::~Mutex()
- {
-+#ifndef NDEBUG
-     int rc = 0;
--    rc = pthread_mutex_destroy(&_mutex);
-+    rc = 
-+#endif    
-+    pthread_mutex_destroy(&_mutex);
-     assert(rc == 0);
- }
- 
---- a/cpp/src/Freeze/MapDb.cpp
-+++ b/cpp/src/Freeze/MapDb.cpp
-@@ -229,7 +229,11 @@
- #ifndef NDEBUG
-                 bool inserted = 
- #endif
--                    _indices.insert(IndexMap::value_type(indexBase->name(), indexI.get())).second;
-+                    _indices.insert(IndexMap::value_type(indexBase->name(), indexI.get()))
-+#ifndef NDEBUG                    
-+                    .second
-+#endif
-+                ;
-                 assert(inserted);
-                 
-                 indexBase->_impl = indexI.release();
---- a/cpp/src/Freeze/MapI.cpp
-+++ b/cpp/src/Freeze/MapI.cpp
-@@ -749,8 +749,11 @@
- 
-     try
-     {
-+#ifndef NDEBUG
-         int err;
--        err = _dbc->put(&dbKey, &dbValue, DB_CURRENT);
-+        err = 
-+#endif
-+        _dbc->put(&dbKey, &dbValue, DB_CURRENT);
-         assert(err == 0);
-     }
-     catch(const ::DbDeadlockException& dx)
-@@ -1023,7 +1026,11 @@
- #ifndef NDEBUG
-         bool inserted =
- #endif 
--            _indices.insert(IndexMap::value_type(indexBase->name(), indexBase)).second;
-+            _indices.insert(IndexMap::value_type(indexBase->name(), indexBase))
-+#ifndef NDEBUG
-+            .second
-+#endif
-+            ;
-         assert(inserted);
-         indexBase->_map = this;
-     }
-@@ -1360,8 +1367,11 @@
-         try
-         {
-             u_int32_t count;
-+#ifndef NDEBUG
-             int err;
--            err = _db->truncate(txn, &count, txn != 0 ? 0 : DB_AUTO_COMMIT);
-+            err = 
-+#endif            
-+            _db->truncate(txn, &count, txn != 0 ? 0 : DB_AUTO_COMMIT);
-             assert(err == 0);
-             break;
-         }
---- a/cpp/src/Freeze/SharedDbEnv.cpp
-+++ b/cpp/src/Freeze/SharedDbEnv.cpp
-@@ -336,8 +336,11 @@
-         // Remove from map
-         //
-      
-+#ifndef NDEBUG
-         size_t one;
--        one = sharedDbEnvMap->erase(key);
-+        one = 
-+#endif
-+        sharedDbEnvMap->erase(key);
-         assert(one == 1);
- 
-         if(sharedDbEnvMap->size() == 0)
---- a/cpp/src/Ice/ConnectionI.cpp
-+++ b/cpp/src/Ice/ConnectionI.cpp
-@@ -31,7 +31,7 @@
- using namespace Ice;
- using namespace IceInternal;
- 
--Ice::LocalObject* IceInternal::upCast(ConnectionI* p) { return p; }
-+Ice::LocalObject* Ice::upCast(ConnectionI* p) { return p; }
- 
- namespace
- {
-@@ -600,6 +600,7 @@
-     }
-     catch(const LocalException& ex)
-     {
-+        status = IceInternal::AsyncStatusQueued; // this is only to apeace the compiler
-         setState(StateClosed, ex);
-         assert(_exception.get());
-         _exception->ice_throw();
-@@ -971,6 +972,7 @@
-     }
-     catch(const Ice::LocalException& ex)
-     {
-+        status = IceInternal::AsyncStatusQueued; // this is only to apeace the compiler
-         setState(StateClosed, ex);
-         assert(_exception.get());
-         _exception->ice_throw();
---- a/cpp/src/Ice/IncomingAsync.cpp
-+++ b/cpp/src/Ice/IncomingAsync.cpp
-@@ -24,7 +24,7 @@
- using namespace IceInternal;
- 
- IceUtil::Shared* IceInternal::upCast(IncomingAsync* p) { return p; }
--IceUtil::Shared* IceInternal::upCast(AMD_Object_ice_invoke* p) { return p; }
-+IceUtil::Shared* Ice::upCast(AMD_Object_ice_invoke* p) { return p; }
- 
- namespace
- {
---- a/cpp/src/Ice/LocalObject.cpp
-+++ b/cpp/src/Ice/LocalObject.cpp
-@@ -13,7 +13,7 @@
- using namespace Ice;
- using namespace IceInternal;
- 
--IceUtil::Shared* IceInternal::upCast(LocalObject* obj) { return obj; }
-+IceUtil::Shared* Ice::upCast(LocalObject* obj) { return obj; }
- 
- bool
- Ice::LocalObject::operator==(const LocalObject& r) const
---- a/cpp/src/Ice/Object.cpp
-+++ b/cpp/src/Ice/Object.cpp
-@@ -19,7 +19,7 @@
- using namespace Ice;
- using namespace IceInternal;
- 
--IceUtil::Shared* IceInternal::upCast(Object* p) { return p; }
-+IceUtil::Shared* Ice::upCast(Object* p) { return p; }
- 
- bool
- Ice::Object::operator==(const Object& r) const
---- a/cpp/src/Ice/OutgoingAsync.cpp
-+++ b/cpp/src/Ice/OutgoingAsync.cpp
-@@ -30,7 +30,7 @@
- using namespace Ice;
- using namespace IceInternal;
- 
--IceUtil::Shared* IceInternal::upCast(AsyncResult* p) { return p; }
-+IceUtil::Shared* Ice::upCast(AsyncResult* p) { return p; }
- 
- IceUtil::Shared* IceInternal::upCast(OutgoingAsyncMessageCallback* p) { return p; }
- IceUtil::Shared* IceInternal::upCast(OutgoingAsync* p) { return p; }
---- a/cpp/src/Ice/ProxyFactory.cpp
-+++ b/cpp/src/Ice/ProxyFactory.cpp
-@@ -229,6 +229,7 @@
-     } 
-     else if(cnt > static_cast<int>(_retryIntervals.size()))
-     {
-+        interval = 0; // apeace compiler
-         if(traceLevels->retry >= 1)
-         {
-             Trace out(logger, traceLevels->retryCat);
---- a/cpp/src/Ice/Service.cpp
-+++ b/cpp/src/Ice/Service.cpp
-@@ -2136,17 +2136,26 @@
-             //
-             // Associate stdin, stdout and stderr with /dev/null.
-             //
-+#ifndef NDEBUG
-             int fd;
--            fd = open("/dev/null", O_RDWR);
-+            fd = 
-+#endif
-+            open("/dev/null", O_RDWR);
-             assert(fd == 0);
-             if(stdOut.empty())
-             {
--                fd = dup2(0, 1);
-+#ifndef NDEBUG
-+                fd = 
-+#endif
-+                dup2(0, 1);
-                 assert(fd == 1);
-             }
-             if(stdErr.empty())
-             {
--                fd = dup2(1, 2);
-+#ifndef NDEBUG
-+                fd = 
-+#endif
-+                dup2(1, 2);
-                 assert(fd == 2);
-             }
-         }
---- a/cpp/src/Ice/Stream.cpp
-+++ b/cpp/src/Ice/Stream.cpp
-@@ -8,10 +8,19 @@
- // **********************************************************************
- 
- #include <Ice/Stream.h>
-+#include <Ice/LocalException.h>
- 
- using namespace std;
- using namespace Ice;
- using namespace IceInternal;
- 
--IceUtil::Shared* IceInternal::upCast(InputStream* p) { return p; }
--IceUtil::Shared* IceInternal::upCast(OutputStream* p) { return p; }
-+IceUtil::Shared* Ice::upCast(InputStream* p) { return p; }
-+IceUtil::Shared* Ice::upCast(OutputStream* p) { return p; }
-+
-+namespace IceInternal
-+{
-+  void delegateThrowMarshalException(const char* file, int line , const ::std::string& message)
-+  {
-+    throw Ice::MarshalException(file, line, message);
-+  }
-+}
---- a/cpp/src/IceGrid/AdminCallbackRouter.cpp
-+++ b/cpp/src/IceGrid/AdminCallbackRouter.cpp
-@@ -49,7 +49,12 @@
- #ifndef NDEBUG
-     bool inserted =
- #endif
--        _categoryToConnection.insert(map<string, ConnectionPtr>::value_type(category, con)).second;
-+        _categoryToConnection.insert(map<string, ConnectionPtr>::value_type(category, con))
-+#ifndef NDEBUG
-+        .second
-+#endif
-+        ;
-+
-     
-     assert(inserted == true);
- }
---- a/cpp/src/IceGrid/DescriptorHelper.cpp
-+++ b/cpp/src/IceGrid/DescriptorHelper.cpp
-@@ -198,15 +198,6 @@
-     return result;
- }
- 
--template<typename Dict> Dict
--getDictUpdatedElts(const Dict& ldict, const Dict& rdict)
--{
--#if defined(_MSC_VER) && (_MSC_VER < 1300)
--    return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<Dict::mapped_type>());
--#else
--    return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<typename Dict::mapped_type>());
--#endif
--}
- 
- template<typename EqFunc, typename Dict> Dict
- getDictUpdatedEltsWithEq(const Dict& ldict, const Dict& rdict, EqFunc eq)
-@@ -223,6 +214,16 @@
-     return result;
- }
- 
-+template<typename Dict> Dict
-+getDictUpdatedElts(const Dict& ldict, const Dict& rdict)
-+{
-+#if defined(_MSC_VER) && (_MSC_VER < 1300)
-+    return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<Dict::mapped_type>());
-+#else
-+    return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<typename Dict::mapped_type>());
-+#endif
-+}
-+
- template <typename Dict> Ice::StringSeq
- getDictRemovedElts(const Dict& ldict, const Dict& rdict)
- {
---- a/cpp/src/IceGrid/ReplicaCache.cpp
-+++ b/cpp/src/IceGrid/ReplicaCache.cpp
-@@ -40,7 +40,7 @@
-     Lock sync(*this);
-     
-     ReplicaEntryPtr entry;
--    while(entry = getImpl(name))
-+    while((entry = getImpl(name)))
-     {
-         ReplicaSessionIPtr session = entry->getSession();
-         if(session->isDestroyed())
---- a/cpp/src/IceGrid/SessionI.h
-+++ b/cpp/src/IceGrid/SessionI.h
-@@ -35,7 +35,7 @@
- class SessionI;
- typedef IceUtil::Handle<SessionI> SessionIPtr;
- 
--class BaseSessionI : virtual Ice::Object, public IceUtil::Mutex
-+class BaseSessionI : virtual public Ice::Object, public IceUtil::Mutex
- {
- public:
- 
---- a/cpp/src/IceSSL/Instance.cpp
-+++ b/cpp/src/IceSSL/Instance.cpp
-@@ -38,7 +38,7 @@
- using namespace Ice;
- using namespace IceSSL;
- 
--IceUtil::Shared* IceInternal::upCast(IceSSL::Instance* p) { return p; }
-+IceUtil::Shared* IceSSL::upCast(IceSSL::Instance* p) { return p; }
- 
- namespace
- {
---- a/cpp/src/IceSSL/InstanceF.h
-+++ b/cpp/src/IceSSL/InstanceF.h
-@@ -18,13 +18,13 @@
- {
- 
- class Instance;
-+IceUtil::Shared* upCast(IceSSL::Instance*);
- 
- }
- 
- namespace IceInternal
- {
- 
--IceUtil::Shared* upCast(IceSSL::Instance*);
- 
- }
- 
---- a/cpp/src/IceSSL/TrustManager.cpp
-+++ b/cpp/src/IceSSL/TrustManager.cpp
-@@ -20,7 +20,7 @@
- using namespace std;
- using namespace IceSSL;
- 
--IceUtil::Shared* IceInternal::upCast(IceSSL::TrustManager* p) { return p; }
-+IceUtil::Shared* IceSSL::upCast(IceSSL::TrustManager* p) { return p; }
- 
- TrustManager::TrustManager(const Ice::CommunicatorPtr& communicator) :
-     _communicator(communicator)
---- a/cpp/src/IceSSL/TrustManagerF.h
-+++ b/cpp/src/IceSSL/TrustManagerF.h
-@@ -18,13 +18,13 @@
- {
- 
- class TrustManager;
-+IceUtil::Shared* upCast(IceSSL::TrustManager*);
- 
- }
- 
- namespace IceInternal
- {
- 
--IceUtil::Shared* upCast(IceSSL::TrustManager*);
- 
- }
- 
---- a/cpp/src/IceSSL/Util.cpp
-+++ b/cpp/src/IceSSL/Util.cpp
-@@ -175,7 +175,7 @@
-     return dh;
- }
- 
--IceUtil::Shared* IceInternal::upCast(IceSSL::DHParams* p) { return p; }
-+IceUtil::Shared* IceSSL::upCast(IceSSL::DHParams* p) { return p; }
- 
- IceSSL::DHParams::DHParams() :
-     _dh512(0), _dh1024(0), _dh2048(0), _dh4096(0)
---- a/cpp/src/IceSSL/UtilF.h
-+++ b/cpp/src/IceSSL/UtilF.h
-@@ -21,13 +21,13 @@
- {
- 
- class DHParams;
-+IceUtil::Shared* upCast(IceSSL::DHParams*);
- 
- }
- 
- namespace IceInternal
- {
- 
--IceUtil::Shared* upCast(IceSSL::DHParams*);
- 
- }
- 
---- a/cpp/src/IceStorm/NodeI.cpp
-+++ b/cpp/src/IceStorm/NodeI.cpp
-@@ -18,11 +18,6 @@
- namespace
- {
- 
--bool operator==(const GroupNodeInfo& info, int id)
--{
--    return info.id == id;
--}
--
- class CheckTask : public IceUtil::TimerTask
- {
-     const NodeIPtr _node;
---- a/cpp/src/IceUtil/Cond.cpp
-+++ b/cpp/src/IceUtil/Cond.cpp
-@@ -330,8 +330,11 @@
- 
- IceUtil::Cond::~Cond()
- {
-+#ifndef NDEBUG
-     int rc = 0;
--    rc = pthread_cond_destroy(&_cond);
-+    rc = 
-+#endif
-+    pthread_cond_destroy(&_cond);
-     assert(rc == 0);
- }
- 
---- a/cpp/src/IceUtil/CountDownLatch.cpp
-+++ b/cpp/src/IceUtil/CountDownLatch.cpp
-@@ -44,10 +44,16 @@
- #ifdef _WIN32
-     CloseHandle(_event);
- #else
-+#ifndef NDEBUG
-     int rc = 0;
--    rc = pthread_mutex_destroy(&_mutex);
-+    rc = 
-+#endif
-+    pthread_mutex_destroy(&_mutex);
-     assert(rc == 0);
--    rc = pthread_cond_destroy(&_cond);
-+#ifndef NDEBUG
-+    rc = 
-+#endif
-+    pthread_cond_destroy(&_cond);
-     assert(rc == 0);
- #endif
- }
---- a/cpp/src/IceUtil/CtrlCHandler.cpp
-+++ b/cpp/src/IceUtil/CtrlCHandler.cpp
-@@ -219,18 +219,27 @@
-         sigaddset(&ctrlCLikeSignals, SIGHUP);
-         sigaddset(&ctrlCLikeSignals, SIGINT);
-         sigaddset(&ctrlCLikeSignals, SIGTERM);
--        int rc = pthread_sigmask(SIG_BLOCK, &ctrlCLikeSignals, 0);
-+#ifndef NDEBUG
-+        int rc = 
-+#endif        
-+        pthread_sigmask(SIG_BLOCK, &ctrlCLikeSignals, 0);
-         assert(rc == 0);
- 
-         // Joinable thread
--        rc = pthread_create(&_tid, 0, sigwaitThread, 0);
-+#ifndef NDEBUG
-+        rc = 
-+#endif
-+        pthread_create(&_tid, 0, sigwaitThread, 0);
-         assert(rc == 0);
-     }
- }
- 
- CtrlCHandler::~CtrlCHandler()
- {
--    int rc = pthread_cancel(_tid);
-+#ifndef NDEBUG
-+    int rc = 
-+#endif
-+    pthread_cancel(_tid);
-     assert(rc == 0);
- #if defined(__APPLE__)
-     //
-@@ -241,7 +250,10 @@
-     //assert(rc == 0); For some reaosns, this assert is sometime triggered
- #endif
-     void* status = 0;
--    rc = pthread_join(_tid, &status);
-+#ifndef NDEBUG
-+    rc = 
-+#endif
-+    pthread_join(_tid, &status);
-     assert(rc == 0);
- #if !defined(__APPLE__)
-     assert(status == PTHREAD_CANCELED);
---- a/cpp/src/IceUtil/FileUtil.cpp
-+++ b/cpp/src/IceUtil/FileUtil.cpp
-@@ -16,6 +16,8 @@
- 
- #ifdef _WIN32
- #  include <process.h>
-+#else
-+#  include <unistd.h>
- #endif
- 
- #ifdef _WIN32
-@@ -198,7 +200,7 @@
-         throw IceUtil::FileLockException(__FILE__, __LINE__, GetLastError(), _path);
-     }
-     //
--    // In Windows implementation we don't write the process pid to the file, as is 
-+    // In Windows implementation we don't write the process pid to the file, as is
-     // not posible to read the file from other process while it is locked here.
-     //
- }
-@@ -237,7 +239,7 @@
-     {
-         flags |= _O_WRONLY | _O_CREAT;
-     }
--    else 
-+    else
-     {
-         flags |= _O_RDWR;
-         if(mode & ios_base::trunc)
-@@ -466,10 +468,10 @@
-     lock.l_whence = SEEK_SET; // Begining of file
-     lock.l_start = 0;
-     lock.l_len = 0;
--    
-+
-     //
--    // F_SETLK tells fcntl to not block if it cannot 
--    // acquire the lock, if the lock cannot be acquired 
-+    // F_SETLK tells fcntl to not block if it cannot
-+    // acquire the lock, if the lock cannot be acquired
-     // it returns -1 without wait.
-     //
-     if(::fcntl(_fd, F_SETLK, &lock) == -1)
-@@ -483,14 +485,14 @@
-     // If there is an error after here, we close the fd,
-     // to release the lock.
-     //
--    
-+
-     //
-     // Now that we have acquire an excluxive write lock,
-     // write the process pid there.
-     //
-     ostringstream os;
-     os << getpid();
--    
-+
-     if(write(_fd, os.str().c_str(), os.str().size()) == -1)
-     {
-         IceUtil::FileLockException ex(__FILE__, __LINE__, errno, _path);
---- a/cpp/src/IceUtil/RecMutex.cpp
-+++ b/cpp/src/IceUtil/RecMutex.cpp
-@@ -148,8 +148,11 @@
- IceUtil::RecMutex::~RecMutex()
- {
-     assert(_count == 0);
-+#ifndef NDEBUG
-     int rc = 0;
--    rc = pthread_mutex_destroy(&_mutex);
-+    rc = 
-+#endif
-+    pthread_mutex_destroy(&_mutex);
-     assert(rc == 0);
- }
- 
-@@ -196,8 +199,11 @@
- {
-     if(--_count == 0)
-     {
-+#ifndef NDEBUG
-         int rc = 0; // Prevent warnings when NDEBUG is defined.
--        rc = pthread_mutex_unlock(&_mutex);
-+        rc = 
-+#endif
-+        pthread_mutex_unlock(&_mutex);
-         assert(rc == 0);
-     }
- }
---- a/cpp/src/Slice/CPlusPlusUtil.cpp
-+++ b/cpp/src/Slice/CPlusPlusUtil.cpp
-@@ -631,7 +631,7 @@
-         string scope = fixKwd(cl->scope());
-         if(marshal)
-         {
--            out << nl << stream << deref << "write(::Ice::ObjectPtr(::IceInternal::upCast(" << fixedParam 
-+            out << nl << stream << deref << "write(::Ice::ObjectPtr(" << scope << "upCast(" << fixedParam 
-                 << ".get())));";
-         }
-         else
-@@ -649,7 +649,7 @@
-         string scope = fixKwd(px->_class()->scope());
-         if(marshal)
-         {
--            out << nl << stream << deref << "write(::Ice::ObjectPrx(::IceInternal::upCast(" << fixedParam 
-+            out << nl << stream << deref << "write(::Ice::ObjectPrx(::IceProxy" << scope << "upCast(" << fixedParam 
-                 << ".get())));";
-         }
-         else
---- a/cpp/src/Slice/FileTracker.cpp
-+++ b/cpp/src/Slice/FileTracker.cpp
-@@ -15,6 +15,8 @@
- 
- #ifdef _WIN32
- #   include <direct.h>
-+#else
-+#   include <unistd.h>
- #endif
- 
- using namespace std;
---- a/cpp/src/slice2cpp/Gen.cpp
-+++ b/cpp/src/slice2cpp/Gen.cpp
-@@ -1944,8 +1944,10 @@
-     }
- 
-     string name = fixKwd(p->name());
-+    string scoped = fixKwd(p->scoped());
- 
-     H << sp << nl << "class " << name << ';';
-+    H << nl << _dllExport << "::IceProxy::Ice::Object* upCast(::IceProxy" << scoped << "*);";
- }
- 
- Slice::Gen::ProxyVisitor::ProxyVisitor(Output& h, Output& c, const string& dllExport) :
-@@ -3691,10 +3693,22 @@
- Slice::Gen::ObjectDeclVisitor::visitClassDecl(const ClassDeclPtr& p)
- {
-     string name = fixKwd(p->name());
-+    string scoped = fixKwd(p->scoped());
- 
-     H << sp << nl << "class " << name << ';';
-     H << nl << "bool operator==(const " << name << "&, const " << name << "&);";
-     H << nl << "bool operator<(const " << name << "&, const " << name << "&);";
-+
-+    H << sp;
-+
-+    if(!p->isLocal())
-+    {
-+        H << nl << _dllExport << "::Ice::Object* upCast(" << scoped << "*);";
-+    }
-+    else
-+    {
-+        H << nl << _dllExport << "::Ice::LocalObject* upCast(" << scoped << "*);";
-+    }
- }
- 
- void
-@@ -4922,13 +4936,13 @@
- {
-     if((BuiltinPtr::dynamicCast(p) && BuiltinPtr::dynamicCast(p)->kind() == Builtin::KindObject)
-        || ClassDeclPtr::dynamicCast(p))
--    {
--        C << nl << "if(" << prefix << name << ')';
-+    {        C << nl << "if(" << prefix << name << ')';
-         C << sb;
-         ClassDeclPtr decl = ClassDeclPtr::dynamicCast(p);
-         if(decl)
-         {
--            C << nl << "::IceInternal::upCast(" << prefix << name << ".get())->__addObject(_c);";
-+            string scope = fixKwd(decl->scope());
-+            C << nl << scope << "upCast(" << prefix << name << ".get())->__addObject(_c);";
-         }
-         else
-         {
-@@ -4991,9 +5005,10 @@
-         ClassDeclPtr decl = ClassDeclPtr::dynamicCast(p);
-         if(decl)
-         {
--            C << nl << "if(" << "::IceInternal::upCast(" << prefix << name << ".get())->__usesClasses())";
-+            string scope = fixKwd(decl->scope());
-+            C << nl << "if(" << scope << "upCast(" << prefix << name << ".get())->__usesClasses())";
-             C << sb;
--            C << nl << "::IceInternal::upCast(" << prefix << name << ".get())->__decRefUnsafe();";
-+            C << nl << scope << "upCast(" << prefix << name << ".get())->__decRefUnsafe();";
-             C << nl << prefix << name << ".__clearHandleUnsafe();";
- 
-         }
-@@ -5629,40 +5644,30 @@
- {
-     string scoped = fixKwd(p->scoped());
- 
--    H << sp;
--
--    if(!p->isLocal())
--    {
--        H << nl << _dllExport << "::Ice::Object* upCast(" << scoped << "*);";
--        H << nl << _dllExport << "::IceProxy::Ice::Object* upCast(::IceProxy" << scoped << "*);";
--    }
--    else
--    {
--        H << nl << _dllExport << "::Ice::LocalObject* upCast(" << scoped << "*);";
--    }
- }
- 
- bool
- Slice::Gen::IceInternalVisitor::visitClassDefStart(const ClassDefPtr& p)
- {
-     string scoped = fixKwd(p->scoped());
-+    string scope = fixKwd(p->scope());
- 
-     C << sp;
-     if(!p->isLocal())
-     {
-         C << nl
- 	  << (_dllExport.empty() ? "" : "ICE_DECLSPEC_EXPORT ")
--	  << "::Ice::Object* IceInternal::upCast(" << scoped << "* p) { return p; }";
-+	  << "::Ice::Object* " << scope << "upCast(" << scoped << "* p) { return p; }";
-         C << nl
- 	  << (_dllExport.empty() ? "" : "ICE_DECLSPEC_EXPORT ")
--	  << "::IceProxy::Ice::Object* IceInternal::upCast(::IceProxy" << scoped
-+	  << "::IceProxy::Ice::Object* IceProxy" << scope << "upCast(::IceProxy" << scoped
-           << "* p) { return p; }";
-     }
-     else
-     {
-         C << nl
- 	  << (_dllExport.empty() ? "" : "ICE_DECLSPEC_EXPORT ")
--	  << "::Ice::LocalObject* IceInternal::upCast(" << scoped << "* p) { return p; }";
-+	  << "::Ice::LocalObject* " << scope << "upCast(" << scoped << "* p) { return p; }";
-     }
- 
-     return true;
---- a/cpp/src/slice2cs/Gen.cpp
-+++ b/cpp/src/slice2cs/Gen.cpp
-@@ -1281,7 +1281,7 @@
-         {
-             _out << value << "F";
-         }
--        else if(ep = EnumPtr::dynamicCast(type))
-+        else if((ep = EnumPtr::dynamicCast(type)))
-         {
-             string enumName = fixId(ep->scoped());
-             string::size_type colon = value.rfind(':');
-@@ -3914,16 +3914,6 @@
-     ClassDefPtr cl = ClassDefPtr::dynamicCast(p->container());
-     string name = fixId(p->name(), DotNet::ICloneable, true);
-     vector<string> params = getParams(p);
--    bool hasOutParams = false;
--    ParamDeclList paramList = p->parameters();
--    for(ParamDeclList::const_iterator pli = paramList.begin(); pli != paramList.end(); ++pli)
--    {
--        if((*pli)->isOutParam())
--        {
--            hasOutParams = true;
--            break;
--        }
--    }
- 
-     _out << sp;
- 
---- a/cpp/src/slice2java/Gen.cpp
-+++ b/cpp/src/slice2java/Gen.cpp
-@@ -1246,7 +1246,7 @@
-     {
-         BuiltinPtr bp;
-         EnumPtr ep;
--        if(bp = BuiltinPtr::dynamicCast(type))
-+        if((bp = BuiltinPtr::dynamicCast(type)))
-         {
-             switch(bp->kind())
-             {
-@@ -1349,7 +1349,7 @@
-             }
- 
-         }
--        else if(ep = EnumPtr::dynamicCast(type))
-+        else if((ep = EnumPtr::dynamicCast(type)))
-         {
-             string val = value;
-             string::size_type pos = val.rfind(':');
---- a/cpp/test/Glacier2/ssl/Server.cpp
-+++ b/cpp/test/Glacier2/ssl/Server.cpp
-@@ -31,9 +31,15 @@
-         test(ctx["_con.type"] == "ssl");
-         test(ctx["_con.localPort"] == "12348");
-     }
--    test(ctx["_con.localAddress"] == "127.0.0.1");
-+    if (!inFreeBSDJail())
-+    {
-+        test(ctx["_con.localAddress"] == "127.0.0.1");
-+    }
-     test(ctx["_con.remotePort"] != "");
--    test(ctx["_con.remoteAddress"] == "127.0.0.1");
-+    if (!inFreeBSDJail())
-+    {
-+        test(ctx["_con.remoteAddress"] == "127.0.0.1");
-+    }
- }
- 
- }
-@@ -99,7 +105,7 @@
-     }
- 
-     virtual void
--    ice_ping(const Ice::Current& current)
-+    ice_ping(const Ice::Current& current) const
-     {
-         testContext(_ssl, current.ctx);
-     }
-@@ -133,8 +139,11 @@
-     {
-         testContext(true, current.ctx);
- 
--        test(info.remoteHost == "127.0.0.1");
--        test(info.localHost == "127.0.0.1");
-+        if (!inFreeBSDJail())
-+        {
-+            test(info.remoteHost == "127.0.0.1");
-+            test(info.localHost == "127.0.0.1");
-+        }
-         test(info.localPort == 12348);
- 
-         try
---- a/cpp/test/Ice/background/EndpointI.h
-+++ b/cpp/test/Ice/background/EndpointI.h
-@@ -48,7 +48,7 @@
- 
-     virtual Ice::Int hashInit() const;
- #if !defined(_MSC_VER) || _MSC_VER > 1300
--    using IceInternal::EndpointI::connectors;
-+    using ::IceInternal::EndpointI::connectors;
- #endif
-     
- private:
---- a/cpp/test/Ice/custom/AllTests.cpp
-+++ b/cpp/test/Ice/custom/AllTests.cpp
-@@ -1384,7 +1384,8 @@
-                        const ::Test::ClassStructSeq& seq,
-                        const InParamPtr& cookie)
-     {
--        pair< ::Test::ClassStructPtr, ::Test::ClassStructSeq> in = getIn(in, cookie);
-+        pair< ::Test::ClassStructPtr, ::Test::ClassStructSeq> in;
-+        in = getIn(in, cookie);
-         test(ret == in.first);
-         test(cs1 == in.first);
-         test(seq == in.second);
-@@ -1432,7 +1433,8 @@
- 
-     void throwExcept1(const Ice::AsyncResultPtr& result)
-     {
--        wstring in = getIn(in, InParamPtr::dynamicCast(result->getCookie()));
-+        wstring in;
-+        in = getIn(in, InParamPtr::dynamicCast(result->getCookie()));
-         try
-         {
-             Test1::WstringClassPrx t = Test1::WstringClassPrx::uncheckedCast(result->getProxy());
-@@ -1451,7 +1453,8 @@
- 
-     void throwExcept2(const Ice::AsyncResultPtr& result)
-     {
--        wstring in = getIn(in, InParamPtr::dynamicCast(result->getCookie()));
-+        wstring in;
-+        in = getIn(in, InParamPtr::dynamicCast(result->getCookie()));
-         try
-         {
-             Test2::WstringClassPrx t = Test2::WstringClassPrx::uncheckedCast(result->getProxy());
---- a/cpp/test/Ice/info/AllTests.cpp
-+++ b/cpp/test/Ice/info/AllTests.cpp
-@@ -141,9 +141,11 @@
-         test(info->adapterName.empty());
-         test(info->localPort > 0);
-         test(info->remotePort == 12010);
--        test(info->remoteAddress == defaultHost);
--        test(info->localAddress == defaultHost);
--
-+        if (!inFreeBSDJail())
-+        {
-+            test(info->remoteAddress == defaultHost);
-+            test(info->localAddress == defaultHost);
-+        }
-         ostringstream os;
- 
-         Ice::Context ctx = testIntf->getConnectionInfoAsContext();
-@@ -163,8 +165,11 @@
-         test(info->adapterName.empty());
-         test(info->localPort > 0);
-         test(info->remotePort == 12010);
--        test(info->remoteAddress ==defaultHost);
--        test(info->localAddress == defaultHost);
-+        if (!inFreeBSDJail())
-+        {
-+            test(info->remoteAddress == defaultHost);
-+            test(info->localAddress == defaultHost);
-+        }
-     }
-     cout << "ok" << endl;
- 
---- a/cpp/test/Ice/properties/run.py
-+++ b/cpp/test/Ice/properties/run.py
-@@ -26,7 +26,7 @@
- #
- # Write config
- #
--configPath = u"./config/中国_client.config"
-+configPath = u"./config/中国_client.config".encode("utf-8")
- 
- TestUtil.createConfig(configPath, 
-                       ["# Automatically generated by Ice test driver.", 
---- a/cpp/test/IceUtil/unicode/Client.cpp
-+++ b/cpp/test/IceUtil/unicode/Client.cpp
-@@ -15,6 +15,10 @@
- #   include <io.h>
- #endif
- 
-+#ifdef __FreeBSD__
-+#   include <unistd.h>
-+#endif
-+
- using namespace IceUtil;
- using namespace std;
- 
---- a/cpp/test/Slice/keyword/Client.cpp
-+++ b/cpp/test/Slice/keyword/Client.cpp
-@@ -73,6 +73,9 @@
-     virtual void ice_response(Ice::Int)  {}
-     virtual void ice_exception(const ::Ice::Exception&) {}
- };
-+
-+template<typename T>
-+void unused(T const &) { }
-    
- //
- // This section of the test is present to ensure that the C++ types
-@@ -86,6 +89,7 @@
- 
-     _cpp_and::_cpp_auto b;
-     b._cpp_default = 0;
-+    unused(b);
- 
-     _cpp_and::deletePtr c = new _cpp_and::_cpp_delete();
-     c->_cpp_else = "";
---- a/cpp/test/include/TestCommon.h
-+++ b/cpp/test/include/TestCommon.h
-@@ -17,6 +17,22 @@
- #include <stdlib.h>
- #endif
- 
-+#if defined(__FreeBSD__)
-+#  include <sys/types.h>
-+#  include <sys/sysctl.h>
-+inline bool inFreeBSDJail()
-+{
-+    int jailed;
-+    size_t size = sizeof(jailed);
-+    return (sysctlbyname("security.jail.jailed", &jailed, &size, NULL, 0) != -1 || jailed);
-+}
-+#else
-+inline bool inFreeBSDJail()
-+{
-+    return false;
-+}
-+#endif
-+
- void
- inline testFailed(const char* expr, const char* file, unsigned int line)
- {
---- a/scripts/TestUtil.py
-+++ b/scripts/TestUtil.py
-@@ -74,6 +74,25 @@
- def isLinux():
-     return sys.platform.startswith("linux")
- 
-+def isFreeBSD():
-+    return sys.platform.startswith("freebsd")
-+
-+def sysctl(key):
-+    p = subprocess.Popen("sysctl "+key, shell=1, stdout=subprocess.PIPE)
-+    try:
-+        result = p.communicate()[0].strip().split()[1]
-+    except IndexError:
-+        return 0    
-+    if sys.version_info >= (3,):
-+        result = str(result, sys.stdout.encoding)
-+    try:
-+        return int(result)
-+    except ValueError:
-+        return result
-+
-+def isFreeBSDJail():
-+    return isFreeBSD() and sysctl("security.jail.jailed")
-+
- def getCppCompiler():
-     compiler = ""
-     if os.environ.get("CPP_COMPILER", "") != "":
-@@ -1590,7 +1609,15 @@
-             if isDarwin() and "nodarwin" in config:
-                 print "%s*** test not supported under Darwin%s" % (prefix, suffix)
-                 continue
-+
-+            if isFreeBSD() and "nofreebsd" in config:
-+                print "%s*** test not supported under FreeBSD%s" % (prefix, suffix)
-+                continue
-             
-+            if isFreeBSDJail() and "nofreebsdjail" in config:
-+                print "%s*** test not supported within a FreeBSD Jail%s" % (prefix, suffix)
-+                continue
-+
-             if not isWin32() and "win32only" in config:
-                 print "%s*** test only supported under Win32%s" % (prefix, suffix)
-                 continue
diff -Nru zeroc-ice-3.4.2/debian/patches/series zeroc-ice-3.4.2/debian/patches/series
--- zeroc-ice-3.4.2/debian/patches/series	2012-05-19 22:25:54.000000000 +0930
+++ zeroc-ice-3.4.2/debian/patches/series	2012-07-08 04:35:22.000000000 +0930
@@ -13,4 +13,4 @@
 ptrdiff_t-gcc-4.6.patch
 cpp-make-rules.path
 php5.4-transition.patch
-ice_for_gcc4.7.patch
+force_gcc_46.patch



--- End Message ---
--- Begin Message ---
On 08.07.2012 20:25, Ron wrote:
Please unblock package zeroc-ice

This is a minimal fix reverting the API/ABI breakage introduced in -8, (which accidentally slipped into testing when reopening #672066 didn't
really block that from happening as intended).

Unblocked; thanks.

Regards,

Adam


--- End Message ---

Reply to: