Commit Graph

1130 Commits

Author SHA1 Message Date
Colin Cross
ba358c6c90 Merge "Move boot image oatdump phony rules into Soong" am: 292d6cfd73 am: 7cd2df4887
am: e3c13d6778

Change-Id: Ieb6f4e4b1af4340051012ad8fa2f7bbac34261f3
2019-03-01 07:47:34 -08:00
Colin Cross
6db4d4e613 Optimize CPU time when running d8 and r8
Pass -XX:+TieredCompilation -XX:TieredStopAtLevel=1 to the JVM to
reduce the time spent JITing, which in local experiments reduced
the CPU time of R8 while increasing the wall time, and reduced the
total number of runnable threads.

Without the new flags:
$ time out/soong/host/linux-x86/bin/r8-compat-proguard -injars out/target/common/obj/APPS/Dialer_intermediates/classes.jar ...
real	0m30.090s
user	4m35.337s
sys	0m12.853s

With the new flags:
$ time out/soong/host/linux-x86/bin/r8-compat-proguard -JXX:+TieredCompilation -JXX:TieredStopAtLevel=1 -injars out/target/common/obj/APPS/Dialer_intermediates/classes.jar ...
real	0m35.674s
user	2m45.135s
sys	0m9.531s

The increase in wall time should be offset by the better parallelism from
the reduced CPU time.

Bug: 119270658
Test: m checkbuild
Change-Id: I8fc78b5ef1f8c6f51fd97a29461b96ae2b35cada
2019-03-01 15:28:19 +00:00
Colin Cross
292d6cfd73 Merge "Move boot image oatdump phony rules into Soong" 2019-03-01 15:27:35 +00:00
Paul Duffin
4ea7fb7c07 Merge changes Ib0389900,Ib2d69dea am: e28d0c0ff3 am: 7204ec83ef
am: 1a5d25499a

Change-Id: I5b2ce79790b12fab360339faba6f7ef548eb961a
2019-03-01 01:23:21 -08:00
Paul Duffin
e28d0c0ff3 Merge changes Ib0389900,Ib2d69dea
* changes:
  Fix hiddenapi issue when REMOVE_ATB_FROM_BCP=true
  Improve hiddenapi processing so it does not require white list
2019-03-01 09:04:39 +00:00
Colin Cross
c9a4c36634 Move boot image oatdump phony rules into Soong
The boot image oatdump rules depend on the details of dexpreopting
the boot image.  Instead of exporting all of the necessary values
to make, move the rules into Soong instead.  Also removes the
ART_DUMP_OAT_PATH variable, and moves the output to
out/soong/boot.*.oatdump.txt.

Test: m dump-oat-boot
Change-Id: I055b1c39918ba3425c8393b3e1b5359df055472a
2019-02-28 22:00:21 -08:00
Jaewoong Jung
5b657bfba7 Merge "aapt2 flag for target manifest package override" am: ce3de3df0f am: a58c5c8139
am: b3f3924119

Change-Id: I86cbc75abb59f1e88ae20cc1d8e7004405246ef1
2019-02-28 19:37:21 -08:00
Jaewoong Jung
ce3de3df0f Merge "aapt2 flag for target manifest package override" 2019-03-01 03:24:25 +00:00
Sundong Ahn
c7ff2701a1 Merge "Add path valid check" am: 10d21fdcb9 am: 24801a3980
am: 37eed8fc81

Change-Id: I84e99e95c5a5e95ea105733b0ca8b88d61f1d033
2019-02-28 19:04:47 -08:00
Treehugger Robot
10d21fdcb9 Merge "Add path valid check" 2019-03-01 02:34:58 +00:00
Jaewoong Jung
2cfaf135a4 Merge "Revert "Add override_module."" am: ef36053829 am: 4ab2e63974
am: d26cc522ac

Change-Id: Iab70e8d689eea96831afd4f3b696122b98c99d9b
2019-02-28 15:51:16 -08:00
Jaewoong Jung
4102e5dca3 aapt2 flag for target manifest package override
This change adds an aapt2 flag, rename-instrumentation-target-package,
when an android test's instrumention target module's manifest package
name is overridden.

Bug: 122957760
Test: app_test.go, atest DocumentsUITests
Change-Id: I7116a51ec5ec9d61a20cd28509b3af0e383730d7
2019-02-28 15:41:45 -08:00
Treehugger Robot
ef36053829 Merge "Revert "Add override_module."" 2019-02-28 23:10:33 +00:00
Alex Light
6e1ded330f Merge "Add java_* 'services:' field" am: 6a48032fc9 am: 16189b6584
am: b2b83a47ca

