Commit graph

656 commits

Author SHA1 Message Date
Alex Light
4e358ab2c3 Add system_other partition, install odex files
For AB devices, support flashing two system partitions for factory use.
The normal system image on one partition, but without dex preopt. And a
system_other image that just contains the odex files. The dex files will
not be stripped out of the system image, in case the second system
partition is wiped.

Setting BOARD_USES_SYSTEM_OTHER_ODEX := true in the BoardConfig.mk
enables this behavior.

One can control which directories are placed in system_other by the
SYSTEM_OTHER_ODEX_FILTER configuration variable. Currently we default
to only copying only app and priv-app odexs.

Bug: 29278988
Change-Id: I7f4e87da919e7dc6a89fd8c668193cd4e98631bc
2016-06-24 11:07:15 -07:00
Daniel Micay
888a623881 disable unpriv perf by default in user{,debug} builds
(Cherry picked from commit fe01f56c0d5c42508e1e82f5976e4c10bb00f632)

Bug: 29054680

Change-Id: If04bc63fc366006cde842a50b7c764f89d7449a6
2016-06-01 17:01:18 -07:00
Ying Wang
2e2c137913 Reject Google's build of JDK.
Bug: 28097637

(cherry picked from commit 22b23b9b00)

Change-Id: Ieb809cdd0ba930b9ea65b8b0d31a81be112cc52e
2016-04-14 12:30:25 -07:00
Dan Willemsen
ae18638b04 Handle symlinked OUT_DIRs (again)
My previous attempt at properly handling symlinked OUT_DIRs only worked
if the symlink was to a different directory, not one in the same
directory.

This time, make sure that both make and soong use the same
representation of the output directory by passing BUILDDIR to
bootstrap.bash. Soong has been updated to pick whether to use a relative
or absolute path back to the source tree depending on what makes sense.
If the BUILDDIR or the path back to the source tree change, re-run the
bootstrap.

Also, move the $OUT_DIR/Android.mk and $OUT_DIR/CleanSpec.mk generation
to before Kati runs. In the case that $TOP/out was symlinked to
$TOP/out.angler:

 1) Soong generates out.angler/soong/Android.mk
 2) Kati's find generator produces in-memory tree of the filesystem
 3) $(shell ) creates out.angler/Android.mk
 4) The emulated findleaves Android.mk search finds
    out.angler/soong/Android.mk since the in-memory tree is never updated.

This doesn't happen in the normal case, because we pass --prune=$OUT_DIR
to findleaves.

Change-Id: Ib0fdae2e80f75ddcf33a3c8c5ea0978f5308b437
(cherry picked from commit cc60f01357)
[ccross: resolved conflicts in nyc-dev]
2016-03-30 12:24:57 -07:00
Colin Cross
946a08cf51 Ignore Android.mk files with USE_SOONG=true
When USE_SOONG=true, ignore any Android.mk file that has an Android.bp
file in the same directory.

Change-Id: Id79bd90c2aed5dafc2f8ad2c5b7eb0aa6e81dc18
(cherry picked from commit 861ab99536)
2016-03-24 14:36:48 -07:00
Ying Wang
3a61eeb6cb Rebuild odex files in PDK fusion build.
To rebuild odex files of Java libraries and apps,
we store the jars/apks without stripping the classes.dex inside the
platform.zip. We also save the build variables that may affect how we
rebuild an odex in pdk_dexpreopt_config.mk in the platform.zip.
We store the files and configuration only for libraries/apps that get
installed to the system.img (or vendor.img).

In PDK fusion build, we auto-generate prebuilt module definitions for
the javalib.jar and package.dex.apk carried in the platform.zip, using
configuration stored in pdk_dexpreopt_config.mk.
With the prebult modules, we override the implicit rule that directly
copies the odex from the platform.zip.
To rebuild odex of javalib.jar, we added support for prebuilt shared Java
library to prebiult_internal.mk. An installable prebuilt Java library is
treated as shared Java library, i.e. with classes.dex in the jar instead
of a set of .class files.
For apks in the platform.zip, we install the stripped version from
platform files inside platform.zip, instead of the package.dex.apk,
using a new variable LOCAL_REPLACE_PREBUILT_APK_INSTALLED. We can't
strip package.dex.apk because we can't re-sign the stripped apk at this
point.

