Commit graph

90 commits

Author SHA1 Message Date
Zachary Anderson f1c7a22c43 [infra] Fixes for cross-toolchains
toolchain_prefix was not correctly propagated everywhere it needed to
go. This CL also adds an error to build.py if someone tries to use
--toolchain as it is not supported there.

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2797303005 .
2017-04-06 15:03:26 -07:00
Zachary Anderson cf069d2dfa Make build.py ensure that goma is started if it is enabled
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2620113002 .
2017-01-10 15:09:34 -08:00
William Hesse 4e6ac19b3c build.py should only use target 'All' on xcode
BUG=
R=leafp@google.com, ahe@google.com

Review-Url: https://codereview.chromium.org/2622543002 .
2017-01-09 13:21:02 +01:00
Zachary Anderson 632b744046 GN: Make GN the default
Ryan landed a fix for #28200 so we can try to land this again.

Tests on Debug builds will be slower until

https://codereview.chromium.org/2614003003/

lands, but we didn't notice an uptick in bot timeouts when we tried
this before, so I suspect the bots will continue to be unaffected.

R=whesse@google.com

Review-Url: https://codereview.chromium.org/2617803003 .
2017-01-06 15:35:54 -08:00
Zachary Anderson 02447e5b80 Revert "GN: Make GN the default"
This reverts commit ca864e93a1.

Reverting for unforseen failures in dart2js testing.

Review-Url: https://codereview.chromium.org/2599673004 .
2016-12-22 13:43:01 -08:00
Zachary Anderson ca864e93a1 GN: Make GN the default
R=whesse@google.com

Review-Url: https://codereview.chromium.org/2592153002 .
2016-12-22 12:10:27 -08:00
Zachary Anderson 566ed7ff55 GN: Fix armsimdbc target. Add armsimdbc64
R=johnmccutchan@google.com

Review-Url: https://codereview.chromium.org/2596333002 .
2016-12-22 10:24:24 -08:00
Zachary Anderson 9c77f4af2f GN: Pass a better -j option when using goma
When using goma, we can pass a big -j to ninja.

R=asiva@google.com, floitsch@google.com, whesse@google.com

Review-Url: https://codereview.chromium.org/2559303002 .
2016-12-09 22:11:55 -08:00
Zachary Anderson 22ff72161f GN: Remove bogus argument to gn.py
Review URL: https://codereview.chromium.org/2507463002 .
2016-11-15 07:59:41 -08:00
Ryan Macnak e109c9bb0e Change build.py to invoke gn with '--check' to match the build bot's script and Flutter's usage.
R=zra@google.com

Review URL: https://codereview.chromium.org/2449503002 .
2016-10-25 09:43:37 -07:00
Zachary Anderson c67bd01d76 Select GN build with an environment variable
Setting DART_USE_GN to anything will cause 'gclient runhooks' and
build.py to use GN.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2400493002 .
2016-10-05 14:07:22 -07:00
Zach Anderson 5d01fb8458 Fix GN build.py for Windows
Review URL: https://codereview.chromium.org/2386103007 .
2016-10-05 09:44:59 -07:00
Zachary Anderson ff7ad2a4e1 Run GN from build.py if the output directory doesn't exist
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2397623003 .
2016-10-05 09:16:17 -07:00
Zachary Anderson eabd4ed9fb Improvements to tools/gn.py
This change enables gn.py to take comma separated lists of modes,
architectures, and os's similar to build.py. It also accepts 'all'
for each of these just like build.py. GN is invoked in parallel to
save time.

This change also adds an option --gn to build.py to invoke ninja
instead of the usual build system.

Will investigate invoking tools/gn.py automagically from build.py in
a future change.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2392603005 .
2016-10-04 19:49:14 -07:00
Zachary Anderson a274332ed7 Remove Fuchsia build from the gyp build
This isn't used anymore. The build happens in the Fuchsia tree using GN.

