Commit graph

58 commits

Author SHA1 Message Date
Zach Anderson 51ee5ce40e Reland: [Windows] Update toolchain to MSVC 2017
Reland of https://dart-review.googlesource.com/#/c/sdk/+/8168/ following
fixes to bots.

This is mainly to support upcomping changes in BoringSSL, and to keep
our version of MSVC up-to-date with Chromium.

Change-Id: I861ee4ab10513b93ea3fb1c357766e0f942afd10
Reviewed-on: https://dart-review.googlesource.com/8730
Reviewed-by: William Hesse <whesse@google.com>
2017-09-27 08:26:53 +00:00
William Hesse 359b745c4e Revert "[Windows] Update toolchain to MSVC 2017"
This reverts commit 42d93ff083.

Reason for revert: The windows bots don't have the correct authorization file to download our internal copy of MSVC 2017.

Original change's description:
> [Windows] Update toolchain to MSVC 2017
> 
> This is mainly to support upcomping changes in BoringSSL, and to keep
> our version of MSVC up-to-date with Chromium.
> 
> Change-Id: Id6148b74a7e986147faf721b2923599f148b8b3a
> Reviewed-on: https://dart-review.googlesource.com/8168
> Reviewed-by: William Hesse <whesse@google.com>

TBR=whesse@google.com,vegorov@google.com,zra@google.com,asiva@google.com

Change-Id: I89dd1c8250d997a01bbc8de1a13cd86d5342c316
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/8660
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: William Hesse <whesse@google.com>
2017-09-26 15:21:32 +00:00
Zach Anderson 42d93ff083 [Windows] Update toolchain to MSVC 2017
This is mainly to support upcomping changes in BoringSSL, and to keep
our version of MSVC up-to-date with Chromium.

Change-Id: Id6148b74a7e986147faf721b2923599f148b8b3a
Reviewed-on: https://dart-review.googlesource.com/8168
Reviewed-by: William Hesse <whesse@google.com>
2017-09-26 15:03:38 +00:00
Zachary Anderson e94ff71e64 [infra] Roll back toolchain due to crasher on mac.
related #30642

Change-Id: Id1777132d4447da45eec07513406b25e9c1795b0
Reviewed-on: https://dart-review.googlesource.com/4061
Reviewed-by: William Hesse <whesse@google.com>
2017-09-07 16:14:40 +00:00
Zachary Anderson d1b542f8cd Reland: [infra] Roll clang toolchain forward
Build spuriously worked after initial roll due to stale files hanging
around longer than they should have. This CL relands and updates
(hopefully) all the necessary paths.

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/3010023002 .
2017-09-01 11:15:40 -07:00
William Hesse bf6ea50b95 Revert "[infra] Roll clang toolchain forward"
This reverts commit a60fb341f5.
The toolchain.stamp files are missing on buildbots, causing failures.
This occurred on the second run after the commit, indicating that
perhaps the files are no longer created, or something.

BUG=
R=mkroghj@google.com
CC=zra@google.com

Review-Url: https://codereview.chromium.org/3009983002 .
2017-09-01 14:42:35 +02:00
Zach Anderson a60fb341f5 [infra] Roll clang toolchain forward
This is to match the version used by Flutter.

R=asiva@google.com, rmacnak@google.com

Review-Url: https://codereview.chromium.org/3005903002 .
2017-08-31 21:49:02 -07:00
Zach Anderson 783f1e8c04 [infra] Remove dependency on gyp
R=rmacnak@google.com, whesse@google.com

Review-Url: https://codereview.chromium.org/3003433002 .
2017-08-18 08:51:40 -07:00
Zach Anderson 48d99f550e [infra] Remove dependence on //third_party/gyp/pylib/gyp/win_tool.py
This CL removes another dependence on gyp by using/updating scripts
that have the same function in the chromium build.

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/3002853002 .
2017-08-17 14:13:52 -07:00
Zach Anderson 3e16939be7 [infra] Remove dependence on //third_party/gyp/pylib/gyp/mac_tool.py
This is a step toward removing //third_party/gyp

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2997103002 .
2017-08-17 12:53:41 -07:00
Zachary Anderson 63b9312e1b Invoke copy_tree.py only once to collect all input file lists.
fixes #30105

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2992353002 .
2017-08-09 11:14:01 -07:00
Zach Anderson 0394d3a0cf [infra] Begin removing gyp
This CL begins removing gyp from Dart's tree.

