For some reason I can't get either the default Ubuntu 10.04 install of ldc nor the ldc-daily package to link programs that use Tango containers. The link always fails with an "undefined reference to: tango.core.Memory.gc_monitor. (the reference is actually embedded into some sort of unique link hash).
Here's the actual output from ldc-daily. (The default install simply crashes with a "link error")
draco% ldc Command.d -of command
/usr/lib/d/libtango-ldc.a(tango-core-Memory-release.o): In function '_D5tango4core6Memory2GC7monitorFDFZvDFiiZvZv':
(.text+0x344): undefined reference to '_D5tango4core6Memory10gc_monitorFDFZvDFiiZvZv'
collect2: ld returned 1 exit status
Error: linking failed:
status: 1
I would like to figure out what is going on here. These are programs that linked fine before upgrading to Ubuntu 10.04. Perhaps something in my build chain has a subtle config error. I checked my ldc config file and it appears to be pointing to the right stuff.
This only happens when I reference a Tango container like LinkedList or HashMap. It happens even if I only reference, but don't allocate one. For example:
import tango.util.container.LinkedList;
void main() {
LinkedList!(int) myList;
Stdout("hello world").newline;
}
If I remove the myList declaration it compiles and links.
Any help greatly appreciated.