Snapping LDC (LLVM-based D compiler)

Andrew Wilkins andrew.wilkins at
Tue Aug 30 04:18:27 UTC 2016

On Tue, Aug 30, 2016 at 6:06 AM Joseph Rushton Wakeling <
joseph.wakeling at> wrote:

> On 29.08.2016 03:38, Andrew Wilkins wrote:
> > I've been looking into doing this too, for llgo (Go compiler frontend
> for LLVM).
> Nice! :-)
> > You need libc6-dev also. After including that, I was then met with
> another
> > issue: is a linker script, and that uses absolute paths to point
> at the
> > real libraries. I haven't solved that yet. If it's possible to override
> files in
> > a staged package, you could just provide a replacement linker script.
> Yea, including libc6-dev gets me to the point where attempting to build a
> program fails with:
>      cannot find /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a
> ... which I presume is down to the linker script expecting the absolute
> paths
> you describe.
> I already edit some stuff after the stage -- my current process is to type
> `snapcraft stage`, and after that completes, editing files in the `stage/`
> directory, followed by `snapcraft snap` to finish it up.
> So, in principle it should be possible to edit the stuff in
> stage/usr/lib/x86_64-linux-gnu to change the paths.  (I guess it'll need
> to be
> more than just though; I'd guess and will
> also
> need to be tweaked.)
> It's a bit late at night for me to start work on it now and I probably
> won't
> have time tomorrow, but I'll give it a go some time this week.  If you get
> to it
> before me and it works for you, let me know!

Actually, editing the files isn't necessary at all. You can just pass the
--sysroot option to gcc. I just hacked up a quick gcc snap which works:

If you can convince ldc2 to pass the same option (/etc/ldc2.conf?), then it
should just work.


> Thanks & best wishes,
>      -- Joe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Snapcraft mailing list