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