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: