December 19, 2011
I have a makefile (Linux) that used to work OK.

DC = dmd
DFLAGS = -gc -I/usr/include/d -I/usr/local/include/d
LFLAGS = -L-L/usr/lib -L-I/usr/local/lib -L-lphobos2 -L-lgtkd -L-ldl -L-
lrt -L-lusps4cb

COMPILE = $(DC) -c $(DFLAGS)

OBJFILES := $(patsubst %.d,%.o,$(wildcard *.d))

all: compo

compo: $(OBJFILES)
	$(DC) -ofcompo $(OBJFILES) $(LFLAGS)

%.o: %.d
	$(COMPILE) $<

clean:
	rm *.o
	rm compo

Same for a CodeBlocks build. As far as I know all that I have done is to upgrade from 2.055 to 2.056. I tried to fix a simple bug, and everything compiles OK.

But now I get a slew of link errors typified by:

undefined reference to _D3std5stdio4File17LockingTextWriter8__cpctorMFKS3std5stdio4File17 LockingTextWriterZv

Does this ring a bell with anyone please.

Steve
December 19, 2011
On Mon, 19 Dec 2011 17:17:09 +0100, Steve Teale <steve.teale@britseyeview.com> wrote:

> I have a makefile (Linux) that used to work OK.
>
> DC = dmd
> DFLAGS = -gc -I/usr/include/d -I/usr/local/include/d
> LFLAGS = -L-L/usr/lib -L-I/usr/local/lib -L-lphobos2 -L-lgtkd -L-ldl -L-
> lrt -L-lusps4cb
>
> COMPILE = $(DC) -c $(DFLAGS)
>
> OBJFILES := $(patsubst %.d,%.o,$(wildcard *.d))
>
> all: compo
>
> compo: $(OBJFILES)
> 	$(DC) -ofcompo $(OBJFILES) $(LFLAGS)
>
> %.o: %.d
> 	$(COMPILE) $<
>
> clean:
> 	rm *.o
> 	rm compo
>
> Same for a CodeBlocks build. As far as I know all that I have done is to
> upgrade from 2.055 to 2.056. I tried to fix a simple bug, and everything
> compiles OK.
>
> But now I get a slew of link errors typified by:
>
> undefined reference to
> _D3std5stdio4File17LockingTextWriter8__cpctorMFKS3std5stdio4File17
> LockingTextWriterZv
>
> Does this ring a bell with anyone please.
>
> Steve

I'd guess a recent change in the compiler creates new copy constructor for certain types but
your phobos installation was build with a older version of the compiler so it hasn't got the
copy constructor.