diff options
Diffstat (limited to 'nixpkgs/pkgs/stdenv/generic/setup.sh')
-rw-r--r-- | nixpkgs/pkgs/stdenv/generic/setup.sh | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/nixpkgs/pkgs/stdenv/generic/setup.sh b/nixpkgs/pkgs/stdenv/generic/setup.sh index 081024781eef..ec8df76f2c79 100644 --- a/nixpkgs/pkgs/stdenv/generic/setup.sh +++ b/nixpkgs/pkgs/stdenv/generic/setup.sh @@ -1044,7 +1044,11 @@ _defaultUnpack() { case "$fn" in *.tar.xz | *.tar.lzma | *.txz) # Don't rely on tar knowing about .xz. - xz -d < "$fn" | tar xf - --warning=no-timestamp + # Additionally, we have multiple different xz binaries with different feature sets in different + # stages. The XZ_OPT env var is only used by the full "XZ utils" implementation, which supports + # the --threads (-T) flag. This allows us to enable multithreaded decompression exclusively on + # that implementation, without the use of complex bash conditionals and checks. + XZ_OPT="--threads=$NIX_BUILD_CORES" xz -d < "$fn" | tar xf - --warning=no-timestamp ;; *.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz) # GNU tar can automatically select the decompression method |