Can dmd compile with my own runtime library?

Huang F Guan gdxxhg at gmail.com
Thu Aug 23 05:27:30 PDT 2007


Frits van Bommel Wrote:

> I don't know, I never looked for one[1]. This is all just from my 
> experience (maybe helped by some of what I've read on these newsgroups). 
> I didn't think it was too hard to figure out most of it, I just 
> basically kept reading Phobos sources and trying stuff until it worked :).
> 
> 
> [1]: If you find (or start) one, feel free to add my stuff to it.

Hi, I solved one program now, you are right. My gdc source code is 2007-8-22 and my gdc executable files are a little old.

After I updated my gdc, I still have many troubles. This time I couldn't link it. There are many undefined refereces. I don't know what the real work of these functions do. I don't know whether is proper to write some dummy functions for them.

ld: warning: cannot find entry symbol _mainCRTStartup; defaulting to 00401000
object.o(.text+0xfe):object.d: undefined reference to `_d_monitorenter'
object.o(.text+0x16d):object.d: undefined reference to `_d_monitorexit'
object.o(.text+0x244):object.d: undefined reference to `_d_array_bounds'
object.o(.text+0x27b):object.d: undefined reference to `_d_array_bounds'
object.o(.text+0x2fa):object.d: undefined reference to `_d_array_bounds'
object.o(.text+0x31f):object.d: undefined reference to `_d_monitorexit'
object.o(.text+0x347):object.d: undefined reference to `_d_monitorenter'
object.o(.text+0x3af):object.d: undefined reference to `_d_monitorexit'
object.o(.text+0x431):object.d: undefined reference to `_d_monitorenter'
object.o(.text+0x457):object.d: undefined reference to `_d_monitorexit'
object.o(.text+0x5cb):object.d: undefined reference to `_d_dynamic_cast'
object.o(.text+0x623):object.d: undefined reference to `_d_dynamic_cast'
object.o(.text+0x85e):object.d: undefined reference to `_d_dynamic_cast'
object.o(.text+0xaf2):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0xaf7):object.d: undefined reference to `_d_arraycatnT'
object.o(.text+0xb37):object.d: undefined reference to `_d_dynamic_cast'
object.o(.text+0xcca):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0xccf):object.d: undefined reference to `_d_arraycatnT'
object.o(.text+0xd0f):object.d: undefined reference to `_d_dynamic_cast'
object.o(.text+0x1015):object.d: undefined reference to `_D6string8toStringFaZAa'
object.o(.text+0x105e):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0x1063):object.d: undefined reference to `_d_arraycatnT'
object.o(.text+0x1082):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0x1087):object.d: undefined reference to `_d_arraycatnT'
object.o(.text+0x10b4):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0x10b9):object.d: undefined reference to `_d_arraycatnT'
object.o(.text+0x10fb):object.d: undefined reference to `_d_dynamic_cast'
object.o(.text+0x139d):object.d: undefined reference to `_D11TypeInfo_Av6__initZ'
object.o(.text+0x13a2):object.d: undefined reference to `_d_newarrayT'
object.o(.text+0x1438):object.d: undefined reference to `_d_delmemory'
object.o(.text+0x151e):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0x1523):object.d: undefined reference to `_d_arraycatnT'
object.o(.text+0x1542):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0x1547):object.d: undefined reference to `_d_arraycatnT'
object.o(.text+0x1574):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0x1579):object.d: undefined reference to `_d_arraycatnT'
object.o(.text+0x15bb):object.d: undefined reference to `_d_dynamic_cast'
object.o(.text+0x16be):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0x16c3):object.d: undefined reference to `_d_arraycatnT'
object.o(.text+0x1703):object.d: undefined reference to `_d_dynamic_cast'
object.o(.text+0x17af):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0x17b4):object.d: undefined reference to `_d_arraycatnT'
object.o(.text+0x17f4):object.d: undefined reference to `_d_dynamic_cast'
object.o(.text+0x18bc):object.d: undefined reference to `_d_dynamic_cast'
object.o(.text+0x1b11):object.d: undefined reference to `_d_dynamic_cast'
object.o(.text+0x1dbd):object.d: undefined reference to `_d_dynamic_cast'
object.o(.text+0x20f3):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0x20f8):object.d: undefined reference to `_d_arrayappendcTp'
object.o(.text+0x2120):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0x2125):object.d: undefined reference to `_d_arrayappendT'
object.o(.text+0x2150):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0x2155):object.d: undefined reference to `_d_arrayappendT'
object.o(.text+0x2197):object.d: undefined reference to `_d_dynamic_cast'
object.o(.text+0x2203):object.d: undefined reference to `_d_array_bounds'
object.o(.text+0x224c):object.d: undefined reference to `_d_array_bounds'
object.o(.text+0x23f0):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0x23f5):object.d: undefined reference to `_d_arraycatnT'
object.o(.text+0x2604):object.d: undefined reference to `_D11TypeInfo_Aa6__initZ'
object.o(.text+0x2609):object.d: undefined reference to `_d_arraycatnT'


Really, it's hard for me to read the phobos sources. 
>From what you said, I think you might have done a simple runtime library. If so, would you send me one? 




More information about the Digitalmars-d mailing list