We generate prebuilt module only if it's not already defined in the
source tree.

Bug: 27543283
Change-Id: I9e146f8b713d6f57c397fd28d88c9ab700757ca1
2016-03-14 21:01:46 -07:00
Dimitry Ivanov
f22789edd0 Add options for dynamic linker developer warnings
Add bionic options that enable developer warnings for
beta/preview builds.

Bug: http://b/27365747
Change-Id: Ifc2ab706975558824522da5eece186e1660969ad
2016-02-27 01:18:24 -08:00
Keun Soo Yim
172b7d421e build file change for vts to use the existing cts-tradefed infrastructure
Mostly done by stuartscott@

Change-Id: I016405757f39df833d532bc01fd2237e5e961a8a
2016-02-24 16:12:49 -08:00
Sebastien Hertz
8192d3b821 Merge "Support code coverage with Jack" am: 4dad88980f
am: 7b02e64148

* commit '7b02e64148e6a1c0355d715b2a8034061f0d2837':
  Support code coverage with Jack
2016-02-02 09:13:57 +00:00
Sebastien Hertz
4dad88980f Merge "Support code coverage with Jack" 2016-02-02 07:31:37 +00:00
Lee Campbell
d6620a3e10 Merge "brillo: Remove dependency on java for Brillo" am: 6c8e3e4108
am: fd5d6f440a

* commit 'fd5d6f440a13643f4e645e960e1f2c417af3355a':
  brillo: Remove dependency on java for Brillo
2016-01-29 23:48:10 +00:00
Lee Campbell
3d8bf2994c brillo: Remove dependency on java for Brillo
Brillo does not require Java. Add a JAVA_NOT_REQUIRED
flag to the build system to make the jdk requirment optional

Also don't build signapk for Brillo

BUG: 25281898
Change-Id: I31e68cc7d076bf6c234699c77c0ea1ea428be4f5
2016-01-29 15:38:53 -08:00
Sebastien Hertz
dfce8ad4f4 Support code coverage with Jack
Building an app with Jack and with the environment variable
EMMA_INSTRUMENT_STATIC set to true will apply code coverage
onto the app targeting Jacoco.

Bug: 20115492
Change-Id: Ief3640fa3faa466f7f6aaa9739e06d3db24110a0
2016-01-27 19:14:14 +01:00
Neil Fuller
fcf7c81a7f Revert "Revert "Make OpenJDK 8 the default""
Reapply the JDK 8 switch in internal builds.

This reverts commit 85bddfdedf.
2016-01-25 17:35:57 +00:00
Neil Fuller
3ec8eeb90b Merge "Revert "Make OpenJDK 8 the default"" am: c0acea2571
am: a5e4ea2e44

* commit 'a5e4ea2e44e324101b412bac9f2fbb97bdc91670':
  Revert "Make OpenJDK 8 the default"
2016-01-25 17:17:04 +00:00
Neil Fuller
1f495b865e Revert "Revert "Make OpenJDK 8 the default""
Reapply the switch to JDK 8 on aosp/master.

This reverts commit 85bddfdedf.

Change-Id: If2e8733ba78b007d37914c0512cd6be1bd4c1e69
2016-01-25 17:12:41 +00:00
Neil Fuller
85bddfdedf Revert "Make OpenJDK 8 the default"
Temporary revert to help out Brillo folks.
It will be resubmitted tomorrow.

This reverts commit 4495f6afb8.

Change-Id: Id378c7d3a6e72e9be50f9404b19d5763568987a5
2016-01-25 17:04:14 +00:00
Neil Fuller
4495f6afb8 Make OpenJDK 8 the default
To return to OpenJDK 7:
export LEGACY_USE_JAVA7=true

