Skip to content

Conversation

@jkloetzke
Copy link
Member

Add a pxargs (parallel xargs) helper that obeys the make job server protocol and use it in the strip class to parallelise all the objcopy calls. We may use the tool later for more parallelism in other recipes as well.

The problem with process substation is that it effectively disables the
effect of "set -e" for the substituted command. Use a more straight
forward pipe instead
While xargs can spawn multiple processes in parallel, it does not
integrate into the make job server protocol. This can easily overload
the system. Roll our own small helper that is just enough to understand
the job server and call some strip commands.
Prepare to be used as a tool in the strip class. Using it there requires
that the tool is available everywhere.
If possible, process the files in parallel.
This has the nice property that, without any argument, stripAll will
work on the current directory.
Instead of dropping requests to strip object files in stripBinary(),
exclude them already during fine. This saves some useless shell
invocations.
Now that stripping works in parallel, pass all involved directories at
once.
These tools are only used internally by the build steps. Their exact
version should not make a difference. Improve the artifact cache hit
rate by making these tools weak.
Passing the current directory as "." is not necessary because this is
the default.
@admlck
Copy link
Contributor

admlck commented Nov 2, 2025

This is so great! 👍

@jkloetzke jkloetzke merged commit 4dcdbb8 into BobBuildTool:master Nov 3, 2025
3 checks passed
@jkloetzke jkloetzke deleted the parallel-strip branch November 3, 2025 11:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants