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

Bug#680864: unblock: zeroc-ice/3.4.2-8.1



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




Reply to: