OSDN Git Service

android-x86/build.git
8 years agoMerge "Skip uses-library check for preopted apps."
Treehugger Robot [Tue, 14 Jun 2016 17:22:25 +0000 (17:22 +0000)]
Merge "Skip uses-library check for preopted apps."

8 years agoSkip uses-library check for preopted apps.
Jeff Hao [Mon, 13 Jun 2016 23:53:11 +0000 (16:53 -0700)]
Skip uses-library check for preopted apps.

Bug: 26880306

(cherry-picked from commit b00263f96a90c9f77cf7d8d90742a0884290bf60)

Change-Id: I22beccaf61ca30cf1487a25f80e1c3fd7bdf2c62

8 years agoMerge "Add option to link static lite protobuf library."
Yabin Cui [Tue, 14 Jun 2016 00:16:34 +0000 (00:16 +0000)]
Merge "Add option to link static lite protobuf library."

8 years agoMerge "More general OutputStreamDataSink."
Alex Klyubin [Mon, 13 Jun 2016 19:49:01 +0000 (19:49 +0000)]
Merge "More general OutputStreamDataSink."

8 years agoMerge "Fix inefficiency in APK entry data alignment."
Alex Klyubin [Mon, 13 Jun 2016 18:14:18 +0000 (18:14 +0000)]
Merge "Fix inefficiency in APK entry data alignment."

8 years agoMore general OutputStreamDataSink.
Alex Klyubin [Mon, 13 Jun 2016 17:19:26 +0000 (10:19 -0700)]
More general OutputStreamDataSink.

This replaces the less general DataSink which outputs into a
ByteArrayOutputStream with a more general DataSink which outputs into
an OutputStream.

Bug: 27461702
Change-Id: I9467f38c41f586b71f35edb3602fd6e57153184f

8 years agoMerge "bvb: Update path to key since repo was moved."
David Zeuthen [Mon, 13 Jun 2016 15:54:36 +0000 (15:54 +0000)]
Merge "bvb: Update path to key since repo was moved."

8 years agobvb: Update path to key since repo was moved.
David Zeuthen [Mon, 13 Jun 2016 15:26:26 +0000 (11:26 -0400)]
bvb: Update path to key since repo was moved.

We recently moved Brillo verified boot from system/bvb to external/bvb
so update the path accordingly.

TEST=Build with 'BOARD_BVB_ENABLE := true' succeeds.
BUG=29099910

Change-Id: I66f3b90e23d6b2afc09f81af571ede7b573325e9

8 years agoMerge "Do not force turn off of Jack warning"
Yohann Roussel [Mon, 13 Jun 2016 14:33:47 +0000 (14:33 +0000)]
Merge "Do not force turn off of Jack warning"

8 years agoFix inefficiency in APK entry data alignment.
Alex Klyubin [Sun, 12 Jun 2016 00:42:29 +0000 (17:42 -0700)]
Fix inefficiency in APK entry data alignment.

26f00cda4b979d7e74db6872990682335b36612b introduced a bug where an
APK entry's extra field is padded for alignment purposes when no
padding is necessary because the entry is aligned without any padding
bytes.

Bug: 27461702
Change-Id: Icb164dbaa26d9686412e2920318a9f40c5ce9751

8 years agoMerge "Redirect subprocess stderr to stdout in verbose mode."
Treehugger Robot [Sat, 11 Jun 2016 00:56:31 +0000 (00:56 +0000)]
Merge "Redirect subprocess stderr to stdout in verbose mode."

8 years agoRedirect subprocess stderr to stdout in verbose mode.
Alex Deymo [Fri, 10 Jun 2016 23:38:31 +0000 (16:38 -0700)]
Redirect subprocess stderr to stdout in verbose mode.

This patch uses subprocess.communicate instead of subprocess.wait to
prevent deadlock if any of the child processes outputs too much data,
and redirects the subprocess output to stdout when running in verbose
mode.

With this patch `ota_from_target_files -v` prints the delta_generator
output in stdout, and no output if '-v' is not passed.

Bug: None
TEST=ota_from_target_files -v ...

Change-Id: Id66e4f3360a6f91d61a3ce96d53afbccdaa19da5

8 years agoMerge "goldfish_setup: grant /system/bin/sh exec access"
David Turner [Fri, 10 Jun 2016 18:04:26 +0000 (18:04 +0000)]
Merge "goldfish_setup: grant /system/bin/sh exec access"

8 years agogoldfish_setup: grant /system/bin/sh exec access
Nick Kralevich [Wed, 25 May 2016 00:36:23 +0000 (17:36 -0700)]
goldfish_setup: grant /system/bin/sh exec access

The goldfish_setup shell script needs the ability to execute
the shell script interpreter. Allow it.

Addresses the following denial:

avc: denied { getattr } for pid=1220 comm="init.goldfish.s"
path="/system/bin/sh" dev="vda" ino=442 scontext=u:r:goldfish_setup:s0
tcontext=u:object_r:shell_exec:s0 tclass=file permissive=0

