Commit Graph

41786 Commits

Author SHA1 Message Date
Jiyong Park 45bb10c470 When building unbundled apps, link to the prebuilt stubs lib
There was a bug that when an unbundled app is built without SDK
(LOCAL_SDK_VERSION isn't set), it is linked to the nonexisting stubs
library from java_sdk_library. The built stubs libs are not created for
unbundled builds. For unbundled builds, we need to use the prebuilt
stubs lib.

Bug: 77575606
Test: m -j
Test: make -j dist
ANDROID_BUILDSPEC=vendor/google/build/app_build_spec.mk

Change-Id: I70cced1c872053e151fea157e3a6d218b1fab9dc
2018-05-16 09:55:47 +09:00
Colin Cross 1465806ff2 Fix incorrect renderscript zip deps
Fix some incorrect dependencies after I12d33e52019aebac6ea33271939228e4690a4173.

Bug: 73885582
Test: m java FORCE_AAPT2=true
Change-Id: Ica2758991603e1605f629d843d19df5e2ef4fae1
2018-05-15 16:04:47 -07:00
Tom Cherry e64694118a Merge "Require a vendor_ prefix for users/groups in /vendor/etc/{passwd,group}" 2018-05-15 22:36:34 +00:00
Colin Cross d443244fbf Allow modules to override FORCE_AAPT2=true with LOCAL_USE_AAPT2 := false
Bug: 79481102
Test: m java FORCE_AAPT2=true
Change-Id: Iece2158dc887a249eb51086b2497b170b5879979
2018-05-15 15:28:22 -07:00
Colin Cross 532ae3bcfb Support LOCAL_RENDERSCRIPT_TARGET_API := current
Renderscript was using LOCAL_RENDERSCRIPT_TARGET_API := 0 to mean
current.  Use current instead, and check for it when comparing
if LOCAL_RENDERSCRIPT_TARGET_API >= 21.

Fixes an issue where LOCAL_RENDERSCRIPT_TARGET_API := 0 was being
treated as < 21, causing the renderscript resources to be passed
to aapt2:
out/target/common/obj/APPS/RSTestBackward_intermediates/flat-res/zip_res.flata.contents/raw/bc32: error: resource file cannot be a directory.

Bug: 79481102
Test: m java FORCE_AAPT2=true
Change-Id: I7726d0463ce1693bc9653b4d869ced181c491036
2018-05-15 15:28:22 -07:00
Treehugger Robot e51fcf01bd Merge "Disable dtor inlining for clang-tidy" 2018-05-15 22:15:55 +00:00
Nan Zhang 7e4dd1478e Remove tasks/apicheck.mk
1. Remove tasks/apicheck.mk
2. Convert apicheck tool build to Soong.

Bug: b/78034256
Test: m clean && m checkapi

Change-Id: I0ebdd76586ceb7a90e4d9c10714cbd94b38ef869
Merged-In: I0ebdd76586ceb7a90e4d9c10714cbd94b38ef869
2018-05-15 14:16:13 -07:00
Ivan Lozano 078d4995b7 Merge "Don't export UBSan minimal runtime symbols." 2018-05-15 19:44:32 +00:00
Treehugger Robot 3e83e84115 Merge "Use correct case for GPL." 2018-05-15 17:16:19 +00:00
Tao Bao 3d840c6b98 Merge "releasetools: Use "ota-downgrade=yes" for --override_timestamp." 2018-05-15 16:58:11 +00:00
Xin Li 9335117d7e Use correct case for GPL.
Test: build
Change-Id: Id8c671b142231a9c4baeac3a7b9e3cd328b3217e
2018-05-15 08:37:16 -07:00
Narayan Kamath 8b2380213a core: Remove explicit libpac dependency.
Included via PacProcessor's LOCAL_JNI_SHARED_LIBRARIES

Test: m
Change-Id: I970fcd1554954f3f5b05fddd0cab86bc90d86f9e
2018-05-15 11:27:34 +01:00
Jiyong Park 5e2056b906 Merge "Convert apicheck tool build to Soong." 2018-05-15 05:30:41 +00:00
Jiyong Park 1c671fd7dd Convert apicheck tool build to Soong.
Bug: b/78034256
Test: m clean && m checkapi
Change-Id: Iaced7335714138730349bbea8a993705f197ae77
2018-05-15 11:38:44 +09:00
Treehugger Robot 2b42ae8076 Merge "Allow forcing AAPT2 on" 2018-05-15 00:51:27 +00:00
George Burgess IV 432899a25b Disable dtor inlining for clang-tidy
LLVM r328258 turned on a feature called temporary dtor inlining by
default for all of C++ in clang-tidy. This feature appears to be
somewhat over-aggressive when objects are being passed by value. For
example, given:

void foo(std::unique_ptr<int> i);

void bar() {
  auto x = std::make_unique<int>();
  int *i = x.get();
  foo(std::move(x));
  *i = 99;
}

...clang-tidy will complain about `*i = 99;` being a definite
use-after-free. This is incorrect, however: `foo` could stash the
`unique_ptr` it's given in a global, or a class member, or ...

Until upstream fixes this bug, it's probably best to keep this disabled.

Bug: None
Test: Ran the analyzer across Android locally. Nothing broke; number of
complaints dropped significantly.

Change-Id: I742eedf598a72a533285d913d191bfbbf0ce1688
2018-05-14 15:48:38 -07:00
Tom Cherry 2d197a1e19 Require a vendor_ prefix for users/groups in /vendor/etc/{passwd,group}
Bug: 79528966
Test: successful build with vendor_ prefixed users/groups
Test: expected build failure when not using vendor_ prefixed users/groups
Change-Id: If006c70178aa5bdcc9521a06ef8df2500f70bbb9
2018-05-14 13:16:50 -07:00
Mathieu Chartier 4537ebb7a1 Merge "Use $(AAPT) instead of aapt for verifying uses libraries" 2018-05-14 19:52:47 +00:00
Treehugger Robot fa682fb47a Merge "Remove two stale variables." 2018-05-14 17:39:32 +00:00
Tao Bao 138df4ef77 Merge "releasetools: Skip validating non-sparse images." 2018-05-14 17:37:53 +00:00
Mathieu Chartier 116790dae8 Use $(AAPT) instead of aapt for verifying uses libraries
For SDK builds, $(AAPT) points to a prebuilt and aapt is not
necessarily in the path.

Test: make -j32 <some SDK build> tests
Bug: 70934104
Bug: 67345922
Change-Id: Icfd62a4e3ec284ed59a61714765e5a909a27947d
2018-05-14 10:18:02 -07:00
Anton Hansson 2c37d704b4 Remove two stale variables.
These two variables are unused, and point to non-existing directories,
so delete them.

Test: make
Change-Id: I5f7577c86847146a7eea827ace74cf8022e19f71
2018-05-14 16:23:51 +01:00
Tao Bao 63e2f49fdd releasetools: Skip validating non-sparse images.
Targets can define 'TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true' to
generate non-sparse system images, but validate_target_files.py doesn't
work with such images. This CL adds a workaround to temporarily skip the
file consistency check for such images.

Bug: 79616357
Test: Run validate_target_files.py on a target_files.zip that's not
      using sparse image.
Test: Run validate_target_files.py on marlin target_files.zip (which
      uses sparse image).
Change-Id: I1f4066c5b3fec595b10cab10283d62c1c5a6c624
2018-05-11 23:38:46 -07:00
Daniel Colascione 198b9f4f6a Merge "Add zip hint generation support to signapk tool" 2018-05-11 23:33:05 +00:00
Mathieu Chartier da187dd390 Merge "Fix some issues with LOCAL_USES_LIBRARIES" 2018-05-11 22:51:37 +00:00
Ivan Lozano e508169caf Don't export UBSan minimal runtime symbols.
When linking in the UBSan minimal runtime, don't export the symbols.
This was resulting in an edge case where symbols were sometimes
undefined at runtime on address sanitized builds if static library
dependencies were integer overflow sanitized.

Bug: 78766744
Test: readelf on libraries show either inclusion of the shared library
or no undefined symbols related to the minimal runtime.
Change-Id: I4382cc72baefd7fa96cd83e8349e82f7b083f5aa
2018-05-11 15:31:25 -07:00
Mathieu Chartier cda2ef1d84 Fix some issues with LOCAL_USES_LIBRARIES
Properly check the value of PRIVATE_ENFORCE_USES_LIBRARIES instead of
only checking that the variable is non-empty.

Change the logic to use product libraries instead of the common ones.
This is required so that dex2oat can find the oat files when stripping
is enabled.

Bug: 70934104
Bug: 67345922
Test: manual

Change-Id: Iee71c2b26f3c0e136a8971ab913725b2b6e100b8
2018-05-11 13:51:02 -07:00
Christopher Ferris b510e7b521 Merge "Add support for cortex-a55/cortex-a75." 2018-05-11 17:56:12 +00:00
Colin Cross fc56b59db4 Merge changes Ie3d4536b,If2504b7d,I411844fb
* changes:
  Fix a missed rename to my_proguard_sdk_raise
  Allow 0 in math functions
  Add tests for math.mk
2018-05-11 05:22:20 +00:00
Colin Cross 2029903b64 Allow forcing AAPT2 on
Building with FORCE_AAPT2=true will turn on AAPT2 for all modules
unless they set LOCAL_USE_AAPT2 := false.  The build system will
attempt to rewrite common AAPT patterns into AAPT2 patterns,
including removing --extra-packages for support library packages,
removing LOCAL_RESOURCE_DIR point to support library resources,
adding a default empty manifest file if it doesn't exist, and
converting LOCAL_STATIC_JAVA_AAR_LIBRARIES to
LOCAL_STATIC_ANDROID_LIBRARIES.

Bug: 79481102
Test: m checkbuild
Change-Id: I8d9d55fe4d5d5c965c64b0407efe74e0afc35c3a
2018-05-11 02:23:20 +00:00
Colin Cross c27df2b71b Fix a missed rename to my_proguard_sdk_raise
Patch Iaf5853361767f0ea3e9ad4ec908aadd72d639c79 missed one rename
of my_support_library_sdk_raise to my_proguard_sdk_raise.

Test: m checkbuild
Change-Id: Ie3d4536bd80654a7eb4f209ef6d6a8de502a6cdc
2018-05-11 02:23:07 +00:00
Colin Cross 8b170358ba Allow 0 in math functions
Allow non-negative integers instead of positive integers in math
functions so that LOCAL_RENDERSCRIPT_TARGET_API := 0 can be compared
against 21.

Test: make -f ${ANDROID_BUILD_TOP}/build/make/core/math.mk RUN_MATH_TESTS=true
Test: $(get_build_var CKATI) -f ${ANDROID_BUILD_TOP}/build/make/core/math.mk RUN_MATH_TESTS=true
Change-Id: If2504b7de81f8dd676af749a04c9f3e580f298b6
2018-05-11 02:22:54 +00:00
Colin Cross 5bc27ea9f2 Add tests for math.mk
Turn commented out tests into assertion tests, and add more for
functions that didn't have tests.

Test: make -f ${ANDROID_BUILD_TOP}/build/make/core/math.mk RUN_MATH_TESTS=true
Test: $(get_build_var CKATI) -f ${ANDROID_BUILD_TOP}//build/make/core/math.mk RUN_MATH_TESTS=true
Change-Id: I411844fbf00268f863260b7ee42d1795f05c0d16
2018-05-11 02:21:39 +00:00
Christopher Ferris 47b29ea339 Add support for cortex-a55/cortex-a75.
Bug: 78133793
Bug: 78242072

Test: Builds for target.
Change-Id: I98d638017f943083d3832ec2211333c48f07caf2
Merged-In: I98d638017f943083d3832ec2211333c48f07caf2
(cherry picked from commit ce7bf678f2)
2018-05-11 00:43:19 +00:00
Daniel Colascione 334ece99dd Add zip hint generation support to signapk tool
Test: unzip -q -c myapp.apk.signed pinlist.meta | od --endian=big -w8 -tx4
Bug: 79259761
Bug: 65316207
Change-Id: I71c01ac24e93afe75f60697a9849e1dd35e1b49d
2018-05-10 14:39:20 -07:00
Mathieu Chartier d6259f8d46 Merge "Add support for preopt with uses-libraries" 2018-05-10 21:17:19 +00:00
Colin Cross 46ff7618b0 Merge "Fix zipped resources" 2018-05-10 20:04:25 +00:00
Mathieu Chartier d022b65c98 Add support for preopt with uses-libraries
Required libraries are specified with LOCAL_USES_LIBRARIES
Optional libraries are specified with LOCAL_OPTIONAL_USES_LIBRARIES

The make rule cross references the libraries against what's stored
in the manifest.

Verification is enabled if LOCAL_ENFORCE_USES_LIBRARIES is true. This
defaults to true if either of LOCAL_USES_LIBRARIES or
LOCAL_OPTIONAL_USES_LIBRARIES are specified.

Bug: 70934104
Bug: 67345922
Test: manual

(cherry picked from commit 09f3b97f4b)

Merged-In: Ifca7d1a993620e9d0e42dc497a4a5d7a6c3f4172
Change-Id: I670431f938c31115a7812c1857c31b9f71675632
2018-05-10 11:52:26 -07:00
Treehugger Robot 63097b276b Merge "Add micro_bench to PRODUCT_PACKAGES_DEBUG" 2018-05-10 02:30:00 +00:00
Treehugger Robot 8f5535fd93 Merge "Pass PLATFORM_VERSION to Soong" 2018-05-10 00:54:13 +00:00
Treehugger Robot 5c3646c201 Merge "Build System: Fix rpath error if native executable under testcase folder." 2018-05-10 00:40:27 +00:00
Dan Willemsen a362bf4e20 Add micro_bench to PRODUCT_PACKAGES_DEBUG
It's been converted to Soong, so can no longer use LOCAL_MODULE_TAGS. It
appears that some of the test runners expect to have it pre-installed.

Test: m; see it installed.
Change-Id: I189c9bbc2f2add90ac4f6841f4bf13852e4d579f
2018-05-09 17:33:12 -07:00
Colin Cross 164a33f194 Fix zipped resources
Fix mismatch between output directory of zipsync and input
directory of aapt2.

Test: m checkbuild
Change-Id: If012c943af0c04cc3f0dd5c4266126412ae0a759
2018-05-09 23:56:19 +00:00
Elliott Hughes 0f8056b254 Merge "Revert "Revert "Revert "Set global default to use lld."""" 2018-05-09 23:46:16 +00:00
Colin Cross 0fdbb4c910 Pass PLATFORM_VERSION to Soong
Soong needs PLATFORM_VERSION to pass as --version-name when building
framework-res.apk.

Bug: 78324052
Test: aapt dump badging $OUT/system/framework/framework-res.apk  | grep -i version
Change-Id: If47839182a1dd7c7a768b1253dd8b575d777ca7e
Merged-In: If47839182a1dd7c7a768b1253dd8b575d777ca7e
(cherry picked from commit 34aba6cf72)
2018-05-09 23:44:18 +00:00
Elliott Hughes 876a36e8ac Revert "Revert "Revert "Set global default to use lld."""
This reverts commit da8febf39c.

Bug: http://b/73768157
Reason for revert: breaks several bionic/debuggerd/libunwind_stack gtests

Change-Id: I161cf85cf352b80644524fd4bb70ff7c75fbc1d0
2018-05-09 20:33:25 +00:00
Tao Bao faa8e0b7e9 releasetools: Use "ota-downgrade=yes" for --override_timestamp.
We used to write a fake post-timestamp into package metadata for
"--override_timestamp", which allows a package to be pushed based on
the fake timestamp. This CL stops doing that by using the designated
"ota-downgrade=yes" instead, but keeping the "--override_timestamp" flag
for backward compatibility.

Now both "--override_timestamp" and "--downgrade" allow pushing packages
with downgrade timestamps. The only differenece is that "--downgrade"
enforces a data wiping, because it's intended a real downgrade (based on
Android version or security patch level). "--override_timestamp" serves
the path of a legit "upgrade", but unfortunately with build timestamps
in reverse order (e.g. the two builds are cut from different branches).

With this CL, we write "post-timestamp" to all packages.

Bug: 77811049
Test: Generate an incremental pakcage with "--override_timestamp".
Test: Generate an incremental pakcage with "--downgrade".
Test: python -m unittest test_ota_from_target_files
Change-Id: I4ae4ce77cb600a06ffd9b15b6d4c730314aa0b79
2018-05-09 10:23:14 -07:00
Tri Vo d744f8cc8e Merge "Expose selinux variables to Soong." 2018-05-09 01:57:14 +00:00
Chih-hung Hsieh 44f320c29e Merge "Revert "Revert "Set global default to use lld.""" 2018-05-08 22:57:01 +00:00
Chih-hung Hsieh da8febf39c Revert "Revert "Set global default to use lld.""
This reverts commit 44988be862.

Three known build failures with lld are fixed by
(1) adding --no-fatal-warnings to link
(2) disable LLD for some PGO build targets
(3) disable LLD for some art oatdump tests, pending c/681542

Change-Id: Icebf6661509bf4f6051f91dc74eaa07dbc7c1d42
2018-05-08 20:13:41 +00:00