R=asiva@google.com

Review URL: https://codereview.chromium.org/2194223002 .
2016-08-01 12:38:11 -07:00
Zachary Anderson fe2b7b35c4 DBC: Enables unboxed doubles
This CL enables unboxed doubles for simdbc64. Unboxed
doubles are stored in regular dbc registers, which are
really 64-bit stack slots. It also implements binary
and unary double operations and comparisons.

R=vegorov@google.com

Review URL: https://codereview.chromium.org/2120703002 .
2016-07-14 16:05:20 -07:00
Zachary Anderson a503570e3a Fuchsia: Initial check-in.
Instructions to build and run are in README.fuchsia.

R=asiva@google.com

Review URL: https://codereview.chromium.org/2117593002 .
2016-07-01 12:42:05 -07:00
Vyacheslav Egorov 43dc5c223d Introduce a new ARMSIMDBC configuration.
This allows us to build dart binary with SIMDBC for non-Android ARM devices.

We are going to use it to measure performance.

BUG=http://dartbug.com/26421
R=zra@google.com

Review URL: https://codereview.chromium.org/1967613002 .
2016-05-10 20:06:54 +02:00
Ryan Macnak d7234da230 Include DBC in the "all" architecture.
R=zra@google.com

Review URL: https://codereview.chromium.org/1949423003 .
2016-05-05 15:19:58 -07:00
Zachary Anderson 3d7202bad3 DBC: Adds simdbc64 target, adds arm64 arithmetic overflow logic
There were differences between linux gcc, android gcc,
MacOS clang, and 32 vs. 64-bit w.r.t the __builtin
functions for detecting arithmetic overflow. I couldn't get
them all working at the same time. Instead, I removed them,
and changed to always use the inline assembly. This works
in all the configurations above.

This change also adds a simdbc64 target for building simdbc
for 64-bit, and sets up the android targets. simdbc targets
arm, and simdbc64 targets arm64. You can build them with:

$ ./tools/build.py -m release -a simdbc{64} --os=android runtime

R=iposva@google.com

Review URL: https://codereview.chromium.org/1904153003 .
2016-04-25 12:48:34 -07:00
Vyacheslav Egorov ee0f608ce4 Dart Byte Code interpreter.
This version is Clang/GCC only and does not support Windows because it uses computed goto's.

Only unoptimized mode is supported.

Architecture is described in constants_dbc.h and stack_frame_dbc.h.

R=fschneider@google.com, zra@google.com

Review URL: https://codereview.chromium.org/1858283002 .
2016-04-18 23:02:01 +02:00
Zachary Anderson 7a2512540a Build for Android x64
This change adds standalone VM build targets for x64 Android.

Build with, e.g.:

./tools/build.py -m debug -a x64 --os=android runtime

R=iposva@google.com

Review URL: https://codereview.chromium.org/1762043002 .
2016-03-03 14:04:52 -08:00
Ryan Macnak 33752c55fc Update tools/build.py --mode=all to include product.
(Product mode added in 9c0c6cb5c2212fd53a1f57dee6c968410c61fcd2.)

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1679873002 .
2016-02-08 10:48:03 -08:00
Ivan Posva 9c0c6cb5c2 Add product mode:
- Add PRODUCT define and build mode to gyp configurations.
- Add product mode to test harness.
- Start to unify list of flags.
- Allow flags to be constant for particular build configurations.

R=fschneider@google.com

Review URL: https://codereview.chromium.org/1663863002 .
2016-02-03 21:10:30 -08:00
Zachary Anderson 80f358dede Adds targets for simarmv6 and armv6
related #25562

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1624593002 .
2016-01-22 13:07:48 -08:00
Ryan Macnak 642f754219 Note that R19 is a C preserved register, fixing crash returning from the first Dart entry on Linux ARM64.
Bug was introduced by 91bc8005fe.

 - Move the Dart stack pointer from R19 (C preserved) to R15 (C volatile) so it isn't among the registers saved by the InvokeDartCode stub.
 - Set a default cross compiler for ARM64.
 - Use ARM32 instead of IA32 binary to build Observatory on ARM64 hosts.