(cherrypicked from commit 501c88c0290eb2308c110398f106411260863bb8)

Bug: 28941573
Change-Id: I22d26e90f107c8d801229354a5e0513c37e6c31d

8 years agoMerge "Add variable PRODUCT_SHIPPING_API_LEVEL and make files with the new read only...
Vikas Marwaha [Thu, 9 Jun 2016 02:30:57 +0000 (02:30 +0000)]
Merge "Add variable PRODUCT_SHIPPING_API_LEVEL and make files with the new read only product property ro.product.first_api_level."

8 years agoMerge "Rewrite LDLIBS and SHARED_LIBRARIES"
Dan Willemsen [Wed, 8 Jun 2016 21:09:34 +0000 (21:09 +0000)]
Merge "Rewrite LDLIBS and SHARED_LIBRARIES"

8 years agoMerge "APK Signature Scheme v2 APK verifier."
Alex Klyubin [Wed, 8 Jun 2016 20:51:58 +0000 (20:51 +0000)]
Merge "APK Signature Scheme v2 APK verifier."

8 years agoAPK Signature Scheme v2 APK verifier.
Alex Klyubin [Tue, 7 Jun 2016 20:18:57 +0000 (13:18 -0700)]
APK Signature Scheme v2 APK verifier.

This adds the ApkVerifier class which verifies APKs using APK
Signature Scheme v2 only. In a follow-up commit this class will be
extended to verify APKs using JAR signature scheme when necessary.

The APK verifier is designed to not just verify an APK, but also
report errors, warnings, and information about signers in a structured
way, to enable tools to surface this information to users in various
ways.

Bug: 27461702
Change-Id: I10c6ba436021d86b6dbf6d3cf44494652adacb66

8 years agoMerge "Fix DSA APK signatures for API Level 8 and lower."
Alex Klyubin [Wed, 8 Jun 2016 15:17:42 +0000 (15:17 +0000)]
Merge "Fix DSA APK signatures for API Level 8 and lower."

8 years agoDo not force turn off of Jack warning
Yohann Roussel [Wed, 8 Jun 2016 15:00:09 +0000 (17:00 +0200)]
Do not force turn off of Jack warning

When ANDROID_JACK_EXTRA_ARGS is defined there is no reason to still turn
off those warnings.

Change-Id: Ic7ac02c72ed3b7b0eaca9394c9fc7d92d5dfa871

8 years agoRewrite LDLIBS and SHARED_LIBRARIES
Dan Willemsen [Tue, 7 Jun 2016 23:55:57 +0000 (16:55 -0700)]
Rewrite LDLIBS and SHARED_LIBRARIES

LOCAL_LDLIBS was the only correct way to use NDK libraries, but few used
it correctly. It also often got confused with LOCAL_LDFLAGS, so move the
flags to the correct variable.

For binaries that weren't using the NDK (empty LOCAL_SDK_VERSION), it
was never valid to use LOCAL_LDLIBS, as dependencies would not be
properly set up, and could lead to random build failures. So convert any
-l linker flags to using LOCAL_SHARED_LIBRARIES automatically.

For binaries built using the NDK (LOCAL_SDK_VERSION set), they were
required to use LOCAL_LDLIBS for prebuilt NDK libraries, otherwise they
would get headers and dependencies to the platform versions. Any
non-prebuilt LOCAL_LDLIBS would miss dependencies. So move the NDK
prebuilt libraries to LDLIBS from SHARED_LIBRARIES, and move everything
else to SHARED_LIBRARIES.

So now, for device modules, LOCAL_SHARED_LIBRARIES should always be
used, and we'll do the right thing. LOCAL_LDLIBS should only be used for
host libraries from the system.

Change-Id: Ide34c7afdcfb6507a378d45a42471729e489a9e0

8 years agoAdd option to link static lite protobuf library.
Yabin Cui [Wed, 8 Jun 2016 02:21:12 +0000 (19:21 -0700)]
Add option to link static lite protobuf library.

Bug: 28114205

Change-Id: Id2b7e42017a53138c60b92de8d196ca92bc38053

8 years agoMerge "Add NATIVE_TESTS class, move host native tests"
Dan Willemsen [Mon, 6 Jun 2016 23:59:23 +0000 (23:59 +0000)]
Merge "Add NATIVE_TESTS class, move host native tests"

8 years agoMerge "Switch some build tools to Soong"
Treehugger Robot [Mon, 6 Jun 2016 22:51:56 +0000 (22:51 +0000)]
Merge "Switch some build tools to Soong"

8 years agoFix DSA APK signatures for API Level 8 and lower.
Alex Klyubin [Mon, 6 Jun 2016 21:58:23 +0000 (14:58 -0700)]
Fix DSA APK signatures for API Level 8 and lower.

This modifies JAR signing code to produce DSA signatures which are
accepted by all Android platforms rather than only API Level 9 and
higher.

The issue is that by default Bouncy Castle uses OID 1.2.840.10040.4.3
(dsaWithSha1) in PKCS #7 CMS SignerInfo whereas Android accepts that
only since API Level 9. However, OID 1.2.840.10040.4.1 (dsa) is
accepted by all Android platforms.

