Commit Graph

6536 Commits

Author SHA1 Message Date
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
c01c0a1c8d am 06f0a137: Merge "Remove LOCAL_ADDRESS_SANITIZER."
* commit '06f0a137dce58bf75576b0a2d0a5e7410dae919d':
  Remove LOCAL_ADDRESS_SANITIZER.
2015-06-17 17:32:41 +00:00
Dan Albert
06f0a137dc Merge "Remove LOCAL_ADDRESS_SANITIZER." 2015-06-17 17:21:27 +00:00
Elliott Hughes
e6faff17ff am 40990c83: Merge "Revert "[MIPS] Do not use compact branches until GDB supports them""
* commit '40990c83f0d719d37cd48e52b55fb59b748531b0':
  Revert "[MIPS] Do not use compact branches until GDB supports them"
2015-06-17 17:12:35 +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
d2dd064194 am 8ae7aa94: Merge "Remove copy & paste cruft from the mips64 combo."
* commit '8ae7aa942bf7d0844bcdfb6116076a21837ded4c':
  Remove copy & paste cruft from the mips64 combo.
2015-06-16 22:42:42 +00: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
42ca21d496 am c27d4717: Merge "Fix libdl inclusion for default-ub."
* commit 'c27d471742df9e69d4c0d932e8d7c11455bc3551':
  Fix libdl inclusion for default-ub.
2015-06-16 21:22:39 +00:00
Dan Albert
c27d471742 Merge "Fix libdl inclusion for default-ub." 2015-06-16 21:13:44 +00:00
Nick Kralevich
d400f7740d am dcac4582: Merge "Add support for LOCAL_DETECT_INTEGER_OVERFLOWS"
* commit 'dcac45820e4ce7faad4dbfd187f8b788964c9981':
  Add support for LOCAL_DETECT_INTEGER_OVERFLOWS
2015-06-15 22:04:47 +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
2bb996f6a5 am 46cb2ee3: Merge "Force some clang Werrors that *will* break things."
* commit '46cb2ee3cb120a1c03241e9e2aa66d76c890c486':
  Force some clang Werrors that *will* break things.
2015-06-12 19:59:13 +00: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
740dee5a56 am 1b96592a: Merge "Add build_verity_metadata.py to dist-tools"
* commit '1b96592aab7a8e3d357a4e09f685968edcfe05b9':
  Add build_verity_metadata.py to dist-tools
2015-06-09 16:32:52 +00:00
Ying Wang
1b96592aab Merge "Add build_verity_metadata.py to dist-tools" 2015-06-09 16:20:49 +00:00
Narayan Kamath
4cdb0d3439 am 7d2c71cf: Merge "Remove duplicate CTS tests from libcore cts packages."
* commit '7d2c71cf90cc8da55c8b8faad5910267c23ae542':
  Remove duplicate CTS tests from libcore cts packages.
2015-06-09 10:12:12 +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
5ced401874 am 911637bf: Merge "Add missing shared libraries to dist tools"
* commit '911637bf33b2f8994fc93eb8ea6e4a8428122e13':
  Add missing shared libraries to dist tools
2015-06-09 00:00:37 +00:00
Mark Salyzyn
911637bf33 Merge "Add missing shared libraries to dist tools" 2015-06-08 23:51:33 +00:00
Ying Wang
18e981638d am 8e42131b: Merge "Strip path from verity_signer_cmd in the target-files meta data."
* commit '8e42131ba2aa4fd12395e2c122ab62c9991e6f72':
  Strip path from verity_signer_cmd in the target-files meta data.
2015-06-08 23:48:24 +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
ac3f88d8a2 am 080f57ae: Merge "Remove the unnecessary full_x86_64 and full_mips64."
* commit '080f57aed7ac0f03c5db216dafe5023b032525ed':
  Remove the unnecessary full_x86_64 and full_mips64.
2015-06-08 19:15:13 +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
56ea339a60 am 3a35aa1a: Merge "Add selinux and verity support to custom image generation."
* commit '3a35aa1a2c1f3af3216875dd59a5bb21629b7c7f':
  Add selinux and verity support to custom image generation.
2015-06-03 17:11:11 +00:00
Ying Wang
abffa466cc am b7e6e8bb: Merge "Support to configure and build multiple custom images."
* commit 'b7e6e8bb6d00dc2677b297e548aff92f97066ab5':
  Support to configure and build multiple custom images.
2015-06-03 17:11:10 +00: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
Ying Wang
3bb1bea968 am 9fed6369: Merge "Add VeritySigner.jar to ota tools"
* commit '9fed6369b6ee4ad07a0313fa5321047be1d79b85':
  Add VeritySigner.jar to ota tools
2015-06-03 16:52:49 +00: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
9cc3b7572c am 91c2f705: Merge "Add /lib[64] to host binary\'s rpath."
* commit '91c2f7053d131cb9449eccfda97ec80130dbf451':
  Add $ORIGIN/lib[64] to host binary's rpath.
2015-06-01 18:37:12 +00: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
8b79abfb44 am c2be68e4: Merge "Remove gcc 4.9 workaround."
* commit 'c2be68e4f688f61ea5c23183b8eaeb4e34aa1c56':
  Remove gcc 4.9 workaround.
2015-05-29 20:28:08 +00: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
a6b1466168 am 1a81a0ef: Merge "[MIPS] Do not use compact branches until GDB supports them"
* commit '1a81a0efca84990648a0b0f023b8a270226303ae':
  [MIPS] Do not use compact branches until GDB supports them
2015-05-29 04:54:33 +00: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
b81844517e am cb46fa78: Merge "Pass --no-generate-debug-info to dex2oat."
* commit 'cb46fa780c6d87baebcadbf22567d78836f12295':
  Pass --no-generate-debug-info to dex2oat.
2015-05-28 18:53:20 +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