Package Details: ldc-git 1:v1.0.0.beta1.167.gd9b012b-1

Git Clone URL: https://aur.archlinux.org/ldc-git.git (read-only)
Package Base: ldc-git
Description: A D Compiler based on the LLVM Compiler Infrastructure including D runtime and libphobos2
Upstream URL: https://github.com/ldc-developers/ldc
Licenses: BSD
Groups: dlang, dlang-ldc
Conflicts: liblphobos-git
Provides: d-compiler d-runtime, d-stdlib
Submitter: zfo
Maintainer: zfo
Last Packager: zfo
Votes: 2
Popularity: 0.000035
First Submitted: 2016-05-29 23:10
Last Updated: 2016-06-06 20:17

Latest Comments

dsboger commented on 2016-07-13 02:48

I'm using a workaround proposed in the bug report mentioned in the previous post, so terminix-git uses ldc from official repos.

dsboger commented on 2016-06-20 15:39

Update 2: I'll update terminix-git to use LDC when either this package is fixed (I can work on that, if you prefer) or the LDC fix is released in a new ldc official package.

Update: the fix for the issue in [1] got merged in master upstream. I've already tested it and terminix builds and works fine. But like I said below, only the downgraded ldc-git PKGBUILD works for me.

I've managed to compile both gtkd-git and terminix-git using the flag indicated in [1], and it works! But I had to "downgrade" the ldc-git to commit 613e4314b75ee0173b7908d435d8cea7d738fba0 "initial commit".

I'll wait a bit for a proper fix for ldc upstream, then I'll start moving terminix-git to compile with ldc (it probably will require changing configure.ac a bit, so it may take a while).

[1] https://github.com/ldc-developers/ldc/issues/1534#issuecomment-227171243

dsboger commented on 2016-06-08 03:19

I've tried to rebuild gtkd with this version, but got a linking error:

ldc-git -shared -oflibgtkd-3.so -L-ldl -m64 -L-soname=libgtkd-3.so.0 ${OBJFILES}
/usr/bin/ld: /usr/lib/liblphobos2-git.a(getopt.o): relocation R_X86_64_32 against `_D11TypeInfo_xb6__initZ' can not be used when making a shared object; recompile with -fPIC
/usr/lib/liblphobos2-git.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status

(${OBJFILES} is a huge list of .o files)

P.S.: I'd like to suggest dropping the "-git" suffix and just adding provides/conflicts with ldc. That way it can be used as a drop-in replacement for building other packages, while the -git suffix requires manually adapting the PKGBUILD (of gtkd, for example).

zfo commented on 2016-06-06 20:23

@dsboger: I just received the request to use static linking by default and use only one package as phobos as to be rebuilt anyhows.
I think both make sense as you probably won't have liblphobos-git installed on other machines. The upgrade should be conflict-free (it will remove liblphobos-git), let me know if you experience troubles!

zfo commented on 2016-05-30 10:49

Seems like my last message got lost - I added a couple of patches, s.t. you can build `ldc-git` and have both ldc and ldc-git installed on your system. I am not sure yet whether this is really a good idea. What do you think?

> It seems the build process is looking for the bootstrap ldc in the path. Maybe an upstream bug?

I think so: https://github.com/ldc-developers/ldc/issues/1530
The current script now eliminates the ldc option and depends on dmd to bootstrap itself.

> It seems like terminix is being both statically and dynamically linked against phobos? Should I report this upstream?

Yes please.

> could you do submodules

done. thanks for the hint

dsboger commented on 2016-05-30 02:43

I could build both gtkd and terminix with ldc, but when I try to launch terminix I get the following error:

Fatal Error while loading '/usr/lib/libphobos2-ldc.so.71':
The module 'std.regex.internal.parser' is already defined in './terminix'.

It seems like terminix is being both statically and dynamically linked against phobos? Should I report this upstream?

dsboger commented on 2016-05-30 01:32

It works if I first remove any ldc from the system. It seems the build process is looking for the bootstrap ldc in the path. Maybe an upstream bug?

dsboger commented on 2016-05-30 01:25

A nitpick: could you do submodules like recommended in https://wiki.archlinux.org/index.php/VCS_package_guidelines#Git_Submodules, so that one doesn't need to re-clone the repos on each build? Thanks!

confusedfla commented on 2016-05-30 00:34

The problem seems to be that ldc uses ldc to bootstrap itself, so the binary links to its older versions. I will dig a bit deeper. Sorry about the troubles.

ldd /usr/bin/ldc-git
linux-vdso.so.1 (0x00007ffc2d5ee000)
libconfig.so.9 => /usr/lib/libconfig.so.9 (0x00007f1efe586000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007f1efe37e000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f1efe17a000)
libncursesw.so.6 => /usr/lib/libncursesw.so.6 (0x00007f1efdf0d000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f1efdcf0000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007f1efdada000)
libphobos2-ldc.so.68 => /usr/lib/libphobos2-ldc.so.68 (0x00007f1efd470000)
libdruntime-ldc.so.68 => /usr/lib/libdruntime-ldc.so.68 (0x00007f1efd183000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f1efce7f000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f1efcaf8000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f1efc8e2000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f1efc541000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1efe792000)

dsboger commented on 2016-05-30 00:24

I'm trying to build gtkd with this version of ldc but it's failing with the following error message:

ldc: symbol lookup error: ldc: undefined symbol: _D4core7runtime7Runtime5cArgsFNdZS4core7runtime5CArgs

That error occurs whenever a run "$ ldc", so the issue seems to be with ldc itself. Any ideas?