setup-hooks/strip: parallelise stripping
This makes bootstrapping to GNU hello ~1-2% faster on an 8-core machine and ~3-4% faster on a 64-core machine.
This commit is contained in:
parent
e6ca034dec
commit
70945eb79b
@ -62,7 +62,12 @@ stripDirs() {
|
||||
if [ -n "${paths}" ]; then
|
||||
echo "stripping (with command $cmd and flags $stripFlags) in $paths"
|
||||
# Do not strip lib/debug. This is a directory used by setup-hooks/separate-debug-info.sh.
|
||||
find $paths -type f -a '!' -wholename "$prefix/lib/debug/*" -exec $cmd $stripFlags '{}' \; 2>/dev/null
|
||||
find $paths -type f -a '!' -path "$prefix/lib/debug/*" -print0 |
|
||||
xargs -r -0 -n1 -P "$NIX_BUILD_CORES" $cmd $stripFlags 2>/dev/null || exit_code=$?
|
||||
# xargs exits with status code 123 if some but not all of the
|
||||
# processes fail. We don't care if some of the files couldn't
|
||||
# be stripped, so ignore specifically this code.
|
||||
[[ "$exit_code" = 123 || -z "$exit_code" ]]
|
||||
# 'strip' does not normally preserve archive index in .a files.
|
||||
# This usually causes linking failures against static libs like:
|
||||
# ld: ...-i686-w64-mingw32-stage-final-gcc-13.0.0-lib/i686-w64-mingw32/lib/libstdc++.dll.a:
|
||||
|
Loading…
Reference in New Issue
Block a user