Commit Graph

6624 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
Andrew Hsieh 75f3c5a849 Merge "Revert "Revert "Enable linker -fix-cortex-a53-843419""" 2015-05-13 01:08:51 +00:00
Dan Albert 2a4a023a54 Fix using libc++_static in dynamic binaries.
Change-Id: I89bacfbf270d2d1bc1b9b2fa6951b355a67b808c
2015-05-12 14:07:18 -07:00
Andrew Hsieh 0e0259cca6 Revert "Revert "Enable linker -fix-cortex-a53-843419""
This reverts commit 32e1689684.

Now that prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9 is also updated

Change-Id: Id95c1c4cc651c434461655e62b8f23afd56b53e4
2015-05-11 06:03:07 +00:00
Ying Wang 9db69c1b08 Merge "Add task to print transitive dependencies and their license files." 2015-05-07 22:43:56 +00:00
Ying Wang 39b9b690a8 Add task to print transitive dependencies and their license files.
Print modules and their transitive dependencies with license files.
To invoke, run
"make deps-license PROJ_PATH=<proj-path-patterns> DEP_PATH=<dep-path-patterns>".
PROJ_PATH restricts the paths of the source modules;
DEP_PATH restricts the paths of the dependency modules.
Both can be makefile patterns supported by makefile function $(filter).
Example:
  $ make deps-license packages/app/% external/%
  prints all modules in packages/app/ with their dpendencies in external/.
The printout lines look like "<module_name> :: <module_paths> :: <license_files>".

Bug: 20823995
Change-Id: I06b66e85ff56c8628bffa3d948085ed45870100f
2015-05-07 15:43:01 -07:00
Dmitriy Ivanov e24b6f77ff Do not pack relocations for executables
Bug: http://b/20665974
Change-Id: Ibc13b5d6bd05dfbc7ff8475068fe7363f58e7e67
2015-05-07 13:10:02 -07:00
Dan Albert 5ee74388b1 Merge "Disallow using stlport." 2015-05-06 19:53:43 +00:00
Dan Albert 3a360a7353 Disallow using stlport.
The only remaining users of stlport are vendor blobs. Prevent any new
users from using it.

Bug: http://b/15193147
Change-Id: I577a16c8c52e2c7d939c3b5026e18ad90e4b9f26
2015-05-06 10:10:30 -07:00
Dan Albert 0ad5bd22c8 Cleanup libc++ configuration.
Change-Id: I2162f2a19c7f13cfbd4a2530a783a4e671d7cdb1
2015-05-06 10:09:50 -07:00
Dan Albert b2ce04b431 Merge "Make Windows a non-multilib target." 2015-05-05 23:39:00 +00:00
Dan Albert dc94137927 Make Windows a non-multilib target.
We don't have a toolchain for 64-bit windows.

This allows running `USE_MINGW=1 mm` in a directory that has a host
module with LOCAL_MULTILIB := both.

Change-Id: I31f981b38fb80b0d6582bab0a4bd580a3c654c91
2015-05-05 15:46:50 -07:00
Dan Albert b5ccb461ed Merge "Select the correct target STL with USE_MINGW." 2015-05-05 21:40:59 +00:00
Dan Albert e76bb83fcd Fix JDK check for USE_MINGW=1.
Change-Id: I3bdd9258e8870fc00a5f1f74682a949dc487d851
2015-05-05 11:41:52 -07:00
Dmitriy Ivanov 392569c12c Fix mips build
Change-Id: Ifbb2df36c173511c118f34cfa39bb01ca7f7d380
2015-05-04 18:10:47 -07:00
Chih-Hung Hsieh f274888870 Merge "Upgrade x86 gcc to 4.9 and disable devirtualization." 2015-05-04 23:36:51 +00:00
Dan Albert 88a8ce6946 Select the correct target STL with USE_MINGW.
The previous check tested against USE_MINGW even for target builds.
Hadn't been a problem because people don't typically set USE_MINGW
directly.

Change-Id: I90fe0ea890c44917eb29dd02d7c7f76c19e7fbd6
2015-05-04 16:34:19 -07:00
Dan Albert b9a8aa63cb Merge "Fix prebuilts for target builds with USE_MINGW=1." 2015-05-04 22:46:58 +00:00
Dan Albert 216ecac61e Fix prebuilts for target builds with USE_MINGW=1.
USE_MINGW=1 mm didn't work in directories that contained target modules
because the build system would use the Windows locations and extensions
when trying to find the host GCC prebuilts. Windows is the target OS,
not the OS we're building from.

Change-Id: Ic994fed15388d0c7d393f71ba28fe7afdc659f5c
2015-05-04 22:44:39 +00:00
Chih-Hung Hsieh 90036610dd Upgrade x86 gcc to 4.9 and disable devirtualization.
Also filter out gcc-only flags -Wno-clobbered and -fno-devirtualize
when compiled with clang/llvm.

BUG: 19872411
Change-Id: I6de57583be04da607f569df65e93531787dbb789
2015-05-04 14:04:58 -07:00
Dmitriy Ivanov 86bd653f70 Pack module before making symbolic version
We need PT_LOAD segments to match for the gdb sake.
  If we pack module after stripping symbolic version
  PT_LOAD differ from actual ones; this confuses gdb.