Removing gyp will go in three stages:
1. Remove unused .gyp and .gypi files.
2. Translate *_sources.gypi files to *_sources.gni files
3. Remove //third_party/gyp from DEPS

This CL is stage 1.

R=asiva@google.com

Review-Url: https://codereview.chromium.org/2992593002 .
2017-08-04 22:19:35 -07:00
Zachary Anderson 1a8174b08d Exclude Observatory assets from PRODUCT build dart, dart_precompiled_runtime
This CL also removes some compiler flags that increase space somewhat
that help the profiler find symbols, which isn't included in a PRODUCT
build.

Before:
zra@zach:~/dart/sdk$ ls -la out/ProductX64/exe.stripped/
-rwxr-x--- 1 zra eng  9693064 Jun 29 14:52 dart
-rwxr-x--- 1 zra eng  7391080 Jun 29 14:52 dart_precompiled_runtime

R=askesc@google.com, rmacnak@google.com

After:
-rwxr-x--- 1 zra eng  6809424 Jun 29 15:11 dart
-rwxr-x--- 1 zra eng  3299120 Jun 29 15:11 dart_precompiled_runtime
Review-Url: https://codereview.chromium.org/2964133002 .
2017-06-30 08:09:37 -07:00
Erik Corry 029b1cb948 Spelling fixes e to i.
R=kevmoo@google.com
BUG=

Review-Url: https://codereview.chromium.org/2957593002 .
2017-06-24 13:41:39 +02:00
Alexander Aprelev 8cd713bed3 Introduce dart_host_toolchain argument for generate_patch_sdk.gni. This allows for Flutter build to make sure that host_toolchain used for patched_sdk generation word size matches target platform.
Flutter Dart in product configuration doesn't allow --checked option. So remove '--checked' from invocation.

R=rmacnak@google.com

BUG:https://github.com/flutter/flutter/issues/10841
Review-Url: https://codereview.chromium.org/2944103003 .
2017-06-22 12:41:31 -07:00
Zachary Anderson ac16656161 Remove MIPS support
R=asiva@google.com

Review-Url: https://codereview.chromium.org/2858623002 .
2017-06-22 08:49:22 -07:00
Ryan Macnak 14ec8fa979 Use assembly instead of C array literals to link the core snapshot into the VM.
Allows for including instructions.

R=zra@google.com

Review-Url: https://codereview.chromium.org/2901163002 .
2017-05-24 14:38:15 -07:00
Zachary Anderson 821d31f54c [GN] Fix up arguments to nm
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2899713003 .
2017-05-22 15:39:31 -07:00
Zachary Anderson 34f601a8db Fix ARMv6 Linux cross-build
related #29676

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2892413002 .
2017-05-22 13:15:33 -07:00
Zach Anderson 61b6525c0b [mac] Use the host platform's strip command
The strip command from the clang toolchain is mangling the binary somehow

Review-Url: https://codereview.chromium.org/2895853003 .
2017-05-22 11:34:34 -07:00
Zachary Anderson 81e428fd39 [infra] Assembles the SDK using GN rather than create_sdk.py
This has a few advantages:
- We can track dependencies more precisely
- ninja can assemble things in parallel as they're ready rather than
  sequentially all at once.
- It is easier to customize SDKs depending on target platform, e.g.
  Fuchsia.

This CL also has a number of cleanups:
- Defining is_fuchsia and is_fuchsia host so we don't always have to check
- Piping through toolchain overrides in more places
- Fixing bugs in copy_tree.py, not using list_files.py, which is broken on Windows

related #29558

R=whesse@google.com

Review-Url: https://codereview.chromium.org/2848943003 .
2017-05-20 23:30:09 -07:00
Terry Lucas f27144d7b5 Roll 50: Updated for push to origin/master.
TBR=jacobr@google.com