Change-Id: I1a218f1f88473d87b030d122e56ac8ce8fc8df43
2019-02-28 09:44:26 -08:00
Alex Light
6a48032fc9 Merge "Add java_* 'services:' field" 2019-02-28 17:05:01 +00:00
Jaewoong Jung
acb6db331b Revert "Add override_module."
This reverts commit aa65e17016.

Reason for revert: Not compatible with PRODUCT_PACKAGES, and so has very limited use.

Change-Id: Ib141d3984a6f12bb50989e66037494c466b066f1
2019-02-28 16:22:30 +00:00
Paul Duffin
719fed4e95 Fix hiddenapi issue when REMOVE_ATB_FROM_BCP=true
If the android.test.base is not on the bootclasspath then its stubs
should not be used as input to the hiddenapi processor.

Bug: 73711752
Test: make REMOVE_ATB_FROM_BCP=true droid && atest -p cts/tests/signature
Change-Id: Ib03899001e4350c9ad9e757e9e6d7d41bb0a3896
2019-02-28 16:15:44 +00:00
Paul Duffin
d2acecaeb7 Improve hiddenapi processing so it does not require white list
Rather than have a special white list to contain the names of modules
that provide additional hiddenapi for modules on the bootclasspath
this defines a convention that such modules must have a name which is
of the format <x>-hiddenapi, where <x> is the name of the module on the
bootclasspath.

Bug: 73711752
Test: make droid && flashall -w && atest -p cts/tests/signature
Change-Id: Ib2d69dea9541b60a9bb81496f00edb65036d1ebb
2019-02-28 16:13:20 +00:00
Paul Duffin
3a006cd771 Merge "Revert "Support libraries (not just boot jars) that have hiddenapi"" am: 724c5fd813 am: 4a33f24c2c
am: 927fba9706

Change-Id: I6c71b9199fe2d98dbcef61faaa7d00475cd6098a
2019-02-28 05:43:38 -08:00
Paul Duffin
724c5fd813 Merge "Revert "Support libraries (not just boot jars) that have hiddenapi"" 2019-02-28 13:25:08 +00:00
Sundong Ahn
ae418acbab Add path valid check
The path valid check is added for avoiding panic message

Bug: 126612123
Test: tapas tradefed-all && make -j40

Change-Id: I76b79d5040db7168d8a8879f64349846005333b5
2019-02-28 16:51:53 +09:00
Jaewoong Jung
049aea10f5 Merge "Add override_module." am: b709575a75 am: e8eaf4608d
am: b44bb0896b

Change-Id: I4c8faef56835a1e7d334f8dade5623c9ea07df3e
2019-02-27 20:13:56 -08:00
Treehugger Robot
b709575a75 Merge "Add override_module." 2019-02-28 03:46:23 +00:00
Alex Light
7f004a765b Add java_* 'services:' field
Some libraries rely on the java.util.ServiceLoader system to access
classes. Allow java_* targets to specify the services that should be
exposed there.

Test: m jdi-support
Bug: 124507633

Change-Id: I253a87033563e3aebc50250fe2252d80d2883815
2019-02-27 23:14:47 +00:00
Jaewoong Jung
aa65e17016 Add override_module.
This new module type replaces the inherit-package function in make by
allowing developers to override the name, the certificate, and the
manifest package name of an android_app module.

Bug: 122957760
Fixes: 123640028
Test: app_test.go + BrowserGoogle
Change-Id: Iefe447e7078b25039233221361ef95c83a29973a
2019-02-27 14:35:39 -08:00
Colin Cross
b66f1b0faf Fix Rel() after ReplaceExtension or InSameDir am: 2cdd5df7cc am: 54466adccc
am: ea72c068c3

Change-Id: I0292ca0c18a2f57619402bc648f4f8ec244eba7d
2019-02-27 12:55:44 -08:00
Colin Cross
2cdd5df7cc Fix Rel() after ReplaceExtension or InSameDir
Copying p.rel doesn't work, as rel needs to match the end of the
value in path.  Apply the same transformation to p.rel as p.path.

Test: paths_test.go
Change-Id: I42d676c6c4fc18d9852c1a73f25e5a791d7553d0
2019-02-27 20:23:25 +00:00
Paul Duffin
c02e834ad6 Revert "Support libraries (not just boot jars) that have hiddenapi"
This reverts commit e5b5657f87.