Bug: http://b/20687795
Change-Id: If7b1ffcda918d0cc47051a30ca1202007ed62403
(cherry picked from commit 258b29cf76)
2015-05-04 13:13:01 -07:00
Chris Dearman ab3a5f490c Configure synci generation explicitly
The default for synci generation is compiler version dependent

Change-Id: I3f94cabd98c45aaa4e5149e8bb050dc47efa61ca
2015-04-30 13:22:16 -07:00
Dmitriy Ivanov 8387d99ec3 Revert "Revert "Pack relocations for mips64""
This reverts commit 6399dcce59.

Bug: http://b/20658994
2015-04-29 17:08:54 -07:00
Dmitriy Ivanov cb2b3d47ad Revert "Revert "Pack relocations for mips""
This reverts commit d05fd6fc82.

Bug: http://b/20658994
Change-Id: Iccbd4846b310306ed11b87f4566b8aaadfa63ebb
2015-04-29 15:32:10 -07:00
Dimitry Ivanov b755009325 Merge "Revert "Pack relocations for mips"" 2015-04-29 19:14:17 +00:00
Dimitry Ivanov dcf8bd8c07 Merge "Revert "Pack relocations for mips64"" 2015-04-29 19:03:56 +00:00
Dimitry Ivanov 6399dcce59 Revert "Pack relocations for mips64"
This reverts commit 8bd30fe3cb.

Bug: http://b/20658994
Change-Id: I6c31094559a12b824344802bf3993f91aee79a26
2015-04-29 18:59:05 +00:00
Dimitry Ivanov d05fd6fc82 Revert "Pack relocations for mips"
This reverts commit 9dc1a7359f.

Bug: http://b/20658994
Change-Id: Ib10c764a7d06db823ee2fccfa47240e0a639d4bc
2015-04-29 18:57:54 +00:00
Dan Albert 5619dbec25 Don't pack ASAN executables.
The relocation packer is causing the kernel to load the executable
overlapping ASAN's shadow space.

Bug: http://b/20665974
Change-Id: Ifc5914f4fbed5f4f00ed1c795d01cf2fcb849cfe
2015-04-28 15:00:15 -07:00
Dan Albert 1f0d53080b --no-as-needed needs -Wl.
Not sure why my checkbuild passed.

Change-Id: Iead84121daaaa32c5dd1f0712e9b7caaffd58352
2015-04-28 14:55:50 -07:00
Dan Albert 8a31153ae0 Make asan more closely match clang behavior.
Always link libm with asan. Hasn't been a problem before because ASAN
was only ever used when libc++ was as well, which already links libm.

Pass --no-as-needed for host modules.

These aren't needed for the target builds because the target uses the
shared RTL.

Change-Id: I5d6a3c2dd557b5231be2b7711df6438693753a88
2015-04-28 14:09:34 -07:00
Dan Albert 9f17655453 Fix bad variable names.
My working tree was still dirty when I verified the original change.

Change-Id: I3e6fa6908b809c016231b398c5d30d8cce3b87ab
2015-04-28 11:26:45 -07:00
Evgenii Stepanov 55f3c4c25e Merge "Fix AddressSanitizer link order and multilib setup." 2015-04-27 22:46:41 +00:00
Evgenii Stepanov f0b15e173b Fix AddressSanitizer link order and multilib setup.
ASan runtime library (when using dynamic linking) must be the first
dependency of the main executable to achieve correct symbol
interposition. This matches how the clang driver works.

In multilib setup, ASan-RT name depends on the target arch:
  /system/lib/libclang_rt.asan-arm-android.so
  /system/lib64/libclang_rt.asan-arm64-android.so

We also set RPATH to /system/lib/asan or /system/lib64/asan
to have a place for ASan-only versions of system libraries.

Change-Id: I5c0cdb89e5e08a1950eb276e406da9f31a6e52dd
2015-04-27 14:48:35 -07:00
Dan Albert 959f0eccb4 Merge "Add LOCAL_SANITIZE_RECOVER." 2015-04-27 19:53:02 +00:00
Dan Albert 4111d4804a Add LOCAL_SANITIZE_RECOVER.
This is needed for projects that have known ubsan issues that we can't
fix right away (perhaps because it's an upstream project that we're
diligent about keeping in sync with upsteam).

Also make the normal ubsan use -fno-sanitize-recover=all by default.

Change-Id: I1b0f3309792f32dbd08c18816d7306e76c8d7c30
2015-04-27 11:07:38 -07:00
Elliott Hughes b271669a0c Merge "Fix a trivial comment typo." 2015-04-25 18:04:21 +00:00
Elliott Hughes ae1d4b0d18 Fix a trivial comment typo.
Bug: https://code.google.com/p/android/issues/detail?id=170069
Change-Id: Iacd308893561a991971b191d4d10a78ca82753d4
2015-04-25 11:02:40 -07:00
Nick Kralevich 100acd1001 host compiler: enable compiler hardening flags
Enable the following compiler hardening flags:

* -Wl,-z,relro
* -Wl,-z,now
* -fstack-protector

relro / bind_now make the relro region read-only after linking,
preventing certain attacks against ELF data structures.

stack-protector adds stack canaries, which can detect exploits
which overwrite parts of the stack.

Explicitly not added in this change is FORTIFY_SOURCE=2. Adding that
option turns on glibc's warn_unused_result attributes. This generates
a huge number of new compile time warnings, and for the multiple
makefiles which have -Werror in them, turns those warnings into errors.
I'm not able to fix all the errors right away.