Bug: 27461702
Change-Id: I24256a255bcdc2108bdb447557af7568a2c096e3

8 years agoSwitch some build tools to Soong
Dan Willemsen [Mon, 6 Jun 2016 21:41:32 +0000 (14:41 -0700)]
Switch some build tools to Soong

In preparation for including them in prebuilts/build-tools.

acp: We use a prebuilt in prebuilts/sdk, but it's not part of the sdk.

ijar: We use the host libstdc++ to workaround the lack of libc++ on
some unbundled branches.

ziptime: We disable this on unbundled builds, due to the lack of libc++.

Change-Id: Ib9766b1dbddd151c38ff27c529865200ab37fce1

8 years agoMerge "Remove dead rgb2565"
Treehugger Robot [Mon, 6 Jun 2016 21:35:47 +0000 (21:35 +0000)]
Merge "Remove dead rgb2565"

8 years agoMerge "Drop CLANG and CLANG_CXX in the environment"
Treehugger Robot [Mon, 6 Jun 2016 21:22:57 +0000 (21:22 +0000)]
Merge "Drop CLANG and CLANG_CXX in the environment"

8 years agoMerge "Improve efficiency of using the DataSource abstraction."
Alex Klyubin [Mon, 6 Jun 2016 21:07:52 +0000 (21:07 +0000)]
Merge "Improve efficiency of using the DataSource abstraction."

8 years agoRemove dead rgb2565
Dan Willemsen [Mon, 6 Jun 2016 20:32:11 +0000 (13:32 -0700)]
Remove dead rgb2565

Change-Id: I2397dc97768f24a7c416bff96dd983fc796cbb53

8 years agoDrop CLANG and CLANG_CXX in the environment
Dan Willemsen [Mon, 6 Jun 2016 19:21:06 +0000 (12:21 -0700)]
Drop CLANG and CLANG_CXX in the environment

We'll explicitly pass these variables to the static analyzer builds in
binary.mk

Bug: 29071982
Change-Id: Ifc7633d36f5785fe16b63f54b885396c2cab542a

8 years agoMerge "Switch signapk to apksigner-core."
Alex Klyubin [Mon, 6 Jun 2016 19:40:23 +0000 (19:40 +0000)]
Merge "Switch signapk to apksigner-core."

8 years agoImprove efficiency of using the DataSource abstraction.
Alex Klyubin [Mon, 6 Jun 2016 18:12:50 +0000 (11:12 -0700)]
Improve efficiency of using the DataSource abstraction.

This adds getByteBuffer and copyTo methods to the DataSource
abstraction. These methods enable the client to avoid unnecessary
copying of the data source's data.

Bug: 27461702
Change-Id: If4e9f902ea75c1ca5c7be0e20c0e7218faf9c504

8 years agoMerge "Error on external includes"
Dan Willemsen [Sat, 4 Jun 2016 01:03:20 +0000 (01:03 +0000)]
Merge "Error on external includes"

8 years agoAdd variable PRODUCT_SHIPPING_API_LEVEL and make files with the
Vikas Marwaha [Fri, 3 Jun 2016 22:02:06 +0000 (15:02 -0700)]
Add variable PRODUCT_SHIPPING_API_LEVEL and make files with the
new read only product property ro.product.first_api_level.

PRODUCT_SHIPPING_API_LEVEL declares which API level a device first
shipped with. We use this variable to set a read-only property that
can be used in CTS/GTS tests.

Change-Id: If54202075d3b92ed380655cde8b3fc50c5ba73b3

8 years agoMerge "Default to enable tidy warnings in header files."
Treehugger Robot [Thu, 2 Jun 2016 23:17:59 +0000 (23:17 +0000)]
Merge "Default to enable tidy warnings in header files."

8 years agoMerge "Add support for TARGET_RECOVERY_BRICK."
Treehugger Robot [Thu, 2 Jun 2016 22:44:55 +0000 (22:44 +0000)]
Merge "Add support for TARGET_RECOVERY_BRICK."

8 years agoDefault to enable tidy warnings in header files.
Chih-Hung Hsieh [Thu, 2 Jun 2016 22:20:05 +0000 (15:20 -0700)]
Default to enable tidy warnings in header files.

Change-Id: I3831f03facbbd6d17117d82f9ccac49bc2645237

8 years agoAdd support for TARGET_RECOVERY_BRICK.
Tao Bao [Wed, 1 Jun 2016 06:56:23 +0000 (23:56 -0700)]
Add support for TARGET_RECOVERY_BRICK.

TARGET_RECOVERY_BRICK specifies the file that lists all the partitions
to be bricked under recovery. The file, if present, will be copied to
'$(TARGET_RECOVERY_ROOT_OUT)/etc/recovery.brick'.

Bug: 27253717
Change-Id: Id84195b5ee1031a83bf7a077be070a3728416580
(cherry picked from commit 3051f4f11aef75af1d7cf623506ad6b4b648f3bd)