The reverted change was added in order to gather the information about
the hiddenapi that is needed for the runtime to enforce the hiddenapi
accessibility rules. Without it the build broke with the following
error when the android.test.base library was not in the
PRODUCT_BOOT_JARS list:

AssertionError: Error processing: frameworks/base/config/hiddenapi-greylist.txt
The following entries were unexpected:
  Ljunit/framework/TestSuite;->isPublicTestMethod(Ljava/lang/reflect/Method;)Z
  Landroid/test/AndroidTestCase;->setTestContext(Landroid/content/Context;)V
  Landroid/test/InstrumentationTestCase;->runMethod(Ljava/lang/reflect/Method;I)V
  Landroid/test/AndroidTestCase;->getTestContext()Landroid/content/Context;
  Ljunit/framework/TestCase;->fName:Ljava/lang/String;
  Ljunit/framework/TestSuite;->isTestMethod(Ljava/lang/reflect/Method;)Z
  Please visit go/hiddenapi for more information.

However, it turns out that the runtime does not currently enforce
access to the hiddenapi of libraries that are not on the
PRODUCT_BOOT_JARS list. Gathering hiddenapi information for a library
not on the PRODUCT_BOOT_JARS list breaks the
CtsHiddenApiBlacklistApi27TestCases and
CtsHiddenApiBlacklistApi28TestCases test modules which use that
information to ensure that correct runtime behavior.

This change is being reverted simply because it does not work.

Bug: 126519737
Bug: 73711752
Test: make REMOVE_ATB_FROM_BCP=true droid and make droid
Change-Id: I1b4a7786b1061effa0e2d37832afa8570953a06e
2019-02-27 12:49:21 +00:00
Allen Hair
50e870355f Merge "Whitelist Offline.getProbes(..)." am: 6bd446620c am: f3bc083695
am: 34cf93e0df

Change-Id: Iba88c928460dd39eed4a32ad0d5dd007a7e85f78
2019-02-26 14:21:16 -08:00
Treehugger Robot
6bd446620c Merge "Whitelist Offline.getProbes(..)." 2019-02-26 22:01:41 +00:00
Nicolas Geoffray
c5685e945e Merge "Add a DEX2OAT_BOOTCLASSPATH variable." am: 9ce33353c5 am: 706eb5dda6
am: 8b482295b6

Change-Id: I6f1583c57d14395b4d506291fa74802e3adb4e00
2019-02-26 13:17:01 -08:00
Nicolas Geoffray
07b4007f1d Add a DEX2OAT_BOOTCLASSPATH variable.
Bug: 119800099
Test: m
Change-Id: If4b49b1bed33564b9237f8ae2ac35ef0d631703c
2019-02-26 12:55:37 +00:00
Nicolas Geoffray
d4916949c1 Merge "Don't return null for an interface type." am: 56e0290551 am: 6a1ea2e8a3
am: b60ce369b3

Change-Id: Idbdedc6b20c0fe0343228f3cd13addeb48f59235
2019-02-25 22:25:42 -08:00
Nicolas Geoffray
855b1c7475 Merge "Support for install multiple boot images." am: d79df83b28 am: 5300094ca7
am: 63ab163d56

Change-Id: Iebb61079453f7e33ff41b8dae4ca8b032d35162a
2019-02-25 21:06:22 -08:00
Allen Hair
de816cf577 Whitelist Offline.getProbes(..).
Test: atest -v -it CtsSystemUiTestCases -- --abi x86 --test-arg com.android.tradefed.testtype.AndroidJUnitTest:coverage:true
Bug: 122330976
Change-Id: Ieb4a8808de6a3e062297c6a0b9e83a3872247eee
2019-02-25 16:49:05 -08:00
Nicolas Geoffray
27c7cc6c32 Don't return null for an interface type.
Otherwise we get:
internal error: panic in GenerateBuildActions for singleton dex_bootjars
interface conversion: interface is nil, not android.WritablePath

Test: build/soong/scripts/build-ndk-prebuilts.sh
Change-Id: I9d8484994d1b5120f0187861a8acaf20e94827f6
2019-02-24 16:04:52 +00:00
Colin Cross
4dab988c4c Pass DEXPREOPT_BOOT_JARS_MODULES to Make am: 9be4152c21 am: 2b34ef2fd3
am: edc6b9c1e0

Change-Id: I3e8ed02d1b95393bd2203758e426678e803f7671
2019-02-22 20:43:50 -08:00
Colin Cross
0e902ea85a Refactor dexpreopt_bootjars.go to prepare for multiple boot images am: 44df581457 am: ac405aa805
am: d3a73010f9