Bug: 20558757
Change-Id: I86791177c6695f5325233d9dd9a5dd3ccc2b1a2f
2015-04-24 21:26:08 -07:00
Dmitriy Ivanov 8bd30fe3cb Pack relocations for mips64
Bug: http://b/18051137
Change-Id: I063c5d6cf007658c0efe9cb1d65ed8026b3e7dae
2015-04-24 16:34:09 -07:00
Dmitriy Ivanov 4fa4e4befd Merge "Do not pack relocations for prebuilts by default" 2015-04-24 22:56:08 +00:00
Dmitriy Ivanov 64762c3027 Do not pack relocations for prebuilts by default
Do not pack relocations for prebuilds unless
 LOCAL_PACK_MODULE_RELOCATIONS is true

Bug: http://b/20537715
Bug: http://b/18051137
Change-Id: Iddef3b09741da6ae10d73c98103b868cc7695d38
2015-04-24 15:33:14 -07:00
Dmitriy Ivanov 9dc1a7359f Pack relocations for mips
Bug: http://b/18051137
Change-Id: Id5e0adfb55273f23e1c99b4eecb318c6b8d19989
2015-04-24 12:20:02 -07:00
Dmitriy Ivanov b1c2727aec Merge "Pack relocations for x86" 2015-04-24 17:44:09 +00:00
Dmitriy Ivanov 1d4804ccd1 Pack relocations for x86
Bug: http://b/18051137
Change-Id: I3f316343e9bbd2037a9583d5b6fb41a06be153cd
2015-04-24 10:34:59 -07:00
Dmitriy Ivanov 3b51f20be9 Disable packed relocations for NDK builds
Bug: http://b/20537715
Change-Id: I1289a88d5eb694980b026b695cb25edd8ba76ed5
2015-04-23 18:55:23 -07:00
Dmitriy Ivanov 4c2d1a64fb Pack relocation tables for dynamic executables
Add replocation-packer step for dynmic executables.

  Enable it by default for arm and arm64 platforms.

Bug: http://b/18051137
Change-Id: I0c88fd31595bcea62a087f219acb9ecf9c80f2e5
2015-04-23 12:07:16 -07:00
Dimitry Ivanov 1eca10fa9d Revert "Pack relocation tables for all dynamic executables"
This reverts commit e7a1b8a0c6.

Change-Id: I1a2185e1c68d364941e3b3e525a8c4a7a42e0cc1
2015-04-23 04:22:33 +00:00
Dmitriy Ivanov e7a1b8a0c6 Pack relocation tables for all dynamic executables
Bug: http://b/18051137
Change-Id: I277277d5f5eb450ef9b4a23cfec16d75d977eb89
2015-04-22 13:30:43 -07:00
dcashman ab59266db0 Merge "Add lib dirs to cts distribution." 2015-04-22 17:02:32 +00:00
dcashman 17412c8305 Add lib dirs to cts distribution.
Add ability to include dirs to the cts distribtion to enable bundling of shared
libraries on which host-side executables rely.

Bug: 19566396
Change-Id: Id501874244ae98fbfef2aa591885c88dee5b8b02
2015-04-21 17:53:21 -07:00
Dmitriy Ivanov 4eb120b999 Remove unsupported *_COMPRESS_MODULE_SYMBOLS
Change-Id: Ibb7da2997a0bb5b9f435213c9d3206bc4aad18db
2015-04-20 12:24:12 -07:00
Nick Kralevich 5aa0223c6a Support LOCAL_PAGE_ALIGN_JNI_SHARED_LIBRARIES for prebuilt APKs
If a prebuilt APK contains shared libraries and the flag
LOCAL_PAGE_ALIGN_JNI_SHARED_LIBRARIES := true is set, then
uncompress any shared libraries stored within the APK.
This allows processes to load the shared library directly from
the APK.

Bug: 20247329
Bug: 8076853
Bug: 1162500
Change-Id: Iac4db32457d9ce31eb7256410023819b44fda0a6
2015-04-17 16:53:15 -07:00
Dan Albert b687444051 Merge "Add support for a partial ubsan build." 2015-04-17 19:33:02 +00:00
Dmitriy Ivanov e3aa1c1f85 Merge "Remove LOCAL_JNI_SHARED_LIBRARIES_ZIP_OPTIONS" 2015-04-17 18:50:13 +00:00
Dmitriy Ivanov 8f9487431c Remove LOCAL_JNI_SHARED_LIBRARIES_ZIP_OPTIONS
Use LOCAL_PAGE_ALIGN_JNI_SHARED_LIBRARIES instead.

Change-Id: Id30529fbc1652d066e0008813352848b5e404ab9
2015-04-17 11:39:04 -07:00
Dan Albert b5b2ffe3be Add support for a partial ubsan build.
Some of the ubsan checks expose a few pathological performance cases
in clang, and thus aren't suited to be used in SANITIZE_HOST.

This mode is also supported on the target despite not having the
target runtime libraries for ubsan by generating traps.

Change-Id: I0b0f0a08ca84d72e44e2174a66726b1c5e5cad7e
2015-04-17 11:37:03 -07:00
Dan Albert 4c92a68127 Fix misuse of my_sanitize_host.
Ying pointed out in https://android-review.googlesource.com/#/c/147290
that my_sanitize_host would be read as some garbage value for target
builds. Move the configuration later and don't use the local at all.

