Add workaround for assembling crypto instructions on arm #311
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.
Hello,
This is a workaround for Zig issue ziglang/zig#10411 which prevents building the
sha1-asm
crate on zigbuild.The end result is that in the special case that the ARMv8 crypto IS extension is requested the
zig cc
invocation turns from:zig cc -g -target aarch64-linux-gnu ... -c src/aarch64.S -march=generic+crypto
to
zig cc -g -target aarch64-linux-gnu ... -c src/aarch64.S -march=generic+crypto -Xassembler -march=armv8-a+crypto
This way we skip zig cc and pass the correct
march
flag toclang-as
directly. This solves #149.As I'm not familiar with this codebase, the best way I found to implement this is to modify
filter_linker_arg
to return a vector of arguments. If there's another way you'd like me to structure this change please let me know.