Commit graph

113 commits

Author SHA1 Message Date
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
08f443f540 Address clang warning regarding incorrect flag attempting to force non-executable stacks.
Cf. 6d018b8ce3

R=fschneider@google.com

Review URL: https://codereview.chromium.org/1498983002 .
2015-12-04 09:58:53 -08:00
Ryan Macnak
a984188def Remove dead functions at link time on Mac.
ReleaseX64 stripped
dart_precompiled 10.5MB -> 8.4MB (-20%)
dart 12.1MB -> 11.5MB (-5%)

R=iposva@google.com

Review URL: https://codereview.chromium.org/1471063003 .
2015-11-23 14:57:40 -08:00
Florian Schneider
64e71a0b2e VM: Make more globals constant where easily possible.
Remove -fdata-section again from the Linux build configuration: It prevented
some optimizations in gcc and clang - fewer things were recognized as constants.

Add const to pointers/arrays in some places to help compilers with determining
what is a constant.  A common pattern is strlen of a string literal const char*,
or an array of function pointers.

Tested with gcc 4.8.4 / clang 3.4 and improves code qualtiy + reduces binary size.

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

Review URL: https://codereview.chromium.org/1462953002 .
2015-11-20 10:52:07 +01:00
Florian Schneider
f0a35b3260 VM: Add dart_precompiled build target, a standalone VM without the JIT compiler.
This removes most of the compiler-related code from dart_precompiled:
x64 stripped binary size 13M -> 9.1M
ARM stripped binary size 12M -> 8.3M

The precompiled build defines the DART_PRECOMPILED macro. This
stubs out the public interface to the compiler/parser with empty
function bodies.

Use gcc options -ffunction-sections and --gc-sections to make the linker remove
unused functions/symbols.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1459443002 .
2015-11-19 10:13:16 +01:00
Florian Schneider
9f54259d57 VM: Fix FP math discrepancies by adding -mfpmath=sse to 32-bit simulator and cross host builds.
BUG=dartbug.com/24517
R=zra@google.com

Review URL: https://codereview.chromium.org/1395543003 .
2015-10-08 17:16:46 +02:00
William Hesse
c04db16af6 Fix typo in >= operator.
BUG=
TBR=kevmoo

Review URL: https://codereview.chromium.org//1359813002 .
2015-09-22 14:49:03 +02:00
Kevin Moore
6012e9070d SDK gyp: support Xcode V7
R=whesse@google.com

Review URL: https://codereview.chromium.org//1343393004 .
2015-09-22 14:21:20 +02:00
Ryan Macnak
6d018b8ce3 Force non-executable stack and enable stack canaries.
BUG=http://b/22479195
R=asiva@google.com

Review URL: https://codereview.chromium.org//1238003002 .
2015-07-16 16:05:02 -07:00
Ryan Macnak
248f216887 "The "now" option forces the linker to resolve all dynamic symbols at program start time and the "relro" option marks the Global Offset Table (GOT) as read-only. Together, these options prevent attacks that try to overwrite libc function pointers in the GOT."
BUG=http://b/22479195
R=asiva@google.com

Review URL: https://codereview.chromium.org//1236933004 .
2015-07-16 09:39:45 -07:00
Ryan Macnak
d09e04eff8 Enable Fortify Source functions.
BUG=http://b/22479195
R=asiva@google.com

Review URL: https://codereview.chromium.org//1223263007 .
2015-07-15 15:53:11 -07:00
Ryan Macnak
3d190ddd2d Pass -EL for MIPS cross builds to allow for using a bi-endian toolchain and work around CXXFLAGS being passed to both host and target.
R=zra@google.com

Review URL: https://codereview.chromium.org//1184873002.
2015-06-12 14:02:27 -07:00
koda@google.com
2c4dfb60c8 Don't attempt to walk the native stack by default.
This was unintentially enabled by default as a consequence of
https://codereview.chromium.org/1104323003/