And run envsetup.sh/lunch again.

Bug: 25786468
Change-Id: I8e00591a24d13e3b8b6baaafe0fdff6536c58770
2016-01-25 10:19:25 +00:00
Narayan Kamath
1b5f487f10 Make a confusing error message clearer.
The java version doesn't matter here.

Change-Id: Ieb933f87d1255e7aea5d21b3ac96e4f1f755deea
2016-01-20 18:48:59 +00:00
Neil Fuller
3dfaceea79 Revert "Revert "Revert "Revert "Make OpenJDK 8 the default""""
This reverts commit ee89f219ea.

This reapplies commit
1bd16b67c4
for the third time.

Change-Id: I3be72f643f5ddce87dfc39d98f19e395525554d8
2016-01-15 16:35:54 +00:00
Neil Fuller
ee89f219ea Revert "Revert "Revert "Make OpenJDK 8 the default"""
This reverts commit c288d65762.

The launch control change that switched various builds
to JDK 8 was reverted so JDK 8 can't be mandatory without
breaking builds.

Change-Id: I5e3feb21488d3bb57c5718cfe105a931eeaa9587
2016-01-14 21:12:27 +00:00
Neil Fuller
c288d65762 Revert "Revert "Make OpenJDK 8 the default""
This reverts commit a87553f414.

Change-Id: Ibd7bf08f3adfdc3f50584b8a61b3f81f1bff53de
2016-01-12 15:11:32 +00:00
Colin Cross
861ab99536 Ignore Android.mk files with USE_SOONG=true
When USE_SOONG=true, ignore any Android.mk file that has an Android.bp
file in the same directory.

Change-Id: Id79bd90c2aed5dafc2f8ad2c5b7eb0aa6e81dc18
2016-01-11 13:43:27 -08:00
Neil Fuller
a87553f414 Revert "Make OpenJDK 8 the default"
Reverting until all continuous builds that cover branches downstream of master can be updated to use JDK 8.

This reverts commit 1bd16b67c4.

Change-Id: Icb0daa440a6286e07d3cfd9ff8b082b4154ebc21
2016-01-11 13:37:43 +00:00
Neil Fuller
1bd16b67c4 Make OpenJDK 8 the default
To return to OpenJDK 7:
export LEGACY_USE_JAVA7=true

And run envsetup.sh/lunch again.

Bug: 25786468
Change-Id: Iba08a9d3cf73bae7124e431dfe87c20ac219591e
2016-01-11 11:25:26 +00:00
Nick Kralevich
f09b468fcc Merge "set ro.adb.secure=1 for user builds" am: f9911ae087
am: 45407b471e

* commit '45407b471ef831fc10e79fc1f9ea5a6c8d838387':
  set ro.adb.secure=1 for user builds
2015-12-23 12:28:42 -08:00
Nick Kralevich
f9911ae087 Merge "set ro.adb.secure=1 for user builds" 2015-12-23 20:22:30 +00:00
Daniel Micay
18a141cc8c set ro.adb.secure=1 for user builds
In user builds, adb without authentication is always disabled. However,
it doesn't work with the defaults because authentication doesn't work
without having ro.adb.secure=1 set. It makes sense to offer builds with
no adb but not builds with adb present in an unusable state (especially
as the default).

Bug: 22220212
Bug: 21862859
Change-Id: Ic22300a70586fd57692ac59d6873ab16dde70919
2015-12-23 20:18:15 +00:00
Yohann Roussel
4ef01c412a resolve merge conflicts of 42c42b6971 to master.
Change-Id: I40e2d2f7cd3e047bc3bc661f20c7415ce751b321
2015-12-22 15:36:32 +01:00
Yohann Roussel
4a01711267 Merge "Always start jack server before first call to jack" 2015-12-22 13:59:49 +00:00
Colin Cross
cb16289b06 Merge "Combine soong builds into make builds" am: 3bfc560cc5
am: 17d3f5426b

