Commit graph

133 commits

Author SHA1 Message Date
Siva Annamalai
e9bd78fa8e Fix build break, set initial value for msan variable.
R=zra@google.com

Review URL: https://codereview.chromium.org/2388813003 .
2016-10-03 12:45:45 -07:00
Zachary Anderson
fa9922d420 Fix standalone VM build for Android for tcmalloc.
Review URL: https://codereview.chromium.org/2347823005 .
2016-09-16 16:05:54 -07:00
Zachary Anderson
44a04f18f9 Use tcmalloc on Linux
Statically linking in the tcmalloc code is enough
to override the built-in malloc. I have this set up to
exclude the code for collecting heap profiles in a
Product build. There's still about a 230KB increase in
binary size, though. I think this isn't a big problem
since right now this is enabled only for server Linux.

product binary size:
before x64: 9569600
after  x64: 9807840
increase: 238240 (2.5%)

before ia32: 9122836
after  ia32: 9360944
increase: 238108 (2.6%)

before mips: 9418680
after  mips: 9640940
increase: 222260 (2.4%)

InitialRSS:
product:
before x64: 6307840
after x64:  7430144
increase: 1122304 (17.8%)

release (--no-profiler)
before x64: 7843840
after x64:  9207808
increase: 1363968 (17.4%)

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

Review URL: https://codereview.chromium.org/2316813002 .
2016-09-16 08:24:54 -07:00
Zachary Anderson
82062f1d95 DBC: Add Android Product build
R=fschneider@google.com

Review URL: https://codereview.chromium.org/2303383002 .
2016-09-02 11:01:51 -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
Siva Annamalai
2ababdc976 Enable function level linking in product mode for windows so that dead code is eliminated and there are no references to code which is not in product mode.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2134883002 .
2016-07-08 14:32:24 -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
Zach Anderson
44796ed02d Move Windows build output from //build to //out
This is needed in order to begin migration to GN because
third-party dependencies and GN boilerplate expect GN
boilerplate to be in //build.

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

Review URL: https://codereview.chromium.org/2027063003 .
2016-06-03 08:28:48 -07:00
Ryan Macnak
227927a8bb Make Android gyp flags more like Linux gyp flags. Fix cases of -Wconversion-null.
R=zra@google.com

Review URL: https://codereview.chromium.org/2018723002 .
2016-05-26 14:56:24 -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
Zachary Anderson
78de302495 Fix DBC product build
fixes #26415

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1945183006 .
2016-05-05 15:57:16 -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
cb63245a4c Fix GYP configurations on Mac and Windows after DBC patch.
R=srdjan@google.com
BUG=

Review URL: https://codereview.chromium.org/1895223003 .
2016-04-19 00:07:04 +02: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
a87fca4d0a Remove unused gyp variable
Review URL: https://codereview.chromium.org/1825233002 .
2016-03-22 14:31:54 -07:00
Zachary Anderson
27f5c1f81c Don't compile in root certs on Android.
This works by using SSL_CTX_load_verify_locations in
SecurityContext._trustBuiltinRoots() to specify
/system/etc/security/cacerts as the certificate directory.

This saves about 240KB from a stripped ProductAndroidARM build.

This has the drawback that SSL_do_handshake will synchronously
hit the filesystem looking for root certs during its trust evaluation.
We call SSL_do_handshake directly from the Dart thread so that Dart
code can be invoked from the "bad certificate" callback called by
SSL_do_handshake. If there was no need to support this callback,
it would be easier to move the handshake to the IOService thread, and
thus remove the compiled-in certs without the need for blocking IO
on the Dart thread.

R=whesse@google.com

Review URL: https://codereview.chromium.org/1811583003 .
2016-03-22 09:30:04 -07:00
Zach Anderson
893a60df2f Bump mac_sdk to 10.8
BUG=

Review URL: https://codereview.chromium.org/1820903004 .
2016-03-21 19:47:04 -07:00
Ivan Posva
b41ffe0bb2 - Switch default Mac deployment target to 10.7.
BUG=

Review URL: https://codereview.chromium.org/1819813004 .
2016-03-21 18:00:27 -07: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
Ivan Posva
f28d46161b Fix ARM cross build:
- Don't try to pass '-mno-omit-leaf-frame-pointer' to the C++
  compiler on any platform for now.

BUG=

Review URL: https://codereview.chromium.org/1666063002 .
2016-02-03 21:38:49 -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
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