Commit Graph

16823 Commits

Author SHA1 Message Date
Colin Cross
663d8eea04 Merge "Add LOCAL_DONT_MERGE_MANIFESTS"
am: 5d80834b32

Change-Id: I9b4ac446d5aa9ddec6e87dac9b1af5cbe9f3d570
2018-06-15 11:39:41 -07:00
Colin Cross
5d80834b32 Merge "Add LOCAL_DONT_MERGE_MANIFESTS" 2018-06-15 18:23:44 +00:00
Treehugger Robot
c11f2ff4d5 Merge "Move merged AndroidManifest.xml file to manifest subdirectory" 2018-06-15 18:19:12 +00:00
Anton Hansson
a062b90c36 Merge "Add support enforcing all path requirements."
am: 9d2c04e39c

Change-Id: I95c562e020d9995130ff438bdc90f9d5b59128fc
2018-06-15 02:19:02 -07:00
Anton Hansson
9d2c04e39c Merge "Add support enforcing all path requirements." 2018-06-15 09:08:10 +00:00
Colin Cross
a81e5c743d Merge "Dist installed-files*.json"
am: 8b4c72dc1c

Change-Id: I13389075d4b3b87d23a96a194f17163a3ab22b03
2018-06-14 22:11:16 -07:00
nelsonli
cf28ff56ac Build System: fix autogen_test_config problem
If there happen to be any dependencies added to target of $(test_config),
it'll cause problem in the autogen_config. We fix it by using $< in
the autogen command.

BUG: 109736180
Test: lunch walleye_coverage-userdebug; make adbd_test
Change-Id: I22ab100c5a3f9fa058c1edd66f9e5cfdf5b7f855
2018-06-15 02:34:43 +00:00
Colin Cross
23dded0ffd Dist installed-files*.json
installed-files*.json provides hashes of each file, which will allow
a quick comparison of what has changed between builds.

Test: m checkbuild
Change-Id: I87f6c1fa89aaa83c7bcc7cbefb799e9e26d7bfa5
2018-06-14 14:51:20 -07:00
Colin Cross
fae93680fa Inject minSdkVersion from the build system
Add a script that can inject a <uses-sdk minSdkVersion=""> into
AndroidManifest.xml files.  This will help with merging
LOCAL_STATIC_ANDROID_LIBRARIES, because ManifestMerger treats
a missing minSdkVersion as minSdkVersion=1 and throws errors
if libraries use a larger minSdkVersion.  It will also help
with cases where an app has a manifest that specifies an old
minSdkVersion, but the build system is compiling the app in
a way that is not compatibile with old devices, for example
using a newer dex format.

Bug: 110167203
Test: m java
Change-Id: Ia60d462e8af9e93c57d75f423207fa8d221b1347
2018-06-14 14:38:54 -07:00
Colin Cross
1d46e8abb4 Add LOCAL_DONT_MERGE_MANIFESTS
Some modules have manifests that ManifestMerger doesn't like, and
don't need manifest merging.  Skip manifest merger if
LOCAL_DONT_MERGE_MANIFESTS is set.

Bug: 78447299
Test: m checkbuild
Change-Id: If1a58253c62e0194a6acfd79930b9bb10978abe5
2018-06-14 14:38:54 -07:00
Colin Cross
e1b4f302e5 Move merged AndroidManifest.xml file to manifest subdirectory
Some modules generate their own custom AndroidManifest.xml file
to $(intermediates.COMMON)/AndroidManifest.xml file.  Move the
build system's location to
$(intermediates.COMMON)/manifest/AndroidManifest.xml.

This location will also be used later for finding manifest files
from LOCAL_STATIC_ANDROID_LIBRARIES dependencies.

