Make FIPS build work for Android cross-compile. Change-Id: I67db234ad80fa1eb4af4e28ac7b5236dd6ec4b63 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/38065 Commit-Queue: Adam Langley <agl@google.com> Reviewed-by: David Benjamin <davidben@google.com>
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index 477faae..b874c62 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt
@@ -424,13 +424,17 @@ ) if(FIPS_SHARED) + set(EXTRA_INJECT_HASH_ARGS) + if(ANDROID) + set(EXTRA_INJECT_HASH_ARGS "-sha256") + endif() # Rewrite libcrypto.so to inject the correct module hash value. This assumes # UNIX-style library naming, but we only support FIPS mode on Linux anyway. add_custom_command( TARGET crypto POST_BUILD COMMAND ${GO_EXECUTABLE} run ${CMAKE_CURRENT_SOURCE_DIR}/../util/fipstools/inject_hash/inject_hash.go - -o libcrypto.so -in-object libcrypto.so + -o libcrypto.so -in-object libcrypto.so ${EXTRA_INJECT_HASH_ARGS} # The DEPENDS argument to a POST_BUILD rule appears to be ignored. Thus # go_executable isn't used (as it doesn't get built), but we list this # dependency anyway in case it starts working in some CMake version.
diff --git a/crypto/fipsmodule/CMakeLists.txt b/crypto/fipsmodule/CMakeLists.txt index dc8f1b1..3081a41 100644 --- a/crypto/fipsmodule/CMakeLists.txt +++ b/crypto/fipsmodule/CMakeLists.txt
@@ -232,7 +232,7 @@ add_custom_command( OUTPUT bcm.o - COMMAND ld -r -T ${CMAKE_CURRENT_SOURCE_DIR}/fips_shared.lds -o bcm.o --whole-archive $<TARGET_FILE:bcm_library> + COMMAND ${CMAKE_LINKER} -r -T ${CMAKE_CURRENT_SOURCE_DIR}/fips_shared.lds -o bcm.o --whole-archive $<TARGET_FILE:bcm_library> DEPENDS bcm_library fips_shared.lds WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )
diff --git a/util/fipstools/acvp/modulewrapper/modulewrapper.cc b/util/fipstools/acvp/modulewrapper/modulewrapper.cc index f877c75..fd7639a 100644 --- a/util/fipstools/acvp/modulewrapper/modulewrapper.cc +++ b/util/fipstools/acvp/modulewrapper/modulewrapper.cc
@@ -12,9 +12,11 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include <string> #include <vector> #include <assert.h> +#include <errno.h> #include <string.h> #include <sys/uio.h> #include <unistd.h>