Commit Graph

508 Commits

Author SHA1 Message Date
Jeff Gaston 7752903259 Merge "Clearer error if module doesn't declare any source files" am: c4343864ed am: cf9d0cf4dd
am: 0aeef2a0db

Change-Id: Ifc6fe286a6147794ffb3c1d428fb6051800f8399
2018-02-28 16:48:49 +00:00
Jeff Gaston 960acf1b88 Clearer error if module doesn't declare any source files
Bug: 72552006
Test: Make a module with no source files,
      run `m -j nothing`, notice that the error tells
      which module has no sources

Change-Id: Ib169e7b3cb86d840a3acd644e42cd1f9f65e1304
2018-02-27 20:52:53 -05:00
hansson 1b7700340c Merge "Add support for LOCAL_PRIVATE_PLATFORM_APIS." am: 3c76d02668 am: ab8f5d74f2
am: 1f903cce0c

Change-Id: I6558665d9488b462fd00ad89a570817f0a03c23d
2018-02-22 12:03:30 +00:00
Anton Hansson 7ff32d2734 Add support for LOCAL_PRIVATE_PLATFORM_APIS.
The only enforcement right now is that modules don't specify both
LOCAL_SDK_VERSION and LOCAL_PRIVATE_PLATFORM_APIS, but a warning
can be turned on by setting the JAVA_SDK_ENFORCEMENT_WARNING variable.

Bug: 73535841
Test: make w/ and wo/ flag.
Change-Id: I3cc720bf060e2bc789e10884ff888d527b91cb50
2018-02-21 18:10:59 +00:00
TreeHugger Robot 0710ca2056 Merge "Add rule to enable running Jetifier within Make against Java modules" 2018-02-20 23:35:10 +00:00
Jeff Gaston d2ba724f7f Add rule to enable running Jetifier within Make against Java modules
The only case where we expect to actually enable this behavior is for
modules that are just an unpacking of a prebuilt, because those are
the only cases for which we can't conveniently just change the source

Bug: 72552006
Test: ./build/soong/scripts/diff_build_graphs.sh \
      --products=aosp_arm 'build/make:work^' \
      'build/make:work'
Test: cherry-pick the following patch that depends on this one and
      the rest of that patch's topic, and then do `m -j jeffapp`

Change-Id: I62e231900d6d87673ddf19c7fc2686fef2828590
2018-02-20 22:25:23 +00:00
Colin Cross e7bbfb145f Merge "Disable duplicates warnings when merging jars" am: 2a519d5a9b am: 87eba4a9ba
am: 51b559abfa

Change-Id: Idd0ab1653340dcba6dd37fa80168cffcb66eb452
2018-02-14 21:43:37 +00:00
Colin Cross 5b73ab34ed Disable duplicates warnings when merging jars
There are too many duplicates warnings, disable them until someone
is actually looking at them.

Bug: 69316739
Test: m checkbuild
Change-Id: Ifb67dbf7734b5f53941d110f578c4fe642e36005
2018-02-14 18:35:37 +00:00
Jiyong Park 1f4e7fbe9d Merge "Support LOCAL_SDK_VERSION := core_current" am: c82c0a81ec am: d2e7e0d33d
am: efc3f4d130

Change-Id: I13ab7399a47443dd1aa8766416ad30efcb443d7e
2018-02-07 01:30:05 +00:00
Treehugger Robot c82c0a81ec Merge "Support LOCAL_SDK_VERSION := core_current" 2018-02-06 22:37:16 +00:00
David Brazdil 8c4d521d0d Merge "Revert "Revert "Apply hiddenapi build tool on boot jars""" am: edd4716ff9 am: bc05d3f846
am: 3264b568f3

Change-Id: I21ce7dc6f2d50a96722a197f52e48f13899ede7d
2018-02-01 23:27:09 +00:00
Jiyong Park 5ebca30d21 Support LOCAL_SDK_VERSION := core_current
core_current is a pseudo SDK version which is a core Java API subset of
the Android API. It is expected to be mainly used for external Java
projects which are agnostic to Android; such as junit, guava, etc.