* commit '17d3f5426b71a510244bdbbe5a0e7f0548692420':
  Combine soong builds into make builds
2015-12-16 02:01:26 +00:00
Colin Cross
3ebb2f7326 Combine soong builds into make builds
Bootstrap soong if necessary, and wrap the kati and soong ninja files
into a single ninja file.

Change-Id: I0000c7eaa1adda763189681c57ec27a97a12ee1f
2015-12-15 16:05:57 -08:00
Nicolas Geoffray
2ad526124c Revert "Revert "Make PIC and PREOPT default for all.""
bug:25801231

This reverts commit f2a9135ed1.

Change-Id: I2eca605212b78505667af1f7e9c83f5cca5db35a
2015-12-15 09:54:30 +00:00
Nicolas Geoffray
f2a9135ed1 Revert "Make PIC and PREOPT default for all."
Need to update seed and ariel.

This reverts commit b93f5905d2.

Change-Id: Icc6f1539a97ccb2b1fcb12d2bc48904045689096
2015-12-14 18:22:17 +00:00
Nicolas Geoffray
b93f5905d2 Make PIC and PREOPT default for all.
bug:25888050
bug:25801231

Change-Id: Idf0f466a00dd592c433fc798c29ed80396015713
2015-12-14 13:02:19 +00:00
Yohann Roussel
9214a26cfc Always start jack server before first call to jack
Also install and update the server if necessary.

The target start-jack-server produces no file so it's always built.
Since the dependency is "order only", it doesn't cause force rebuilt of
jack targets after start-jack-server execution.

Bug: 25443108

Change-Id: I1608d87d186694d47307e00337b1905f0b8079c4
2015-12-09 22:00:50 +01:00
Shinichiro Hamaji
7601f91de0 Merge "Prevent findleaves.py from traversing copies of " am: 84639d127b am: 22a2efde22
am: 336c2527e3

* commit '336c2527e31d1691ac9c9538c7e19f80c6493969':
  Prevent findleaves.py from traversing copies of $(OUT_DIR)
2015-11-24 21:25:17 +00:00
Shinichiro Hamaji
6a378a3a7a Prevent findleaves.py from traversing copies of $(OUT_DIR)
by putting blank Android.mk and CleanSpec.mk in $(OUT_DIR).

Bug: 25732342
Change-Id: I3fcc4efddb9ee5ce309502e978f0589335af8371
2015-11-19 18:31:29 +09:00
Dan Albert
d806b521b8 Merge "Make not having Jack non-fatal." am: 5f88dd0dd6 am: 37a9e5d568
am: 934f9fec3d

* commit '934f9fec3d72757f4a17c0abab0daea0ef9d4cdf':
  Make not having Jack non-fatal.
2015-11-13 01:24:33 +00:00
Dan Albert
fd8c722714 Make not having Jack non-fatal.
Not every build needs Java.

Bug: http://b/17441393
Change-Id: Ia55742cfd43c3a4f9c7873b87816bcce99f8156f
2015-11-12 15:29:12 -08:00
Ying Wang
751c26af31 Merge "Add suffix .so to use directly libart.so" am: d1fd823f33 am: d54b9e6ba0
am: d06577781c

* commit 'd06577781c169c5292c79c71485764ad3f19547d':
  Add suffix .so to use directly libart.so
2015-11-11 22:19:42 +00:00
randy.jeong
59bdffa76a Add suffix .so to use directly libart.so
It should be the complete name with suffix .so to use libart.
At present, unnecessarily falls back like below.
"Falling back from libart to libart.so after dlopen error:
dlopen failed: library "libart" not found"

