ldc2.snap:1.21

Last commit made on 2021-03-25
Get this branch:
git clone -b 1.21 https://git.launchpad.net/ldc2.snap

Branch merges

Branch information

Name:
1.21
Repository:
lp:ldc2.snap

Recent commits

a34959e... by Joseph Wakeling

Prevent snapcraft patching RPATH for library dependencies

By default snapcraft will rewrite the RPATH of binaries to link against
libraries in the core snap. However, the prebuilt binaries used in the
LDC package are designed and expected to link against host system libs.
To allow them to do this we need to explicitly instruct snapcraft using
the `no-patchelf` build attribute.

For background see:
https://forum.snapcraft.io/t/librt-so-1-undefined-symbol-clock-nanosleep/16246/2

This should allow LTO builds with LDC >= 1.21.0 to work on more recent
systems (e.g. Ubuntu 20.04+).

Fixes https://github.com/ldc-developers/ldc2.snap/issues/121

3e2bc81... by Joseph Wakeling

Update to LDC 1.21.0 stable release

The upstream package builds against LLVM 10, so we get this update for
free in addition to the compiler version bump.

d12c4a0... by Joseph Wakeling

Merge switch to upstream package sources from 1.19 branch into 1.20

We now have much simpler upgrades: the aggregate diff between 1.19 and
1.20 is now just a tweak of the version number.

c54610a... by Joseph Wakeling

Remove custom LICENSE and ldc2.conf files

These should now be provided by the upstream package, so we do not need
to maintain local copies.

c245378... by Joseph Wakeling

Switch to using upstream prebuilt binaries for snap package

This is a major (major major MAJOR) change in the package design which
carries 3 major benefits:

  * it GREATLY simplifies the snap package design itself, taking
    advantage of the existing release packages that are designed
    for cross-distro, multi-arch support and reducing snap build
    times from hours to seconds

  * it allows us to support ARM64 as an install target

  * it precisely matches functionality between upstream releases
    and the snap package

There are however also some major costs:

  * it removes our ability to support i386 install targets, as
    upstream does not supply i386 builds

  * it assumes that the upstream build settings will match the
    needs of the snap package

If this approach is too heavy-handed then it might be possible to make a
compromise such as downloading only prebuilt LLVM and still building the
actual compiler and tool executables.

1d4de8b... by Joseph Wakeling

Set source-depth to 1 to speed up git checkouts

There seems to be no reason to check out the full git history here and
setting `source-depth: 1` for all git-sourced parts will both speed up
builds and reduce the volume of unnecessary data downloads.

3ba3004... by Joseph Wakeling

Update ddocYear test workaround for LDC 1.20.x

DMD 2.088.x introduced a nasty bug where the expected year in compiler
test output was hardcoded. DMD 2.090.x "fixed" this by updating the
hardcoded year from 2019 to 2020. This patch correspondingly tweaks our
own workaround introduced in d80460670e77175ae0e42ec578b1727726b313db,
which should be possible to remove with LDC 1.21+ (the upstream bug was
fixed properly in DMD 2.091.x).

e27c2c7... by Joseph Wakeling

Update to LDC 1.20.1 stable release

`ldc2.conf` has been updated to bring it in line with the upstream LDC
build, adding a separate section for 32-bit config and dropping the now
unneeded `--no-warn-mismatch`.

https://github.com/ldc-developers/ldc/releases/tag/v1.20.1

b3f10bc... by Joseph Wakeling

Update to LDC 1.19.0 stable release

https://github.com/ldc-developers/ldc/releases/tag/v1.19.0

4d11707... by Joseph Wakeling

Drop unnecessary ctest-setup part

There is no need for this to be a standalone part, as all it does is to
install a couple of build-packages. These can be moved to `ldc`, which
is the only real user, and highlighted as being ctest requirements.