Thread overview
Uhh... Me No Understand
Jan 15, 2005
John Demme
Jan 15, 2005
David Friedman
Jan 15, 2005
John Demme
Jan 17, 2005
David Friedman
Re: Uhh... Me No Understand (Mango)
January 15, 2005
I'm trying to compile Mango on OS X, and getting some error messages, I flat out
don't understand... can anyone help me out?
Thanks, John

gcc -o mytest mytest.o -L. -L/usr/local/gcc-3.4/lib -ldl -lphobos -lmango
ld: /usr/lib/gcc/darwin/3.3/libgcc.a(unwind-dw2.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR
ld: /usr/lib/gcc/darwin/3.3/libgcc.a(unwind-dw2.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR
ld: /usr/lib/gcc/darwin/3.3/libgcc.a(unwind-dw2.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR
ld: /usr/lib/gcc/darwin/3.3/libgcc.a(unwind-dw2.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR
ld: /usr/lib/gcc/darwin/3.3/libgcc.a(unwind-dw2.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR
ld: /usr/lib/gcc/darwin/3.3/libgcc.a(unwind-dw2.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR
ld: /usr/lib/gcc/darwin/3.3/libgcc.a(unwind-dw2.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR
ld: /usr/lib/gcc/darwin/3.3/libgcc.a(_divdi3.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR
ld: /usr/local/gcc-3.4/lib/libphobos.a(d_os_dep.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR
ld: /usr/local/gcc-3.4/lib/libphobos.a(d_init.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR
ld: /usr/lib/gcc/darwin/3.3/libgcc.a(unwind-dw2.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR
ld: /usr/lib/gcc/darwin/3.3/libgcc.a(unwind-dw2.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR
ld: /usr/lib/gcc/darwin/3.3/libgcc.a(_udivdi3.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR
ld: /usr/lib/gcc/darwin/3.3/libgcc.a(_umoddi3.o) section's (__TEXT,__eh_frame)
type S_COALESCED does not match previous objects type S_REGULAR


January 15, 2005
John Demme wrote:
> I'm trying to compile Mango on OS X, and getting some error messages, I flat out
> don't understand... can anyone help me out?
> Thanks, John
> 
> gcc -o mytest mytest.o -L. -L/usr/local/gcc-3.4/lib -ldl -lphobos -lmango
> ld: /usr/lib/gcc/darwin/3.3/libgcc.a(unwind-dw2.o) section's (__TEXT,__eh_frame)
> type S_COALESCED does not match previous objects type S_REGULAR
<snip>

Make sure the "gcc" you use to link is the one that was built with gdc.    When you do this, you can also drop the -L/usr/local/gcc-3.4/lib option.

David
January 15, 2005
So why doesn't the error message just say that?  Thanks, but I've got another one now.  I understand the error message, but I've never seen the __thunk28__ thing before in D's name mangling.  These symbols seem to be defined in my object files, but the number after the "__thunk" is different.  I don't get it. Can someone explain what the "thunk" is, and the numbers, ect...

Thanks
John

gcc -o unittest mango/test/unittest.o -L. -lmango -ldl -lphobos -lpthread
/usr/bin/ld: Undefined symbols:
__thunk28___D5mango5cache7Payload7Payload7destroyFZv
__thunk28___D5mango5cache7Payload7Payload7getTimeFZl
__thunk28___D5mango5cache7Payload7Payload7setTimeFlZv
__thunk36___D5mango2io8Resource8Resource13acquireIfOpenFZb
__thunk36___D5mango2io8Resource8Resource5closeFZv
__thunk36___D5mango2io8Resource8Resource7acquireFZv
__thunk36___D5mango2io8Resource8Resource7getLockFZC6Object
__thunk36___D5mango2io8Resource8Resource7setLockFC6ObjectZv
__thunk60___D5mango2io8Resource8Resource13acquireIfOpenFZb
__thunk60___D5mango2io8Resource8Resource5closeFZv
__thunk60___D5mango2io8Resource8Resource7acquireFZv
__thunk60___D5mango2io8Resource8Resource7getLockFZC6Object
__thunk60___D5mango2io8Resource8Resource7setLockFC6ObjectZv
__ModuleInfo_3std1c5linux5linux
__thunk36___D5mango3xml3dom4Node8NodeImpl10attributesFZC5mango3xml3dom5model4Node12NamedNodeMap
__thunk36___D5mango3xml3dom4Node8NodeImpl10childNodesFZC5mango3xml3dom5model4Node8NodeList
__thunk36___D5mango3xml3dom4Node8NodeImpl10firstChildFZC5mango3xml3dom5model4Node4Node
__thunk36___D5mango3xml3dom4Node8NodeImpl10parentNodeFC5mango3xml3dom5model4Node4NodeZv
__thunk36___D5mango3xml3dom4Node8NodeImpl10parentNodeFZC5mango3xml3dom5model4Node4Node
__thunk36___D5mango3xml3dom4Node8NodeImpl11appendChildFC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
__thunk36___D5mango3xml3dom4Node8NodeImpl11nextSiblingFZC5mango3xml3dom5model4Node4Node
__thunk36___D5mango3xml3dom4Node8NodeImpl11removeChildFC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
__thunk36___D5mango3xml3dom4Node8NodeImpl12insertBeforeFC5mango3xml3dom5model4Node4NodeC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
__thunk36___D5mango3xml3dom4Node8NodeImpl12replaceChildFC5mango3xml3dom5model4Node4NodeC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
__thunk36___D5mango3xml3dom4Node8NodeImpl13hasChildNodesFZb
__thunk36___D5mango3xml3dom4Node8NodeImpl13ownerDocumentFZC5mango3xml3dom5model8Document8Document
__thunk36___D5mango3xml3dom4Node8NodeImpl15previousSiblingFZC5mango3xml3dom5model4Node4Node
__thunk36___D5mango3xml3dom4Node8NodeImpl8childrenFZAC5mango3xml3dom5model4Node4Node
__thunk36___D5mango3xml3dom4Node8NodeImpl8nodeNameFZC5mango3icu7UString7UString
__thunk36___D5mango3xml3dom4Node8NodeImpl8nodeTypeFZE8NodeType
__thunk36___D5mango3xml3dom4Node8NodeImpl9cloneNodeFbZC5mango3xml3dom5model4Node4Node
__thunk36___D5mango3xml3dom4Node8NodeImpl9lastChildFZC5mango3xml3dom5model4Node4Node
__thunk36___D5mango3xml3dom4Node8NodeImpl9nodeValueFC5mango3icu7UString7UStringZv
__thunk36___D5mango3xml3dom4Node8NodeImpl9nodeValueFZC5mango3icu7UString7UString
__thunk44___D5mango3xml3dom4Node8NodeImpl10attributesFZC5mango3xml3dom5model4Node12NamedNodeMap
__thunk44___D5mango3xml3dom4Node8NodeImpl10childNodesFZC5mango3xml3dom5model4Node8NodeList
__thunk44___D5mango3xml3dom4Node8NodeImpl10firstChildFZC5mango3xml3dom5model4Node4Node
__thunk44___D5mango3xml3dom4Node8NodeImpl10parentNodeFC5mango3xml3dom5model4Node4NodeZv
__thunk44___D5mango3xml3dom4Node8NodeImpl10parentNodeFZC5mango3xml3dom5model4Node4Node
__thunk44___D5mango3xml3dom4Node8NodeImpl11nextSiblingFZC5mango3xml3dom5model4Node4Node
__thunk44___D5mango3xml3dom4Node8NodeImpl11removeChildFC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
__thunk44___D5mango3xml3dom4Node8NodeImpl12replaceChildFC5mango3xml3dom5model4Node4NodeC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
__thunk44___D5mango3xml3dom4Node8NodeImpl13hasChildNodesFZb
__thunk44___D5mango3xml3dom4Node8NodeImpl13ownerDocumentFZC5mango3xml3dom5model8Document8Document
__thunk44___D5mango3xml3dom4Node8NodeImpl15previousSiblingFZC5mango3xml3dom5model4Node4Node
__thunk44___D5mango3xml3dom4Node8NodeImpl8childrenFZAC5mango3xml3dom5model4Node4Node
__thunk44___D5mango3xml3dom4Node8NodeImpl8nodeNameFZC5mango3icu7UString7UString
__thunk44___D5mango3xml3dom4Node8NodeImpl8nodeTypeFZE8NodeType
__thunk44___D5mango3xml3dom4Node8NodeImpl9cloneNodeFbZC5mango3xml3dom5model4Node4Node
__thunk44___D5mango3xml3dom4Node8NodeImpl9lastChildFZC5mango3xml3dom5model4Node4Node
__thunk44___D5mango3xml3dom4Node8NodeImpl9nodeValueFC5mango3icu7UString7UStringZv
__thunk44___D5mango3xml3dom4Node8NodeImpl9nodeValueFZC5mango3icu7UString7UString
__thunk36___D5mango5cache7Payload7Payload7destroyFZv
__thunk36___D5mango5cache7Payload7Payload7getTimeFZl
__thunk36___D5mango5cache7Payload7Payload7setTimeFlZv
__thunk48___D5mango5cache7Payload7Payload7destroyFZv
__thunk48___D5mango5cache7Payload7Payload7getTimeFZl
__thunk48___D5mango5cache7Payload7Payload7setTimeFlZv
__thunk40___D5mango3xml3dom4Node8NodeImpl10attributesFZC5mango3xml3dom5model4Node12NamedNodeMap
__thunk40___D5mango3xml3dom4Node8NodeImpl10childNodesFZC5mango3xml3dom5model4Node8NodeList
__thunk40___D5mango3xml3dom4Node8NodeImpl10firstChildFZC5mango3xml3dom5model4Node4Node
__thunk40___D5mango3xml3dom4Node8NodeImpl10parentNodeFC5mango3xml3dom5model4Node4NodeZv
__thunk40___D5mango3xml3dom4Node8NodeImpl10parentNodeFZC5mango3xml3dom5model4Node4Node
__thunk40___D5mango3xml3dom4Node8NodeImpl11appendChildFC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
__thunk40___D5mango3xml3dom4Node8NodeImpl11nextSiblingFZC5mango3xml3dom5model4Node4Node
__thunk40___D5mango3xml3dom4Node8NodeImpl11removeChildFC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
__thunk40___D5mango3xml3dom4Node8NodeImpl12insertBeforeFC5mango3xml3dom5model4Node4NodeC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
__thunk40___D5mango3xml3dom4Node8NodeImpl12replaceChildFC5mango3xml3dom5model4Node4NodeC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
__thunk40___D5mango3xml3dom4Node8NodeImpl13hasChildNodesFZb
__thunk40___D5mango3xml3dom4Node8NodeImpl13ownerDocumentFZC5mango3xml3dom5model8Document8Document
__thunk40___D5mango3xml3dom4Node8NodeImpl15previousSiblingFZC5mango3xml3dom5model4Node4Node
__thunk40___D5mango3xml3dom4Node8NodeImpl8childrenFZAC5mango3xml3dom5model4Node4Node
__thunk40___D5mango3xml3dom4Node8NodeImpl8nodeNameFZC5mango3icu7UString7UString
__thunk40___D5mango3xml3dom4Node8NodeImpl8nodeTypeFZE8NodeType
__thunk40___D5mango3xml3dom4Node8NodeImpl9cloneNodeFbZC5mango3xml3dom5model4Node4Node
__thunk40___D5mango3xml3dom4Node8NodeImpl9lastChildFZC5mango3xml3dom5model4Node4Node
__thunk40___D5mango3xml3dom4Node8NodeImpl9nodeValueFC5mango3icu7UString7UStringZv
__thunk40___D5mango3xml3dom4Node8NodeImpl9nodeValueFZC5mango3icu7UString7UString
__thunk44___D5mango3xml3dom4Node8NodeImpl11appendChildFC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
__thunk44___D5mango3xml3dom4Node8NodeImpl12insertBeforeFC5mango3xml3dom5model4Node4NodeC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node


In article <csb4en$25gt$1@digitaldaemon.com>, David Friedman says...
>
>John Demme wrote:
>> I'm trying to compile Mango on OS X, and getting some error messages, I flat out
>> don't understand... can anyone help me out?
>> Thanks, John
>> 
>> gcc -o mytest mytest.o -L. -L/usr/local/gcc-3.4/lib -ldl -lphobos -lmango
>> ld: /usr/lib/gcc/darwin/3.3/libgcc.a(unwind-dw2.o) section's (__TEXT,__eh_frame)
>> type S_COALESCED does not match previous objects type S_REGULAR
><snip>
>
>Make sure the "gcc" you use to link is the one that was built with gdc.
>    When you do this, you can also drop the -L/usr/local/gcc-3.4/lib option.
>
>David


January 17, 2005
A thunk (in D or C++) is a small piece of code that adjusts the 'this' parameter and then jumps to another function.  The number in the name is the amount to subtract from 'this'.

I think this may be a problem in DMD 0.110 -- I'm seeing similar problems when I use it on Linux.  How did you get Mango to compile on OS X?  Did you re-arrange imports or use -fall-sources?  If you did, you can see that there are some issues related to the order in which file are compiled.  In 0.110 it looks like the layout of class/vtable can be incorrect in some cases.

I'll post more when I know what the exact problem is.

David

John Demme wrote:
> So why doesn't the error message just say that?  Thanks, but I've got another
> one now.  I understand the error message, but I've never seen the __thunk28__
> thing before in D's name mangling.  These symbols seem to be defined in my
> object files, but the number after the "__thunk" is different.  I don't get it.
> Can someone explain what the "thunk" is, and the numbers, ect...
> 
> Thanks
> John
> 
> gcc -o unittest mango/test/unittest.o -L. -lmango -ldl -lphobos -lpthread
> /usr/bin/ld: Undefined symbols:
> __thunk28___D5mango5cache7Payload7Payload7destroyFZv
> __thunk28___D5mango5cache7Payload7Payload7getTimeFZl
> __thunk28___D5mango5cache7Payload7Payload7setTimeFlZv
> __thunk36___D5mango2io8Resource8Resource13acquireIfOpenFZb
> __thunk36___D5mango2io8Resource8Resource5closeFZv
> __thunk36___D5mango2io8Resource8Resource7acquireFZv
> __thunk36___D5mango2io8Resource8Resource7getLockFZC6Object
> __thunk36___D5mango2io8Resource8Resource7setLockFC6ObjectZv
> __thunk60___D5mango2io8Resource8Resource13acquireIfOpenFZb
> __thunk60___D5mango2io8Resource8Resource5closeFZv
> __thunk60___D5mango2io8Resource8Resource7acquireFZv
> __thunk60___D5mango2io8Resource8Resource7getLockFZC6Object
> __thunk60___D5mango2io8Resource8Resource7setLockFC6ObjectZv
> __ModuleInfo_3std1c5linux5linux
> __thunk36___D5mango3xml3dom4Node8NodeImpl10attributesFZC5mango3xml3dom5model4Node12NamedNodeMap
> __thunk36___D5mango3xml3dom4Node8NodeImpl10childNodesFZC5mango3xml3dom5model4Node8NodeList
> __thunk36___D5mango3xml3dom4Node8NodeImpl10firstChildFZC5mango3xml3dom5model4Node4Node
> __thunk36___D5mango3xml3dom4Node8NodeImpl10parentNodeFC5mango3xml3dom5model4Node4NodeZv
> __thunk36___D5mango3xml3dom4Node8NodeImpl10parentNodeFZC5mango3xml3dom5model4Node4Node
> __thunk36___D5mango3xml3dom4Node8NodeImpl11appendChildFC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
> __thunk36___D5mango3xml3dom4Node8NodeImpl11nextSiblingFZC5mango3xml3dom5model4Node4Node
> __thunk36___D5mango3xml3dom4Node8NodeImpl11removeChildFC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
> __thunk36___D5mango3xml3dom4Node8NodeImpl12insertBeforeFC5mango3xml3dom5model4Node4NodeC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
> __thunk36___D5mango3xml3dom4Node8NodeImpl12replaceChildFC5mango3xml3dom5model4Node4NodeC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
> __thunk36___D5mango3xml3dom4Node8NodeImpl13hasChildNodesFZb
> __thunk36___D5mango3xml3dom4Node8NodeImpl13ownerDocumentFZC5mango3xml3dom5model8Document8Document
> __thunk36___D5mango3xml3dom4Node8NodeImpl15previousSiblingFZC5mango3xml3dom5model4Node4Node
> __thunk36___D5mango3xml3dom4Node8NodeImpl8childrenFZAC5mango3xml3dom5model4Node4Node
> __thunk36___D5mango3xml3dom4Node8NodeImpl8nodeNameFZC5mango3icu7UString7UString
> __thunk36___D5mango3xml3dom4Node8NodeImpl8nodeTypeFZE8NodeType
> __thunk36___D5mango3xml3dom4Node8NodeImpl9cloneNodeFbZC5mango3xml3dom5model4Node4Node
> __thunk36___D5mango3xml3dom4Node8NodeImpl9lastChildFZC5mango3xml3dom5model4Node4Node
> __thunk36___D5mango3xml3dom4Node8NodeImpl9nodeValueFC5mango3icu7UString7UStringZv
> __thunk36___D5mango3xml3dom4Node8NodeImpl9nodeValueFZC5mango3icu7UString7UString
> __thunk44___D5mango3xml3dom4Node8NodeImpl10attributesFZC5mango3xml3dom5model4Node12NamedNodeMap
> __thunk44___D5mango3xml3dom4Node8NodeImpl10childNodesFZC5mango3xml3dom5model4Node8NodeList
> __thunk44___D5mango3xml3dom4Node8NodeImpl10firstChildFZC5mango3xml3dom5model4Node4Node
> __thunk44___D5mango3xml3dom4Node8NodeImpl10parentNodeFC5mango3xml3dom5model4Node4NodeZv
> __thunk44___D5mango3xml3dom4Node8NodeImpl10parentNodeFZC5mango3xml3dom5model4Node4Node
> __thunk44___D5mango3xml3dom4Node8NodeImpl11nextSiblingFZC5mango3xml3dom5model4Node4Node
> __thunk44___D5mango3xml3dom4Node8NodeImpl11removeChildFC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
> __thunk44___D5mango3xml3dom4Node8NodeImpl12replaceChildFC5mango3xml3dom5model4Node4NodeC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
> __thunk44___D5mango3xml3dom4Node8NodeImpl13hasChildNodesFZb
> __thunk44___D5mango3xml3dom4Node8NodeImpl13ownerDocumentFZC5mango3xml3dom5model8Document8Document
> __thunk44___D5mango3xml3dom4Node8NodeImpl15previousSiblingFZC5mango3xml3dom5model4Node4Node
> __thunk44___D5mango3xml3dom4Node8NodeImpl8childrenFZAC5mango3xml3dom5model4Node4Node
> __thunk44___D5mango3xml3dom4Node8NodeImpl8nodeNameFZC5mango3icu7UString7UString
> __thunk44___D5mango3xml3dom4Node8NodeImpl8nodeTypeFZE8NodeType
> __thunk44___D5mango3xml3dom4Node8NodeImpl9cloneNodeFbZC5mango3xml3dom5model4Node4Node
> __thunk44___D5mango3xml3dom4Node8NodeImpl9lastChildFZC5mango3xml3dom5model4Node4Node
> __thunk44___D5mango3xml3dom4Node8NodeImpl9nodeValueFC5mango3icu7UString7UStringZv
> __thunk44___D5mango3xml3dom4Node8NodeImpl9nodeValueFZC5mango3icu7UString7UString
> __thunk36___D5mango5cache7Payload7Payload7destroyFZv
> __thunk36___D5mango5cache7Payload7Payload7getTimeFZl
> __thunk36___D5mango5cache7Payload7Payload7setTimeFlZv
> __thunk48___D5mango5cache7Payload7Payload7destroyFZv
> __thunk48___D5mango5cache7Payload7Payload7getTimeFZl
> __thunk48___D5mango5cache7Payload7Payload7setTimeFlZv
> __thunk40___D5mango3xml3dom4Node8NodeImpl10attributesFZC5mango3xml3dom5model4Node12NamedNodeMap
> __thunk40___D5mango3xml3dom4Node8NodeImpl10childNodesFZC5mango3xml3dom5model4Node8NodeList
> __thunk40___D5mango3xml3dom4Node8NodeImpl10firstChildFZC5mango3xml3dom5model4Node4Node
> __thunk40___D5mango3xml3dom4Node8NodeImpl10parentNodeFC5mango3xml3dom5model4Node4NodeZv
> __thunk40___D5mango3xml3dom4Node8NodeImpl10parentNodeFZC5mango3xml3dom5model4Node4Node
> __thunk40___D5mango3xml3dom4Node8NodeImpl11appendChildFC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
> __thunk40___D5mango3xml3dom4Node8NodeImpl11nextSiblingFZC5mango3xml3dom5model4Node4Node
> __thunk40___D5mango3xml3dom4Node8NodeImpl11removeChildFC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
> __thunk40___D5mango3xml3dom4Node8NodeImpl12insertBeforeFC5mango3xml3dom5model4Node4NodeC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
> __thunk40___D5mango3xml3dom4Node8NodeImpl12replaceChildFC5mango3xml3dom5model4Node4NodeC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
> __thunk40___D5mango3xml3dom4Node8NodeImpl13hasChildNodesFZb
> __thunk40___D5mango3xml3dom4Node8NodeImpl13ownerDocumentFZC5mango3xml3dom5model8Document8Document
> __thunk40___D5mango3xml3dom4Node8NodeImpl15previousSiblingFZC5mango3xml3dom5model4Node4Node
> __thunk40___D5mango3xml3dom4Node8NodeImpl8childrenFZAC5mango3xml3dom5model4Node4Node
> __thunk40___D5mango3xml3dom4Node8NodeImpl8nodeNameFZC5mango3icu7UString7UString
> __thunk40___D5mango3xml3dom4Node8NodeImpl8nodeTypeFZE8NodeType
> __thunk40___D5mango3xml3dom4Node8NodeImpl9cloneNodeFbZC5mango3xml3dom5model4Node4Node
> __thunk40___D5mango3xml3dom4Node8NodeImpl9lastChildFZC5mango3xml3dom5model4Node4Node
> __thunk40___D5mango3xml3dom4Node8NodeImpl9nodeValueFC5mango3icu7UString7UStringZv
> __thunk40___D5mango3xml3dom4Node8NodeImpl9nodeValueFZC5mango3icu7UString7UString
> __thunk44___D5mango3xml3dom4Node8NodeImpl11appendChildFC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
> __thunk44___D5mango3xml3dom4Node8NodeImpl12insertBeforeFC5mango3xml3dom5model4Node4NodeC5mango3xml3dom5model4Node4NodeZC5mango3xml3dom5model4Node4Node
> 
> 
> In article <csb4en$25gt$1@digitaldaemon.com>, David Friedman says...
> 
>>John Demme wrote:
>>
>>>I'm trying to compile Mango on OS X, and getting some error messages, I flat out
>>>don't understand... can anyone help me out?
>>>Thanks, John
>>>
>>>gcc -o mytest mytest.o -L. -L/usr/local/gcc-3.4/lib -ldl -lphobos -lmango
>>>ld: /usr/lib/gcc/darwin/3.3/libgcc.a(unwind-dw2.o) section's (__TEXT,__eh_frame)
>>>type S_COALESCED does not match previous objects type S_REGULAR
>>
>><snip>
>>
>>Make sure the "gcc" you use to link is the one that was built with gdc. 
>>   When you do this, you can also drop the -L/usr/local/gcc-3.4/lib option.
>>
>>David
> 
> 
> 
January 23, 2005
David Friedman wrote:

> A thunk (in D or C++) is a small piece of code that adjusts the 'this' parameter and then jumps to another function.  The number in the name is the amount to subtract from 'this'.
> 
> I think this may be a problem in DMD 0.110 -- I'm seeing similar problems when I use it on Linux.  How did you get Mango to compile on OS X?  Did you re-arrange imports or use -fall-sources?  If you did, you can see that there are some issues related to the order in which file are compiled.  In 0.110 it looks like the layout of class/vtable can be incorrect in some cases.
> 
> I'll post more when I know what the exact problem is.

Here's the output that I get, with a patched version of Mango 1.0a :

> gcc -o mangotest unittest.o libmango.a -lphobos -g
> /usr/bin/ld: Undefined symbols:
> __thunk28___D5mango5cache7Payload7Payload7destroyFZv
> __thunk28___D5mango5cache7Payload7Payload7getTimeFZl
> __thunk28___D5mango5cache7Payload7Payload7setTimeFlZv
> __thunk36___D5mango2io8Resource8Resource13acquireIfOpenFZb
> __thunk36___D5mango2io8Resource8Resource5closeFZv
> __thunk36___D5mango2io8Resource8Resource7acquireFZv
> __thunk36___D5mango2io8Resource8Resource7getLockFZC6Object
> __thunk36___D5mango2io8Resource8Resource7setLockFC6ObjectZv
> __thunk56___D5mango2io8Resource8Resource13acquireIfOpenFZb
> __thunk56___D5mango2io8Resource8Resource5closeFZv
> __thunk56___D5mango2io8Resource8Resource7acquireFZv
> __thunk56___D5mango2io8Resource8Resource7getLockFZC6Object
> __thunk56___D5mango2io8Resource8Resource7setLockFC6ObjectZv
> __thunk36___D5mango5cache7Payload7Payload7destroyFZv
> __thunk36___D5mango5cache7Payload7Payload7getTimeFZl
> __thunk36___D5mango5cache7Payload7Payload7setTimeFlZv
> __thunk48___D5mango5cache7Payload7Payload7destroyFZv
> __thunk48___D5mango5cache7Payload7Payload7getTimeFZl
> __thunk48___D5mango5cache7Payload7Payload7setTimeFlZv

This is when doing "make -f darwin.make", with GDC 0.10 / GCC 3.3.5

Is there a way to solve this by rearranging sources or changing imports,
or is a bug needing to be addressed in the DMD front-end or something ?

--anders