Change-Id: Id8a095821d000a184e72f950b9481597073a7044
2015-04-17 11:32:57 -07:00
Dan Albert 94b579166f Make use of sanitizers without clang an error.
Previously using a sanitizer would imply clang. It should be an error
instead so it's more obvious.

Change-Id: I67c949bfda3718a0d19da7e358b5fde447fce334
2015-04-17 11:06:24 -07:00
Dan Albert 27ccb75af7 Clean up sanitizer configuration.
* Refactor a few pieces to avoid deeply nested conditionals.
 * LOCAL_SANITIZE := never replaces LOCAL_ADDRESS_SANITIZER := false.

Change-Id: I68bb8c5edda6ecd40179c5ba9f18d06e96aaa260
2015-04-17 09:39:12 -07:00
Dan Albert 4ed9508842 Merge "Add support for ubsan." 2015-04-15 22:06:15 +00:00
Kenny Root dff3755a93 Move package signing after file stripping
For dex preopt and JNI library extraction, we should remove the
classes.dex and .so files before we sign the APK so that there
isn't an entry in the manifest.

Prebuilt APKs which are pre-signed will simply not have the files
removed. This may cause some system.img bloat, but signature checks make
this necessary.

Bug: 20247329
Change-Id: I4742d1aa3aa64ab5aea2264304cb8c0bea24f784
2015-04-15 12:40:22 -07:00
Mark Salyzyn 8b75ec1c7b Merge "disttools: add liblog, libcutils and libselinux shared libraries" 2015-04-15 14:45:05 +00:00
Dan Albert ad1961a747 Merge "Don't use libunwindbacktrace for non-ARM." 2015-04-14 23:17:41 +00:00
Mark Salyzyn c506e74dc8 disttools: add liblog, libcutils and libselinux shared libraries
Bug: 19908228
Change-Id: I48450a9fb917408cb3bc0e41d70c0593acd2b884
2015-04-14 15:17:16 -07:00
Dan Albert 2d215e38c0 Merge "Use libcompiler_rt-extras on the host too." 2015-04-14 22:04:56 +00:00
Dan Albert 3e99e66213 Don't use libunwindbacktrace for non-ARM.
After fixing the link order here, it seems libunwindbacktrace no
longer works for exception unwinding, but libgcc now does.

Change-Id: Ice79af4b8f234ed6a053ee818b6dec3aa9706c8a
2015-04-14 14:42:45 -07:00
Andrew Hsieh f37e96e232 Merge "Revert "Enable linker -fix-cortex-a53-843419"" 2015-04-13 23:48:28 +00:00
Andrew Hsieh 32e1689684 Revert "Enable linker -fix-cortex-a53-843419"
This reverts commit 54b22a5a70.

Change-Id: I23613490030783fb6da678de5a25f37caebe5f97
2015-04-13 23:39:45 +00:00
David Srbecky c8400a3e2f Merge "Add --include-cfi compiler option." 2015-04-13 20:34:50 +00:00
David Srbecky 299d3f4960 Add --include-cfi compiler option.
Decouple generation of CFI from the rest of debug symbols.
This makes it possible to generate oat with CFI but without
the rest of debug symbols.

This is in line with intention of the .eh_frame section.
The section does not have the .debug_ prefix because it
is considered somewhat different to the rest of debug symbols.

Change-Id: I32816ecd4f30ac4e0dc69d69a4993e349c737f96
2015-04-13 19:50:51 +01:00
Andrew Hsieh 7bd978c2b3 Merge "Enable linker -fix-cortex-a53-843419" 2015-04-13 03:06:50 +00:00
Pirama Arumuga Nainar dbecad05a9 Merge "Use -Wno-format-pedantic to disable overly aggressive format string warning." 2015-04-10 21:23:12 +00:00
Stephen Hines 69bd465b6e Merge "Don't use -Wl,--fix-cortex-a8 for Cortex A7, A9, A15, Krait or Denver" 2015-04-10 16:17:52 +00:00
Stephen Hines b992bfcf33 Use -Wno-format-pedantic to disable overly aggressive format string warning.
Bug: 20148343

The latest clang warns on "%p" being used with non-void pointer types, which
would require a great deal of cleanup in several sub-projects.

Change-Id: I4175d5cf8709504455067c906a2eb8ccc8e25432
2015-04-10 09:12:38 -07:00
Dan Albert 30a9c351d6 Use libcompiler_rt-extras on the host too.
Clang will sometimes generate this call (dex2oat with ubsan is one
known case), and it doesn't exist in libgcc.

Change-Id: I2eb68e2a326eb0407dca03b5870077eeebca1c0a
2015-04-09 16:38:55 -07:00
Colin Cross 7c2bfaf329 Merge "Change the default multilib for host libraries to "both"" 2015-04-09 20:47:16 +00:00
Ying Wang 42a3e879b6 Merge "Remove ancient ranlib workaround on Mac OS X." 2015-04-09 17:07:44 +00:00
Ying Wang aaf9a5b0cc Remove ancient ranlib workaround on Mac OS X.
Apparently we don't need it for Mac OS X 10.7 and above.

