Commit Graph

15433 Commits

Author SHA1 Message Date
Colin Cross
aac18a02d9 Merge "Revert "Revert "Inject minSdkVersion from the build system""" 2018-06-19 18:14:39 +00:00
Treehugger Robot
2a07d562ac Merge "Build System: fix autogen_test_config problem" 2018-06-19 01:09:17 +00:00
Dan Willemsen
eb0a09acf3 Merge "Restrict / from module names" 2018-06-18 22:44:44 +00:00
Colin Cross
2d61e47f88 Revert "Revert "Inject minSdkVersion from the build system""
This reverts commit 4cd1a75d17.

PackageParser no longer treats minSdkVersion=Q as targetSdkVersion=Q
when targetSdkVersion is set to a number.

Bug: 110167203
Bug: 110353795
Change-Id: Ib44743e4c49e59cd29a57af1bf885090e380b1b6
2018-06-18 20:18:37 +00:00
Colin Cross
71c0434af2 Merge "Revert "Inject minSdkVersion from the build system"" 2018-06-18 18:35:41 +00:00
Colin Cross
4cd1a75d17 Revert "Inject minSdkVersion from the build system"
This reverts commit fae93680fa.

Bug: 110167203
Bug: 110353795
Change-Id: I14c71aec5a54ef055fc8d2b3560754c81f3d68ba
2018-06-18 18:35:00 +00:00
Dan Willemsen
ac92659e0f Restrict / from module names
Since this is a directory separator, it causes a good deal of
strangeness in the build whenever we include a module name in a path.

It becomes particularly problematic if used together with ".."

Test: build_test on downstream branches
Change-Id: I344eca0db3346cd6ffabff767c34159c85ebc051
2018-06-16 14:15:50 -07:00
Colin Cross
500fccebf7 Merge "Inject minSdkVersion from the build system" 2018-06-15 22:53:52 +00: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
9d2c04e39c Merge "Add support enforcing all path requirements." 2018-06-15 09:08:10 +00: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
Treehugger Robot
6021800c45 Merge "Use implicit output for prebuilt aar manifests" 2018-06-14 19:48:37 +00: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
df832133ad Merge "Extract the product to file mapping logic to a macro." 2018-06-14 10:10:42 +00:00
Treehugger Robot
2371a7d60e Merge "Support shared library in recovery mode" 2018-06-13 23:14:29 +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
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
cfbe8cf3bb Merge "Fix CLANG_EXTERNAL_CFLAGS logic" 2018-06-13 02:10:12 +00: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
Treehugger Robot
9c8120aa48 Merge "Disable verity on -eng builds" 2018-06-11 21:43:34 +00:00
Anton Hansson
3c0f857e65 Merge "Rename the poorly named ALL_PRODUCTS variable." 2018-06-08 14:12:35 +00:00
Treehugger Robot
87d8dc4d4e Merge "Use llvm-{objcopy,strip} when clang lld is used." 2018-06-08 00:42:03 +00:00
Treehugger Robot
50ad8c97ac Merge "Revert "Revert "Remove desugar support""" 2018-06-07 20:31:22 +00:00
Yi Kong
b7306c9ca5 Merge "Add external projects only CFlags option" 2018-06-07 04:51:53 +00: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
Chih-Hung Hsieh
9546d67fe9 Use llvm-{objcopy,strip} when clang lld is used.
* PRIVATE_OBJCOPY is still set to objcopy and used
  when llvm-objcopy cannot replace objcopy.

Bug: 80093681
Test: build/boot with USE_CLANG_LLD=true
Change-Id: I4bd8a53f74864b49e007f0c5f1b0f4b16e121135
2018-06-06 15:09:58 -07:00
Colin Cross
cf010858b6 Revert "Revert "Remove desugar support""
This reverts commit cf7407ed61.

Reason for revert: includes art veridex fix this time

Change-Id: I970b51e6a6c6f377cfe793f029d9674e7ee0ed15
2018-06-06 21:46:25 +00:00
Colin Cross
cf7407ed61 Revert "Remove desugar support"
This reverts commit bfad2c070c.

Reason for revert: broke art veridex build

Change-Id: I0dcc34102ee18b054c2247ae0e2698aca645c667
2018-06-06 21:42:21 +00:00
Nelson Li
054f210fd5 Revert "Build System: Validate AndroidTest.xml Configs"
This reverts commit 479da2f3bb.

Reason for revert: <revert for b/109736180 #8>

Bug: 109736180
Test: lunch walleye_coverage-userdebug; make adbd_test
Change-Id: I090893e20a2dab0651551361ebf65c26b95a25f2
2018-06-06 18:29:05 +00:00
Colin Cross
bfad2c070c Remove desugar support
Desugaring is always handled by d8 now.

Test: m checkbuild
Change-Id: I8af88522fb1280854ebb4e4957faf70ab59a74f4
2018-06-06 10:06:07 -07:00
John Reck
0588b4337a Disable verity on -eng builds
Verity is counter to the goal of -eng builds, so disable it on -eng
builds.

Change-Id: I9f9851d14948be04834394dc5e5445a36aafa945
Merged-In: I9f9851d14948be04834394dc5e5445a36aafa945
Fixes: 64315394
Test: verified -eng doesn't have verity enabled, but -userdebug does
2018-06-05 15:06:25 -07:00
Colin Cross
43aea42876 Merge "Revert "Work around incorrect R8 proguard compatibility"" 2018-06-05 19:41:49 +00:00
Treehugger Robot
50a3560485 Merge "Build VNDK snapshot for products aosp_[arm|x86]" 2018-06-05 04:18:51 +00:00
Colin Cross
c8148cc001 Revert "Work around incorrect R8 proguard compatibility"
This reverts commit cf5180c198.

Reason for revert: r8 behaves more like proguard now.

Bug: 80081393
Test: m checkbuild
Test: examine attributes on com.android.stk.BootCompletedReceiver
      in out/target/common/obj/APPS/Stk_intermediates/classes.dex

Change-Id: I6cff1d7cb6b71023399db6492455f69328dd73f3
2018-06-04 17:25:56 +00:00
Dan Willemsen
0c31654ae4 Darwin: Use nm/otool from Soong instead of PATH
Soong now exposes the proper paths to NM & OTOOL so that we don't need
to assume that they're in $PATH.

Test: `m PRODUCT-sdk-sdk` on Mac
Change-Id: If0d963832154841d00ced7a6cfa9de5a014af084
2018-06-03 16:20:08 -07:00
Treehugger Robot
89b40fa645 Merge "generate-image-prop-dictionary only generates relevant variables" 2018-06-02 00:33:28 +00:00
Treehugger Robot
6fac550603 Merge "Use hermetic strip for atree" 2018-06-01 23:58:15 +00:00
Chih-hung Hsieh
7ac56836a1 Merge "Skip copying files from LINKED to PACKED directories." 2018-06-01 23:15:16 +00:00