[omniORB] omniORB 4.0.7 on gcc/Win32

Andrew Miller ak.miller at auckland.ac.nz
Mon Jan 23 10:32:42 GMT 2006


omniORB 4.0.7 doesn't compile properly on MingW because it depends on eh.h,
which is not present on MingW(and the symbols aren't in the MingW library).

The following patch should make it compile(but will prevent
abortOnNativeException from working on MingW).

--- src/lib/omniORB/orbcore/omniInternal.cc.old 2006-01-23 10:24:02.849250000 +1
300
+++ src/lib/omniORB/orbcore/omniInternal.cc     2006-01-23 10:24:22.802375000 +1
300
@@ -244,7 +244,11 @@
 #include <omniORB4/objTracker.h>
 #include <corbaOrb.h>

-#ifdef __WIN32__
+#if defined(__WIN32__) && !defined(__GNUC__)
+#define WIN32_EXCEPTION_HANDLING
+#endif
+
+#ifdef WIN32_EXCEPTION_HANDLING
 #  include <eh.h>
 #endif

@@ -1533,7 +1537,7 @@
 static abortOnNativeExceptionHandler abortOnNativeExceptionHandler_;


-#ifdef __WIN32__
+#ifdef WIN32_EXCEPTION_HANDLING
 extern "C" void omniORB_rethrow_exception(unsigned, EXCEPTION_POINTERS*)
 {
   throw;
@@ -1587,7 +1591,7 @@
     objectTable = new omniObjTableEntry* [objectTableSize];
     for( CORBA::ULong i = 0; i < objectTableSize; i++ )  objectTable[i] = 0;

-#ifdef __WIN32__
+#ifdef WIN32_EXCEPTION_HANDLING
     if (abortOnNativeException) {
       omniInterceptors* interceptors = omniORB::getInterceptors();
       interceptors->createThread.add(abortOnNativeExceptionInterceptor);


----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.



More information about the omniORB-list mailing list