Commit graph

6472 commits

Author SHA1 Message Date
Ying Wang
e6e544e596 Don't include static executables when SANITIZE_TARGET=address
Also we can't build the ota package without these static executables.

Bug: 21785137
Change-Id: I11b35abebced4b0608378a072ece2ab2dbadeffb
2015-06-23 10:46:03 -07:00
Claes Elgemark
cd5bee3546 Add variable ANDROID_NO_TEST_CHECK to not build all test modules
Introduce a way to speed up local builds. Don't build all test
modules if ANDROID_NO_TEST_CHECK is set to true.

On master branch this reduces what is built by more than
300 apps and 50 java libraries. Time for doing this on a
12 core machine running with -j13 is about 10 minutes.

Change-Id: I90feb108695ee60d0dbbf497644f767cc3748215
2015-06-23 15:49:54 +02:00
Evgenii Stepanov
a36223e7e0 Clean intermediate files if SANITIZE_TARGET has changed.
Do not clean installed files, only intermediate files. This way, two
consequitive builds first without, then with SANITIZE_TARGET will
produce a frankenbuild with both sets of shared libraries.

Bug: 21785137
Change-Id: I231868b15331be942c783458cf36233c2e7740d3
2015-06-19 11:15:50 -07:00
Evgenii Stepanov
4d3d4141ae With SANITIZE_TARGET, move shared libraries to /data.
A fully (or even mostly) asan-instrumented device will have 2 copies of each
shared library, which might not fit on system partition. Moving instrumented
libraries to /data.

Bug: 21785137
Change-Id: I64184261da2eb24a1382c67e4931c34a5a38b3c0
2015-06-19 11:15:50 -07:00
Evgenii Stepanov
d479a7a119 Merge "Enable SANITIZE_TARGET." 2015-06-19 18:15:08 +00:00
Dan Albert
abf4bc916a Add support for LOCAL_SANITIZE := integer.
This also does a bit of cleanup in config_sanitizers.mk. The result is
that `LOCAL_SANITIZE := <any arbitrary ubsan group>` should function
fine for both host and target.

This is a superset of LOCAL_DETECT_INTEGER_OVERFLOWS, so remove that.
This also checks integer division by zero.  It's supposed to cover
shifting undefined behaviors as well, but apparently it does not
(though `LOCAL_SANITIZE := shift` works fine).

Change-Id: I4ac99eafa6920a3f8cb82af37ce56ff0fdb95223
2015-06-19 10:28:06 -07:00
Dan Albert
1578c487c9 Cleanup unused clear_vars.mk entry.
Change-Id: Ibd7b87d1364a60289609a267a287c4afa1d5e5cb
2015-06-19 10:24:07 -07:00
Evgenii Stepanov
3632cc3241 Enable SANITIZE_TARGET.
The same as SANITIZE_HOST, but for the target.
Also, skip all LOCAL_FORCE_STATIC_EXECUTABLE targets, as ASan does not
support static linking.

Bug: 21785137
Change-Id: Ief53ff8de1fee18f230d6c7dd31845db5bbd415c
2015-06-18 18:24:40 -07:00
Dan Albert
06f0a137dc Merge "Remove LOCAL_ADDRESS_SANITIZER." 2015-06-17 17:21:27 +00:00
Nikola Veljkovic
91091280f1 Revert "[MIPS] Do not use compact branches until GDB supports them"
This reverts commit 063ef33089.
2015-06-17 17:22:26 +02:00
Dan Albert
b32c0009a3 Remove LOCAL_ADDRESS_SANITIZER.
I've migrated all users of this to the new option now, so we can drop
this.

Dropping `SANITIZE_HOST := true` will have to wait until the build
server configs have been updated.

Change-Id: I591436e197a6c6c079a6cd6a2decb702b574cd71
2015-06-16 22:20:19 -07:00
Elliott Hughes
c09eaa7a44 Remove copy & paste cruft from the mips64 combo.
libthread_db hasn't been in bionic for years.

Change-Id: Ibc036d894c6b6bf9ee4653f95ff7a000a223cb2e
2015-06-16 15:22:52 -07:00
Dan Albert
c27d471742 Merge "Fix libdl inclusion for default-ub." 2015-06-16 21:13:44 +00:00
Nick Kralevich
99d92506ac Add support for LOCAL_DETECT_INTEGER_OVERFLOWS
Add build system support for LOCAL_DETECT_INTEGER_OVERFLOWS. When enabled,
an attempt to perform an integer arithmetic operation which overflows
will result in a call to abort(). This is intended for security
sensitive code, where integer overflow operations are not expected
nor desirable.

Two classes of underflows/overflows are detected and blocked:

1) Signed integer underflow/overflow.
2) Unsigned integer underflow/overflows.

Signed integer overflows are undefined behavior, according to the
C standard. Unsigned integer overflows are defined behavior, but
still undesirable in security sensitive code.

Only clang is supported today. gcc has -ftrapv for handling signed
integer overflow, but it's widely considered broken
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35412) and we're
deliberately avoiding it's use here.

Change-Id: Ib4918dc84e37e83d4205e5035544545d91671e5f
Vaguely-Related-Bug: 11859726
2015-06-15 14:52:09 -07:00
Dan Albert
7508a81d40 Fix libdl inclusion for default-ub.
We shouldn't be using ldlibs for target libraries because it doesn't
add a real dependency.

Change-Id: Ib1ec40b95356feb521e95674b64d04d5ecc06332
2015-06-15 11:39:29 -07:00
Dan Albert
d160041149 Force some clang Werrors that *will* break things.
Clang is really aggressive at optimizing a handful of cases (read:
clang will ruin your day some if you write bad code). Fortunately, it
also emits a warning when it's about to do this.

To prevent anyone from suffering from these optimizations, make these
warnings errors and make them impossible to disable.

Change-Id: I5e10bb0fc2ca23190017da716b3b84635577a0bd
2015-06-10 17:24:38 -07:00
Ying Wang
1b96592aab Merge "Add build_verity_metadata.py to dist-tools" 2015-06-09 16:20:49 +00:00
Narayan Kamath
7d2c71cf90 Merge "Remove duplicate CTS tests from libcore cts packages." 2015-06-09 10:03:16 +00:00
Narayan Kamath
6ca9b2b1a3 Remove duplicate CTS tests from libcore cts packages.
The catch all "org" package was catching several thousand
org.apache.harmony.tests.* tests that are already covered by
other packages. Replace the catch-all org.* with specific prefixes.

Needs additional support in CollectAllTests to handle multiple
prefixes. This is implemented in the companion change.

bug: 20862863

(cherry picked from commit cf7fbcd03d)

Change-Id: I1d28f91cfca098ccdcd62e88bb486b433d9c29d8
2015-06-09 10:52:34 +01:00
Mark Salyzyn
911637bf33 Merge "Add missing shared libraries to dist tools" 2015-06-08 23:51:33 +00:00
Ying Wang
8e42131ba2 Merge "Strip path from verity_signer_cmd in the target-files meta data." 2015-06-08 23:40:01 +00:00
Ying Wang
080f57aed7 Merge "Remove the unnecessary full_x86_64 and full_mips64." 2015-06-08 19:01:47 +00:00
Ying Wang
0a76df5ce7 Remove the unnecessary full_x86_64 and full_mips64.
For historical reason, the aosp_* products were named full_*.
We keep the full, full_x86 and full_mips in case some tools still
reference these legacy names; But no reason the have the full_* product
names for the new 64-bit archs.

Change-Id: I240ed0c6ded0ded2d80603bd0c5ff24750999afc
2015-06-08 11:57:26 -07:00
Claes Elgemark
82a19d3662 Add build_verity_metadata.py to dist-tools
Preserve path as it is referenced by build_image.py.

Change-Id: Id6833d243b5a15b4ee5e0013340aeb2cd35f3578
2015-06-05 10:31:53 +02:00
Claes Elgemark
d0ec665727 Add missing shared libraries to dist tools
Add missing libraries used by e2fsck and build_verity_tree.

Change-Id: I8bf0341300863ef0090b395b2aba0b7a952f6b58
2015-06-04 14:31:56 +02:00
Ying Wang
934d9b158e Add selinux and verity support to custom image generation.
New custom image configuration variables:
- CUSTOM_IMAGE_SELINUX, set to "true" if the image supports selinux.
- CUSTOM_IMAGE_SUPPORT_VERITY, set to "true" if the product supports verity.
- CUSTOM_IMAGE_VERITY_BLOCK_DEVICE

Also changed the staging directory name to the mount point, like we do
for other images built by the build system.

Bug: 19609718
Change-Id: I6bbf06b79eee63e4c77834f2e6f1d5a7f7e00a12
(cherry picked from commit 7d51a40295)
2015-06-03 09:56:31 -07:00
Ying Wang
4540a85dd4 Support to configure and build multiple custom images.
Build additional images requested by the product makefile.
This script gives the ability to build multiple additional images and
you can configure what modules/files to include in each image.
1. Define PRODUCT_CUSTOM_IMAGE_MAKEFILES in your product makefile.
   PRODUCT_CUSTOM_IMAGE_MAKEFILES is a list of makefiles.
   Each makefile configures an image.
   For image configuration makefile foo/bar/xyz.mk, the built image
   file name
   will be xyz.img. So make sure they won't conflict.
