Commit ed8e8b94 authored by André Kempe's avatar André Kempe Committed by V8 LUCI CQ

Reland "Enable PAC and BTI for runtime generated code."

This is a reland of commit c482a66b

Original change's description:
> Enable PAC and BTI for runtime generated code.
>
> This patch enables PAC and BTI for runtime generated code when PAC
> is enabled. Additional BTI landing pads will resolve to NOOP when
> running on non BTI device and will not cause functional problems.
>
> Change-Id: I3993481df2c3c47e3e81bfb76a8c355f642cd572
> Bug: chromium:919548, v8:10026
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3548457
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Andre Kempe <andre.kempe@arm.com>
> Cr-Commit-Position: refs/heads/main@{#79630}

Bug: chromium:919548, chromium:1310642, v8:10026
Change-Id: I5f76705a222b5f4fbc07cf472c02e9b58b5171fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579164Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
Commit-Queue: Andre Kempe <andre.kempe@arm.com>
Cr-Commit-Position: refs/heads/main@{#79895}
parent 9154e8a8
...@@ -474,7 +474,8 @@ if (v8_multi_arch_build && ...@@ -474,7 +474,8 @@ if (v8_multi_arch_build &&
# Check if it is a Chromium build and activate PAC/BTI if needed. # Check if it is a Chromium build and activate PAC/BTI if needed.
# TODO(cavalcantii): have a single point of integration with PAC/BTI flags. # TODO(cavalcantii): have a single point of integration with PAC/BTI flags.
if (build_with_chromium && v8_current_cpu == "arm64" && if (build_with_chromium && v8_current_cpu == "arm64" &&
arm_control_flow_integrity == "standard") { (arm_control_flow_integrity == "standard" ||
arm_control_flow_integrity == "pac")) {
v8_control_flow_integrity = true v8_control_flow_integrity = true
} }
...@@ -1044,8 +1045,8 @@ config("toolchain") { ...@@ -1044,8 +1045,8 @@ config("toolchain") {
defines += [ "V8_TARGET_ARCH_ARM64" ] defines += [ "V8_TARGET_ARCH_ARM64" ]
if (current_cpu == "arm64") { if (current_cpu == "arm64") {
# This will enable PAC+BTI in code generation and static code. # This will enable PAC+BTI in code generation and static code.
if (v8_control_flow_integrity) { if (v8_control_flow_integrity &&
# TODO(v8:10026): Enable this in src/build. (!build_with_chromium || arm_control_flow_integrity == "standard")) {
cflags += [ "-mbranch-protection=standard" ] cflags += [ "-mbranch-protection=standard" ]
asmflags = [ "-mmark-bti-property" ] asmflags = [ "-mmark-bti-property" ]
} else if (build_with_chromium && arm_control_flow_integrity == "pac") { } else if (build_with_chromium && arm_control_flow_integrity == "pac") {
......
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