R=regis@google.com

Review URL: https://codereview.chromium.org/1559223003 .
2016-01-07 09:30:17 -08:00
William Hesse 9aeb907f9d Observatory build should try backup method if the SDK doesn't work.
Fix up SDK for mips and arm processors on demand.

BUG=
R=iposva@google.com, johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1343103002 .
2015-09-16 13:13:32 +02:00
zra@google.com 86bfd7cb30 Adds a simarmv5te build and test target.
Also:
- Removes command line flags to choose simulated arm version.
  I think we should use build targets instead, like in this change,
  to make building and testing more obvious.
- Skips pkg tests on all simulators.

R=regis@google.com, ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45181 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-15 20:44:43 +00:00
zra@google.com 34044a4ca8 Adds armv5 build and test target.
R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44828 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-31 23:11:33 +00:00
johnmccutchan@google.com 261200c587 Build Observatory as part of runtime
Relanding https://codereview.chromium.org/810623005/

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42645 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-06 21:59:42 +00:00
whesse@google.com aa5a986d5d Revert "Build Observatory with runtime"
This reverts commit 76df7b3c1bf83c08d3994d61df4c9c530fadb4e5.
This commit breaks dartium compilation.

BUG=
R=ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42619 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-06 10:07:58 +00:00
johnmccutchan@google.com 9d6ac72b46 1) Remove prebuilt Observatory sources
2) Move observatory from runtime/bin/vmservice/observatory to runtime/observatory

3) Add two tools scripts:
- tools/run_pub.py (runs pub before SDK is built)
- tools/obs_tool.py (helper for get, build, and deploy stages)

4) Build Observatory with runtime:
- pub get --offline
- pub build
- deploy

5) Build artifacts are now in standard output directory, for example, out/DebugIA32/observatory.

6) Add a new 'dart_boostrap' host target (no snapshot, no observatory) that can be used as the Dart executable to run pub when building Observatory. This is behind a build.py flag --use-bootstrap-for-observatory because:

- It is only necessary on older Linux distributions that are incompatible with the prebuilt Dart testing executable.
- running pub build with the boostrap Debug build is significantly slower.

7) Detect if the prebuilt executable doesn't work and automatically switch to the 'dart_bootstrap' executable. Also, warn the user and provide a Wiki link with more information.

R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42614 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-05 21:26:52 +00:00
zra@google.com 3af5c2e52d Builds 32-bit arm and intel for Android using gcc 4.9 against L-release.
R=koda@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42575 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-30 19:30:03 +00:00
collinsn@google.com 086555fd0d Make 'tools/build.py -h' warn the user to run it from the repo root.
The script by default runs 'make all' in the current directory. Since it's common to have a Makefile with an 'all' rule, this can lead to silent failure when a user runs the script from outside the repo root while intending
to do a default build. That behavior is error prone: in my case it made my regression tests pass when they should fail, because I was not actually rebuilding when I thought I was.

It turns out that the build script is sometimes run outside the repo root on purpose, so we can't simply require it be run from the repo root.  So, we document the relative nature of the build script.

R=ricow@google.com, jwren@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=20958

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40465 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-18 21:22:43 +00:00
zra@google.com ec1140b188 Adds support for building arm64 Android.
R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39844 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-03 23:31:51 +00:00
zra@google.com 12e83bbd84 Allows building debian packages for ARM.
This change adds arm as a possible architecture to
the create_debian_packages.py script and additionally
adds a toolchain flag so that arm packages can be
built using different cross-compilers that target
different ARM versions. The specified cross-compiler
is passed on to the debian/rules file through an
environment variable.