Change-Id: I5ee81700c16e8c66b2d5f2b373fd2d523b5ec018
2015-04-09 10:06:33 -07:00
Andrew Hsieh 54b22a5a70 Enable linker -fix-cortex-a53-843419
Change-Id: Icb8a4ce4d5688847cfe536eba2139cdf7f6406f3
2015-04-09 12:37:36 +08:00
Tao Bao 87df99f2f6 Merge "Fix the font size selection for recovery mode" 2015-04-08 23:57:31 +00:00
Ying Wang 2594d3d121 Merge "Remove unnecessary confusing use of $(intermediate)." 2015-04-08 23:40:34 +00:00
Ying Wang 62925a993a Remove unnecessary confusing use of $(intermediate).
Change-Id: I0e73c3c1bf94540419e1fd227a3096da148e2459
2015-04-08 16:37:34 -07:00
Dan Albert 08cca28f92 Add support for ubsan.
Rather than adding LOCAL_UB_SANITIZER, LOCAL_THREAD_SANITIZER, etc for
each new sanitizer, deprecate LOCAL_ADDRESS_SANITIZER in favor of
LOCAL_SANITZE that mirrors the behavior of -fsanitize=<sanitizers>.

For example, the following will use both asan and ubsan:

    LOCAL_SANITIZE := address undefined

We'll leave LOCAL_ADDRESS_SANITIZER around for compatibility until we
can clean up the tree.

Change-Id: I8a62315129d4753f8e992584ca6db1e5dfdd4d2a
2015-04-08 15:52:04 -07:00
Nick Kralevich 6d08a0d3fc Merge "AndroidConfig.h: ensure HAVE_MALLOC_H always has a value." 2015-04-08 22:50:03 +00:00
Tao Bao abbc911632 Fix the font size selection for recovery mode
shamu has a 560dpi density, which is between xxhdpi and xxxhdpi. It
deserves the large font (18x32), otherwise it falls back to use the
small one and makes it mostly unreadable under recovery mode. Amend
the list to include 560dpi and 400dpi that are higher than xhdpi.
Ideally we should map string formats back to numbers for easy
comparison (and to handle any high but odd density values).

Change-Id: Ie08d9ce5e1c8850ff30a79bcbfd1b89e971b7e07
2015-04-08 15:39:33 -07:00
Ying Wang c45a47b5f3 Better way to package up the otatools-package.
With this, you can easily add more executables, jars or shared libraries
to the package. Also now it automatically takes care of
32-bit-v.s.-64-bit library issue.

Change-Id: I5afe00fadc978d0da229b192eca1a4b1c149764e
2015-04-08 12:40:37 -07:00
Nick Kralevich 9b44afb452 AndroidConfig.h: ensure HAVE_MALLOC_H always has a value.
Some programs (cough sqlite cough) do an improper check to see if
HAVE_MALLOC_H is defined. Instead of defining it with no value,
define it with a value so those checks pass.

Needed for bug: 20099586

Change-Id: I4c293b2c1b5f4caad85ffc1fc34ac385bab23f5c
2015-04-08 12:21:54 -07:00
Colin Cross 9d59f41776 Change the default multilib for host libraries to "both"
Change host library builds to build for both architectures to
match device builds, removing the need for LOCAL_MULTILIB := both
in all the art library makefiles.

Change-Id: I2689f67c66f5055f93941f40b3e825127f693eca
2015-04-08 18:09:52 +00:00
Ying Wang 18ecae31e6 Merge "Convert bc depfiles to .P files." 2015-04-04 01:09:55 +00:00
Ying Wang b931956076 Convert bc depfiles to .P files.
So you don't need clean step when a header file gets moved or deleted.

Change-Id: Iec0d63b89ba17c4ef0ad75f4a52b6759f2bff58a
2015-04-03 16:55:09 -07:00
Elliott Hughes 98ff711a5d There's no such thing as _THREAD_SAFE.
At least, as far as I can tell from the internet and from grep in /usr/include
on a Mac.

Change-Id: I7f39bb2013db88e59f604e4491344d0d342e5f0b
2015-04-03 13:41:10 -07:00
Elliott Hughes 8a11491bc9 Remove HAVE_PRINTF_ZD.
Change-Id: Ie7677e4816ad886c13a8ac869e7c7342082a350f
2015-04-03 13:05:53 -07:00
Elliott Hughes dbaee628ec Merge "Remove HAVE_STRLCPY." 2015-04-03 19:42:06 +00:00
Ying Wang 555b7770fe Merge "Move the inclusion of depfile to where it's generated." 2015-04-03 16:55:44 +00:00
Ying Wang cddece6f8f Move the inclusion of depfile to where it's generated.
Change-Id: Ib7ed6d7d9105e49961ac467fd1d390060d4f5c38
2015-04-03 09:53:41 -07:00
Ying Wang 58912c874b Merge "Don't fail build of otatools if there are no device certificates" 2015-04-03 15:57:57 +00:00
Ying Wang 62003acdcc Merge "Use PRIVATE_ALL_OBJECTS" 2015-04-03 01:03:50 +00:00
Ying Wang 854607ec49 Use PRIVATE_ALL_OBJECTS
Instead of the dirty $(filter) call.