2. In each image's configuration makefile, you can define variables:
  - CUSTOM_IMAGE_MOUNT_POINT, the mount point, such as "oem", "odm"
    etc.
  - CUSTOM_IMAGE_PARTITION_SIZE
  - CUSTOM_IMAGE_FILE_SYSTEM_TYPE
  - CUSTOM_IMAGE_DICT_FILE, a text file defining a dictionary
    accepted by BuildImage() in tools/releasetools/build_image.py.
  - CUSTOM_IMAGE_MODULES, a list of module names you want to include
    in the image; Not only the module itself will be installed to proper
    path in the image, you can also piggyback additional files/directories
    with the module's LOCAL_PICKUP_FILES.
  - CUSTOM_IMAGE_COPY_FILES, a list of "<src>:<dest>" to be copied to
    the image. <dest> is relativ to the root of the image.

To build all those images, run "make custom_images".

Bug: 19609718
Change-Id: Ic73587e08503a251be27797c7b00329716051927
(cherry picked from commit 5fcf1094f9)
2015-06-03 09:56:29 -07:00
Claes Elgemark
d53cd9b0b1 Add VeritySigner.jar to ota tools
Used by verity_signer

Change-Id: I6e2b654144b40573c3f3c0dc0d1c943889ffcd7d
2015-06-03 16:41:51 +00:00
Claes Elgemark
ec99604b07 Strip path from verity_signer_cmd in the target-files meta data.
Strip path to be able to use outside a build e.g.
when resigning using the dist tools zip.

Change-Id: I492dcfd5791b66c17ae2e751cc8f67127e97b800
2015-06-03 15:09:54 +02:00
Yohann Roussel
b518c3ec0b [DO NOT MERGE] Add support for RMTYPEDEF with Jack
Bug: 21099584

(cherry-picked from commit 5b2c6e26db)

Change-Id: I39aa1f24780c216e978ef743098ca7ac65b2962e
2015-06-02 12:25:51 +02:00
Ying Wang
30127bfdad Add $ORIGIN/lib[64] to host binary's rpath.
Normally the binaries use the exsiting $ORIGIN/../lib[64] with binaries
in the bin subdirectory;
For historical reason the binaries in the SDK package don't have a bin
subdirectory. This workaround enables them to work in the existing SDK
directory structure.

Bug: 21301578
Change-Id: Ibebfbfb8b30e81e7bbaf13a21bb205f3f0282d24
(cherry-pick from commit 4fe7bfd373)
2015-06-01 11:28:02 -07:00
Chih-Hung Hsieh
128d51e67e Remove gcc 4.9 workaround.
The gcc 4.9 devirtualization bug was fixed with a cherry pick of r212222.

BUG: 19872411
Change-Id: I6d9677f112402fe84d70da770f364392398e9cc9
(cherry picked from commit ad2494bb79)
2015-05-29 12:06:36 -07:00
Elliott Hughes
1a81a0efca Merge "[MIPS] Do not use compact branches until GDB supports them" 2015-05-29 04:41:27 +00:00
David Srbecky
d8fae9a6a6 Pass --no-generate-debug-info to dex2oat.
The two flags have been merged and renamed in ART.

Change-Id: Iffc1dcc6764367239d6f45a3598cdb2c5d5d5013
2015-05-28 16:32:55 +01:00
Nikola Veljkovic
063ef33089 [MIPS] Do not use compact branches until GDB supports them
GDB does not yet have support for compact branches, and is unable to
set a breakpoint on them. Turn compact branch generation off, until
GDB is fixed.

Change-Id: Ie7d6fb891e9934f8fc645fe9cf8f706be15a5f77
2015-05-25 16:27:01 +02:00
Yohann Roussel
f09e59eb52 [DO NOT MERGE] Compile using Jack.
This allows to compile dex targeted java sources using Jack and Jill.
Default is still to compile with the legacy toolchain. Default can be
switched to the new toolchain by setting environement variable:
export ANDROID_COMPILE_WITH_JACK=true
Toolchain can also be forced for one module by defining
LOCAL_JACK_ENABLED:=full # disabled, full, incremental
in the mk portion defining the module.

Jack execution environement can be controlled with:

Global variable ANDROID_JACK_VM allow to change the jvm executing Jack.
Global variable ANDROID_JACK_VM_ARGS allows to change default args given
to the jvm.
Global variable ANDROID_JACK_EXTRA_ARGS allows to define some default args
to give to Jack

LOCAL_JACK_VM_ARGS allows to override default args given to the jvm for
the module.
LOCAL_JACK_EXTRA_ARGS allows to override default args passed to Jack.