Review-Url: https://codereview.chromium.org/2875773003 .
2017-05-10 18:16:51 -07:00
Zach Anderson 726732dd6b [infra] Roll clang to match the version used by Flutter
Flutter uses the same clang toolchain as Fuchsia. This CL puts Dart
on that toolchain, as well. This roll should entail no changes to
glibc version requirements on Linux.

The Fuchsia buildtools distribute clang-format with the toolchain
rather than separately, so this CL introduces forwarding scripts
that are copied to the right place under //buildtools.

This CL sets the default for the number of workers in //tools/gn.py
to 1, as the newer GN version fails occasionally when run
concurrently with other invocations.

As Flutter does, this CL uses the clang toolchain to build for
Android. Thus, it is now possible to build for Android on MacOS.

This change is a prerequisite for assembling the SDK in GN
rather than with a python script:

https://codereview.chromium.org/2848943003/

and will be nicer for making prebuilt SDKs for Fuchsia.

Resubmitting this with the following fixes:
1. Rolls further forward to get past a GN bug
2. Fixes the Android build.
3. Style cleanups in gn.py

Review-Url: https://codereview.chromium.org/2858873005 .
2017-05-06 21:45:00 -07:00
Zachary Anderson ab422ad194 Revert "[infra] Roll clang to match the version used by Flutter"
This reverts commit 6bf2c800fd.

There is still some strangeness with the new GN binary not wanting
to do an incremental build on top of a build that used an old GN
binary.

Review-Url: https://codereview.chromium.org/2861903002 .
2017-05-03 15:56:21 -07:00
Zachary Anderson 6bf2c800fd Reland: [infra] Roll clang to match the version used by Flutter
Flutter uses the same clang toolchain as Fuchsia. This CL puts Dart
on that toolchain, as well. This roll should entail no changes to
glibc version requirements on Linux.

The Fuchsia buildtools distribute clang-format with the toolchain
rather than separately, so this CL introduces forwarding scripts
that are copied to the right place under //buildtools.

This CL sets the default for the number of workers in //tools/gn.py
to 1, as the newer GN version fails occasionally when run
concurrently with other invocations.

As Flutter does, this CL uses the clang toolchain to build for
Android. Thus, it is now possible to build for Android on MacOS.

This change is a prerequisite for assembling the SDK in GN
rather than with a python script:

https://codereview.chromium.org/2848943003/

and will be nicer for making prebuilt SDKs for Fuchsia.

Review-Url: https://codereview.chromium.org/2855283002 .
2017-05-03 15:42:46 -07:00
Zachary Anderson 958c25c1db Revert "[infra] Roll clang to match the version used by Flutter"
This reverts commit cc968ca45b.

This CL will have to be relanded in two pieces so that the
update to tools/gn.py lands before the unmodified version
can invoke the updated GN binary.

Review-Url: https://codereview.chromium.org/2855973006 .
2017-05-03 15:16:21 -07:00
Zachary Anderson cc968ca45b [infra] Roll clang to match the version used by Flutter
Flutter uses the same clang toolchain as Fuchsia. This CL puts Dart
on that toolchain, as well. This roll should entail no changes to
glibc version requirements on Linux.

The Fuchsia buildtools distribute clang-format with the toolchain
rather than separately, so this CL introduces forwarding scripts
that are copied to the right place under //buildtools.

This CL sets the default for the number of workers in //tools/gn.py
to 1, as the newer GN version fails occasionally when run
concurrently with other invocations.

As Flutter does, this CL uses the clang toolchain to build for
Android. Thus, it is now possible to build for Android on MacOS.

This change is a prerequisite for assembling the SDK in GN
rather than with a python script:

https://codereview.chromium.org/2848943003/

and will be nicer for making prebuilt SDKs for Fuchsia.

R=whesse@google.com

Review-Url: https://codereview.chromium.org/2854583002 .
2017-05-03 14:50:59 -07:00
Zach Anderson ef2dad515a [GN] Fix prebuilt sdk detection on Windows
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2849273002 .
2017-05-01 14:41:03 -07:00
Erik Corry aa6353b6da Dart SDK Spelling b, c, and d.
R=kmillikin@google.com
BUG=

Review-Url: https://codereview.chromium.org/2850783002 .
2017-05-01 08:28:10 +02:00
Erik Corry 4b9bba55b4 Stoppp using trippple consonants
R=ahe@google.com
BUG=

