nixos/doc/rl-2211.section.md: changes w.r.t. cross check execution
This commit is contained in:
parent
c6cbef9aec
commit
1f8bae43e4
2 changed files with 47 additions and 6 deletions
|
@ -13,8 +13,22 @@
|
||||||
<itemizedlist spacing="compact">
|
<itemizedlist spacing="compact">
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Please remove this line when you add the first item since
|
During cross-compilation, tests are now executed if the test
|
||||||
docbook requires the section to be non-empty
|
suite can be executed by the build platform. This is the case
|
||||||
|
when doing “native” cross-compilation where the build and host
|
||||||
|
platforms are largely the same, but the nixpkgs’ cross
|
||||||
|
compilation infrastructure is used, e.g.
|
||||||
|
<literal>pkgsStatic</literal> and <literal>pkgsLLVM</literal>.
|
||||||
|
Another possibility is that the build platform is a superset
|
||||||
|
of the host platform, e.g. when cross-compiling from
|
||||||
|
<literal>x86_64-unknown-linux</literal> to
|
||||||
|
<literal>i686-unknown-linux</literal>. The predicate gating
|
||||||
|
test suite execution is the newly added
|
||||||
|
<literal>canExecute</literal> predicate: You can e.g. check if
|
||||||
|
<literal>stdenv.buildPlatform</literal> can execute binaries
|
||||||
|
built for <literal>stdenv.hostPlatform</literal> (i.e.
|
||||||
|
produced by <literal>stdenv.cc</literal>) by evaluating
|
||||||
|
<literal>stdenv.buildPlatform.canExecute stdenv.hostPlatform</literal>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
@ -35,8 +49,19 @@
|
||||||
<itemizedlist spacing="compact">
|
<itemizedlist spacing="compact">
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Please remove this line when you add the first item since
|
The <literal>isCompatible</literal> predicate checking CPU
|
||||||
docbook requires the section to be non-empty
|
compatibility is no longer exposed by the platform sets
|
||||||
|
generated using <literal>lib.systems.elaborate</literal>. In
|
||||||
|
most cases you will want to use the new
|
||||||
|
<literal>canExecute</literal> predicate instead which also
|
||||||
|
considers the kernel / syscall interface. It is briefly
|
||||||
|
described in the release’s
|
||||||
|
<link linkend="sec-release-22.11-highlights">highlights
|
||||||
|
section</link>.
|
||||||
|
<literal>lib.systems.parse.isCompatible</literal> still
|
||||||
|
exists, but has changed semantically: Architectures with
|
||||||
|
differing endianness modes are <emphasis>no longer considered
|
||||||
|
compatible</emphasis>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
|
@ -6,7 +6,16 @@ Support is planned until the end of June 2023, handing over to 23.05.
|
||||||
|
|
||||||
In addition to numerous new and upgraded packages, this release has the following highlights:
|
In addition to numerous new and upgraded packages, this release has the following highlights:
|
||||||
|
|
||||||
- Please remove this line when you add the first item since docbook requires the section to be non-empty
|
- During cross-compilation, tests are now executed if the test suite can be executed
|
||||||
|
by the build platform. This is the case when doing “native” cross-compilation
|
||||||
|
where the build and host platforms are largely the same, but the nixpkgs' cross
|
||||||
|
compilation infrastructure is used, e.g. `pkgsStatic` and `pkgsLLVM`. Another
|
||||||
|
possibility is that the build platform is a superset of the host platform, e.g. when
|
||||||
|
cross-compiling from `x86_64-unknown-linux` to `i686-unknown-linux`.
|
||||||
|
The predicate gating test suite execution is the newly added `canExecute`
|
||||||
|
predicate: You can e.g. check if `stdenv.buildPlatform` can execute binaries
|
||||||
|
built for `stdenv.hostPlatform` (i.e. produced by `stdenv.cc`) by evaluating
|
||||||
|
`stdenv.buildPlatform.canExecute stdenv.hostPlatform`.
|
||||||
|
|
||||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||||
|
|
||||||
|
@ -18,7 +27,14 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||||
|
|
||||||
## Backward Incompatibilities {#sec-release-22.11-incompatibilities}
|
## Backward Incompatibilities {#sec-release-22.11-incompatibilities}
|
||||||
|
|
||||||
- Please remove this line when you add the first item since docbook requires the section to be non-empty
|
- The `isCompatible` predicate checking CPU compatibility is no longer exposed
|
||||||
|
by the platform sets generated using `lib.systems.elaborate`. In most cases
|
||||||
|
you will want to use the new `canExecute` predicate instead which also
|
||||||
|
considers the kernel / syscall interface. It is briefly described in the
|
||||||
|
release's [highlights section](#sec-release-22.11-highlights).
|
||||||
|
`lib.systems.parse.isCompatible` still exists, but has changed semantically:
|
||||||
|
Architectures with differing endianness modes are *no longer considered compatible*.
|
||||||
|
|
||||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||||
|
|
||||||
## Other Notable Changes {#sec-release-22.11-notable-changes}
|
## Other Notable Changes {#sec-release-22.11-notable-changes}
|
||||||
|
|
Loading…
Reference in a new issue