Commit Graph

23 Commits

Author SHA1 Message Date
Nico Weber
5df31db055 Make win/cross build work better when targeting arm64 on macOS hosts.
Remove a special case on mac hosts that was needed when is_clang wasn't
the default on Win, but is unnecessary now and gets in the way.

Bug: chromium:801780,chromium:495204
Change-Id: I8d6783c73e0c240704830a46304482e3ce94418b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534634
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60415}
2019-03-22 18:30:23 +00:00
Tom Tan
a6423cca4a Reland "Add Windows ARM64 ABI support to V8"
This is a reland of fcbb023b0e

Original change's description:
> Add Windows ARM64 ABI support to V8
>
> This change added Windows ARM64 ABI support, major things are:
> 1. Excluding x18 register from any usage because it is reserved as
>    platform register. Preserve alignment after the change.
> 2. Fix the assumption of LP64 in arm64 backend. Windows ARM64 is
>    still LLP64.
> 3. Stack guard page probe for large allocation on stack.
>
> Reference:
> Windows ARM64 ABI:
> https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=vs-2017
>
> Bug: chromium:893460
> Change-Id: I325884ac8dab719154a0047141e18a9fcb8dff7e
> Reviewed-on: https://chromium-review.googlesource.com/c/1285129
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#56881}

CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_arm64_dbg_recipe
TBR=mlippautz@chromium.org

Bug: chromium:893460
Change-Id: Icc45fd091c33f7df805842a70236b79b14756f52
Reviewed-on: https://chromium-review.googlesource.com/c/1297300
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56965}
2018-10-24 19:46:36 +00:00
Michael Hablich
d2d217d8ed Revert "Add Windows ARM64 ABI support to V8"
This reverts commit fcbb023b0e.

Reason for revert: blocks roll https://chromium-review.googlesource.com/c/chromium/src/+/1296315

Original change's description:
> Add Windows ARM64 ABI support to V8
> 
> This change added Windows ARM64 ABI support, major things are:
> 1. Excluding x18 register from any usage because it is reserved as
>    platform register. Preserve alignment after the change.
> 2. Fix the assumption of LP64 in arm64 backend. Windows ARM64 is
>    still LLP64.
> 3. Stack guard page probe for large allocation on stack.
> 
> Reference:
> Windows ARM64 ABI:
> https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=vs-2017
> 
> Bug: chromium:893460
> Change-Id: I325884ac8dab719154a0047141e18a9fcb8dff7e
> Reviewed-on: https://chromium-review.googlesource.com/c/1285129
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#56881}

TBR=bbudge@chromium.org,ulan@chromium.org,machenbach@chromium.org,hpayer@chromium.org,brucedawson@chromium.org,mlippautz@chromium.org,ahaas@chromium.org,bmeurer@chromium.org,Tom.Tan@microsoft.com

Change-Id: I0b804af6dfca9409a655194fa6e5407f209be2dc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:893460
Reviewed-on: https://chromium-review.googlesource.com/c/1296460
Reviewed-by: Michael Hablich <hablich@chromium.org>
Commit-Queue: Michael Hablich <hablich@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56912}
2018-10-23 17:32:43 +00:00
Tom Tan
fcbb023b0e Add Windows ARM64 ABI support to V8
This change added Windows ARM64 ABI support, major things are:
1. Excluding x18 register from any usage because it is reserved as
   platform register. Preserve alignment after the change.
2. Fix the assumption of LP64 in arm64 backend. Windows ARM64 is
   still LLP64.
3. Stack guard page probe for large allocation on stack.

Reference:
Windows ARM64 ABI:
https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=vs-2017

Bug: chromium:893460
Change-Id: I325884ac8dab719154a0047141e18a9fcb8dff7e
Reviewed-on: https://chromium-review.googlesource.com/c/1285129
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56881}
2018-10-23 08:45:48 +00:00
Ivica Bogosavljevic
ecb98b8d7f MIPS[64]: Generate snapshots on MIPS big-endian targets
It is not possible to simulate big-endian systems on X64/X86,
so snapshots must be generated natively or using an emulator
such as qemu.

