Besides the version update, the package has been returned to a `stable`
grade, meaning it is possible in principle to promote this version to
the `candidate` and `stable` channels of the snap store.
Besides the version update, the package has been switched to `devel`
grade, meaning it will only be available in the `edge` and `beta`
channels of the snap store.
Add prepare: scriptlet to ensure dmd VERSION file is correct
The VERSION file in the dmd source is used to set version information in
the compiler itself (i.e. the output of the `dmd --version` command) but
cannot be relied upon to match the actual git tag. See: https://issues.dlang.org/show_bug.cgi?id=15910
The `prepare:` scriptlet introduced in this patch overwrites the default
VERSION file in the dmd source with the results of `git describe`, with
the `v` prefix removed. This should ensure that the version reported by
the packaged compiler always matches the git tag. Note that this should
also make it easier to identify problems if the choice of git source is
incorrect in any way.
Besides being generally useful in terms of guaranteeing correct version
information for the compiler, this fixes the particular issue that the
VERSION file for dmd v2.074.1 source continues to contain `2.074.0` and
not the correct compiler version.
This point release fixes several regressions, as well as removing the
outdated backend license file. For a list of all fixes, see: https://dlang.org/changelog/2.074.1.html
Fix issues with PIC on distros where it is mandatory
By default programs use the static phobos library which when not fully
compiled with -fPIC leads to problems on some distros. Using the shared
phobos library workarounds this because it is fully compiled with PIC.
The problem was simply that the static druntime library was not compiled
with PIC. Before this commit, on distros where PIC is mandatory
snapcraft manages to build dmd, druntime and phobos successfully, but not
the tools repo. Now this is fixed.
Additionally, the 'PIC=1' parameter is noop on the tools repo, becuase
it is not handled by posix.mak. It is actually unnecessary because
the tools makefile allows dmd to pickup the dmd.conf file (not the
case for druntime and phobos build) which already has PIC enabled.
Add -O3 to the CFLAGS used to build druntime and phobos
This patch manually restores the -O3 flag lost due to the changes made
in commit966f523452610181b8fcc1ab5ff18fb657b749c9, which adds explicit
`CFLAGS` for the druntime and phobos `make-parameters`. For the reasons
behind this change, see https://github.com/dlang-snaps/dmd.snap/pull/3.
Normally, `posix.mak` starts with a default set of `CFLAGS` which are
then extended with `-g` or `-O3` depending on whether we are making a
debug or release build. However, if we explicitly specify `CFLAGS` when
invoking the makefile, `posix.mak` takes this as a hard override and no
longer adds in the `-O3` option. We therefore need to manually include
it in our custom `CFLAGS`.