BUG=23368
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45666 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 22:34:17 +00:00
johnmccutchan@google.com
3490490ac2 Fix android cross compile
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45445 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-29 00:08:14 +00:00
johnmccutchan@google.com
464f3bb957 Change default value of c_frame_pointers
BUG=
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45443 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-28 23:28:39 +00: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
zra@google.com
84f66405b1 Fixes for updated third_party/android_tools.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43152 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-26 20:59:03 +00:00
zra@google.com
210085919e Allows arm cpu feature detection to detect arm64 cpus.
This is probalby of limited utility since we have an
arm64 port, but it could be interesting for performance
experiments, etc.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40678 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-25 14:37:57 +00:00
kevmoo@google.com
1b1534967c Fix mac build for XCode v6.0
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40616 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-23 23:27:04 +00:00
whesse@google.com
e0c621e9fc Avoid undefined variable in gyp files.
BUG=
R=ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40490 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-19 08:35:58 +00:00
whesse@google.com
8280a3a09f Set the minimum supported version of Mac OS X when building Dart.
BUG=
R=iposva@google.com, ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40488 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-19 08:01:13 +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
johnmccutchan@google.com
3d0a6d019a Address comments on c_frame_pointers CL
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38990 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-07 15:52:47 +00:00
johnmccutchan@google.com
ae9b2a9dd5 Add build configuration variable 'c_frame_pointers' to control whether or not frame pointers are included and which stack walker the profiler uses.
BUG=
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38711 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 22:48:57 +00:00
johnmccutchan@google.com
e679327ef9 Explicitly omit frame pointers for XCode builds
BUG=
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38699 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 21:19:17 +00:00
johnmccutchan@google.com
7f8adad6e8 Disable frame pointers
BUG=
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38512 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-23 16:13:53 +00:00
zra@google.com
9e6655f810 Fixes Android build by using C++ math header instead of C one.
This change also requires prefacing the math calls with
std::, i.e. isinf -> std::isinf.

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37839 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-30 22:15:26 +00:00
vegorov@google.com
2e497ee3fe Work around the crash in GYP's ninja generator on Windows.
BUG=
R=whesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37269 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 13:34:22 +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
zra@google.com
0c562fdd16 For arm, chooses hard vs. soft fp ABI based on compiler.
We have been hard-coding hardfp in the gyp file. This makes
using softfp hard. This change detects hardfp by looking at
a predefined gcc macro, and otherwise uses softfp. This
change also adds a flag to simarm so that we can test softfp.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36337 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-19 23:13:25 +00:00
srdjan@google.com
e51a243e52 Add SSE2 compilation mode ofr Linux ia32.
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35001 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-12 00:29:54 +00:00
zra@google.com
783cb5a615 Fix runhooks on mac and win.
TBR.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34655 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 17:50:44 +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
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
iposva@google.com
d2055b487a - Start to distinguish between cross-build and native build environments.
- Create configurations for both on MIPS builds.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33446 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-07 20:10:09 +00:00
zra@google.com
7c91e88e6e Adds support for ARMv6.
When we detect ARMv6, instead of using movw and
movt, this change loads each individual byte.
Although this is not the best way to achieve this,
a modification to store large constants in the
object pool would be more invasive. Further,
this change will be easier to back-out once
ARMv6 is obsolete.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33442 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-07 19:17:36 +00:00
iposva@google.com
781f737c6a First round of http://dartbug.com/15922:
- Address warnings about 64-bit to 32-bit conversions.
- Remove heap profiler.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31867 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-16 05:05:35 +00:00
zra@google.com
3508d336dd Simplifies standalone VM Android build.
This change also avoids the need to
do another 'gclient runhooks' when switching
between Android and Linux builds, and between
IA32 and ARM Android builds.

gyp does not allow 'libraries' sections inside of
configurations. Therefore, since some architecture
specific paths, libraries, etc. must be specified
on the Android NDK's linker command line, to avoid
re-gyping when switching between Android IA32 and ARM,
this change moves the architecture specific linker
flags to a script, android_link.py.

To avoid re-gyping when swtiching between Linux and
Android, this change creates new configurations
that specify the target OS as well as the the target
architecture, e.g. ReleaseLinuxARM or ReleaseAndroidARM
instead of ReleaseARM.

This change also adds a --toolchain flag to build.py,
and removes obsoleted logic for setting up the Android
build.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31340 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 17:51:34 +00:00
johnmccutchan@google.com
dc217a8aa0 Fix crash walking call stack on Linux.
BUG=
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31192 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 16:48:55 +00:00
johnmccutchan@google.com
eb99334209 Attempt at enabling profiler
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30478 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-20 17:57:56 +00:00
johnmccutchan@google.com
31989f3b4d Post landing fixes
TBR

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30420 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-19 19:11:41 +00:00
johnmccutchan@google.com
97ac18aee9 Sampling profiler
BUG=4350
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30419 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-19 18:26:10 +00:00
zra@google.com
df1e5247fe Adds support for ARM softfp calling convention.
The cross-compiler with the Android NDK doesn't support
the 'hard' calling convention, so we need both. I've
added a preprocessor define to the gyp file for the
standalone vm indicating support for 'hard' so that I
don't have to modify the Dartium gyp files.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29577 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 18:57:55 +00:00
kustermann@google.com
34654bff3d standalone.deps: Change gyp generation to make "./tools/build.py runtime" work
R=iposva@google.com, ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28929 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-21 12:33:39 +00:00
kevmoo@j832.com
784099d155 fix for XCode 5
also fixes 'Unknown Xcode Version' code path

BUG= https://code.google.com/p/dart/issues/detail?id=13492
R=kustermann@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27752 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-23 11:08:12 +00:00
zra@google.com
e155ff8c53 Revert last commit
Review URL: https://codereview.chromium.org//23889034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27507 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-13 23:36:32 +00:00
zra@google.com
a61d0c66b0 Allows build of the standalone VM for ARM adroid.
R=iposva@google.com, vsm@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27506 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-13 23:29:14 +00:00