Stops ARM from compiling 64-bit only C++ SingleJar #3382
Closed
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.
The C++ implementation of SingleJar only works for 64-bit platforms, as
it uses memory mapped files. Attempting to compile this on a 32-bit
platform gives the following error from
src/tools/singlejar/mapped_file.h
:As ARM is usually 32-bit (and I believe even the aarch64 64-bit ARM is still using
the ARM 32-bit compiler when compiling bazel, see
src/main/java/com/google/devtools/build/lib/util/CPU.java
andtools/cpp/lib_cc_configure.bzl
), forcing bazel to use theSingleJar_deploy.jar
java implementation of SingleJar fixes this issue.I suspect 32-bit Unix has the same issue, which could be fixed by adding the same configuration for
piii
, but I don't have a 32-bit x86 system to test it on. But if anyone is here by Googling the above error code, try replacing all thearm
references in this pull request withpiii
!