Change-Id: Idd3c9be570a00dc365a08e5b4ba1cb2e1f0ce005
2015-04-02 18:02:33 -07:00
Elliott Hughes 8f06d8afb8 Remove HAVE_STRLCPY.
Change-Id: I27864a9075183de5bd83569d53a00fc2f53c96df
2015-04-02 16:43:52 -07:00
Chih-Hung Hsieh 9205bc1da6 Filter out gcc flags that are not recognized by clang.
Change-Id: I04e95fc3b0cb2825bf90a55916f89d25fa9fc475
2015-04-02 14:42:20 -07:00
Ying Wang 71d4c95f83 Merge "Fix typo." 2015-04-02 19:49:13 +00:00
Ying Wang 36b039a2d6 Fix typo.
Change-Id: Ic934ed8610a4f03fbfb3d06dff4d911734a9d818
2015-04-02 12:48:32 -07:00
Claes Elgemark ed1158e01f Don't fail build of otatools if there are no device certificates
Change-Id: I32723701d952ef2243ce0234132fa9876f0f21b6
2015-04-02 17:38:29 +00:00
Dan Albert 343ed674e3 Use prebuilt libclang_rt.profile.
Bug: 17574078
Change-Id: I4838cd5d125a0b2bf76aad2fdaef1ee3122687e8
2015-04-01 19:03:22 -07:00
Stephen Hines 9a98c47c64 Merge "Don't warn on definition of possibly reserved identifiers." 2015-04-01 18:50:29 +00:00
Neil Fuller 2ff6a3bbdf Merge "Add explicit dependency on tzdata_updates_intermediates for CTS" 2015-04-01 17:43:54 +00:00
Neil Fuller 391d4e9c75 Add explicit dependency on tzdata_updates_intermediates for CTS
The build was working on AOSP, but fails downstream when using
Jack because the javalib.jar file needed by CTS is not being
built by default there.

Change-Id: I8dd836b33a4e1bae5af623db3822de99e9b05cf0
2015-04-01 18:02:46 +01:00
Tao Bao 536029551d Merge "Add support to sign bootable images with vboot_signer" 2015-04-01 16:54:44 +00:00
Tao Bao d95e9fd267 Add support to sign bootable images with vboot_signer
Add vboot properties to the dictionary file, which will be packed into
the target_files zip. Add support in packaging and OTA scripts to
sign the generated bootable images (boot.img and recovery.img) when
vboot is enabled.

Change-Id: I08758ced03d173219415bca762bbdb66c464a9f5
(cherry picked from commit 5d5a3bd9e8d8b14b71d1b2105417a2958d13d3d2)
2015-04-01 09:23:08 -07:00
Dan Albert 5036729c41 Add unwinder linking to STL setup.
Previously we were bundling this into libc++ and having each binary
resolve its symbols from there. This means that the unwinder that gets
used for a given binary is sensitive to the order in which its
libraries are linked. Making this a static library dependency of each
binary means the right unwinder will always be used.

Bug: 18471342
Bug: 19958712
Change-Id: I782d212784dbf85355b5d9146d7460d675259a0e
2015-03-31 18:29:23 -07:00
Dan Albert 91f713a168 Revert "Revert "Fix the libgcc/libatomic link order.""
This reverts commit e440c3c07b.
2015-03-31 16:42:52 -07:00
Neil Fuller 3cc6a0f22f Merge "Addition of a CTS suite for tzdata update code" 2015-03-31 08:30:51 +00:00
Chih-hung Hsieh d63c78e058 Merge "Allow -mcpu=cortex-a15 for clang" 2015-03-27 22:33:04 +00:00
Ying Wang 454bcff255 Add back Java resources to apk without Java code.
With commit 33360dd569 we moved Java
resource packaging forward to creation of the jar file. But the Java
resource packaging will be skipped if a module has no Java code at all.
(The build system does support building an apk without Java code.)
In this change we add back the Java resources directly to the built apk
when the apk has no Java code.

(cherry-picked from commit 8b27d1879c)

Bug: 19947218
Change-Id: I0e1a65a9cbe656974f8ef3923b2f15e9efa5feb9
2015-03-27 11:30:51 -07:00
Ying Wang 1b23b33d92 Merge "MKBOOTIMG override were missing in two places" 2015-03-27 16:47:15 +00:00
Ying Wang d5415dc778 Merge "Fix: exit code is 0 even when check-boot-jars.py fails" 2015-03-26 23:25:32 +00:00
Ying Wang a2292c94d1 Support to build image of root file system with /system and ramdisk combined.
Added support to build system.img that combines contents of /system and
the ramdisk, and can be mounted at the root of the file system.
To enable this feature, define BoardConfig.mk variable:
BOARD_BUILD_SYSTEM_ROOT_IMAGE := true

Ideally we would just change TARGET_OUT (the path of the staging system
directory) to under TARGET_ROOT_OUT. But at this point many places in
the build system assume TARGET_OUT is independent of TARGET_ROOT_OUT and
we can't make it easily configurable.
Instead this implementation takes the least intrusive approach:
We don't change TARGET_OUT or TARGET_ROOT_OUT. We just assemble a
temporary staging directory that contains contents of both TARGET_OUT
and TARGET_ROOT_OUT, in build_image.BuildImage() of
tools/releasetools/build_image.py.
When build_image.py is directly called from the makefile, we pass in the
parameters from the global dictionary; when build_image.BuildImage() is
called from add_img_to_target_files.py, we need to override values to
point to files extracted from the target_files zip file.
We need to combine the fs_config files of both /system and ramdisk,
when fs_config is enabled.