Review-Url: https://codereview.chromium.org/2833073002 .
2017-04-21 17:50:13 +02:00
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
Martin Kustermann 4e34234c28 Add support for configurable -OX optimization levels for debug builds
Can be used via -dX or --debug-opt-level=X, e.g.

  tools/gn.py --mode=debug --arch=x64 -d0

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

Review-Url: https://codereview.chromium.org/2645323002 .
2017-01-24 17:36:37 +01:00
Ryan Macnak 4f598c584d GN: Fix cross ARM64 and cross MIPS builds.
R=zra@google.com

Review-Url: https://codereview.chromium.org/2643583002 .
2017-01-20 15:44:24 -08:00
Zachary Anderson 5580693fa8 GN: Add back -fPIC for a few things
Review-Url: https://codereview.chromium.org/2640923005 .
2017-01-20 14:37:50 -08:00
Zachary Anderson 17fa9d47b2 GN: Only use -fPIC where needed
R=hausner@google.com

Review-Url: https://codereview.chromium.org/2642283003 .
2017-01-20 13:40:19 -08:00
Zachary Anderson e890ffc3e9 Fuchsia: Add -Wl,-z,origin for host link
R=fschneider@google.com

Review-Url: https://codereview.chromium.org/2640493002 .
2017-01-17 10:05:12 -08:00
Ryan Macnak ccd6cc7fc5 Change GN debug builds to use -O2, which is the value used by GYP.
Running the language tests in debug mode, I got the following times
GYP -O2 1:50
GN -O1 4:48
GN -O2 1:55

R=zra@google.com

Review-Url: https://codereview.chromium.org/2614003003 .
2017-01-09 09:09:40 -08:00
Zachary Anderson b5b563c52b Make gn_run_binary.py do the right thing for compiled_action
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2494853002 .
2016-11-11 08:29:51 -08:00
Zachary Anderson f6de158e15 Quick fix to gn_run_binary.py to fix Fuchsia build.
Review URL: https://codereview.chromium.org/2496673002 .
2016-11-10 13:10:03 -08:00
Zachary Anderson 90d3962ca3 Don't depend on dart_bootstrap if there is a usable prebuilt sdk
Also replace invoke_dart() with compiled_action(), and some other
cleanups.

fixes #27781

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2493833002 .
2016-11-10 11:16:24 -08:00
Zachary Anderson c4e1b1c641 GN: Don't strip binary with clang on x64
Review URL: https://codereview.chromium.org/2494563002 .
2016-11-09 15:00:44 -08:00
Zachary Anderson 7b86880b01 GN: Add an option to build against the Debian wheezy sysroot
Set the environment variable DART_USE_WHEEZY to build against
the wheezy sysroot on Linux.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2476343004 .
2016-11-07 13:09:45 -08:00
Jan-Hendrik Dolling 89560c68a0 change "the the" to the 2016-10-28 21:47:50 +02:00
Zachary Anderson 8169499ef8 GN: Format more gn files
Missed these on the first pass.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2454703004 .
2016-10-27 04:25:34 -07:00
Zachary Anderson c1313a5ec7 Format GN files and add a presubmit check that GN is properly formatted
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2451613005 .
2016-10-26 08:50:54 -07:00
Zachary Anderson 1ed9dc3ac0 GN: Fix arm cross build to match gyp build
R=vegorov@google.com

Review URL: https://codereview.chromium.org/2456463003 .
2016-10-26 07:58:42 -07:00
Zach Anderson b6ea87c444 [windows] Make most file_win.cc functions use malloc for string conversions.
They have been using Dart_ScopeAllocate(), which makes them impossible
to use outside of a scope.

Also turn on inlining in the GN Debug windows build to match the gyp build
and speed things up a bit.

R=asiva@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2439173002 .
2016-10-21 14:55:37 -07:00
Zach Anderson 71a84cfed6 GN: Fix Debug flags. Fix Windows build.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2425043002 .
2016-10-17 12:58:24 -07:00
Zachary Anderson 4ab6c33d9a Enable GN ASAN builds for Linux
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2392403002 .
2016-10-05 13:43:29 -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