Change-Id: I53abda3e3b15969402580825480f76bc18a9d9de
2019-02-22 20:37:41 -08:00
Colin Cross
4bff473af2 Make RuleBuilder methods take Paths am: 69f59a3327 am: fafab5c1ec
am: d123cd7459

Change-Id: I5277142b7486c80c1c93d2ecd9a90b387d93c4a9
2019-02-22 20:35:45 -08:00
Nicolas Geoffray
72892f1035 Support for install multiple boot images.
Bug: 119800099
Test: m && /system/framework/arm/apex*.art files exist
Change-Id: I8b708a0c495193e5455e03eaa575ce55a482a95d
2019-02-22 15:37:48 +00:00
Colin Cross
9be4152c21 Pass DEXPREOPT_BOOT_JARS_MODULES to Make
Make is not setting PreoptBootJars, pass the value computed in
Soong back to Make.

Test: m checkbuild
Change-Id: Ie3db926df9c5d6bf18db1003b95823c7566800a9
2019-02-20 22:06:30 -08:00
Colin Cross
44df581457 Refactor dexpreopt_bootjars.go to prepare for multiple boot images
Refactor dexpreopt_bootjars.go so that buildBootImage can be called
with a bootImageConfig to create rules to build the boot image in
preparation for building multiple boot images.

Test: m checkbuild
Change-Id: I7ba40a0988c8acbd6c1ee4e36f4bbb34fb4e2d24
2019-02-20 22:06:29 -08:00
Colin Cross
69f59a3327 Make RuleBuilder methods take Paths
There are no more Make paths being used in Soong now that
dexpreopting and hiddenapi are in Soong. Use the Path types
in the inputs to RuleBuilder, and fix all users of RuleBuilder.

This reapplies I886f803d9a3419a43b2cae412537645f94c5dfbf with
fixes to disable preopt for Soong-only builds when the global
dexpreopt.config doesn't exist.

Test: all soong tests
Test: m checkbuild
Change-Id: I4dae9ecd5de22f062f9478ec8f0747f099cf8190
2019-02-20 22:06:09 -08:00
Colin Cross
395d1b0ecb Merge "Revert "Make RuleBuilder methods take Paths"" am: 501d7e594a am: dc68f8826c
am: ec60a92074

Change-Id: I4519fd0157c6f1287135879ad42a2d1ffaf59515
2019-02-20 21:17:11 -08:00
Colin Cross
ab898dc4a4 Revert "Make RuleBuilder methods take Paths"
This reverts commit acdd694071.

Reason for revert: broke ndk build

Change-Id: I5655e48c15eb8f5f0267afdd853fbc25765b8623
2019-02-21 05:03:00 +00:00
Colin Cross
43e1ff5337 Merge "Make RuleBuilder methods take Paths" am: 4bb6764de9 am: 4ebb84d392
am: fc2da332e9

Change-Id: Ic6563627f7853d9850e996d4579ac671d47d2c7b
2019-02-20 20:22:51 -08:00
Colin Cross
a2e9e42f15 Merge "Fix typo when multiple BootImageProfiles specified" am: 55f8c42a7b am: 5a32244ce7
am: d308a0223c

Change-Id: Ie63eb7f207c5fe404e7b5db228a9ef99d5d6bccf
2019-02-20 17:14:17 -08:00
Colin Cross
acdd694071 Make RuleBuilder methods take Paths
There are no more Make paths being used in Soong now that
dexpreopting and hiddenapi are in Soong. Use the Path types
in the inputs to RuleBuilder, and fix all users of RuleBuilder.

Test: all soong tests
Test: m checkbuild
Change-Id: I886f803d9a3419a43b2cae412537645f94c5dfbf
2019-02-20 14:23:37 -08:00
Nicolas Geoffray
1ccc63ba4a Merge "Set a dedicated variable for the runtime apex libs." am: 3d186813f2 am: 8d3269faca
am: 57ef108ab5

Change-Id: Iede7b97899e961e828d4a726a652599ef168ad0a
2019-02-20 13:56:30 -08:00
Colin Cross
9055fa58ad Support passing resource zips to aapt2 am: a592e3eae9 am: 089d22dec0
am: 7962a69ff1

Change-Id: I78d3a2597d3ff4f2dcb1c23bf64f0a7868473ed9
2019-02-20 12:50:42 -08:00