Forking phobos

Jens Mueller jens.k.mueller at gmx.de
Sun Apr 3 15:17:18 PDT 2011


Aleksandar Ružičić wrote:
> Thanks! I've changed sc.ini, built druntime and then phobos successfully.
> 
> Now, I'm able to build phobos.lib but when I try to compile simple
> hello world program and link it to that phobos.lib OPTLINK greets me
> with this:
> 
> C:\>dmd hello.d
> OPTLINK (R) for Win32  Release 8.00.8
> Copyright (C) Digital Mars 1989-2010  All rights reserved.
> http://www.digitalmars.com/ctg/optlink.html
> C:\Users\Aleksandar\Dropbox\Projects\phobos\phobos.lib(lifetime)
>  Error 42: Symbol Undefined _D4core5bitop3bsrFNaNbkZi
> C:\Users\Aleksandar\Dropbox\Projects\phobos\phobos.lib(gcx)
>  Error 42: Symbol Undefined _D4core5bitop3bsfFNaNbkZi
> C:\Users\Aleksandar\Dropbox\Projects\phobos\phobos.lib(gcx)
>  Error 42: Symbol Undefined _D4core5bitop3btsFNbPkkZi
> C:\Users\Aleksandar\Dropbox\Projects\phobos\phobos.lib(gcx)
>  Error 42: Symbol Undefined _D4core5bitop3btrFNbPkkZi
> --- errorlevel 4
> 
> this is my sc.ini:
> 
> [Version]
> version=7.51 Build 020
> 
> [Environment]
> LIB="C:\Users\Aleksandar\Dropbox\Projects\druntime\lib";"C:\Users\Aleksandar\Dropbox\Projects\phobos\";"C:\bin\dmd2\windows\lib";"C:\bin\dm\lib"
> DFLAGS="-IC:\Users\Aleksandar\Dropbox\Projects\phobos\";"C:\Users\Aleksandar\Dropbox\Projects\druntime\import"
> LINKCMD=%@P%\link.exe
> 
> Also, when i do make -f win32.mak unittest I get the same error:
> 
>  --- std.socket(316) broken test ---
>  --- std.regex(3443) broken test ---
> OPTLINK (R) for Win32  Release 8.00.8
> Copyright (C) Digital Mars 1989-2010  All rights reserved.
> http://www.digitalmars.com/ctg/optlink.html
> unittest.obj(unittest)
>  Error 42: Symbol Undefined _D4core5bitop3bsrFNaNbkZi
> ..\druntime\lib\druntime.lib(gcx)
>  Error 42: Symbol Undefined _D4core5bitop3bsfFNaNbkZi
> ..\druntime\lib\druntime.lib(gcx)
>  Error 42: Symbol Undefined _D4core5bitop3btsFNbPkkZi
> ..\druntime\lib\druntime.lib(gcx)
>  Error 42: Symbol Undefined _D4core5bitop3btrFNbPkkZi
> --- errorlevel 4

That's interesting. I'm on Linux. I tried running druntime's unittests
some days ago and I had a very similar problem. I assumed this must be
some local setup problem. But now I see that the problem must be
somewhere else. I have the same undefined references
_D4core5bitop3bsfFNaNbkZi as you.

$ make -f posix.mak unittest
Testing obj/object_
lib/libdruntime.a(gcx_3c4_122.o): In function `_D2gc3gcx3Gcx4markMFPvPvZv':
src/gc/gcx.d:(.text._D2gc3gcx3Gcx4markMFPvPvZv+0x10f): undefined reference to `_D4core5bitop3btsFNbPkkZi'
lib/libdruntime.a(gcx_3c4_122.o): In function `_D2gc3gcx3Gcx11fullcollectMFPvZk':
src/gc/gcx.d:(.text._D2gc3gcx3Gcx11fullcollectMFPvZk+0x285): undefined reference to `_D4core5bitop3bsfFNaNbkZi'
src/gc/gcx.d:(.text._D2gc3gcx3Gcx11fullcollectMFPvZk+0x2ff): undefined reference to `_D4core5bitop3bsfFNaNbkZi'
src/gc/gcx.d:(.text._D2gc3gcx3Gcx11fullcollectMFPvZk+0x3c4): undefined reference to `_D4core5bitop3btrFNbPkkZi'
src/gc/gcx.d:(.text._D2gc3gcx3Gcx11fullcollectMFPvZk+0x52e): undefined reference to `_D4core5bitop3btrFNbPkkZi'
lib/libdruntime.a(lifetime_5b0_478.o): In function `_D2rt8lifetime11newCapacityFkkZk':
src/rt/lifetime.d:(.text._D2rt8lifetime11newCapacityFkkZk+0x29): undefined reference to `_D4core5bitop3bsrFNaNbkZi'
lib/libdruntime.a(gcbits_3b0_21c.o): In function `_D2gc6gcbits6GCBits9testClearMFkZk':
src/gc/gcbits.d:(.text._D2gc6gcbits6GCBits9testClearMFkZk+0x10): undefined reference to `_D4core5bitop3btrFNbPkkZi'
lib/libdruntime.a(gcbits_3b0_21c.o): In function `_D2gc6gcbits6GCBits7testSetMFkZk':
src/gc/gcbits.d:(.text._D2gc6gcbits6GCBits7testSetMFkZk+0x10): undefined reference to `_D4core5bitop3btsFNbPkkZi'
collect2: ld returned 1 exit status
--- errorlevel 1
make: *** [obj/object_] Error 1

How come that the auto-tester (http://d.puremagic.com/test-results/)
does not have this problem? Does the auto-tester use the dmd it is
building?

Jens


More information about the Digitalmars-d mailing list