Bug: 78447299
Test: m checkbuild
Change-Id: I345f079bdd191451333b38d882418f2f7150b1e9
Merged-In: I345f079bdd191451333b38d882418f2f7150b1e9
(cherry picked from commit 00a6348e7dfa4fafc308ab92d8e7d06dcfcd01ba)
2018-06-14 14:38:54 -07:00
Colin Cross
c7dee5c9a1 Move merged AndroidManifest.xml file to manifest subdirectory
Some modules generate their own custom AndroidManifest.xml file
to $(intermediates.COMMON)/AndroidManifest.xml file.  Move the
build system's location to
$(intermediates.COMMON)/manifest/AndroidManifest.xml.

This location will also be used later for finding manifest files
from LOCAL_STATIC_ANDROID_LIBRARIES dependencies.

Bug: 78447299
Test: m checkbuild
Change-Id: I345f079bdd191451333b38d882418f2f7150b1e9
Merged-In: I345f079bdd191451333b38d882418f2f7150b1e9
(cherry picked from commit 0bcc120b54)
2018-06-14 21:36:53 +00:00
Tom Cherry
03303f97be Verify init scripts for correctness during build
Bug: 36970783
Test: builds pass without failures
Test: builds fail with failures in init files used via LOCAL_INIT_RC,
      PRODUCT_COPY_FILES, or TARGET_PREBUILT

Change-Id: Ia98793776b365733ca8f0174dc228326a6edf041
2018-06-14 14:21:06 -07:00
Treehugger Robot
6021800c45 Merge "Use implicit output for prebuilt aar manifests" 2018-06-14 19:48:37 +00:00
Anton Hansson
727e5d9f59 Merge "Add a new macro for products to make artifact path requirements."
am: 2b0ea222c1

Change-Id: I3bb0f6a885ef190c0eebc5cf73ac748ff25c4afd
2018-06-14 03:39:45 -07:00
Anton Hansson
427d855728 Add support enforcing all path requirements.
Setting PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS to be non-empty will
verify that when an inherited product file makes an path requirement
claim, no files other than the ones it produces are allowed inside its
paths. This allows more rigorous control of what goes where, and
specifically stops accidental inclusion of modules in the wrong places
(which is very easy to do otherwise).

In order to enable iterative improvements to current offenders, support
for a whitelist is also added (via the new
PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST property). Verification is
done that this variable corresponds to exactly the list of current
offenders.

Example use:
  PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := true
  PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := system/priv-app/Dialer/Dialer.apk

Bug: 80410283
Test: In a downstream CL specifying the above.
Change-Id: I58047db08bde34da21759cfc55f398892b1c809a
2018-06-14 11:35:05 +01:00
Anton Hansson
2b0ea222c1 Merge "Add a new macro for products to make artifact path requirements." 2018-06-14 10:32:43 +00:00
Anton Hansson
6147e61699 Merge "Extract the product to file mapping logic to a macro."
am: df832133ad

Change-Id: Ic92eb8d9c9631f5eaac57bb4f41c157954f85193
2018-06-14 03:14:24 -07:00
Anton Hansson
df832133ad Merge "Extract the product to file mapping logic to a macro." 2018-06-14 10:10:42 +00:00
Jiyong Park
1d46a3395f Merge "Support shared library in recovery mode"
am: 2371a7d60e

Change-Id: I1e4520c8a2663476bd3924aeca1cf5183240dbf7
2018-06-13 16:38:49 -07:00
Treehugger Robot
2371a7d60e Merge "Support shared library in recovery mode" 2018-06-13 23:14:29 +00:00
Colin Cross
93fbe84314 Use implicit output for prebuilt aar manifests
Remove my_full_libs_manifest_deps by making AndroidManifest.xml an
implicit output of the prebuilt aar unzipping rule.

Bug: 78447299
Test: m checkbuild
Change-Id: I26934d16fd646d45bf57c9527dbb191112cb627b
Merged-In: I26934d16fd646d45bf57c9527dbb191112cb627b
(cherry picked from commit 2b5829e1a6)
2018-06-13 20:41:18 +00:00
Colin Cross
5c1a27f30f Use implicit output for prebuilt aar manifests
Remove my_full_libs_manifest_deps by making AndroidManifest.xml an
implicit output of the prebuilt aar unzipping rule.

