gnat: 9 -> 11

Update the default GNAT version from 9 to 11, as GNAT >= 11 is required
to compile the 22.* AdaCore libraries.

To allow this, we need to pick a patch from ghdl's master fixing a
compilation problem with GNAT 11.
This commit is contained in:
sternenseemann 2021-11-01 12:55:18 +01:00 committed by sterni
parent 7adb11cf58
commit debf4fc929
4 changed files with 21 additions and 3 deletions

View file

@ -1358,6 +1358,13 @@ Superuser created successfully.
<literal>services.ddclient.passwordFile</literal>.
</para>
</listitem>
<listitem>
<para>
The default GNAT version has been changed: The
<literal>gnat</literal> attribute now points to
<literal>gnat11</literal> instead of <literal>gnat9</literal>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-21.11-notable-changes">

View file

@ -404,6 +404,9 @@ In addition to numerous new and upgraded packages, this release has the followin
- The `services.ddclient.password` option was removed, and replaced with `services.ddclient.passwordFile`.
- The default GNAT version has been changed: The `gnat` attribute now points to `gnat11`
instead of `gnat9`.
## Other Notable Changes {#sec-release-21.11-notable-changes}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, callPackage, gnat, zlib, llvm, lib
{ stdenv, fetchFromGitHub, fetchpatch, callPackage, gnat, zlib, llvm, lib
, backend ? "mcode" }:
assert backend == "mcode" || backend == "llvm";
@ -14,6 +14,15 @@ stdenv.mkDerivation rec {
sha256 = "1gyh0xckwbzgslbpw9yrpj4gqs9fm1a2qpbzl0sh143fk1kwjlly";
};
patches = [
# Allow compilation with GNAT 11, picked from master
(fetchpatch {
name = "fix-gnat-11-compilation.patch";
url = "https://github.com/ghdl/ghdl/commit/8356ea3bb4e8d0e5ad8638c3d50914b64fc360ec.patch";
sha256 = "04pzn8g7xha8000wbjjmry6h1grfqyn3bjvj47hi4qwgl21wfjra";
})
];
LIBRARY_PATH = "${stdenv.cc.libc}/lib";
buildInputs = [ gnat zlib ] ++ lib.optional (backend == "llvm") [ llvm ];

View file

@ -11878,8 +11878,7 @@ with pkgs;
inherit (gnome2) libart_lgpl;
});
# aarch64-darwin doesn't support earlier gcc
gnat = if (stdenv.isDarwin && stdenv.isAarch64) then gnat11 else gnat9;
gnat = gnat11;
gnat6 = wrapCC (gcc6.cc.override {
name = "gnat";