[Mono-bugs] [Bug 82463][Wis] New - Embedding mono on OS X, solving name collisions with Carbon.framework

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Fri Aug 17 02:01:38 EDT 2007


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by csomor at advancedconcepts.ch.

http://bugzilla.ximian.com/show_bug.cgi?id=82463

--- shadow/82463	2007-08-17 02:01:37.000000000 -0400
+++ shadow/82463.tmp.10569	2007-08-17 02:01:37.000000000 -0400
@@ -0,0 +1,57 @@
+Bug#: 82463
+Product: Mono: Runtime
+Version: 1.0
+OS: other
+OS Details: OS X Intel 10.4.10
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Wishlist
+Component: io-layer
+AssignedTo: dick at ximian.com                            
+ReportedBy: csomor at advancedconcepts.ch               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Embedding mono on OS X, solving name collisions with Carbon.framework
+
+Description of Problem:
+
+if mono is embedded on OS X into an application that already has the 
+Carbon framework loaded, we run into two name collisions. This eg was 
+also referred to by
+http://lists.ximian.com/pipermail/mono-list/2006-October/032929.html
+
+Actual Results:
+
+initing the runtime fails on an assert on mono_thread_attach because the Carbon 
+GetCurrentThread methods  get executed instead of the mono one, and since 
+Carbon_GetCurrentThread returns noErr (=0) it triggers the assert assuming it got a NULL thread. 
+If you rename that one you later block on a CreateEvent call, which again calles the wrong library.
+
+Expected Results:
+
+
+
+How often does this happen? 
+
+Always
+
+Additional Information:
+
+Suggested solution : My suggestion is to extend the already existing renaming 
+(http://bugzilla.ximian.com/show_bug.cgi?id=77324) in configure.in from
+
+    *-*-darwin*)
+..
+        CPPFLAGS="$CPPFLAGS -DGetCurrentProcess=MonoGetCurrentProcess"
+to
+        CPPFLAGS="$CPPFLAGS -DGetCurrentProcess=MonoGetCurrentProcess 
+-DGetCurrentThread=MonoGetCurrentThread -DCreateEvent=MonoCreateEvent"
+
+this at least solved problems for me
+
+Best Regards,
+
+Stefan


More information about the mono-bugs mailing list