Also this change refactored build_image.BuildImage() by moving the extra
parameters to the image property dictionary.

(cherry-picked from commit 0eabd4f2c5)

Bug:19868522
Change-Id: Iafc467a0e3427b0d6ad3b575abcc98ddcc9ea0f1
2015-03-26 10:35:00 -07:00
Neil Fuller 56128c5178 Addition of a CTS suite for tzdata update code
Bug: 19941636
Change-Id: Id0985f8c5be2f12858ee8bf52acf52bdb2df8741
2015-03-26 15:18:19 +00:00
Richard Uhler e7173cee10 Merge "Store odex files in oat/<isa>/ directory." 2015-03-26 14:57:33 +00:00
Jiyong Park eb745aaf74 Fix: exit code is 0 even when check-boot-jars.py fails
Fix the bug that build is still success when boot jars contain
non-whitelisted classes. Now, check-boot-jars.py correctly
finishes with exit code 1 when non-whitelisted classes are found.

Change-Id: Id5c80ef9fdb70213d878d569f6033be2c9eb90d3
2015-03-26 13:25:06 +09:00
Stephen Hines f68002187a Don't warn on definition of possibly reserved identifiers.
Change-Id: Icfcfa94aac0503c97dee0ff4d0cd49107201526d
2015-03-25 17:28:57 -07:00
Christopher Ferris a45223b635 Merge "Revert "Switch x86 and x86_64 to 4.9. Attempt #2."" 2015-03-25 18:28:53 +00:00
Christopher Ferris c9d2952e1e Revert "Switch x86 and x86_64 to 4.9. Attempt #2."
This reverts commit 6fb735b071.

Change-Id: I64b868cdfb3571de5e8b01e4257b5dfa9ee44d0d
2015-03-25 18:27:21 +00:00
Ying Wang e9b15e2ccd Merge "Switch x86 and x86_64 to 4.9. Attempt #2." 2015-03-25 18:11:54 +00:00
Bernhard Rosenkränzer 4da707176b Don't use -Wl,--fix-cortex-a8 for Cortex A7, A9, A15, Krait or Denver
-Wl,--fix-cortex-a8 is a workaround for an Erratum in Cortex-A8
processors. It slightly increases code size and decreases performance,
and there's no point in using it on non-A8 CPUs.

Instead of forcing it unconditionally, use it when targeting
Cortex-A8 or generic armv7-a (which might or might not be A8).

Change-Id: Ifa59765d380445237edccfe5440a67b3ba1e459a
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2015-03-25 17:21:02 +01:00
Bernhard Rosenkränzer a24a9a8e62 Allow -mcpu=cortex-a15 for clang
Clang 3.6 (including the snapshot present in AOSP) added support for
-mcpu=cortex-a15 -- there's no need to fall back to generic armv7-a
anymore.

Change-Id: I8a582261ac35e32f8f1def1d244cf83f2096520d
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2015-03-25 16:59:46 +01:00
Per Astrand cab6699160 MKBOOTIMG override were missing in two places
The change follows the patten found in "Package OTA" and other places
to allow for overriding the mkbootimg command.

Now pass MKBOOTIMG variable to get make_recovery_patch and add_image_to_target
to use the tool set in BOARD_CUSTOM_MKBOOTIMG for boot/recovery image
generation.

Change-Id: I78533c25e87c2750eb24ac1bf39e4b7ca321a441
2015-03-25 16:02:50 +01:00
Chih-Hung Hsieh 44fe7554c8 Remove special x86 flag that disables tail call optimization.
Clang's tail call optimization for position independent code
only works when the callee was called (bound in GOT) before
the jump through GOT.
It does not work for some lazy bound Android tail callee.
We used special flag to disable all tail call optimization.

This change removes that global flag and depends on
clang compiler fix from upstream or the temporary patch in
https://android-review.googlesource.com/#/c/142241

See proposed llvm changes and pointers to llvm bugs in
https://android-review.googlesource.com/#/c/142792

Change-Id: Idb6e98d6b5f0e4c3676884b69eb3e767eba2491a
2015-03-25 00:19:16 +00:00
Brian Carlstrom f7683b813a Merge "Clearly explain that 32-bit x86 is not supported" 2015-03-20 21:52:38 +00:00
Mathieu Chartier 55fbc49fe1 Merge "Change eng builds from interpret-only to verify-at-runtime" 2015-03-20 21:19:40 +00:00
Brian Carlstrom 2cd8a74b2d Clearly explain that 32-bit x86 is not supported
Change-Id: I7f352fae8fa3742c61dc74e20aacd32254451bce
2015-03-20 12:50:42 -07:00
Mathieu Chartier 62a7cac50d Change eng builds from interpret-only to verify-at-runtime
Faster dex2oat -> faster boot after syncing core libraries.

Bug: 19762303
Change-Id: Ic266ed9c59829e0e18acc4adc103724cf480de7f
2015-03-20 11:15:20 -07:00
Alexander Ivchenko 6fb735b071 Switch x86 and x86_64 to 4.9. Attempt #2.
BUG=16407835