8 years agoMerge "Add LOCAL_LOGTAGS_FILES that prebuilts can use"
Treehugger Robot [Wed, 1 Jun 2016 23:28:10 +0000 (23:28 +0000)]
Merge "Add LOCAL_LOGTAGS_FILES that prebuilts can use"

8 years agoMerge "disable unpriv perf by default in user{,debug} builds"
Jeffrey Vander Stoep [Wed, 1 Jun 2016 23:18:45 +0000 (23:18 +0000)]
Merge "disable unpriv perf by default in user{,debug} builds"

8 years agoAdd LOCAL_LOGTAGS_FILES that prebuilts can use
Dan Willemsen [Wed, 1 Jun 2016 22:27:11 +0000 (15:27 -0700)]
Add LOCAL_LOGTAGS_FILES that prebuilts can use

Soong modules can define logtags files that need to be combined into
/system/etc/event-log-tags, so add a new LOCAL_LOGTAGS_FILES variable
that can be used to specify *.logtags file outside of LOCAL_SRC_FILES.

Bug: 28989759
Change-Id: I53c5d396dfb7c6006806758f351eb5cdde90fe74

8 years agoMerge "Update default NINJA_STATUS to show finished edges"
Colin Cross [Wed, 1 Jun 2016 04:52:59 +0000 (04:52 +0000)]
Merge "Update default NINJA_STATUS to show finished edges"

8 years agoMerge "Update Android.mk finder to work with Android.bp files"
Colin Cross [Wed, 1 Jun 2016 04:52:47 +0000 (04:52 +0000)]
Merge "Update Android.mk finder to work with Android.bp files"

8 years agoMerge "Add Soong tools to PATH"
Dan Willemsen [Wed, 1 Jun 2016 02:37:18 +0000 (02:37 +0000)]
Merge "Add Soong tools to PATH"

8 years agoAdd Soong tools to PATH
Dan Willemsen [Fri, 27 May 2016 22:15:47 +0000 (15:15 -0700)]
Add Soong tools to PATH

Change-Id: I8f8649106df4ba7cefbfa37a724ebe0635d90b76

8 years agoMerge "Allow arm prebuilts for x86_arm builds"
Treehugger Robot [Tue, 31 May 2016 22:08:15 +0000 (22:08 +0000)]
Merge "Allow arm prebuilts for x86_arm builds"

8 years agodisable unpriv perf by default in user{,debug} builds
Daniel Micay [Tue, 17 May 2016 04:40:52 +0000 (00:40 -0400)]
disable unpriv perf by default in user{,debug} builds

Bug: 29054680

Change-Id: If04bc63fc366006cde842a50b7c764f89d7449a6

8 years agoAllow arm prebuilts for x86_arm builds
Dan Willemsen [Tue, 31 May 2016 20:59:38 +0000 (13:59 -0700)]
Allow arm prebuilts for x86_arm builds

But only for static and shared libraries -- we disable building other
types of modules for arm, so don't support the prebuilts for them
either.

This is needed so that we can build these libraries under Soong, and
expose them to Make using BUILD_PREBUILT.

Bug: 27526885
Change-Id: I4f6ec922aed37591b6257b7022b81fb65d05b0fe

8 years agoUpdate default NINJA_STATUS to show finished edges
Colin Cross [Tue, 31 May 2016 19:38:04 +0000 (12:38 -0700)]
Update default NINJA_STATUS to show finished edges

Update default NINJA_STATUS that includes percentage to match
https://github.com/ninja-build/ninja/commit/6c2c2eecbfd2e4ddeeacb0129944618a6ce3dc4f

Change-Id: I5694308abe26b71999d944c40962d59d50a73077

8 years agoUpdate Android.mk finder to work with Android.bp files
Colin Cross [Fri, 27 May 2016 22:23:13 +0000 (15:23 -0700)]
Update Android.mk finder to work with Android.bp files

The Android.mk finder should stop traversing when it finds an Android.bp
file, and any Android.soong.mk file at the same path should be included.

Update filter-soong-makefiles to accept a mixed list of Android.bp files
and Android.mk files, convert Android.bp files to Android.soong.mk files
if they exist, and ignore Android.mk files that have an Android.bp file.

Update first-makefiles-under to use the new --dir syntax for
findleaves.py and search for both Android.bp and Android.mk files.

Update all-makefiles-under and all-named-subdir-makefiles to search for
both Android.bp and Android.mk files.

Change-Id: Iddc51bf84593d5de3add02f2b2c065da08962af4

8 years agoMerge "Add --dir option to findleaves.py"
Treehugger Robot [Sat, 28 May 2016 00:53:47 +0000 (00:53 +0000)]
Merge "Add --dir option to findleaves.py"

8 years agoAdd --dir option to findleaves.py
Colin Cross [Fri, 27 May 2016 22:20:31 +0000 (15:20 -0700)]
Add --dir option to findleaves.py

