RejectedSoftware Forums

Sign up

Cannot build using dmd and phobos head

This is probably just me doing something stupid and not related to vibe or dmd/phobos at all.

I get unresolved errors for phobos references for Base64Impl in std.base64 used in vibe.
This seems very strange as I see the symbols in phobos.

As you see below, phobos is included

dmd -of/home/simendsjo/code/d/sb/simendlib/simendlib /home/simendsjo/code/d/sb/simendlib/temp.o -L-levent -L-levent_pthreads -L-lssl -L-lcrypto -m64 -g -v
binary    dmd
version   v2.064-devel-a607568
config    /home/simendsjo/code/d/dlang/install/bin/dmd.conf
gcc /home/simendsjo/code/d/sb/simendlib/temp.o -o /home/simendsjo/code/d/sb/simendlib/simendlib -g -m64 -levent -levent_pthreads -lssl -lcrypto -Xlinker --export-dynamic -L/home/simendsjo/code/d/dlang/install/bin/../lib -lrt -l:libphobos2.a -lpthread -lm -lrt 
/home/simendsjo/code/d/sb/simendlib/temp.o: In function `_D4vibe4inet7message13decodeMessageFxAhAyaZAya':
/home/simendsjo/code/d/sb/simendlib/../../vibe.d/source/vibe/inet/message.d:306: undefined reference to `_D3std6base6424__T10Base64ImplVa43Va47Z153__T7DecoderTS4vibe4inet7message13decodeMessageFxAhAyaZAya79__T12FilterResultS544vibe4inet7message13decodeMessageFxAhAyaZAya9__lambda3TAxhZ12FilterResultZ7Decoder5emptyMxFNaNbNdNfZb'
/home/simendsjo/code/d/sb/simendlib/../../vibe.d/source/vibe/inet/message.d:307: undefined reference to `_D3std6base6424__T10Base64ImplVa43Va47Z153__T7DecoderTS4vibe4inet7message13decodeMessageFxAhAyaZAya79__T12FilterResultS544vibe4inet7message13decodeMessageFxAhAyaZAya9__lambda3TAxhZ12FilterResultZ7Decoder5frontMFNaNbNdNfZh'
/home/simendsjo/code/d/sb/simendlib/../../vibe.d/source/vibe/inet/message.d:307: undefined reference to `_D3std6base6424__T10Base64ImplVa43Va47Z153__T7DecoderTS4vibe4inet7message13decodeMessageFxAhAyaZAya79__T12FilterResultS544vibe4inet7message13decodeMessageFxAhAyaZAya9__lambda3TAxhZ12FilterResultZ7Decoder8popFrontMFNaZv'
/home/simendsjo/code/d/sb/simendlib/temp.o: In function `_D3std6base6424__T10Base64ImplVa43Va47Z153__T7decoderTS4vibe4inet7message13decodeMessageFxAhAyaZAya79__T12FilterResultS544vibe4inet7message13decodeMessageFxAhAyaZAya9__lambda3TAxhZ12FilterResultZ7decoderFNaS4vibe4inet7message13decodeMessageFxAhAyaZAya79__T12FilterResultS544vibe4inet7message13decodeMessageFxAhAyaZAya9__lambda3TAxhZ12FilterResultZS3std6base6424__T10Base64ImplVa43Va47Z153__T7DecoderTS4vibe4inet7message13decodeMessageFxAhAyaZAya79__T12FilterResultS544vibe4inet7message13decodeMessageFxAhAyaZAya9__lambda3TAxhZ12FilterResultZ7Decoder':
/home/simendsjo/code/d/dlang/install/bin/../import/std/base64.d:1380: undefined reference to `_D3std6base6424__T10Base64ImplVa43Va47Z153__T7DecoderTS4vibe4inet7message13decodeMessageFxAhAyaZAya79__T12FilterResultS544vibe4inet7message13decodeMessageFxAhAyaZAya9__lambda3TAxhZ12FilterResultZ7Decoder6__ctorMFNaNcS4vibe4inet7message13decodeMessageFxAhAyaZAya79__T12FilterResultS544vibe4inet7message13decodeMessageFxAhAyaZAya9__lambda3TAxhZ12FilterResultZS3std6base6424__T10Base64ImplVa43Va47Z153__T7DecoderTS4vibe4inet7message13decodeMessageFxAhAyaZAya79__T12FilterResultS544vibe4inet7message13decodeMessageFxAhAyaZAya9__lambda3TAxhZ12FilterResultZ7Decoder'
/home/simendsjo/code/d/sb/simendlib/temp.o:(.data._D211TypeInfo_S3std6base6424__T10Base64ImplVa43Va47Z153__T7DecoderTS4vibe4inet7message13decodeMessageFxAhAyaZAya79__T12FilterResultS544vibe4inet7message13decodeMessageFxAhAyaZAya9__lambda3TAxhZ12FilterResultZ7Decoder6__initZ+0x38): undefined reference to `_D3std6base6424__T10Base64ImplVa43Va47Z153__T7DecoderTS4vibe4inet7message13decodeMessageFxAhAyaZAya79__T12FilterResultS544vibe4inet7message13decodeMessageFxAhAyaZAya9__lambda3TAxhZ12FilterResultZ7Decoder11__xopEqualsFKxS3std6base6424__T10Base64ImplVa43Va47Z153__T7DecoderTS4vibe4inet7message13decodeMessageFxAhAyaZAya79__T12FilterResultS544vibe4inet7message13decodeMessageFxAhAyaZAya9__lambda3TAxhZ12FilterResultZ7DecoderKxS3std6base6424__T10Base64ImplVa43Va47Z153__T7DecoderTS4vibe4inet7message13decodeMessageFxAhAyaZAya79__T12FilterResultS544vibe4inet7message13decodeMessageFxAhAyaZAya9__lambda3TAxhZ12FilterResultZ7DecoderZb'
collect2: error: ld returned 1 exit status
--- errorlevel 1

This might of course be a dmd bug

Re: Cannot build using dmd and phobos head

I am pretty sure it is dmd regression - there have been several major changes in symbol generation recently. I have been trying to reduce the test case yesterday but got damn busy since then and won't be able to get back to it in a week at least.

2 most suspicious ones:
https://github.com/D-Programming-Language/dmd/pull/2550 has changed the placement of emitted symbols
https://github.com/D-Programming-Language/dmd/pull/2566 has changed the algorithm for anonymous lambda literal symbol generation