-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add rule to define hermetic POSIX toolchain #34
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
aherrmann
force-pushed
the
hermetic-posix
branch
6 times, most recently
from
September 6, 2022 09:35
1da2d28
to
6e83db3
Compare
It is a helper target also required in other parts of rules_sh.
sh_binary for a Shell script creates a wrapper binary that relies on the runfiles mechanism to discover the corresponding shell script at runtime. This introduces an implicit dependency on the runfiles mechanism. The purpose of the true/false toolchain is to test sh_binaries that don't depend on runfiles, therefore the shell script approach is not appropriate. This uses C++ binaries instead.
aherrmann
force-pushed
the
hermetic-posix
branch
from
September 6, 2022 09:50
6e83db3
to
9b641e8
Compare
Merged
Windows put up a bit of a fight, but it's resolved now (see #35). |
avdv
approved these changes
Nov 3, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 💯 , only found a few nits.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
depends on #35
This implements a POSIX toolchain based on
sh_binaries
as part of #19.The toolchain uses the same toolchain type as the less hermetic version and is intended as an eventual replacement. For the moment it is marked as experimental, because there are more tasks to #19 that need to be closed before it can become a full replacement.
Backwards compatibility plan:
In the genrule use-case the hermetic POSIX toolchain can be used in the same way as the less hermetic version. In the custom rule use-case the toolchain provider exposes the same attributes as the less hermetic version for backwards compatibility. However, additional
tools
inputs must be declared to map the files into the build actions sandbox. If the tools have runfiles requirements, then the same workaround to bazelbuild/bazel#15486 as withsh_binaries
is required.