BIND 10 master, updated. bb22c63e7bf7544d5a765140cc29b87fd1e2410c [master] workaround for OSX clang problem

BIND 10 source code commits bind10-changes at lists.isc.org
Fri Jun 17 17:27:43 UTC 2011


The branch, master has been updated
       via  bb22c63e7bf7544d5a765140cc29b87fd1e2410c (commit)
      from  2f0a32d552d19ac9224dda91975fb128487714a6 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit bb22c63e7bf7544d5a765140cc29b87fd1e2410c
Author: Jelte Jansen <jelte at isc.org>
Date:   Fri Jun 17 19:27:17 2011 +0200

    [master] workaround for OSX clang problem
    
    reviewed on jabber

-----------------------------------------------------------------------

Summary of changes:
 src/lib/python/isc/log/log.cc |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/lib/python/isc/log/log.cc b/src/lib/python/isc/log/log.cc
index 68cf213..682ee2a 100644
--- a/src/lib/python/isc/log/log.cc
+++ b/src/lib/python/isc/log/log.cc
@@ -29,6 +29,20 @@ using namespace isc::log;
 using std::string;
 using boost::bind;
 
+// We encountered a strange problem with Clang (clang version 2.8
+// (tags/RELEASE_28 115909)) on OSX, where unwinding the stack
+// segfaults the moment this exception was thrown and caught.
+//
+// Placing it in a named namespace instead of the original
+// unnamed namespace appears to solve this, so as a temporary
+// workaround, we create a local randomly named namespace here
+// to solve this issue.
+namespace clang_unnamed_namespace_workaround {
+    // To propagate python exceptions trough our code
+    class InternalError {};
+}
+using namespace clang_unnamed_namespace_workaround;
+
 namespace {
 
 // This is for testing only. The real module will have it always set as
@@ -361,9 +375,6 @@ Logger_isDebugEnabled(LoggerWrapper* self, PyObject* args) {
     }
 }
 
-// To propagate python exceptions trough our code
-class InternalError {};
-
 string
 objectToStr(PyObject* object, bool convert) {
     PyObject* cleanup(NULL);




More information about the bind10-changes mailing list