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

--
Snapcraft mailing list
Snapcraft@lists.snapcraft.io
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/snapcraft

Reply via email to