A module built with this SDK version can only link to java modules of
the same kind. It can't depend on modules built with LOCAL_SDK_VERSION
:= current or without LOCAL_SDK_VERSION.

Bug: 72206056
Test: m -j
Change-Id: I34a9696393aa6704fd6684a40ea5b05d3fb46b23
2018-02-01 17:14:55 +09:00
David Brazdil b8fa6dd104 Revert "Revert "Apply hiddenapi build tool on boot jars""
This reverts commit 4a2926a44e.

Reason for revert: The original CL caused two issues:
1) Increased app startup because `profman` failed to verify boot
jars and created an empty profile for the boot image. All methods
in the framework therefore ran interpreted/JITed. New flag
"--skip-apk-verification" has been added to `profman` to fix
the issue in CL Iad614e47feada293218c11cff985a8012ca49a0f.
2) Caused a crash in Mockito CTS tests because jvmti did not
remove hiddenapi access flags from boot jars before using them.
This has been fixed with CL Ibc9a96a6b541c06844f276db009ac29514f7a3bb.

Bug: 64382372
Bug: 72550707
Test: make test-art-host
Change-Id: Ie8c58714455662f042f56b2977b01b75c5ec7d2f
2018-01-30 18:25:46 +00:00
Alex Light e66c468790 Merge "Revert "Apply hiddenapi build tool on boot jars"" am: 9f1e629503 am: 67bf2d712a
am: 393453d761

Change-Id: I4e69247e2add400d6dad997cca04b1969384bb4f
2018-01-26 19:54:13 +00:00
Alex Light 4a2926a44e Revert "Apply hiddenapi build tool on boot jars"
This reverts commit b7f00ed2af.

Bug: 72550707
Bug: 64382372
Test: atest CtsInlineMockingTestCases

Reason for revert: Causing invalid dex files to be passed to jvmti
                   agents. This causes CtsInlineMockingTestCases and
                   other tests to fail.

Change-Id: I50129e94791b9e2bef919fe398b4250ae461195b
2018-01-26 18:16:52 +00:00
David Brazdil 5f97aef277 Merge "Apply hiddenapi build tool on boot jars" am: 221848b181 am: b1831cf27e
am: 74f173806b

Change-Id: I60a5482f2a04429e3dcbf47ed82441cb3c702cdc
2018-01-26 00:16:38 +00:00
David Brazdil b7f00ed2af Apply hiddenapi build tool on boot jars
Restrictions on usage of private APIs require encoding new information
into the dex files of the boot class path. ART now contains a new build
tool called `hiddenapi` which takes three lists of class member
signatures (blacklist, light and dark greylist), finds the class members
in their respective dex files and modifies their access flags in place.

This patch invokes the `hiddenapi` tool on all JARs in
PRODUCT_BOOT_JARS. For Java libraries built with Makefiles the tool is
invoked after the dexer directly on DEX files. For Soong-built
libraries, the build system has to unzip the JAR produced by Soong,
apply `hiddenapi` and rezip again. This is due to the fact that the
PRODUCT_BOOT_JARS variable is not available to Soong.

Bug: 64382372
Test: m
Change-Id: I6ce897d204459c8b6f46ed49e0909ff76c08a9ed
2018-01-25 09:22:08 +00:00
Paul Duffin f492ebdbd1 Revert "Filter JUnit and android.test classes from applications using proguard"
This reverts commit f22aca1e47.

Switching to use -systemjars instead of -libraryjars means that it is no longer
necessary to filter out the junit and android.test classes from jars to which
Proguard is being applied.

Bug: 30188076
Bug: 69156675
Test: make checkbuild
Change-Id: I36e14d28e01517927b458d69ade8ccb2c79a3340
2018-01-19 08:16:34 +00:00
Paul Duffin 47970225d2 Use Proguard -systemjars instead of -libraryjars
Proguard -systemjars will correctly use the system libraries version
of a duplicate class rather than the program's version.