This includes cherry-picks of the following changes:
b4c49cba57
22c3fa6d73
138768c1bb
5dd3e1d312
83d5d04047
8bc90fd2d6
140274707e
0fbc9ff2a2
833b427d72
f9a27f45b4
2809666941
37822c443d
c6b44d43c3
d2a76c14bf
06744f60fc
95573d5036
b821391614
2794e7b582
801f2c44d0
c76d99dca1
f528e132d6
76a5e0bd1a
e25b3984ff Partially, only Jack related parts werekept
ec46a3b71f
abee3a9f41
77cbe10fd9
daf07db4cd
b6bfb5893a

Ie all Jack related changes untill
b6bfb5893a
except
a96cc59ab5 "Use Jack by default"

Change-Id: If9d47ef1c4fd1e6765ad2a47d816c1ad3cfab0e3
2015-05-19 18:31:05 +02:00
Elliott Hughes
c340a30641 Merge "Explain __USE_MINGW_ANSI_STDIO." 2015-05-15 20:52:56 +00:00
Elliott Hughes
7c0bcfb61d Explain __USE_MINGW_ANSI_STDIO.
Change-Id: I6900a7cddfb5aa4365c3e0f6f6f0fa9203c0fe43
2015-05-14 20:55:49 -07:00
Ying Wang
df5c798f36 Merge "[MIPS] Temporarily disable Mips shared-textrel errors" 2015-05-14 16:11:59 +00:00
Elliott Hughes
0dac67880b Merge "Revert "Revert "Turn on _FORTIFY_SOURCE=2 for the host.""" 2015-05-13 21:12:22 +00:00
Elliott Hughes
1d8e8c9694 Merge "Add libbenchmark's new dependency on libbase." 2015-05-13 20:53:32 +00:00
Elliott Hughes
b2b6646578 Add libbenchmark's new dependency on libbase.
Change-Id: I6f9700b3e51a3b681d3d91b88103eed31764f61e
2015-05-13 13:47:30 -07:00
Elliott Hughes
7dd8ec1761 Revert "Revert "Turn on _FORTIFY_SOURCE=2 for the host.""
This reverts commit e27b214fc2.

Change-Id: I3d739c0594dbe4ecd62c5b07064ada7de6cdaadb
2015-05-13 20:15:19 +00:00
Elliott Hughes
2a3034b336 Merge "Revert "Turn on _FORTIFY_SOURCE=2 for the host."" 2015-05-13 19:33:17 +00:00
Elliott Hughes
e27b214fc2 Revert "Turn on _FORTIFY_SOURCE=2 for the host."
This reverts commit 224806d00e.

Change-Id: I654157ec4be7ff95356ab4a25b27c44762793e74
2015-05-13 19:32:59 +00:00
Elliott Hughes
b58119eab4 Merge "Turn on _FORTIFY_SOURCE=2 for the host." 2015-05-13 19:10:37 +00:00
dcashman
3979b9bdbc Merge "Remove libc++ from prepackaged shared libs in cts." 2015-05-13 18:19:42 +00:00
Duane Sand
3dfd20aea4 [MIPS] Temporarily disable Mips shared-textrel errors
Clang++ for Mips and Mips64 generates read-only exception unwind
tables that trigger DT_TEXTREL warnings at link time.  Until Clang
is fixed, ignore those performance warnings instead of failing the build.

With this patch, Mips clang++ can be (optionally) used when building
libdeqp.

NDK's Mips llvm has been using an alternate temporary fix, marking the
.gcc_exception_table section as read-write for Mips only:
   https://android-review.googlesource.com/#/c/119660/

A permanent fix using a read-only exception table is pending upstream:
   http://reviews.llvm.org/D9669

Change-Id: Ie0cd7da398acbe45dbe39adc251e7fd5b5ca1445
2015-05-13 11:07:20 -07:00
dcashman
214a171424 Remove libc++ from prepackaged shared libs in cts.
Commit 28acbeab18f6083299c07f9ebe769d22e49f8107 removed the dependency of
sepolicy-analyze on libc++, eliminating the only consumer of the library for the
cts host-side tests.  Remove the library since it is no longer needed but leave
the ability to add other shared libs in the future.

Bug: 19566396
Change-Id: I4fbfa44ce9f099ad058fd0630ac48749e389e3e1
2015-05-13 09:07:51 -07:00
Elliott Hughes
224806d00e Turn on _FORTIFY_SOURCE=2 for the host.
Bug: http://b/20558757
Change-Id: Ic0c173d25dc6b2fa9c3122a523af5f37bc1b8c55
2015-05-12 21:41:52 -07:00