Thread overview
dmd/druntime/phobos HEAD: can't link binaries on Arch Linux
Jun 15, 2015
Atila Neves
Jun 16, 2015
Vladimir Panteleev
Jun 16, 2015
Atila Neves
June 15, 2015
Anyone else getting this problem on Arch Linux?

dmd hello.d

hello.o:hello.d:TypeInfo_S3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList67__T9IntervalsTS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayZ9Intervals.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
June 16, 2015
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__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayZ9Intervals.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).
June 16, 2015
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