Bug: 
Change-Id: Ib7ea6fe27ea5da19f270251f18fbc5f1c43413ce
Reviewed-on: https://chromium-review.googlesource.com/771673
Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Cr-Commit-Position: refs/heads/master@{#49621}
2017-11-24 19:00:32 +00:00
sreten.kovacevic
64a6059918 MIPS[64]: Add support for big endian build using GN
Chromium_BUG=616017
R=machenbach@chromium.org, dpranke@chromium.org, ivica.bogosavljevic@imgtec.com

Review-Url: https://codereview.chromium.org/2913353004
Cr-Commit-Position: refs/heads/master@{#45691}
2017-06-02 15:02:18 +00:00
slan
5a8f92901b Use clang for snapshot_toolchain by default, except on ChromeOS.
Non-CrOS builds should use clang for snapshot_toolchain, even on builds which use gcc for the target device. Change the default value for snapshot_toolchain to always use clang, except on ChromeOS gcc builds. In practice, every platform except ChromeOS always uses clang, so this should not affect any platform except non-CrOS gcc builds (like Cast)

BUG= internal b/30873074

Review-Url: https://codereview.chromium.org/2265983002
Cr-Commit-Position: refs/heads/master@{#38825}
2016-08-23 14:04:27 +00:00
dpranke
682a41db33 Attempt #4 to land "Fix double-building of v8 in GN builds."
The third attempt never landed :). This attempt completely reworks
the logic to attempt to be clearer and more obviously correct. This
attempt also actually had unit tests written for it (see bug 625353).

R=machenbach@chromium.org
BUG=625353, 629825
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_compile_x86_dbg,android_compile_mips_dbg,android_arm64_dbg_recipe

Review-Url: https://codereview.chromium.org/2173343002
Cr-Commit-Position: refs/heads/master@{#37999}
2016-07-25 09:30:17 +00:00
vogelheim
54f663e2f2 Revert of Re-land "Fix double-building of v8 in GN builds" (patchset #2 id:20001 of https://codereview.chromium.org/2171083003/ )
Reason for revert:
Reverted, because it breaks some funky android build.

Can reproduce breakage locally, w/ args.gn as follows:
disable_brotli_filter = true
disable_file_support = true
disable_ftp_support = true
enable_websockets = false
ffmpeg_branding = "Chrome"
is_component_build = false
is_debug = true
proprietary_codecs = true
symbol_level = 1
target_cpu = "x86"
target_os = "android"
use_goma = true
use_platform_icu_alternatives = true

This ends up building the mkpeephole tool w/ an architecture that won't run on the build machine.

Original issue's description:
> Re-land "Fix double-building of v8 in GN builds"
>
> This re-lands r37926 w/ the needed fix for cross-compiles; we
> can only re-use the default toolchain when the host can actually
> run it.
>
> R=machenbach@chromium.org
> BUG=629825
>
> Committed: https://crrev.com/5b762044b53f988fa9a534fe1a84f9938b3abd75
> Cr-Commit-Position: refs/heads/master@{#37970}

TBR=machenbach@chromium.org,dpranke@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=629825

Review-Url: https://codereview.chromium.org/2175693003
Cr-Commit-Position: refs/heads/master@{#37984}
2016-07-22 13:22:21 +00:00
dpranke
5b762044b5 Re-land "Fix double-building of v8 in GN builds"
This re-lands r37926 w/ the needed fix for cross-compiles; we
can only re-use the default toolchain when the host can actually
run it.

R=machenbach@chromium.org
BUG=629825

Review-Url: https://codereview.chromium.org/2171083003
Cr-Commit-Position: refs/heads/master@{#37970}
2016-07-22 08:21:32 +00:00
dpranke
8526513ce5 Fix mips64el typo in snapshot_toolchain.gni.
I had written "mipsel64", not "mips64el".

R=machenbach@chromium.org, milko.leporis@imgtec.com
BUG=629057

Review-Url: https://codereview.chromium.org/2167873002
Cr-Commit-Position: refs/heads/master@{#37951}
2016-07-21 17:20:39 +00:00
machenbach
f6f8062fca Revert of Fix double-building of v8 in GN builds when setting just v8_target_cpu. (patchset #1 id:1 of https://codereview.chromium.org/2166173002/ )
Reason for revert:
Breaks:
https://build.chromium.org/p/client.v8.fyi/builders/V8%20Android%20GN%20%28dbg%29/builds/4590

And also the trybot:
https://build.chromium.org/p/tryserver.chromium.android/builders/android_clang_dbg_recipe/builds/99806

Original issue's description:
> Fix double-building of v8 in GN builds when setting just v8_target_cpu.
>
> Because of the somewhat strange way default toolchains and custom
> toolchains and user-specified arguments work in GN, if you did a v8
> build that just set v8_target_cpu, you could end up building two
> identical copies of v8 (see the comments in the change for more).
>
> This CL identifies that case and fixes it.
>
> R=machenbach@chromium.org
> BUG=629825
>
> Committed: https://crrev.com/3536db45c9409c9aadc4eee6004cf337c0588cdb
> Cr-Commit-Position: refs/heads/master@{#37926}

TBR=dpranke@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=629825

Review-Url: https://codereview.chromium.org/2167113002
Cr-Commit-Position: refs/heads/master@{#37936}
2016-07-21 10:55:58 +00:00
dpranke
3536db45c9 Fix double-building of v8 in GN builds when setting just v8_target_cpu.
Because of the somewhat strange way default toolchains and custom
toolchains and user-specified arguments work in GN, if you did a v8
build that just set v8_target_cpu, you could end up building two
identical copies of v8 (see the comments in the change for more).

This CL identifies that case and fixes it.

R=machenbach@chromium.org
BUG=629825

Review-Url: https://codereview.chromium.org/2166173002
Cr-Commit-Position: refs/heads/master@{#37926}
2016-07-21 09:06:42 +00:00
dpranke
6c3aaae969 Land v8-side changes to switch to v8_current_cpu in the GN build.
This change makes  the architecture that we target generated
v8 code for a property of the current toolchain, rather than a
global setting that applies to every toolchain.

This will allow us to properly build two snapshots for two different
architectures in a single build, which is needed for android
webview/monochrome builds.

R=brettw@chromium.org, jochen@chromium.org, michaelbai@chromium.org
BUG=625383

Review-Url: https://codereview.chromium.org/2116913002
Cr-Commit-Position: refs/heads/master@{#37805}
2016-07-15 22:35:20 +00:00
dpranke
2e0bd36d27 Try to reland v8_snapshot GN build changes, take #3
This patch re-lands #36341 with another fix to make
the amd64-generic build work as well.

R=machenbach@chromium.org, hablich@chromium.org, adamk@chromium.org
BUG=608596, 595653
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:chromeos_daisy_chromium_compile_only_ng,chromeos_amd64-generic_chromium_compile_only_ng,chromeos_x86-generic_chromium_compile_only_ng,linux_chromium_gn_chromeos_rel,linux_chromium_gn_chromeos_dbg

Review-Url: https://codereview.chromium.org/1996513005
Cr-Commit-Position: refs/heads/master@{#36390}
2016-05-20 07:00:09 +00:00
machenbach
2c95b572cc Revert of Reland changes to v8_snapshot GN build arg. (patchset #2 id:20001 of https://codereview.chromium.org/1979883002/ )
Reason for revert:
Blocks the roll again:
https://codereview.chromium.org/1993163002/

https://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_amd64-generic_chromium_compile_only_ng/builds/140169

Lets add chromeos_amd64-generic_chromium_compile_only_ng on a reland as well.

Original issue's description:
> Reland changes to v8_snapshot GN build arg.
>
> This patch re-lands #36193 with a couple of minor tweaks
> including updating the BUILD.gn file to use the new
> variable name and incorporating thakis' request to support
> cross-compiling the win snapshot from a mac.
>
> R=thakis@chromium.org, jochen@chromium.org, machenbach@chromium.org
> BUG=608596, 595653
> CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:chromeos_daisy_chromium_compile_only_ng
>
> Committed: https://crrev.com/b6168e1223d266dba1a357a921bc84ae97a1d803
> Cr-Commit-Position: refs/heads/master@{#36342}

TBR=jochen@chromium.org,thakis@chromium.org,stevenjb@chromium.org,adamk@chromium.org,dpranke@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=608596, 595653

Review-Url: https://codereview.chromium.org/1996533002
Cr-Commit-Position: refs/heads/master@{#36347}
2016-05-19 07:11:39 +00:00
dpranke
b6168e1223 Reland changes to v8_snapshot GN build arg.
This patch re-lands #36193 with a couple of minor tweaks
including updating the BUILD.gn file to use the new
variable name and incorporating thakis' request to support
cross-compiling the win snapshot from a mac.

R=thakis@chromium.org, jochen@chromium.org, machenbach@chromium.org
BUG=608596, 595653
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:chromeos_daisy_chromium_compile_only_ng

Review-Url: https://codereview.chromium.org/1979883002
Cr-Commit-Position: refs/heads/master@{#36342}
2016-05-19 01:06:33 +00:00
machenbach
51db73923d Revert of Change v8_snapshot_toolchain to be a GN build arg. (patchset #3 id:40001 of https://codereview.chromium.org/1969693002/ )
Reason for revert:
Blocks the roll: https://codereview.chromium.org/1974733002/

Breaks:
https://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_daisy_chromium_compile_only_ng/builds/136166

Original issue's description:
> Change v8_snapshot_toolchain to be a GN build arg.
>
> It is likely that CrOS and other distros will want to be
> able to build the v8 snapshot with a custom toolchain.
>
> This CL makes snapshot_toolchain a declared build arg, and
> renames it to v8_snapshot_toolchain to minimize the risk
> of a name collision.
>
> R=machenbach@chromium.org, jochen@chromium.org
> BUG=608596
>
> Committed: https://crrev.com/2ae74af8f405f461d8e44d60b978f940673e46c8
> Cr-Commit-Position: refs/heads/master@{#36193}

TBR=jochen@chromium.org,dpranke@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=608596

Review-Url: https://codereview.chromium.org/1975713002
Cr-Commit-Position: refs/heads/master@{#36199}
2016-05-12 08:36:05 +00:00
dpranke
2ae74af8f4 Change v8_snapshot_toolchain to be a GN build arg.
It is likely that CrOS and other distros will want to be
able to build the v8 snapshot with a custom toolchain.

This CL makes snapshot_toolchain a declared build arg, and
renames it to v8_snapshot_toolchain to minimize the risk
of a name collision.

R=machenbach@chromium.org, jochen@chromium.org
BUG=608596

Review-Url: https://codereview.chromium.org/1969693002
Cr-Commit-Position: refs/heads/master@{#36193}
2016-05-12 05:37:54 +00:00
hablich
87e7cd7f3f Revert of Use GCC for snapshot_toolchain when is_clang=false. (patchset #1 id:1 of https://codereview.chromium.org/1809643003/ )
Reason for revert:
Blocks roll: https://codereview.chromium.org/1874173002/

Original issue's description:
> Use GCC for snapshot_toolchain when is_clang=false.
>
> Currently, snapshot_toolchain is hardcoded to use a clang host
> toolchain. Use a GCC toolchain if is_clang is false.
>
> Revert this when this is root-caused (see crbug.com/601486)
>
> LOG=Y
> BUG=601486
>
> Committed: https://crrev.com/920370d1a910681bf464bd91aced316058ea2f6c
> Cr-Commit-Position: refs/heads/master@{#35341}

TBR=jochen@chromium.org,alokp@chromium.org,dpranke@chromium.org,slan@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=601486
LOG=Y

Review URL: https://codereview.chromium.org/1873113002

Cr-Commit-Position: refs/heads/master@{#35372}
2016-04-11 08:30:22 +00:00
slan
920370d1a9 Use GCC for snapshot_toolchain when is_clang=false.
Currently, snapshot_toolchain is hardcoded to use a clang host
toolchain. Use a GCC toolchain if is_clang is false.

Revert this when this is root-caused (see crbug.com/601486)

LOG=Y
BUG=601486

Review URL: https://codereview.chromium.org/1809643003

Cr-Commit-Position: refs/heads/master@{#35341}
2016-04-07 16:23:10 +00:00
agrieve
ba1d9af8bf Map arm64 and mips64el -> x64 for mksnapshot
BUG=chromium:568883
LOG=n

Review URL: https://codereview.chromium.org/1517983002

Cr-Commit-Position: refs/heads/master@{#32907}
2015-12-16 15:17:37 +00:00
dpranke
7d5d1570d9 Split the GN 'snapshot_toolchain' logic out into an include file.
We need to build parts of v8 with a toolchain that might be different
from both the default (target) toolchain and the regular host toolchain,
because we need the snapshot to have the same bit-width as the target.
V8's build defines a 'snapshot_toolchain' setting for this.

It turns out that we need the value of this toolchain to be exposed
to the Chromium build because some of the test targets (in browser_tests)
depend on d8 and need to be able to built using the same toolchain.

R=brett@chromium.org, jochen@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1350223004

Cr-Commit-Position: refs/heads/master@{#30854}
2015-09-22 02:28:40 +00:00