findleaves.py needs to be able to search multiple directories for
multiple filenames (Android.bp and Android.mk).  Add support for a new
--dir= option to specify one or more directories to search, and then
treat any remaining options as filenames.  If no directories are
specified, fall back to treating only the last option as a filename and
the rest as directories.

Change-Id: Ie879facd49192c6b4fafae070ad00eb21b1faa32

8 years agoSwitch signapk to apksigner-core.
Alex Klyubin [Fri, 27 May 2016 21:36:05 +0000 (14:36 -0700)]
Switch signapk to apksigner-core.

This switches signapk's APK signing from its own signing logic to that
offered by apksigner-core library. OTA update package signing logic
remains inside signapk codebase.

Bug: 27461702
Change-Id: Ibf8435c555fe3f2b621d5189e7ae44f79082c810

8 years agoMerge "Improve DataSource interface."
Alex Klyubin [Fri, 27 May 2016 20:00:59 +0000 (20:00 +0000)]
Merge "Improve DataSource interface."

8 years agoMerge "Store entry alignment information in APK."
Alex Klyubin [Fri, 27 May 2016 19:57:11 +0000 (19:57 +0000)]
Merge "Store entry alignment information in APK."

8 years agoImprove DataSource interface.
Alex Klyubin [Fri, 27 May 2016 17:00:53 +0000 (10:00 -0700)]
Improve DataSource interface.

1. This adds way to obtain a DataSource which represents a region of
   data contained in the DataSource.
2. This fixes a design bug in "feed" method where the size parameter
   was an int instead of long.
3. This fixes a bug in ByteBufferDataSource where its mSize field was
   a long instead of an int (ByteBuffer's length cannot be more than
   2^31).

Bug: 27461702
Change-Id: Ib0812784beb581f19d2412e667b8bd018f0a3c78

8 years agoMerge "Fix mm and mmm in Android.bp directories"
Treehugger Robot [Fri, 27 May 2016 00:23:24 +0000 (00:23 +0000)]
Merge "Fix mm and mmm in Android.bp directories"

8 years agoFix mm and mmm in Android.bp directories
Colin Cross [Thu, 26 May 2016 22:32:15 +0000 (15:32 -0700)]
Fix mm and mmm in Android.bp directories

mm and mmm were not parsing out/soong/Android.mk, so they were ignoring
all modules defined in an Android.bp file.  Always include
out/soong/Android.mk when ONE_SHOT_MAKEFILE is set, and convert the mm
and mmm functions to build MODULES-IN-$DIR instead of all_modules so
that only the subset of modules defined in out/soong/Android.mk for the
requested directory are built.

Bug: 28986194
Change-Id: I6e1ff8cacfc668a4154a0d5937450db840bb7a6b

8 years agoMerge "Remove unnecessary variables"
Dan Willemsen [Thu, 26 May 2016 21:49:01 +0000 (21:49 +0000)]
Merge "Remove unnecessary variables"

8 years agoRemove unnecessary variables
Dan Willemsen [Tue, 17 May 2016 05:07:31 +0000 (22:07 -0700)]
Remove unnecessary variables

These are all either recently unused due to the removal of CFLAGS/etc,
or have been exported by Soong and are no longer necessary.

Change-Id: I5930d43fda21acc8202b3d8ea010fbefb6ae4cf1

8 years agoMerge "Remove USE_SOONG=false option"
Colin Cross [Thu, 26 May 2016 00:46:39 +0000 (00:46 +0000)]
Merge "Remove USE_SOONG=false option"

8 years agoRemove USE_SOONG=false option
Colin Cross [Wed, 25 May 2016 19:55:43 +0000 (12:55 -0700)]
Remove USE_SOONG=false option

Soong is always required to build now.

Change-Id: I4e310e98e912b370ebf980bf609f04212a7e9a50

8 years agoError on external includes
Dan Willemsen [Tue, 24 May 2016 20:06:07 +0000 (13:06 -0700)]
Error on external includes

To make the build hermetic, all include files should be located within
the source tree (or generated as output).

There was an Android.mk that was adding /usr/include to its include
path.

Change-Id: I4c40b908314239c8239c7835d592e409248a3150

8 years agoAdd NATIVE_TESTS class, move host native tests
Dan Willemsen [Wed, 2 Mar 2016 21:54:51 +0000 (13:54 -0800)]
Add NATIVE_TESTS class, move host native tests

Host native tests have been getting installed into
out/host/linux-x86/bin/..., but this pollutes the bin directory with a
lot of poorly named tests. Also, to support 32-bit and 64-bit tests, we
need to have different names with different suffixes. This causes
problems when tests expect to be named something specific (like gtest).
It's also convenient to store test data next to the test itself.

So with this change, native tests will be installed in
out/host/linux-x86/nativetest[64]/$(LOCAL_MODULE)/$(LOCAL_MODULE_STEM)
just like target tests get installed into /data/nativetest[64].

Implement this using a new NATIVE_TESTS class, which is like
EXECUTABLES, but sets up the install path differently, and configures
the rpath to load shared libraries with the proper relative path.
LOCAL_MODULE_RELATIVE_PATH can be used to control the directory name, it
will default to $(LOCAL_MODULE). This way multiple related tests can be
grouped together.

