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">
|
||||
<listitem>
|
||||
<para>
|
||||
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.
|
||||
<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>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
@ -35,8 +49,19 @@
|
|||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>
|
||||
Please remove this line when you add the first item since
|
||||
docbook requires the section to be non-empty
|
||||
The <literal>isCompatible</literal> predicate checking CPU
|
||||
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>
|
||||
</listitem>
|
||||
</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:
|
||||
|
||||
- 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. -->
|
||||
|
||||
|
@ -18,7 +27,14 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
## 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. -->
|
||||
|
||||
## Other Notable Changes {#sec-release-22.11-notable-changes}
|
||||
|
|
Loading…
Reference in a new issue