LDC compiler snap issues on 14.04 (ABI compatibility?)

Joseph Rushton Wakeling joseph.wakeling at webdrake.net
Fri Feb 10 20:41:52 UTC 2017


Hi all,

So, earlier today I tried out my ldc2 snap on an Ubuntu 14.04 system for the 
first time.

     sudo snap install --classic --edge ldc2

worked just fine, but I ran into problems as soon as I tried to compile a simple 
'hello world' program:

     void main()
     {
         import std.stdio : writeln;
         writeln("Hello, D!");
     }

Attempting to compile this program resulted in a segfault in GCC (which LDC 
invokes in order to link programs).

Running `ldc -v` for verbose output, the precise call that segfaulted was:

/usr/bin/gcc hello.o -o hello -L/snap/ldc2/3/bin/../lib -lphobos2-ldc 
-ldruntime-ldc -Wl,--gc-sections -lrt -ldl -lpthread -lm -m64

My suspicion is that that `libphobos2-ldc` and `libdruntime-ldc`, which are 
provided as precompiled static libraries in the snap package, are not ABI 
compatible with 14.04, hence the segfault.

What do people reckon, and any advice on how to address it?  This is a case 
where I don't see bundling GCC with the snap as really fixing things, because if 
my ABI suspicion is right, it would surely still result in incompatibility with 
any host-system libraries the user might want to link against.

It's possible I might be able to address this by supplying druntime and phobos 
as source-only libraries (not a problem since D compilation is extremely fast), 
but that's not going to solve things for other people facing a similar issue, so 
I'm happy to help testing things if a more robust solution seems possible.

Anyway, does anyone have any thoughts?

Thanks & best wishes,

     -- Joe




More information about the Snapcraft mailing list