diff options
author | Janne Heß <janne@hess.ooo> | 2024-03-27 19:10:27 +0100 |
---|---|---|
committer | Valentin Gagarin <valentin.gagarin@tweag.io> | 2024-03-28 09:28:12 +0100 |
commit | fcc95ff8172cc68a0d2d52aa1e8ef2120d2904ec (patch) | |
tree | 8de1a02f7d1624c97562c7736896a6c95c74ec04 /doc/stdenv/cross-compilation.chapter.md | |
parent | bc77c7a9730833c7668c92288c6af950e7270cb5 (diff) |
treewide: Fix all Nix ASTs in all markdown files
This allows for correct highlighting and maybe future automatic formatting. The AST was verified to work with nixfmt only.
Diffstat (limited to 'doc/stdenv/cross-compilation.chapter.md')
-rw-r--r-- | doc/stdenv/cross-compilation.chapter.md | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/doc/stdenv/cross-compilation.chapter.md b/doc/stdenv/cross-compilation.chapter.md index 7ccd94f6e20ec..76c931ba047ae 100644 --- a/doc/stdenv/cross-compilation.chapter.md +++ b/doc/stdenv/cross-compilation.chapter.md @@ -15,7 +15,9 @@ Nixpkgs follows the [conventions of GNU autoconf](https://gcc.gnu.org/onlinedocs In Nixpkgs, these three platforms are defined as attribute sets under the names `buildPlatform`, `hostPlatform`, and `targetPlatform`. They are always defined as attributes in the standard environment. That means one can access them like: ```nix -{ stdenv, fooDep, barDep, ... }: ...stdenv.buildPlatform... +{ stdenv, fooDep, barDep, ... }: { + # ...stdenv.buildPlatform... +} ``` `buildPlatform` @@ -127,7 +129,9 @@ Some frequently encountered problems when packaging for cross-compilation should Many packages assume that an unprefixed binutils (`cc`/`ar`/`ld` etc.) is available, but Nix doesn't provide one. It only provides a prefixed one, just as it only does for all the other binutils programs. It may be necessary to patch the package to fix the build system to use a prefix. For instance, instead of `cc`, use `${stdenv.cc.targetPrefix}cc`. ```nix -makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; +{ + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; +} ``` #### How do I avoid compiling a GCC cross-compiler from source? {#cross-qa-avoid-compiling-gcc-cross-compiler} @@ -142,7 +146,9 @@ $ nix-build '<nixpkgs>' -A pkgsCross.raspberryPi.hello Add the following to your `mkDerivation` invocation. ```nix -depsBuildBuild = [ buildPackages.stdenv.cc ]; +{ + depsBuildBuild = [ buildPackages.stdenv.cc ]; +} ``` #### My package’s testsuite needs to run host platform code. {#cross-testsuite-runs-host-code} @@ -150,7 +156,9 @@ depsBuildBuild = [ buildPackages.stdenv.cc ]; Add the following to your `mkDerivation` invocation. ```nix -doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; +{ + doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; +} ``` #### Package using Meson needs to run binaries for the host platform during build. {#cross-meson-runs-host-code} @@ -160,11 +168,13 @@ Add `mesonEmulatorHook` to `nativeBuildInputs` conditionally on if the target bi e.g. ```nix -nativeBuildInputs = [ - meson -] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ - mesonEmulatorHook -]; +{ + nativeBuildInputs = [ + meson + ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ + mesonEmulatorHook + ]; +} ``` Example of an error which this fixes. |