Commit 7d284aff authored by Dale Curtis's avatar Dale Curtis Committed by Commit Bot

Add nasm support to Chromium, use it for boringssl.

I'll switch ffmpeg over in a future CL since it seems to need some
work before it's ready to go.

Per davidben at chromium.org who originally authored this update
on https://chromium-review.googlesource.com/c/chromium/src/+/1119211:
Yasm has been unmaintained for a few years, while NASM is actively
maintained. Yasm is already missing some of the newer Intel
instructions, and will continue to miss newer ones. Additionally,
BoringSSL gets its assembly from OpenSSL which natively tests with NASM,
not Yasm, so using NASM puts us closer to the tested path.

BUG=766721
TEST=CQ is happy
R=brucedawson, davidben

Change-Id: Ifa49686e2985967c19b7fc91f94ef6350038fb7c
Reviewed-on: https://chromium-review.googlesource.com/c/1313832
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: default avatarBruce Dawson <brucedawson@chromium.org>
Reviewed-by: default avatarDavid Benjamin <davidben@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606271}
parent b5ad5b22
......@@ -961,6 +961,11 @@ deps = {
'condition': 'checkout_nacl and checkout_win',
},
'src/third_party/nasm': {
'url': Var('chromium_git') + '/chromium/deps/nasm.git' + '@' +
'20920a85609b0608d4c9c80b525196d07183b289'
},
'src/third_party/netty-tcnative/src': {
'url': Var('chromium_git') + '/external/netty-tcnative.git' + '@' + '5b46a8ef4a39c39c576fcdaaf718b585d75df463',
'condition': 'checkout_android',
......
......@@ -28,9 +28,9 @@
# of these change. If inputs is empty, the step will run only when the
# binary itself changes.
#
# visibility
# depfile
# deps
# args (all optional)
# visibility (all optional)
# Same meaning as action/action_foreach.
#
#
......@@ -85,6 +85,7 @@ template("compiled_action") {
[
"data_deps",
"deps",
"depfile",
"inputs",
"outputs",
"testonly",
......@@ -129,6 +130,7 @@ template("compiled_action_foreach") {
forward_variables_from(invoker,
[
"deps",
"depfile",
"inputs",
"outputs",
"sources",
......
......@@ -152,6 +152,7 @@
/mocha
/mockito/src
/nacl_sdk_binaries/
/nasm
/netty-tcnative/src
/netty4/src
/node/linux
......
......@@ -46,12 +46,11 @@ config("no_asm_config") {
all_sources = crypto_sources + ssl_sources
all_headers = crypto_headers + ssl_headers
# Windows' assembly is built with Yasm. The other platforms use the platform
# assembler.
# Exclude Yasm for Windows ARM64 because Yasm targets to x86 and x64 only.
# Windows' assembly is built with NASM. The other platforms use the platform
# assembler. Exclude Windows ARM64 because NASM targets x86 and x64 only.
if (is_win && !is_msan && current_cpu != "arm64") {
import("//third_party/yasm/yasm_assemble.gni")
yasm_assemble("boringssl_asm") {
import("//third_party/nasm/nasm_assemble.gni")
nasm_assemble("boringssl_asm") {
if (current_cpu == "x64") {
sources = crypto_sources_win_x86_64
} else if (current_cpu == "x86") {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment