From bc786a95695bbd2071eb786208f5957c5c90016b Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Fri, 31 Oct 2014 17:27:40 -0400 Subject: [PATCH] Build with yasm on Win64 as well. Chromium's doesn't have built-in support for ml64.exe. Seems easier to just build consistently with Yasm on both Win32 and Win64. (This will require an equivalent change in Chromium's build, but keep upstream and downstream builds consistent.) Also don't set CMAKE_ASM_NASM_COMPILER explicitly; cmake's default ASM_NASM behavior will search for both nasm or yasm in %PATH%. Leave it unset so it can be overwritten on the command-line to point to a particular yasm. Update BUILDING accordingly. Verified the tests still pass. Change-Id: I7e434be474b5b2d49e3bafbced5b41cc0246bd00 Reviewed-on: https://boringssl-review.googlesource.com/2104 Reviewed-by: Adam Langley --- BUILDING | 5 +++++ crypto/CMakeLists.txt | 12 +++++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/BUILDING b/BUILDING index ee6b0ab9..cf239e9a 100644 --- a/BUILDING +++ b/BUILDING @@ -25,4 +25,9 @@ BORINGSSL_IMPLEMENTATION. On Windows, where functions need to be tagged with BORINGSSL_SHARED_LIBRARY defined in the code which #includes the BoringSSL headers. +To build on Windows, Yasm[2] is required for assembly. Either ensure yasm.exe +is in %PATH% or configure CMAKE_ASM_NASM_COMPILER appropriately. Note that +full Windows support is still in progress. + [1] http://martine.github.io/ninja/ +[2] http://yasm.tortall.net/ diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index f98c7c86..d820e823 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt @@ -10,18 +10,16 @@ elseif(UNIX) enable_language(ASM) else() if (CMAKE_CL_64) - message("Using masm") - set(PERLASM_STYLE masm) - enable_language(ASM_MASM) + message("Using nasm") + set(PERLASM_STYLE nasm) else() message("Using win32n") set(PERLASM_STYLE win32n) - - # On 32-bit, upstream supports only NASM, not MASM. We'll use Yasm, specifically. - set(CMAKE_ASM_NASM_COMPILER "yasm") - enable_language(ASM_NASM) endif() + + # On Windows, we use the NASM output, specifically built with Yasm. set(ASM_EXT asm) + enable_language(ASM_NASM) endif() function(perlasm dest src)