Change-Id: I45161bf4701bef4540b51168f771c5e9da8c8750
Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
2015-03-20 17:07:34 +03:00
Dan Albert 59112a2da3 Merge "Static binaries with libc++ need libs c, m and dl." 2015-03-20 03:04:20 +00:00
Dan Albert 7955bf0fd6 Static binaries with libc++ need libs c, m and dl.
Can't be done on the user's end because these libraries all need to be
linked after libc++_static.

Change-Id: Ib21364e6f43689cf59da31d6f561919731ef8272
2015-03-19 13:05:13 -07:00
Mathieu Chartier 8b11285dd9 Revert "Rename dalvik.vm.usejit to debug.dalvik.vm.usejit"
Bug: 19735273

This reverts commit 3abfcfc17b.

Change-Id: Iac930925ab6d5cd5947fa4077c8d93e2984927d5
2015-03-18 19:06:28 -07:00
Richard Uhler 820fe32d46 Store odex files in oat/<isa>/ directory.
Previously odex files were stored alongside the dex location as:
  dex location: /foo/bar/base.apk
  odex location: /foo/bar/<isa>/base.odex

This changes where odex files are stored, adding an "oat" directory:
  dex location: /foo/bar/base.apk
  odex location: /foo/bar/oat/<isa>/base.odex

See also the corresponding change in platform/art and
platform/frameworks/native.

Bug: 19550105
Change-Id: I4c6be4f0c41ff175904846db8e360c4af815b265
2015-03-18 12:41:31 -07:00
Mathieu Chartier 3abfcfc17b Rename dalvik.vm.usejit to debug.dalvik.vm.usejit
Bug: 19735273
Change-Id: Ia0d748b511230f5e0c7d0763de3abeab9d6e0ca7
2015-03-16 16:29:30 -07:00
Ying Wang f738b3bb9f Load cts/build/config.mk after build/core/config.mk
So that the cts config.mk can use global variables set by the core build
system config.mk.

Change-Id: I2571564abbb53257eee54485a3357ab1305eb870
(cherry picked from commit bacf5f8008)
2015-03-16 10:56:03 -07:00
Ying Wang c1729f3602 Strip prebuilt shared library by default.
Strip prebuilt shared library but not try adding gnu debuglink.
It would fail if you try run the adding gnu debuglink command if a
prebuilt is already stripped.

Bug: 17177288
Change-Id: If5811865715c2437e45fbd329983ef1212ef0109
(cherry picked from commit bfb52a2ec1)
2015-03-13 11:36:15 -07:00
Przemyslaw Szczepaniak 0e2d00ff1f Switch NDK libraries to 4.9 for x86_64 and mips64
Android NDK r10b doesn't even provide 4.8 for those
archs.

Change-Id: I10840c6c7bbc0dd9028a794162d021d8b3e6b19a
(cherry picked from commit fabd383bc8)
2015-03-13 11:36:15 -07:00
Ying Wang d791463511 Support "LOCAL_FDO_SUPPORT := always".
"LOCAL_FDO_SUPPORT := always" enables FDO without user specifying
"BUILD_FDO_OPTIMIZE := true", i.e. it turns on FDO for a
module in any build configuration.

Change-Id: I05d8db2edb2b3f5db073fa14d5bf1083a04571c0
(cherry picked from commit 45d0143ab1)
2015-03-13 11:36:15 -07:00
Ying Wang 95a543c987 Set up environmental variable PATH before calling releasetools scripts.
Some releasetools python sripts rely on $PATH to search for the
executables. With this change, you don't need to run lunch even after you
change the build system variable OUT_DIR.

Bug: 19320328
Change-Id: Ia44b11084fb1bdcceb60b1d33cb7e460c9b705a8
(cherry picked from commit 9d252e1009)
2015-03-13 11:36:15 -07:00
Doug Zongker b2cdb1cca5 include oem.prop files in otatools_package
Change-Id: I2f28936edda5d8d9bff6213828c16d607263cd95
(cherry picked from commit ce43bc8df2)
2015-03-13 11:36:15 -07:00
Jesse Zhao f749b4b664 DO NOT MERGE: Bundle libc++.so into otatools-package.
Change-Id: I6b7d16eca18dce3e2990464f3d1a34740ad8a8ee
(cherry picked from commit f7daa92cff)
2015-03-13 11:36:14 -07:00
Doug Zongker 0c6c03269e add otatools-package target
Add a target to zip up all the otatools and releasetools, for easy
copying to the OTA builder machine.

Change-Id: If14b4afefcc1a20ea19dfca3f3b9f9fae73189a6
(cherry picked from commit f22b0f43ef)
2015-03-13 11:36:14 -07:00
Dan Albert 105b94cc44 Merge "[Renderscript] making librsjni.so be packed with apks when v8.renderscript is needed, even for bundled apps." 2015-03-13 17:27:47 +00:00
Miao Wang bb5196e857 [Renderscript] making librsjni.so be packed with apks when
v8.renderscript is needed, even for bundled apps.

Bug: 19343399
Change-Id: I461e244be15e08d4525439bc042529314c84031e
(cherry picked from commit c919b0ba88)
2015-03-13 10:23:30 -07:00
Sami Tolvanen 8cdf72066b Merge "Change transfer list format to include block hashes" 2015-03-13 11:02:02 +00:00
Christopher Ferris 62d5e2acf5 Merge "Update x86_64 minimal ISA instruction set" 2015-03-13 04:18:18 +00:00