Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
90 lines
3.5 KiB
XML
90 lines
3.5 KiB
XML
<?xml version="1.0" ?>
|
|
<gprconfig>
|
|
<!-- This differs from the default GNAT compiler description
|
|
in the following ways:
|
|
|
|
* gnatmake is used over gnatls to detect the GNAT version
|
|
since the latter is not part of the wrapper.
|
|
* to find the runtime libraries, we rely on the symlink
|
|
../nix-support/gprconfig-gnat-unwrapped which is a
|
|
gprconfig-specific addition to the cc-wrapper we employ
|
|
for Ada compilers (which is only GNAT at the moment).
|
|
|
|
For documentation on this file format and its use refer to
|
|
https://docs.adacore.com/gprbuild-docs/html/gprbuild_ug/companion_tools.html#the-gprconfig-knowledge-base
|
|
-->
|
|
<compiler_description>
|
|
<!-- We would like to name this something different, so users
|
|
of gprconfig know this is something custom, nixpkgs-related,
|
|
but unfortunately the knowledge base depends on the name of
|
|
the compiler for e. g. linker settings.
|
|
-->
|
|
<name>GNAT</name>
|
|
<executable prefix="1">(.*-.*-.*)?gnatmake</executable>
|
|
<version>
|
|
<external>${PREFIX}gnatmake -v</external>
|
|
<grep regexp="^GNATMAKE.+?(\d+(\.\d+)?)" group="1"></grep>
|
|
</version>
|
|
<languages>Ada</languages>
|
|
<variable name="gcc_version">
|
|
<external>${PREFIX}gcc -v</external>
|
|
<grep regexp="^[-\w]*gcc \S+ (\S+)" group="1"></grep>
|
|
</variable>
|
|
<!-- The ada runtime libraries and objects are only part of the unwrapped
|
|
GNAT derivation. We can't symlink them into the wrapper derivation
|
|
(at least not the canonical location) since that screws with linking
|
|
against libraries distributed with gcc.
|
|
|
|
As a workaround, we create a symlink to the unwrapped GNAT's "out"
|
|
output in the cc-wrapper which we can read into a variable here and
|
|
use to find GNAT's Ada runtime.
|
|
-->
|
|
<variable name="gnat_unwrapped">
|
|
<external>readlink -n ${PATH}/../nix-support/gprconfig-gnat-unwrapped</external>
|
|
</variable>
|
|
<runtimes default="default,kernel,native">
|
|
<directory group="default" >$gnat_unwrapped/lib/gcc(-lib)?/$TARGET/$gcc_version/adalib/</directory>
|
|
<directory group="default" contents="^rts-">$gnat_unwrapped/lib/gcc(-lib)?/$TARGET/$gcc_version/ada_object_path</directory>
|
|
<directory group="2" >$gnat_unwrapped/lib/gcc(-lib)?/$TARGET/$gcc_version/rts-(.*)/adalib/</directory>
|
|
<directory group="1" >$gnat_unwrapped/$TARGET/lib/gnat/(.*)/adalib/</directory>
|
|
</runtimes>
|
|
<target>
|
|
<external>${PREFIX}gcc -dumpmachine</external>
|
|
<grep regexp="[^\r\n]+"></grep>
|
|
</target>
|
|
</compiler_description>
|
|
<configuration>
|
|
<!-- aarch64-linux - native compiler. -->
|
|
<targets>
|
|
<target name="^aarch64-unknown-linux-gnu$" />
|
|
</targets>
|
|
<hosts>
|
|
<host name="^aarch64-unknown-linux-gnu$" />
|
|
</hosts>
|
|
<config>
|
|
for Archive_Builder use ("ar", "cr");
|
|
for Archive_Builder_Append_Option use ("q");
|
|
for Archive_Indexer use ("ranlib");
|
|
for Archive_Suffix use ".a";
|
|
</config>
|
|
</configuration>
|
|
<configuration>
|
|
<!-- aarch64-linux - native compiler. -->
|
|
<targets>
|
|
<target name="^aarch64-unknown-linux-gnu$" />
|
|
</targets>
|
|
<hosts>
|
|
<host name="^aarch64-unknown-linux-gnu$" />
|
|
</hosts>
|
|
<config>
|
|
for Object_Lister use ("nm", "-g");
|
|
for Object_Lister_Matcher use " [TDRBSG] (.*)";
|
|
|
|
package Linker is
|
|
for Export_File_Format use "GNU";
|
|
for Export_File_Switch use "-Wl,--version-script=";
|
|
end Linker;
|
|
</config>
|
|
</configuration>
|
|
</gprconfig>
|