Target native tests also use NATIVE_TESTS now, but nothing should change
other than LOCAL_MODULE_RELATIVE_PATH can be used.

Change-Id: I535e42b1a6b21c5b8d6a580aa2f944d2be35e27d

8 years agoStore entry alignment information in APK.
Alex Klyubin [Mon, 23 May 2016 21:19:51 +0000 (14:19 -0700)]
Store entry alignment information in APK.

Data of uncompressed APK entries is often aligned to a multiple of 4
or 4096 in the APK to make it easier to mmap the data. Unfortunately,
the current method for achieving alignment suffers from two issues:
(1) the way it uses the Local File Header extra field is not compliant
with ZIP format (for example, this prevents older versions of Python's
zipfile from reading APKs: https://bugs.python.org/issue14315), and
(2) it does not store information about the alignment multiple in the
APK, making it harder/impossible to preserve the intended alignment
when rearranging entries in the APK.

This change solves these issues by switching to a different method for
aligning data of uncompressed APK entries. Same as before, alignment
is achieved using Local File Header entry field. What's different is
that alignment is achieved by placing a well-formed extensible data
field/block into the extra field. The new field/block contains the
alignment multiple (e.g., 4 or 4096) as well as the necessary padding
(if any). Compared to the original alignment method, the new method
uses 6 more bytes for each uncompressed entry.

Bug: 27461702
Change-Id: I8cffbecc50bf634b28fca5bc39eb23f671961cf9

8 years agoMerge "Double quote some statements for zsh compatibility"
Vishwath Mohan [Mon, 23 May 2016 22:17:35 +0000 (22:17 +0000)]
Merge "Double quote some statements for zsh compatibility"

8 years agoMerge "Error on USE_CLANG_PLATFORM_BUILD="
Colin Cross [Mon, 23 May 2016 22:05:27 +0000 (22:05 +0000)]
Merge "Error on USE_CLANG_PLATFORM_BUILD="

8 years agoMerge "Add LOCAL_CTS_GTEST_LIST_EXECUTABLE"
Treehugger Robot [Mon, 23 May 2016 21:18:57 +0000 (21:18 +0000)]
Merge "Add LOCAL_CTS_GTEST_LIST_EXECUTABLE"

8 years agoMerge "Improve concurrency for JAR entry inspection requests."
Alex Klyubin [Mon, 23 May 2016 19:26:14 +0000 (19:26 +0000)]
Merge "Improve concurrency for JAR entry inspection requests."

8 years agoMerge "Move to a single clang unknown flags list"
Dan Willemsen [Mon, 23 May 2016 17:30:18 +0000 (17:30 +0000)]
Merge "Move to a single clang unknown flags list"

8 years agoMove to a single clang unknown flags list
Dan Willemsen [Thu, 19 May 2016 21:39:25 +0000 (14:39 -0700)]
Move to a single clang unknown flags list

Soong is using a single list of unknown clang flags for all
architectures, instead of the per-architecture list here. Collapse this
down to a single list as well so that it can be verified against the
Soong list, and eventually replaced by the Soong version.

Change-Id: If43cd892105da5155907c05965a74b835920a369

8 years agoMerge "Remove (C|CPP|CONLY|LD)FLAGS checked by Soong"
Dan Willemsen [Thu, 19 May 2016 22:09:45 +0000 (22:09 +0000)]
Merge "Remove (C|CPP|CONLY|LD)FLAGS checked by Soong"

8 years agoError on USE_CLANG_PLATFORM_BUILD=
Colin Cross [Thu, 19 May 2016 19:59:54 +0000 (12:59 -0700)]
Error on USE_CLANG_PLATFORM_BUILD=

A blank USE_CLANG_PLATFORM_BUILD= on the command line for make causes
confusion between make and kati.  make ignores writes to variables set
on the command line, so envsetup.mk cannot set it to true,
USE_CLANG_PLATFORM_BUILD is still empty in soong.mk, and soong.variables
gets DeviceUsesClang: false.  kati gets USE_CLANG_PLATFORM_BUILD= in its
environment instead of on its command line, so envsetup.mk when parsed
by kati sets USE_CLANG_PLATFORM_BUILD=true.

Error out early if USE_CLANG_PLATFORM_BUILD is not true or false after
attempting to set it to true if it is empty.

Change-Id: I0e2731315711db9a6ac6ea2bf49c88bccacd35f7

8 years agoDouble quote some statements for zsh compatibility
Vishwath Mohan [Fri, 11 Mar 2016 18:00:40 +0000 (10:00 -0800)]
Double quote some statements for zsh compatibility

Two eval commands did not enclose their arguments in double quotes, and
this broke compatibility on zsh - preventing lunch from running to
completion. This CL adds the double quotes and fixes the issue.

Change-Id: I5ed884b455e2e61182f6c29fb807ed92372af039

8 years agoRemove (C|CPP|CONLY|LD)FLAGS checked by Soong
Dan Willemsen [Thu, 19 May 2016 00:39:04 +0000 (17:39 -0700)]
Remove (C|CPP|CONLY|LD)FLAGS checked by Soong

At the beginning of every build, Soong has exported its version of these
variables, and has been ensuring that when sorted, the result is the
same. So these variables all have the same flags of the Soong ones, but
may be in different orders. We don't believe any of the remaining order
differences matter. As we remove the Make definitions, the exported
Soong variables will take over.

This only removes lines that change one of these variables:

  [2ND_][CLANG_]HOST_CROSS_GLOBAL_CFLAGS
  [2ND_][CLANG_]HOST_CROSS_GLOBAL_CONLYFLAGS
  [2ND_][CLANG_]HOST_CROSS_GLOBAL_CPPFLAGS
  [2ND_][CLANG_]HOST_CROSS_GLOBAL_LDFLAGS
  [2ND_][CLANG_]HOST_GLOBAL_CFLAGS
  [2ND_][CLANG_]HOST_GLOBAL_CONLYFLAGS
  [2ND_][CLANG_]HOST_GLOBAL_CPPFLAGS
  [2ND_][CLANG_]HOST_GLOBAL_LDFLAGS
  [2ND_][CLANG_]TARGET_GLOBAL_CFLAGS
  [2ND_][CLANG_]TARGET_GLOBAL_CONLYFLAGS
  [2ND_][CLANG_]TARGET_GLOBAL_CPPFLAGS
  [2ND_][CLANG_]TARGET_GLOBAL_LDFLAGS

Many other variables are unnecessary now too, but those will be removed
in another change. For those we can ensure the build.ninja file does not
change, but we expect it to change here due to the ordering differences.

Change-Id: I0bd0778706d02ee27b2784dd8dc6b2c71d37bd3a

8 years agoMerge "Windows: Stop adding to GLOBAL_LD_DIRS"
Dan Willemsen [Thu, 19 May 2016 01:09:28 +0000 (01:09 +0000)]
Merge "Windows: Stop adding to GLOBAL_LD_DIRS"

8 years agoWindows: Stop adding to GLOBAL_LD_DIRS
Dan Willemsen [Wed, 18 May 2016 23:18:13 +0000 (16:18 -0700)]
Windows: Stop adding to GLOBAL_LD_DIRS

Soong does not have the idea of global linking directories, so move the
windows prebuilt library directory to GLOBAL_LDFLAGS instead.

Change-Id: Ie101146f4682cd85924463aa5acaa46869938e6c

8 years agoMerge "Remove trailing newline from TARGET_C_INCLUDES"
Dan Willemsen [Wed, 18 May 2016 23:50:27 +0000 (23:50 +0000)]
Merge "Remove trailing newline from TARGET_C_INCLUDES"

8 years agoRemove trailing newline from TARGET_C_INCLUDES
Dan Willemsen [Wed, 18 May 2016 22:36:37 +0000 (15:36 -0700)]
Remove trailing newline from TARGET_C_INCLUDES

In preparation for comparing with the Soong variable.

Change-Id: I159507757ed7678a33a3c94e6d01d170485e251a

8 years agoMerge "Add fake libart"
Alex Light [Wed, 18 May 2016 21:05:41 +0000 (21:05 +0000)]
Merge "Add fake libart"

8 years agoMerge "Remove (TARGET|HOST)_NO_UNDEFINED_LDFLAGS"
Treehugger Robot [Wed, 18 May 2016 20:45:19 +0000 (20:45 +0000)]
Merge "Remove (TARGET|HOST)_NO_UNDEFINED_LDFLAGS"

8 years agoRemove (TARGET|HOST)_NO_UNDEFINED_LDFLAGS
Dan Willemsen [Wed, 18 May 2016 19:50:53 +0000 (12:50 -0700)]
Remove (TARGET|HOST)_NO_UNDEFINED_LDFLAGS

We never use it for host modules, and all the target configurations use
the same linker argument. This matches Soong.

Change-Id: Ibcba9a4ce340c7a12306d1fee620a04027c0e292

8 years agoAdd fake libart
Alex Light [Fri, 15 Apr 2016 17:19:02 +0000 (10:19 -0700)]
Add fake libart

Bug: 27775991

Change-Id: I54cbdf2340dcfdd9b3973d9d10c8bd94492736fb
(cherry picked from commit 6da74d8f1f0a06366fe93b885dc26f53401ec6b4)

8 years agoMerge "Remove make variables exported from Soong"
Dan Willemsen [Wed, 18 May 2016 00:36:46 +0000 (00:36 +0000)]
Merge "Remove make variables exported from Soong"

8 years agoMerge "Pass BUILD_HOST_static to Soong"
Treehugger Robot [Wed, 18 May 2016 00:33:07 +0000 (00:33 +0000)]
Merge "Pass BUILD_HOST_static to Soong"

8 years agoPass BUILD_HOST_static to Soong
Dan Willemsen [Tue, 17 May 2016 23:40:03 +0000 (16:40 -0700)]
Pass BUILD_HOST_static to Soong

Change-Id: I0ac43a1dedf20e5251e05f12d120d0e6e2e1b1ee

8 years agoMerge "Remove redundant clang cppflags"
Dan Willemsen [Tue, 17 May 2016 19:46:23 +0000 (19:46 +0000)]
Merge "Remove redundant clang cppflags"

8 years agoRemove redundant clang cppflags
Dan Willemsen [Tue, 17 May 2016 07:41:25 +0000 (00:41 -0700)]
Remove redundant clang cppflags

Cppflags always get added to cflags, so we don't need to duplicate clang
cppflags extras that are already in the clang cflags extras

Change-Id: Ic099f565f20fd993fc0713c033fbc5154373c98f

8 years agoMerge "Make apks depend on their certificates"
Shinichiro Hamaji [Tue, 17 May 2016 03:58:31 +0000 (03:58 +0000)]
Merge "Make apks depend on their certificates"

8 years agoRemove make variables exported from Soong
Dan Willemsen [Mon, 16 May 2016 08:42:58 +0000 (01:42 -0700)]
Remove make variables exported from Soong

These have all been strictly checked by Soong, so the values currently
match. Just remove them so that the make variables exported by Soong
will take over.

This also removes some of the GCC reconfiguration, since we haven't
implemented that in Soong. If it becomes useful in the future, we'll
implement it there.

Some things like TARGET_TOOCHAIN_ROOT can nearly be removed, but are
used before the Soong-exported make_vars.mk is loaded. In that case,
added to the clang cflags, so it can be removed once the cflags are
removed.

Others, like LLVM_PREBUILTS_VERSION are loaded even earlier -- in
envsetup.sh before we've even configured Soong. So for now, keep the
Make definition, and continue ensuring it's the same as the Soong
version.

Change-Id: I554b27062ac43610828a8c06d640d919a2dc21ca

8 years agoMerge "Remove TARGET_LIBGCC/LIBATOMIC/LIBGCOV"
Dan Willemsen [Tue, 17 May 2016 02:53:50 +0000 (02:53 +0000)]
Merge "Remove TARGET_LIBGCC/LIBATOMIC/LIBGCOV"

8 years agoRemove TARGET_LIBGCC/LIBATOMIC/LIBGCOV
Dan Willemsen [Mon, 16 May 2016 21:41:49 +0000 (14:41 -0700)]
Remove TARGET_LIBGCC/LIBATOMIC/LIBGCOV

Instead, use the libgcc/libatomic/libgcov from the static libraries dir,
which is provided by Soong. Copy the libraries using the Soong script if
Soong is disabled - this can be removed once USE_SOONG is removed.

Change-Id: Iad2ad20ad5c3cfc48bf1e46e594a482609098d7a

8 years agoMerge "No need to JAR-sign OTA update packages."
Alex Klyubin [Mon, 16 May 2016 17:11:04 +0000 (17:11 +0000)]
Merge "No need to JAR-sign OTA update packages."

8 years agoImprove concurrency for JAR entry inspection requests.
Alex Klyubin [Sat, 14 May 2016 01:44:48 +0000 (18:44 -0700)]
Improve concurrency for JAR entry inspection requests.

This moves the creation of potentially expensive objects from the
thread which creates JAR entry inspection requests, to the thread
which fulfills these requests, increasig concurrency opportunities.

Bug: 27461702
Change-Id: If753b2de7fb04ee5e2e4bbcb27d42269d7fa5def

8 years agoMerge "Soong: Read Android.soong.mk if skipping Android.mk"
Treehugger Robot [Fri, 13 May 2016 23:52:07 +0000 (23:52 +0000)]
Merge "Soong: Read Android.soong.mk if skipping Android.mk"

8 years agoSoong: Read Android.soong.mk if skipping Android.mk
Dan Willemsen [Fri, 13 May 2016 22:58:52 +0000 (15:58 -0700)]
Soong: Read Android.soong.mk if skipping Android.mk

If Soong is enabled, and we're skipping an Android.mk because there is
an Android.bp file, check for an Android.soong.mk file and read that
instead. This will allow us to temporarily define modules or recurse
into subdirectories that soong does not yet support.

Change-Id: Ifdb2f0204a38a5069e53527f66ffcfb8008c11a4

8 years agoMerge "Default USE_SOONG to true"
Colin Cross [Fri, 13 May 2016 22:40:23 +0000 (22:40 +0000)]
Merge "Default USE_SOONG to true"

8 years agoMerge "Don't use GTEST_OS_LINUX on Darwin"
Dan Willemsen [Fri, 13 May 2016 22:29:16 +0000 (22:29 +0000)]
Merge "Don't use GTEST_OS_LINUX on Darwin"

8 years agoMerge "Pass USE_SAFESTACK to Soong."
Evgenii Stepanov [Fri, 13 May 2016 22:24:52 +0000 (22:24 +0000)]
Merge "Pass USE_SAFESTACK to Soong."