Bug: 78447299
Test: m checkbuild
Change-Id: I26934d16fd646d45bf57c9527dbb191112cb627b
Merged-In: I26934d16fd646d45bf57c9527dbb191112cb627b
(cherry picked from commit 2b5829e1a6)
2018-06-13 12:34:51 -07:00
Chih-hung Hsieh
378da0f328 Merge "Third try to enable clang lld as default linker."
am: 504656816d

Change-Id: I5a1cf295ec14a0c21d88225fc8ef83b0424fb8ec
2018-06-13 11:32:14 -07:00
Chih-hung Hsieh
504656816d Merge "Third try to enable clang lld as default linker." 2018-06-13 18:21:03 +00:00
Anton Hansson
837425b0c0 Add a new macro for products to make artifact path requirements.
When a product adds a path requirement, the build system will verify
that all its artifacts are produced inside these paths, and fail
otherwise.

The paths are all relative to PRODUCT_OUT, and the macro also supports
giving a whitelist, for known existing offenders in the hierarchy. The
build will fail if redundant whitelist entries are present.

Example invocation:
_paths := $(TARGET_COPY_OUT_SYSTEM)/
_whitelist := root/init root/init.rc
$(call require-artifacts-in-path $(_paths), $(_whitelist))

Bug: 80410283
Test: Downstream with a new product definition.
Change-Id: I235de681f65254087a42e345af69b2113b682072
2018-06-13 18:48:53 +01:00
Anton Hansson
5efe88df63 Extract the product to file mapping logic to a macro.
This way, the logic can be reused for multiple products during
the same build step. This will be used to track files output
by different subtrees in the product makefile hierarchy.

Bug: 80410283
Test: diff produt_FILES before and after
Change-Id: I6dd1cf586410b9809fdd9d75441128acb07cab08
2018-06-13 18:48:42 +01:00
Jiyong Park
53acaeab0a Support shared library in recovery mode
The dyanmic linker and the linker config script for the recovery mode
(*.recovery variants) are added to PRODUCT_PACKAGES.

Also this removes the mountpoint /system_root from the recovery image as the
recovery image is self-contained and the real system image is mounted at
/mnt/system which is created automatically at runtime.

Bug: 63673171
Test: `adb reboot recovery; adb devices` shows the device ID
Test: Select 'mount /system' in the recovery mode, then `adb shell`.
$ lsof -p `pidof adbd` shows that libm.so, libc.so, etc. are loaded from
the /lib directory.

Change-Id: Ice6c75b0b81bb9be696aaff3e095d87f19278995
2018-06-14 02:03:57 +09:00
Yi Kong
ccb55cee58 Merge "Fix CLANG_EXTERNAL_CFLAGS logic"
am: cfbe8cf3bb

Change-Id: I4d3d28eb7ff1352150593163ff3b4b80d36dbbef
2018-06-12 19:18:59 -07:00
Yi Kong
cfbe8cf3bb Merge "Fix CLANG_EXTERNAL_CFLAGS logic" 2018-06-13 02:10:12 +00:00
Dan Willemsen
0a423b51f2 Merge "Restrict characters in module names"
am: 0f494a025b

Change-Id: Id79395cf3e1af934110eaed3ae1abc084c04aab0
2018-06-12 17:12:50 -07:00
Yi Kong
0047dbed14 Fix CLANG_EXTERNAL_CFLAGS logic
Should be neq instead of eq.

Test: build-full.ninja is now correct
Change-Id: I26c0aa84d9b54a8b19f19124978ac1d49bae7448
2018-06-12 15:49:12 -07:00
Dan Willemsen
bbe6a022a3 Restrict characters in module names
See the Changes.md documentation for more information.

