www.digitalmars.com         C & C++   DMDScript  

D.gnu - Uhh... Me No Understand

reply John Demme <me teqdruid.com> writes:
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
Jan 14 2005
parent reply David Friedman <d3rdclsmail_a_ _t_earthlink_d_._t_net> writes:
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

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
Jan 15 2005
parent reply John Demme <me teqdruid.com> writes:
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

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

Jan 15 2005
parent reply David Friedman <d3rdclsmail_a_ _t_earthlink_d_._t_net> writes:
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


Jan 17 2005
parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
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
Jan 23 2005