If USE_R8=true then use -libraryjars as R8's proguard emulation layer
does not support -systemjars and it is unnecessary because R8 does not
fail like proguard does when it comes across duplicate classes.

Bug: 30188076
Bug: 69156675
Test: make checkbuild
Change-Id: I99f0cb7a816ce34e5fa209803b7c538fd931d8a7
2018-01-19 08:16:34 +00:00
Colin Cross 57d291ecca Merge "Remove LOCAL_PROGUARD_ENABLED := nosystem" am: 2c2cb33830 am: d61a376ec4
am: b9f8265d08

Change-Id: Ifcc17a929f3218fe4052e648d8677ba9e5d471f3
2018-01-03 22:35:57 +00:00
Colin Cross 268504d237 Merge "Move jacoco before desugar" am: f9a1e6a72a am: c06ecd9a99
am: 2fec0b5d97

Change-Id: Ib71f1bb65b1a2d995a57dc18ff5e384db2fc7cb3
2018-01-03 21:07:29 +00:00
Colin Cross e616f34431 Remove LOCAL_PROGUARD_ENABLED := nosystem
None of the system options are controversial, and there are no
longer any users of nosystem, so remove it.

Test: m checkbuild
Change-Id: Id1b946d83688d266ca2942c02c97e8b404c3755b
2018-01-02 13:18:04 -08:00
Colin Cross 96873482b0 Move jacoco before desugar
R8 will replace desugar+proguard+dx, which will mean jacoco has to
run before desugar.  In preparation, move jacoco before desugar now.

Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true SKIP_BOOT_JARS_CHECK=true WITH_DEXPREOPT=false tests
Change-Id: I0627a79ba2f0b26a113d5d8bcc5cb1fda08295a1
2017-12-28 09:39:15 -08:00
Colin Cross 127e7e43d0 Merge changes I84a59a8c,Id7a92fb2 am: 9c2b798143 am: b2b378e007
am: c819a3008a

Change-Id: Ied52a144b5d3ff07b6f0a5a26e5407794dd0cffb
2017-12-28 17:35:09 +00:00
Colin Cross e4936e1c2d Remove obsolete proguard options
LOCAL_PROGUARD_ENABLED := shrinktests is never set.
proguard_tests.flags is entirely comments.
proguard.emma.flags only references emma classes, but we use
jacoco now.

Test: m checkbuild
Change-Id: I84a59a8c1b66f75d7ccbaa7da8e937430b4490c8
2017-12-28 17:22:30 +00:00
Dan Willemsen 1d64623105 Export proguard flags from static android libraries and aar prebuilts
Test: m Contacts, classes-proguard.jar has same contents
Test: rm -rf out; tapas Contacts; m
Change-Id: Id7a92fb2c44913bccbfcbeae127355b4de588e4d
Merged-In: Id7a92fb2c44913bccbfcbeae127355b4de588e4d
(cherry picked from commit 1417c177ac)
2017-12-28 17:22:19 +00:00
Colin Cross 3e4ad40ab7 Merge changes I63eace8f,I103cbe58 am: 5ded399588 am: 0714643816
am: db2cc74d5c

Change-Id: I3522e3922aa95c7be13b5afac10415a06d290b45
2017-12-21 21:16:16 +00:00
Treehugger Robot 5ded399588 Merge changes I63eace8f,I103cbe58
* changes:
  Remove obsolete leaf names
  Remove obsolete dx --no-locals when coverage is enabled
2017-12-21 20:49:03 +00:00
Alan Leung d43b45b994 Merge "Add zip2zip as dependency of dexing step." am: f0971be1b6 am: 7269770b28
am: af233a4dcf

Change-Id: If15cb28fa50d8f9398f300ee7b5df92fe2649210
2017-12-21 18:35:41 +00:00
Alan Leung 5eb88c0112 Add zip2zip as dependency of dexing step.
Bug: 69329508
Test: m checkbuild
Change-Id: I85f4508b6b1fee357d296bda6f0b6ba02cba70b7
2017-12-20 20:03:58 -08:00
Colin Cross a6e878219c Remove obsolete leaf names
classes-no-debug-var.jar is incorrect, jars in coverage builds
do have debug information.  Remove full_classes_compiled_jar_leaf
and hardcode classes-full-debug.jar.