Test: build_test on downstream branches
Change-Id: I1524b1dbfd44a7feac3b9a212f37986f870bd837
2018-06-12 13:48:49 -07:00
Chih-Hung Hsieh
4ad173788e Third try to enable clang lld as default linker.
Note of existing configurations:
  * When lld is used, llvm-strip and llvm-objcopy are also used.
  * darwin host modules do not use lld.
  * lld can be disabled locally with use_clang_lld:false in Android.bp
    or LOCAL_USE_CLANG_LLD:=false in Android.mk.

Bug: 73768157
Test: make checkbuild, boot and run bionic and system/core native tests
Change-Id: I3067ff8021dd6e1598f2447b80aea66a3f7e1677
2018-06-12 10:50:10 -07:00
John Reck
34d386072e Merge "Disable verity on -eng builds"
am: 9c8120aa48

Change-Id: I90e1db97f8bca14d5d1b5bcd8cea2224f4731fc0
2018-06-11 17:38:29 -07:00
Treehugger Robot
9c8120aa48 Merge "Disable verity on -eng builds" 2018-06-11 21:43:34 +00:00
Xin Li
c8e90b5da3 Merge pi-dev-plus-aosp-without-vendor into stage-aosp-master
Bug: 79597307
Change-Id: I06ede5004b16e1ac0bb5c1c6a225c3c307bd26d1
2018-06-08 11:06:45 -07:00
Anton Hansson
3c0f857e65 Merge "Rename the poorly named ALL_PRODUCTS variable." 2018-06-08 14:12:35 +00:00
Chih-Hung Hsieh
221572a7b4 Merge "Use llvm-{objcopy,strip} when clang lld is used." am: 87d8dc4d4e
am: ef534a7888

Change-Id: I25f238309ed4da074ca908d6636fca8cf4f4963f
2018-06-07 21:07:50 -07:00
Treehugger Robot
87d8dc4d4e Merge "Use llvm-{objcopy,strip} when clang lld is used." 2018-06-08 00:42:03 +00:00
Adam Seaton
ec658daa02 Update Platform security string to 08-05 for August release bug: 109889880
am: f20c71f190

Change-Id: I08103150da5c1afe2355a4869fe51ca0dcfc3927
2018-06-07 17:08:09 -07:00
Colin Cross
b71570fc8c Merge "Revert "Revert "Remove desugar support""" am: 50ad8c97ac
am: 9f0e4a430f

Change-Id: I8ef7ec33394af7fd7afab4455f79a932ee774b92
2018-06-07 15:49:03 -07:00
Adam Seaton
f20c71f190 Update Platform security string to 08-05 for August release
bug: 109889880
2018-06-07 14:52:58 -07:00
Treehugger Robot
50ad8c97ac Merge "Revert "Revert "Remove desugar support""" 2018-06-07 20:31:22 +00:00
Yi Kong
e441f4a691 Merge "Add external projects only CFlags option" am: b7306c9ca5
am: cdca782142

Change-Id: Ied808f6e7743a61d2ffe403b84f3ab7e3f833335
2018-06-06 23:57:55 -07:00
Yi Kong
b7306c9ca5 Merge "Add external projects only CFlags option" 2018-06-07 04:51:53 +00:00
Nelson Li
4b7dade5c3 Merge "Revert "Build System: Validate AndroidTest.xml Configs"" am: 79b6e2618a
am: 43b7525dc2

Change-Id: I0e852325f119a19edeeed99c09ccc9ebbebb9230
2018-06-06 21:49:01 -07:00
Treehugger Robot
79b6e2618a Merge "Revert "Build System: Validate AndroidTest.xml Configs"" 2018-06-07 02:50:32 +00:00
Yi Kong
42e18966e2 Add external projects only CFlags option
Apply the flags to Android.mk projects as well.

Test: m checkbuild
Change-Id: Ia5f7f7d9d518820fc825dcf19e8fdd2c434e9013
2018-06-06 16:42:22 -07:00
Colin Cross
8bd764fc7a Merge "Revert "Remove desugar support"" am: bc965aa7a9
am: d175a15e0e

Change-Id: Ie7b75adc17b93d7a5dd6c288dcb3e7adc4b676df
2018-06-06 16:26:07 -07:00