R=ricow@google.com, sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39291 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-15 15:20:42 +00:00
whesse@google.com 4b9def5115 Fix merge problems in r38573, a cleanup of build scripts.
BUG=
R=kustermann@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38574 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-25 12:47:48 +00:00
whesse@google.com c7d5711688 Build Tools Cleanup
Cleans up Python Code in Build Tools

TEST: build everything and run tests
BUG: https://code.google.com/p/dart/issues/detail?id=19592

R=ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38573 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-25 11:47:59 +00:00
iposva@google.com ad7cbdeb05 - Fail if toolchain is not set instead of warning always even if not necessary.
R=whesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38460 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-22 15:01:05 +00:00
zra@google.com 2e6e3133f0 Fixes create_sdk target for cross-builds.
Building an sdk requires snapshots to be generated for
pub, analyzer, dart2js, etc. using a Dart VM binary that
has been built for the host. Currently, when we cross-build,
we do not build a Dart VM binary for the host.

Rather than monkey with the gyp files to do that, this
change modifies build.py to explicitly build:
1. The create_sdk target for the host arch,
2. The runtime target for the target arch,
After which files are copied to create a dart-sdk
directory for the target archetecture.

After this change, we *should* be able to cross-build Debian
packages for arm, which I'll work on in a subsequent change.

R=iposva@google.com, whesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38337 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-17 18:05:42 +00:00
vegorov@google.com d30ecd3fcd Fix Win64 build of Dart VM.
1. Build script tools/build.py now actually builds X64 target when x64
is passed as an architecture:

- GYP files set 'msvs_configuration_platform': 'x64' for Win_x64
configuration;

- NSS related files are fixed to have correct set of defines for ia32
and x64 builds and include right files. A os_windows.c file added to
work-around inability to have different sets of source files per
configuration. Originally this was controlled through target_arch GYP
define and required regeneration of the solution.

- build.py passes Win32 or x64 platform to devenv as part of build
configuration argument;

2. Dart VM now supports Win64 ABI. ABI description is moved into a
separate class CallingConventions in constants_x64.h.

BUG=http://dartbug.com/7792
R=iposva@google.com, ricow@google.com, srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37078 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-06 12:14:15 +00:00
zra@google.com 9c73009ff9 Prepares for arm64 cross-build.
With this change, the cross-build succeeds with the Linaro arm64 toolchain.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36698 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 18:05:20 +00:00
aprelev@gmail.com 0ed82805e5 Support build completion notification on Windows.
Build notifications looks cool on Linux and Mac. Let Windows folks have fun with them too.

BUG=dartbug.com/18808
R=ahe@google.com, ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36199 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-15 01:02:04 +00:00
ahe@google.com 76ba04eec9 Add DART_BUILD_NOTIFICATION_DELAY to control notifications
BUG=http://dartbug.com/17965
R=ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34691 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-03 11:09:02 +00:00
zra@google.com 2fe51715e5 Begins work on ARM64, first assembler test.
Most new code is in constants_arm64.h and
{assembler,disassembler,simulator}_arm64.{h,cc}

The rest of the CL just #def's out tests, modifies status files,
and adds UNIMPLEMENTED functions, etc.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34654 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 17:39:32 +00:00
ahe@google.com 350a33f8ac Display notification when build is done.
For now, only works on Mac and Linux.

R=ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34593 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-01 12:11:45 +00:00
iposva@google.com d20121e855 - Enable automatic cross-builds across ARM and MIPS architectures.
R=ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33482 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-10 12:00:06 +00:00
ahe@google.com bd2ad26d7a Don't eat non-empty chunks.
R=kustermann@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31838 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 17:05:05 +00:00
ahe@google.com 974911e404 Update build.py to handle tweaked Xcode output in newer versions of Xcode.
R=ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31832 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 14:57:58 +00:00
zra@google.com 6c84dd1c0f Updates build scripts for updated android_tools.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31355 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 22:23:49 +00:00