After the previous patch, all dex files have debug information,
so remove the no-local and with-local directories and replace
them with dex/.

Remove the unnecessary jarjar_leaf.

Bug: 70886092
Test: m checkbuild
Change-Id: I63eace8f8cda5ad8bc0cbd11eefda73dd063ed76
2017-12-20 17:33:01 -08:00
Colin Cross ff812829b6 Remove obsolete dx --no-locals when coverage is enabled
We use jacoco for coverage now instead of emma, so the workaround
is no longer necessary.

Bug: 70886092
Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true SKIP_BOOT_JARS_CHECK=true WITH_DEXPREOPT=false
Change-Id: I103cbe58590689640a0b1520d22b3d3b7cd2208d
2017-12-20 17:03:52 -08:00
Paul Duffin 6b0cf89c18 Merge "Remove android.test.** and c.a.i.u.* injar filters" 2017-12-13 07:24:32 +00:00
Colin Cross 426ecd0f60 Merge "Replace build/tools with build/make/tools" am: 973301af79 am: e6dc6b2026
am: eb6c8444a6

Change-Id: I14d033658d219e81790ab1e730b7e477c70f4a13
2017-12-13 03:03:47 +00:00
Treehugger Robot 973301af79 Merge "Replace build/tools with build/make/tools" 2017-12-13 02:34:42 +00:00
Paul Duffin 8fe958d0b9 Remove android.test.** and c.a.i.u.* injar filters
These were added to work around Proguard problems caused by duplicate
classes in the APK and libraries. Unfortunately, that work around
caused other Proguard problems when trying to remove classes from
android.jar.

Bug: 30188076
Test: make checkbuild
Change-Id: I59345e60073faf3337215ecaa62cf640e19495c8
2017-12-12 15:24:56 +00:00
Alan Leung e8f23f11e9 Merge "Add USE_D8_DESUGAR option in build/core" am: 78b99fefd3 am: c2847897ff
am: 8de45264f6

Change-Id: I7fedd53bd581c3ed221aea1c7ce8b1d337bd003a
2017-12-12 00:24:40 +00:00
Alan Leung eaafb3cd37 Add USE_D8_DESUGAR option in build/core
Add an option to use D8's desugar instead of the standalone version.

USE_D8_DESUGAR=true m would trigger DCHECK in dex2oat unless
https://android-review.googlesource.com/c/platform/art/+/562595 is
patched in as well.

Bug: 69329508
Test: m && USE_D8_DESUGAR=false m

Change-Id: I601dada44c361e45bbc0e2227ae1544a7d9efa90
2017-12-11 14:03:09 -08:00
Colin Cross fdea893833 Replace build/tools with build/make/tools
Test: m checkbuild
Change-Id: I8db6c27a6d2372f142d10568fe92d6f2e9a59252
2017-12-06 16:12:40 -08:00
Sundong Ahn f3e8302088 Add LOCAL_SDK_VERSION := system_$(VER)
am: 5a44d1f069

Change-Id: Ief08f78484b654502d356c07d61063a16aad0572
2017-12-01 04:26:10 +00:00
Sundong Ahn 5a44d1f069 Add LOCAL_SDK_VERSION := system_$(VER)
The system_$(VER) can be set in LOCAL_SDK_VERSION, and the apk will use
android_system.jar at build time.
If LOCAL_SDK_VERSION is not defined and this module is installed in
vendor.img, LOCAL_SDK_VERSION is set to system_current.

Bug: 67724799
Test: 1. build && run on taimen
2. LOCAL_SDK_VERSION:=system_27 in ims.apk && build ims.apk && check
the vsdk_v27_intermediates.