Change-Id: Ie5da35a71d6661434d2097c842407e6a254f8f58
Signed-off-by: randy.jeong <randy.jeong@samsung.com>
2015-11-10 16:42:49 +09:00
Nicolas Geoffray
56a84e1b6c Make jit the default for all builds.
Change-Id: Ifa4280cdab0747cae8d3e2becec47b230846def6
2015-11-05 18:02:13 +00:00
Ying Wang
4a4a0bc38f Sort out ANDROID_GOALS, KATI_GOALS and NINJA_GOALS.
ANDROID_GOALS: any Android goals that need to be built.
KATI_GOALS: goals that we need to pass to Kati.
NINJA_GOALS: goals we need to pass to Ninja.

For modifier Android goals (dist, INTERNAL_MODIFIER_TARGETS),
we don't need to pass them to Ninja. See also commit
80e46c7c5c.
Restore the dist rule removed by the above commit.

Previously "droid" was never passed to Ninja. That's incorrect.
"make droid docs" should build both docs and droiod.
Fixed with this change.

Change-Id: I5c28061fe0ebe7848872ee349056d029b787ff71
2015-11-03 17:10:28 -08:00
Ying Wang
67132baa4d Fix "make product-graph" and "make dump-products".
- For unmodified "make product-graph" and "make dump-products",
  load only the current product configuration makefiles. This is much
  faster than loading all product makefiles.
- For "make product-graph ANDROID_PRODUCT_GRAPH=--all",
  "make dump-products ANDROID_DUMP_PRODUCTS=all", load all product
  makefiles.
- Move product-graph.mk out of build tasks, so we can skip loading all
  the Android.mks, which takes long and we don't really need them.
  More importantly, with all product makefiles loaded, modules in
  Android.mks are prone to clash (if they are conditionally included
  by variables set up in product makefiles) and lead to parse-time
  error.

Change-Id: Idc1d6b0c23eb2c8bb34fdd7a1fa4d56171768d21
2015-10-28 16:49:44 -07:00
Colin Cross
ec1b561981 Add dummy description for GET-INSTALL-PATH
kati takes the first @echo command in a rule and turns it in to a ninja
description that gets pretty-printed.  The GET-INSTALL-PATH is only
@echo commands and is parsed by development/testrunner/runtest.py, so
it fails to parse the pretty-printed first test.

Add a dummy @echo to GET-INSTALL-PATH for kati to use as the
description, so the rest of the @echo commands are left unmodified.

Change-Id: I192fde48b26726a2f6760448f819243bd2f21312
2015-10-23 21:38:12 -07:00
Yohann Roussel
8998d57404 Allow control of jack used for compilation
Version of Jack used to compile a module can now be control from
a dedicated mk located in prebuilts/sdk/tools

Bug: 24564814

(cherry picked from commit b68c9a498d)

Change-Id: I7809dc966026ff94b5cb2daa7e2c63762ca4768d
2015-10-21 17:22:05 +02:00
Neil Fuller
e8304ef768 Fix for Java 8 toolchain builds
We don't need to assume the OpenJDK (i.e. for Mac builds).

Change-Id: I1ac1856813045c7b1478dee6b08ad7b49300e4d7
2015-10-12 17:29:45 +01:00
Colin Cross
e06e961cc6 am 7edec14c: Merge "Set BUILDING_WITH_NINJA flag when parsing makefiles for ninja build"
* commit '7edec14c8dfe4e499cba0d77dc20bc985af1f586':
  Set BUILDING_WITH_NINJA flag when parsing makefiles for ninja build
2015-09-28 23:04:57 +00:00
Colin Cross
fe5e6894d2 Set BUILDING_WITH_NINJA flag when parsing makefiles for ninja build
Distinguish between parsing makefiles in make for a pre-ninja build,
parsing makefiles in kati for a ninja build, and parsing makefiles in
make for a non-ninja build by leaving USE_NINJA=true enabled for the
kati pass but also setting BUILDING_WITH_NINJA.

Change-Id: I63f1ce1efe08cd86fdf41f8051901f720b38cfaf
2015-09-28 15:36:05 -07:00