www.digitalmars.com         C & C++   DMDScript  

D.gnu - bug with std.boxer

reply Carlos Santander <csantander619 gmail.com> writes:
I'm posting here because I don't know if this also occurs with DMD. I'm using 
GDC 0.17 on Mac OS X 10.4.

Take these two modules:

//////////////////////////////////////
module uno;

private import std.boxer;

version(err)
         private import dos;
else
         Box foo()
         {
                 return box(0);
         }

void main()
{
         auto i = unbox!(int)(foo());
}
//////////////////////////////////////
module dos;
private import std.boxer;

Box foo()
{
         return box(0);
}
//////////////////////////////////////

If I just compile uno.d, it works. But if I do:

$ gdmd uno.d dos.d -version=err

I get:

/usr/bin/ld: Undefined symbols:
__D3std5boxer24__T16unboxCastIntegerTiZ16unboxCastIntegerFS3std5boxer3BoxZi
collect2: ld returned 1 exit status

I also have problems trying to use MinTL wtih std.boxer.Box.

-- 
Carlos Santander Bernal
Jan 26 2006
next sibling parent reply J C Calvarese <technocrat7 gmail.com> writes:
In article <drc62e$4ri$1 digitaldaemon.com>, Carlos Santander says...
I'm posting here because I don't know if this also occurs with DMD. I'm using 
GDC 0.17 on Mac OS X 10.4.

Take these two modules:

//////////////////////////////////////
module uno;

private import std.boxer;

version(err)
         private import dos;
else
         Box foo()
         {
                 return box(0);
         }

void main()
{
         auto i = unbox!(int)(foo());
}
//////////////////////////////////////
module dos;
private import std.boxer;

Box foo()
{
         return box(0);
}
//////////////////////////////////////

If I just compile uno.d, it works. But if I do:

$ gdmd uno.d dos.d -version=err

I get:

/usr/bin/ld: Undefined symbols:
__D3std5boxer24__T16unboxCastIntegerTiZ16unboxCastIntegerFS3std5boxer3BoxZi
collect2: ld returned 1 exit status

I also have problems trying to use MinTL wtih std.boxer.Box.

-- 
Carlos Santander Bernal

dmd uno.d dos.d -version=err FYI, I tried this on Windows (DMD 0.145), and I got a different compile error: dos.obj(dos) Error 42: Symbol Undefined _assert_3std5boxer jcc7
Jan 29 2006
parent Carlos Santander <csantander619 gmail.com> writes:
J C Calvarese escribió:
 In article <drc62e$4ri$1 digitaldaemon.com>, Carlos Santander says...
 I'm posting here because I don't know if this also occurs with DMD. I'm using 
 GDC 0.17 on Mac OS X 10.4.

 Take these two modules:

 //////////////////////////////////////
 module uno;

 private import std.boxer;

 version(err)
         private import dos;
 else
         Box foo()
         {
                 return box(0);
         }

 void main()
 {
         auto i = unbox!(int)(foo());
 }
 //////////////////////////////////////
 module dos;
 private import std.boxer;

 Box foo()
 {
         return box(0);
 }
 //////////////////////////////////////

 If I just compile uno.d, it works. But if I do:

 $ gdmd uno.d dos.d -version=err

 I get:

 /usr/bin/ld: Undefined symbols:
 __D3std5boxer24__T16unboxCastIntegerTiZ16unboxCastIntegerFS3std5boxer3BoxZi
 collect2: ld returned 1 exit status

 I also have problems trying to use MinTL wtih std.boxer.Box.

 -- 
 Carlos Santander Bernal

dmd uno.d dos.d -version=err FYI, I tried this on Windows (DMD 0.145), and I got a different compile error: dos.obj(dos) Error 42: Symbol Undefined _assert_3std5boxer jcc7

So it seems the problem is with GDC. That error is fixed with the "Burton fix" ;) extern (C) void assert_3std5boxer () {} Thanks for trying that. -- Carlos Santander Bernal
Jan 30 2006
prev sibling parent Carlos Santander <csantander619 gmail.com> writes:
Carlos Santander escribió:
 
 I also have problems trying to use MinTL wtih std.boxer.Box.
 

As promised, here's the minimal test case: module test; import std.boxer; import mintl.all; void main() { Stack!(Box) stack; } In my case, compiling with: gdmd test.d -I../.. libmintl.a I get: __Class_5mintl3seq33__T11SeqDelegateTS3std5boxer3BoxZ11SeqDelegate __Class_5mintl3seq43__T19SeqWithKeysDelegateTiTS3std5boxer3BoxZ19SeqWithKeysDelegate __D5mintl3seq33__T11SeqDelegateTS3std5boxer3BoxZ11SeqDelegate5_ctorFDFDFKS3std5boxer3BoxZiZiZC5mintl3seq33__T11SeqDelegateTS3std5boxer3BoxZ11SeqDelegate __D5mintl3seq43__T19SeqWithKeysDelegateTiTS3std5boxer3BoxZ19SeqWithKeysDelegate5_ctorFDFDFKS3std5boxer3BoxZiZiDFDFKiKS3std5boxer3BoxZiZiZC5mintl3seq43__T19SeqWithKeysDelegateTiTS3std5boxer3BoxZ19SeqWithKeysDelegate __init_24TypeInfo_S3std5boxer3Box collect2: ld returned 1 exit status I had to update MinTL to get it to compile. -- Carlos Santander Bernal
Jan 31 2006