Bug 316428 (MONO69289) - [PPC] Thunk problem with delegates
Summary: [PPC] Thunk problem with delegates
Status: RESOLVED FIXED
Alias: MONO69289
Product: Mono: Runtime
Classification: Mono
Component: misc (show other bugs)
Version: 1.1
Hardware: Other Other
: P3 - Medium : Major
Target Milestone: ---
Assignee: Paolo Molaro
QA Contact: Mono Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-11-09 23:17 UTC by Geoff Norton
Modified: 2007-09-15 21:24 UTC (History)
0 users

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Wiest 2007-09-15 18:58:29 UTC


---- Reported by grompf@sublimeintervention.com 2004-11-09 16:17:06 MST ----

Currently you cannot run monodoc (or other gtk-sharp applications) on CVS
HEAD on Linux PPC.

It is failing in handle_thunk after mono_delegate_to_ftnptr.

. . . . . ENTER: (wrapper managed-to-native)
SignalConnector:glade_xml_signal_autoconnect_full
(intptr,Glade.XML/SignalConnector/RawXMLConnectFunc,intptr)() ip: 0x30dc8458
. . . . . . ENTER: (wrapper managed-to-native)
System.Object:__icall_wrapper_mono_delegate_to_ftnptr (object)() ip: 0x30dc875c
thunk failed for 0x308a88b0 from 0x10578dd2

** ERROR **: file mini-ppc.c: line 2164 (handle_thunk): assertion failed:
(pdata.found == 1)
aborting...
Killed



Machine Info:
iBook G4 933
Ubuntu (Warty Warthog all latest updates applied)

-kangaroo



---- Additional Comments From miguel@ximian.com 2004-11-11 12:14:05 MST ----

Assigning to Paolo.



---- Additional Comments From grompf@sublimeintervention.com 2004-11-18 18:03:38 MST ----

I retested this on SVN today and got some more information;

Some delegate marshalling will work (ie; mono gnome-hello-world.exe
will launch; but crash with the same thunking error on exit);

The place the failure is happening is:

search_thunk_slot:
if (!((is_call_imm (thunks) && is_call_imm (endthunks)) ||
(is_call_imm (difflow) && is_call_imm (diffhigh)))) {

for the crashing delegates its always falling into here; the reason is
difflow and diffhigh are obscenely large values (pdata->code is the
culprit)

I checked the ip getting set in the mono_add_patch_info and the
culprit isn't there; so it must be the guint8* code in
mono_arch_patch_code getting set incorrectly??

-kangaroo




---- Additional Comments From grompf@sublimeintervention.com 2004-12-11 18:37:11 MST ----

As a further update; 

I wiped ubuntu-ppc and tried fc3-ppc thinking it might be a ubuntu /
my installation problem.

This problem exists on fc3-ppc as well (mono-1.1.3/gtk# 1.0.4 and gtk#
HEAD)

-kangaroo




---- Additional Comments From grompf@sublimeintervention.com 2004-12-11 18:57:51 MST ----

For the sake of completeness; I tested this on 1.0.x; and it works
fine so this is just a bug on the 1.1.x branch

-kjac




---- Additional Comments From lupus@ximian.com 2005-02-01 06:48:39 MST ----

Fixed in svn.


Unknown operating system unknown. Setting to default OS "Other".