Merged-In: I5b11c78b8fcd4a2f2a5e3b141527cd34dbe80018
Change-Id: I5b11c78b8fcd4a2f2a5e3b141527cd34dbe80018
(cherry picked from commit ef212cbe8d)
2017-12-01 00:39:07 +00:00
Sundong Ahn ef212cbe8d Add LOCAL_SDK_VERSION := system_$(VER)
The system_$(VER) can be set in LOCAL_SDK_VERSION, and the apk will use
android_system.jar at build time.
If LOCAL_SDK_VERSION is not defined and this module is installed in
vendor.img, LOCAL_SDK_VERSION is set to system_current.

Bug: 67724799
Test: 1. build && run on taimen
2. LOCAL_SDK_VERSION:=system_27 in ims.apk && build ims.apk && check
the vsdk_v27_intermediates.

Change-Id: I5b11c78b8fcd4a2f2a5e3b141527cd34dbe80018
2017-11-30 10:04:09 +09:00
TreeHugger Robot 6b005dc0d3 Merge "Export proguard flags from static android libraries and aar prebuilts" 2017-11-21 04:03:35 +00:00
Dan Willemsen 1417c177ac Export proguard flags from static android libraries and aar prebuilts
Test: m Contacts, classes-proguard.jar has same contents
Test: rm -rf out; tapas Contacts; m
Change-Id: Id7a92fb2c44913bccbfcbeae127355b4de588e4d
2017-11-17 13:11:26 -08:00
Tobias Thierer ea43e16f60 Merge "Tweak comments for OpenJDK 9 build toolchain logic."
am: 2655e57bbb

Change-Id: I13b9520e95365dc2669d7a0c4832a322b7efca84
2017-11-17 18:25:32 +00:00
Tobias Thierer 7ef760b832 Tweak comments for OpenJDK 9 build toolchain logic.
This addresses review comments on the preceding CL
http://r.android.com/539055

Test: Treehugger
Change-Id: Icb0674190db3d638546a0ed49dbcb97d0698e549
2017-11-17 15:35:59 +00:00
Tobias Thierer 4ffaa14478 Merge "Break EXPERIMENTAL_USE_OPENJDK9 into {USE,TARGET}_OPENJDK9."
am: 446c9ba370

Change-Id: I0254955fa16e8b35396f9f350c961031272c6583
2017-11-17 15:19:30 +00:00
Tobias Thierer f6bd495728 Break EXPERIMENTAL_USE_OPENJDK9 into {USE,TARGET}_OPENJDK9.
This CL topic breaks the single flag value EXPERIMENTAL_USE_OPENJDK9
into two flags USE_OPENJDK9 and TARGET_OPENJDK9 which are computed
independently in config.mk and config.go; this means that later
build logic no longer depends on / duplicates the semantics of an
unset EXPERIMENTAL_USE_OPENJDK9, because that later build logic
can use USE_OPENJDK9 and TARGET_OPENJDK9 instead. Thus, it becomes
slightly easier to change this default in future CLs (touching
only config.mk and config.go).

It also makes it more straightforward to convert .mk files
to .bp.

This CL also introduces a new allowed value "false" for
EXPERIMENTAL_USE_OPENJDK9. This fourth possible value currently
has the same semantics as a default/unset
EXPERIMENTAL_USE_OPENJDK9, but allows people to explicitly
switch back to the old semantics when the default changes.

Test: make showcommands core-oj (in environments with
      EXPERIMENTAL_USE_OPENJDK9 set to "", "1.8", and "true").
Bug: 38177295

Change-Id: Iaade9610b237722e5d175143808b8653b1e98996
2017-11-17 13:14:11 +00:00
Alan Leung 4eee474504 Merge "Rename r8 to r8-compat-proguard"
am: 81eeb78200

Change-Id: Ibe7c114115f627ae3f061f8087b93891af475e40
2017-11-17 03:15:09 +00:00
Alan Leung 7d6144d34b Rename r8 to r8-compat-proguard
Test: USE_R8=false USE_D8=true m -j32 && USE_R8=true USE_D8=true m -j32

Change-Id: I2610340cf75f8db5920e33fac542f0dcf294ce29
2017-11-16 17:24:01 -08:00