www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - dmd/druntime/phobos HEAD: can't link binaries on Arch Linux

reply "Atila Neves" <atila.neves gmail.com> writes:
Anyone else getting this problem on Arch Linux?

dmd hello.d

hello.o:hello.d:TypeInfo_S3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList67__T9IntervalsTS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArr
yZ9Intervals.init$: error: undefined reference to
'std.uni.InversionList!(std.uni.GcPolicy).InversionList.Intervals!(std.uni.CowArray!(std.uni.GcPolicy).CowArray).Intervals.__fieldPostblit()'
collect2: error: ld returned 1 exit status
--- errorlevel 1

With -v I see that it's compiling phobos in by calling gcc like 
this:

-l:libphobos2.a

When I replace that with just the path to phobos instead, it 
works.


Atila
Jun 15 2015
parent reply "Vladimir Panteleev" <vladimir thecybershadow.net> writes:
On Monday, 15 June 2015 at 15:50:59 UTC, Atila Neves wrote:
 Anyone else getting this problem on Arch Linux?

 dmd hello.d

 hello.o:hello.d:TypeInfo_S3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList67__T9IntervalsTS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArr
yZ9Intervals.init$: error: undefined reference to
'std.uni.InversionList!(std.uni.GcPolicy).InversionList.Intervals!(std.uni.CowArray!(std.uni.GcPolicy).CowArray).Intervals.__fieldPostblit()'
 collect2: error: ld returned 1 exit status
 --- errorlevel 1

 With -v I see that it's compiling phobos in by calling gcc like 
 this:

 -l:libphobos2.a

 When I replace that with just the path to phobos instead, it 
 works.
Not using Arch Linux, but just from your post it looks like it's not finding the libphobos.a from HEAD and using the system one instead. You may want to check the dmd.conf file for your HEAD D install: make sure DMD is using it (dmd | head -4), and that it adds the library search path correctly (-L-L switch in DFLAGS).
Jun 15 2015
parent "Atila Neves" <atila.neves gmail.com> writes:
On Tuesday, 16 June 2015 at 01:18:29 UTC, Vladimir Panteleev 
wrote:
 Not using Arch Linux, but just from your post it looks like 
 it's not finding the libphobos.a from HEAD and using the system 
 one instead.

 You may want to check the dmd.conf file for your HEAD D 
 install: make sure DMD is using it (dmd | head -4), and that it 
 adds the library search path correctly (-L-L switch in DFLAGS).
Thanks! Typo in dmd.conf... sigh. Atila
Jun 16 2015