www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - What does dmd 2.066 want from me?

reply "Artem Tarasov" <lomereiter gmail.com> writes:
I'm trying to compile my software with the latest compiler, and 
it spits out the following error:

$ make
<...>
rdmd --force --build-only -IBioD -g -L-Lhtslib -L-l:libhts.a 
-L-l:libphobos2.a -ofbuild/sambamba.o main.d
<...>
/tmp/.rdmd-1000/rdmd-main.d-5E103AD0DCA0998F00B4F9BA5B181EDE/objs/sambamba.o.o:(.data._D80TypeInfo_S3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBa
Read6__initZ+0x30): 
undefined reference to 
`_D3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamRead9__xtoHashFNbNeKxS3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamReadZm'
/tmp/.rdmd-1000/rdmd-main.d-5E103AD0DCA0998F00B4F9BA5B181EDE/objs/sambamba.o.o:(.data._D80TypeInfo_S3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBa
Read6__initZ+0x38): 
undefined reference to 
`_D3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamRead11__xopEqualsFKxS3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamReadKxS3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamReadZb'

What the heck do these lines mean? Presumably they come from the 
recent change in hash implementation, but I don't use this struct 
in any dictionary whatsoever! It doesn't have opCmp either and 
perfectly worked until now.
Jan 07 2015
next sibling parent reply Rikki Cattermole <alphaglosined gmail.com> writes:
On 8/01/2015 9:10 a.m., Artem Tarasov wrote:
 I'm trying to compile my software with the latest compiler, and it spits
 out the following error:

 $ make
 <...>
 rdmd --force --build-only -IBioD -g -L-Lhtslib -L-l:libhts.a
 -L-l:libphobos2.a -ofbuild/sambamba.o main.d
 <...>
 /tmp/.rdmd-1000/rdmd-main.d-5E103AD0DCA0998F00B4F9BA5B181EDE/objs/sambamba.o.o:(.data._D80TypeInfo_S3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamRead6__initZ+0x30):
 undefined reference to
 `_D3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamRead9__xtoHashFNbNeKxS3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamReadZm'

 /tmp/.rdmd-1000/rdmd-main.d-5E103AD0DCA0998F00B4F9BA5B181EDE/objs/sambamba.o.o:(.data._D80TypeInfo_S3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamRead6__initZ+0x38):
 undefined reference to
 `_D3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamRead11__xopEqualsFKxS3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamReadKxS3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamReadZb'


 What the heck do these lines mean? Presumably they come from the recent
 change in hash implementation, but I don't use this struct in any
 dictionary whatsoever! It doesn't have opCmp either and perfectly worked
 until now.
Have you got opEqual's defined? Its wanting that and toHash I think.
Jan 07 2015
parent "Artem Tarasov" <lomereiter gmail.com> writes:
On Thursday, 8 January 2015 at 01:22:54 UTC, Rikki Cattermole 
wrote:
 Have you got opEqual's defined?
 Its wanting that and toHash I think.
Yes, I have opEquals defined. I've just tried to add dummy toHash (returning a constant), but it doesn't help :( OK, it seems I'll have to stick with 2.065 and LDC 0.15. These new bugs in every new version of compiler drive me nuts. Thanks for trying to help, anyway.
Jan 08 2015
prev sibling next sibling parent "yazd" <yazan.dabain gmail.com> writes:
If you have just installed a newer compiler and trying to link 
with older compiled code, then linking and other things can get 
wrong. I suggest recompiling all of your code using the new 
compiler.
Jan 07 2015
prev sibling next sibling parent "John Colvin" <john.loughran.colvin gmail.com> writes:
On Wednesday, 7 January 2015 at 20:10:35 UTC, Artem Tarasov wrote:
 I'm trying to compile my software with the latest compiler, and 
 it spits out the following error:

 $ make
 <...>
 rdmd --force --build-only -IBioD -g -L-Lhtslib -L-l:libhts.a 
 -L-l:libphobos2.a -ofbuild/sambamba.o main.d
 <...>
 /tmp/.rdmd-1000/rdmd-main.d-5E103AD0DCA0998F00B4F9BA5B181EDE/objs/sambamba.o.o:(.data._D80TypeInfo_S3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBa
Read6__initZ+0x30): 
 undefined reference to 
 `_D3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamRead9__xtoHashFNbNeKxS3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamReadZm'
 /tmp/.rdmd-1000/rdmd-main.d-5E103AD0DCA0998F00B4F9BA5B181EDE/objs/sambamba.o.o:(.data._D80TypeInfo_S3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBa
Read6__initZ+0x38): 
 undefined reference to 
 `_D3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamRead11__xopEqualsFKxS3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamReadKxS3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamReadZb'

 What the heck do these lines mean? Presumably they come from 
 the recent change in hash implementation, but I don't use this 
 struct in any dictionary whatsoever! It doesn't have opCmp 
 either and perfectly worked until now.
Are you totally sure that you don't have any old .o or .a files lying around? Remember that D offers no binary compatibility across compiler releases. Also, are you absolutely certain that 1) the correct dmd.conf is being used and 2) the correct version of druntime/phobos is specified in dmd.conf
Jan 08 2015
prev sibling parent Steven Schveighoffer <schveiguy yahoo.com> writes:
On 1/7/15 3:10 PM, Artem Tarasov wrote:
 I'm trying to compile my software with the latest compiler, and it spits
 out the following error:

 $ make
 <...>
 rdmd --force --build-only -IBioD -g -L-Lhtslib -L-l:libhts.a
 -L-l:libphobos2.a -ofbuild/sambamba.o main.d
 <...>
 /tmp/.rdmd-1000/rdmd-main.d-5E103AD0DCA0998F00B4F9BA5B181EDE/objs/sambamba.o.o:(.data._D80TypeInfo_S3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamRead6__initZ+0x30):
 undefined reference to
 `_D3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamRead9__xtoHashFNbNeKxS3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamReadZm'

 /tmp/.rdmd-1000/rdmd-main.d-5E103AD0DCA0998F00B4F9BA5B181EDE/objs/sambamba.o.o:(.data._D80TypeInfo_S3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamRead6__initZ+0x38):
 undefined reference to
 `_D3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamRead11__xopEqualsFKxS3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamReadKxS3bio3bam4read41__T12EagerBamReadTS3bio3bam4read7BamReadZ12EagerBamReadZb'


 What the heck do these lines mean? Presumably they come from the recent
 change in hash implementation, but I don't use this struct in any
 dictionary whatsoever! It doesn't have opCmp either and perfectly worked
 until now.
The latest changes are compile-time requirements, not link-time. I doubt they have to do with your problem. Check for stale objects and libraries. -Steve
Jan 08 2015