Commit Graph

40713 Commits

Author SHA1 Message Date
Colin Cross 3563ac582a Merge "Convert signapk to Android.bp" 2017-11-10 19:17:26 +00:00
Michael Schwartz 6473e75479 Archive checkvintf in otatools
checkvintf will be used to verify compatibility of OTA packages.

Bug: 68327258
Test: `m -j dist` and inspect archive for checkvintf
Change-Id: I1d4cfcff537a03adee28d1e6ba9403a2e1635fe0
2017-11-10 09:38:28 -08:00
Dan Willemsen bd8f84fca1 Turn unusual tags into errors
Test: build/soong/build_test.bash
Change-Id: If68bea3929763747137f8acc4a045933f40f5e17
Merged-In: If68bea3929763747137f8acc4a045933f40f5e17
(cherry picked from commit c35641913d)
2017-11-09 17:13:39 -08:00
Dan Willemsen e43d8ee8ff Enable missing dependency checks
With this enabled, we'll check the entire build graph for missing
dependencies -- even if you don't need to build the module. So it'll
present more errors, but surface them earlier.

These can be turned off manually with an environment variable if the
branch is expected to have missing dependencies:

  ALLOW_MISSING_DEPENDENCIES=true
  SOONG_ALLOW_MISSING_DEPENDENCIES=true   (previous method)

That will be set automatically when using 'mm', which doesn't load the
entire build graph. It will also be set when using 'tapas' to build
unbundled apps, since those are usually on reduced branches.

This provides better error messages when a library is missing:

system/core/init/Android.mk: error: init_tests (NATIVE_TESTS android-arm64) missing libinit (SHARED_LIBRARIES android-arm64)
Available variants:
  libinit (STATIC_LIBRARIES android-arm64)
  libinit (STATIC_LIBRARIES android-arm)
You can set ALLOW_MISSING_DEPENDENCIES=true in your environment if this is intentional, but that may defer real problems until later in the build.
system/core/init/Android.mk: error: init_tests (NATIVE_TESTS android-arm) missing libinit (SHARED_LIBRARIES android-arm)
Available variants:
  libinit (STATIC_LIBRARIES android-arm64)
  libinit (STATIC_LIBRARIES android-arm)
You can set ALLOW_MISSING_DEPENDENCIES=true in your environment if this is intentional, but that may defer real problems until later in the build.
build/core/main.mk:852: error: exiting from previous errors.

instead of:

ninja: error: 'out/target/product/generic_arm64/obj/SHARED_LIBRARIES/libinit_intermediates/export_includes', needed by 'out/target/product/generic_arm64/obj/NATIVE_TESTS/init_tests_intermediates/import_includes', missing and no known rule to make it

Test: Manually introduce errors, check for expected output
Test: multiproduct_kati on AOSP and internal master, no new breakages
Change-Id: I5847f813045929813214137403c499b44ef67907
Merged-In: I5847f813045929813214137403c499b44ef67907
2017-11-10 01:13:07 +00:00
Tao Bao b55251898d Merge "releasetools: Write back default_system_dev_certificate."
am: ff87a9f9d9

Change-Id: I6fad2f4997eefbfc80d35ffb44775473f894a0d2
2017-11-09 23:56:00 +00:00
Tao Bao ff87a9f9d9 Merge "releasetools: Write back default_system_dev_certificate." 2017-11-09 23:46:53 +00:00
Colin Cross ad44dd4f3c Convert signapk to Android.bp
See build/soong/README.md for more information

Test: m checkbuild
Change-Id: I89a7fa7647e7081ca49720fae3be23ce84ab38e5
2017-11-09 15:11:34 -08:00
ShuJie Wang 95f4a845d4 Merge "build: clean up proguard_flag_files"
am: 7cd5386b51

Change-Id: I7bc2cf26372745ce2b18b7525a340ab5557c92bd
2017-11-09 19:00:12 +00:00
Treehugger Robot 7cd5386b51 Merge "build: clean up proguard_flag_files" 2017-11-09 18:44:20 +00:00
Tao Bao f718f90212 releasetools: Write back default_system_dev_certificate.
When signing a target_files.zip, the OTA certificate specified by
default_system_dev_certificate could be replaced with a mapped key. When
that happens, we must explicitly specify --package_key when generating
OTA packages with ota_from_target_files.py. Otherwise the OTA package
will be signed with the wrong key, which leads to verification failures.

This CL updates the default_system_dev_certificate value in
misc_info.txt accordingly.

Test: Sign a target_files.zip and replace the OTA key. Check
      META/misc_info.txt in the generated target_files.zip.
  $ ./build/make/tools/releasetools/sign_target_files_apks.py -v \
      --replace_ota_keys \
      -k build/target/product/security/testkey=build/target/product/security/platform \
      out/dist/aosp_marlin-target_files-eng.tbao.zip \
      signed-marlin-target_files-test.zip

Change-Id: I093234b5add3e27c5b3887cefeffd74e6f0a3e98
2017-11-09 10:23:50 -08:00
ShuJie Wang 76e93ba6cf build: clean up proguard_flag_files
we should clean up proguard_flag_files if LOCAL_PROGUARD_ENABLED
not defined in current module in case legacy proguard_flag_files
slips into current jack_all_deps dependencies.

Test: make -j8

Change-Id: I45618fc8e821ab7a8b964fa621824209e1e9894c
Signed-off-by: ShuJie Wang <wangshujie@xiaomi.com>
2017-11-09 15:26:28 +08:00
Vishwath Mohan aef48af62a Merge "CFI include/exclude path support (Make)"
am: 61bc4f790e

Change-Id: I8316a559068d018179f7b1d1ba9dcace0a7e2866
2017-11-09 03:06:03 +00:00
Vishwath Mohan 61bc4f790e Merge "CFI include/exclude path support (Make)" 2017-11-09 02:57:16 +00:00
Tao Bao 31b0807310 releasetools: Reduce the memory use in test_common.py.
test_common constructs a few 2GiB strings in memory, which leads to huge
memory footprint (18GiB). This CL moves away from in-memory strings to
generators, which reduces the memory use down to 41MiB. It also reduces
the time cost from 294s to 139s as an extra benefit for free.

The CL addresses some trivial pylint warnings as well.

* Before

$ /usr/bin/time -v python -m unittest -v test_common
...
----------------------------------------------------------------------
Ran 11 tests in 294.986s

OK
	Command being timed: "python -m unittest -v test_common"
	User time (seconds): 110.51
	System time (seconds): 109.34
	Percent of CPU this job got: 74%
	Elapsed (wall clock) time (h:mm:ss or m:ss): 4:55.06
	Average shared text size (kbytes): 0
	Average unshared data size (kbytes): 0
	Average stack size (kbytes): 0
	Average total size (kbytes): 0
	Maximum resident set size (kbytes): 18894172
	Average resident set size (kbytes): 0
	Major (requiring I/O) page faults: 1
	Minor (reclaiming a frame) page faults: 20774908
	Voluntary context switches: 48
	Involuntary context switches: 3241
	Swaps: 0
	File system inputs: 184
	File system outputs: 8406424
	Socket messages sent: 0
	Socket messages received: 0
	Signals delivered: 0
	Page size (bytes): 4096
	Exit status: 0

* After

$ /usr/bin/time -v python -m unittest -v test_common
...
----------------------------------------------------------------------
Ran 11 tests in 139.100s

OK
	Command being timed: "python -m unittest -v test_common"
	User time (seconds): 59.00
	System time (seconds): 4.73
	Percent of CPU this job got: 45%
	Elapsed (wall clock) time (h:mm:ss or m:ss): 2:19.17
	Average shared text size (kbytes): 0
	Average unshared data size (kbytes): 0
	Average stack size (kbytes): 0
	Average total size (kbytes): 0
	Maximum resident set size (kbytes): 41252
	Average resident set size (kbytes): 0
	Major (requiring I/O) page faults: 0
	Minor (reclaiming a frame) page faults: 106569
	Voluntary context switches: 44
	Involuntary context switches: 103
	Swaps: 0
	File system inputs: 8
	File system outputs: 8422808
	Socket messages sent: 0
	Socket messages received: 0
	Signals delivered: 0
	Page size (bytes): 4096
	Exit status: 0

Fixes: 68988396
Test: See above.
Change-Id: I00f16603a4ee59fb085b189c6f5b5ee9d2378690
2017-11-08 17:10:33 -08:00
Dan Willemsen f68edeafdc Merge changes from topic "soong_ui_java"
am: a3d94873cf

Change-Id: Ic105acbad02e4eda504b6fedcb2a6eac6788ba8e
2017-11-08 20:40:14 +00:00
Dan Willemsen a3d94873cf Merge changes from topic "soong_ui_java"
* changes:
  Remove Java PATH check, deprecate using PATH in Kati
  Remove JAVA_NOT_REQUIRED
2017-11-08 20:31:31 +00:00
Vishwath Mohan 23b2d2e531 CFI include/exclude path support (Make)
This CL adds the ability to centrally enable or disable CFI for
components using either an environment or product config
variable. This is a better, nore manageable option that enabling CFI
across each component individually.

Bug: 67507323
Test: CFI_INCLUDE_PATHS= system/nfc m -j40
Test: CFI_EXCLUDE_PATHS = frameworks/av m -j40

Change-Id: I02fe1960a822c124fd101ab5419aa81e2dd51adf
2017-11-08 03:46:31 -08:00
Dan Willemsen 2ec3e4a257 Remove Java PATH check, deprecate using PATH in Kati
The Java PATH fixup is now handled within soong_ui, along with the
values of ANDROID_JAVA_HOME based on OVERRIDE_ANDROID_JAVA_HOME /
EXPERIMENTAL_USE_OPENJDK9.

Mark PATH as deprecated, so that any reads/writes will cause warnings.
This will be switched to obsolete once it's verified that there are no
more users.

Using PATH within Kati means that we've got to rebuild the ninja files
whenever your PATH changes, which is not ideal, especially since some of
the envsetup functions can change your PATH. In most cases you only need
to use PATH within the bash portions of the build rules ($${PATH}), which
isn't treated as a make variable, so won't produce an error.

I'm also planning on replacing PATH in a future change with our own
directory that has placeholders for everything in your PATH. This will
let us remove tools that shouldn't be used from the build.

Test: m nothing
Test: build/soong/build_test.bash on AOSP and internal master
Change-Id: I18d8d19cfba313ff9176345bf73ac34e8dbebfbb
2017-11-08 00:24:35 -08:00
Søren Gjesse 58c6122f44 Merge "Use prebuild R8 for USE_R8=true"
am: 8639879e60

Change-Id: I0dc51624869f8f417e81872da397f138b7f48881
2017-11-08 07:54:49 +00:00
Søren Gjesse 8639879e60 Merge "Use prebuild R8 for USE_R8=true" 2017-11-08 07:50:00 +00:00
Dan Willemsen 617dce0c29 Merge "Add PRODUCT_ADB_KEYS"
am: f599f4010e

Change-Id: I182bd8d15887f3561db73015a8a45caf9e5ad869
2017-11-08 03:23:29 +00:00
Treehugger Robot f599f4010e Merge "Add PRODUCT_ADB_KEYS" 2017-11-08 03:12:17 +00:00
Jaekyun Seok bc94fb4340 Merge changes from topic "system_default_prop"
am: 4cb631f624

Change-Id: Idf0c10bdcb44e021f1f56b11e8abd7168d0c5499
2017-11-08 01:52:02 +00:00
Dan Willemsen 90879f50ea Remove JAVA_NOT_REQUIRED
This is no longer required.

Test: cs/JAVA_NOT_REQUIRED
Change-Id: I9f64e153c9f4af7df1c8dee4eaea3c7458be61c0
2017-11-07 17:43:36 -08:00
Treehugger Robot 4cb631f624 Merge changes from topic "system_default_prop"
* changes:
  Move ART default properties into system partition
  Add PRODUCT_SYSTEM_DEFAULT_PROPERTIES
2017-11-08 01:42:40 +00:00
Jaekyun Seok 5fb6a3eb9f Move ART default properties into system partition
Bug: 64661857
Bug: 68755013
Test: confirmed that ART default properties were stored in
/system/etc/prop.default on sailfish device

Change-Id: Ie07d3049de5ac395cfb9105e208fe7825080fa15
2017-11-08 00:56:43 +00:00
Tianjie Xu 2b8489cf45 Merge "Fix the imgdiff failure when running test_common unittest"
am: 7136100be6

Change-Id: I2077f6ce034c2f3a4c27834aa26422f075e1b0db
2017-11-07 23:48:04 +00:00
Tianjie Xu 7136100be6 Merge "Fix the imgdiff failure when running test_common unittest" 2017-11-07 23:40:20 +00:00
Tianjie Xu df055580d0 Fix the imgdiff failure when running test_common unittest
imgdiff fails on plain strings after we put more checks the input
data. This leads to failure when running unittest
"test_recovery_from_boot". The CL fixes the issue by serving gzipped
dummy images as the test input.

Bug: 68988329
Test: InstallRecoveryScriptFormatTest passes
Change-Id: I1952b311681ac4f39c0e51aef1de1177aebeac43
2017-11-07 12:38:08 -08:00
Ryan Campbell 14827f2a98 Support gcno packaging for executables.
Adapt the gcno packaging logic from shared_library_internal.mk for the
case of executable binaries so that gcov artifacts are properly
packaged.

Test: lunch walleye_coverage-userdebug && make -j60
Bug: 67998360
Change-Id: I4994fc21521c91d4c18bdf326be079beda1914a4
2017-11-07 09:52:27 -08:00
Søren Gjesse c66d297e0a Use prebuild R8 for USE_R8=true
Instead of building R8 from external/r8 use the prebuild jar in
prebuilds/r8.

Test: m -j USE_R8=true

Change-Id: I9680ae430cdbc2b3beb910873c8eed27354f6af1
2017-11-07 16:21:50 +01:00
Dan Willemsen 550fa7b4d3 Merge changes Ib37508d4,Ia46ac30e
am: dcd46870f2

Change-Id: Ia8501ad3f5fbdabfe1d5f7d25f0a6f350e860643
2017-11-06 23:00:34 +00:00
Dan Willemsen dcd46870f2 Merge changes Ib37508d4,Ia46ac30e
* changes:
  Turn off Windows builds during BUILD_HOST_static
  zipalign: Fix build failure in static_sdk_tools.
2017-11-06 22:53:46 +00:00
Jeff Gaston b1a611e5fa Merge changes I30a83721,I1094f213
am: 85e391b2a2

Change-Id: Ieb1540a37541567b0763921d083d743d9fe30971
2017-11-06 22:19:38 +00:00
Treehugger Robot 85e391b2a2 Merge changes I30a83721,I1094f213
* changes:
  Validate args passed by jacoco.mk to rm -rf
  Implement validate-paths-are-subdirs
2017-11-06 22:10:41 +00:00
Daniel Cardenas 212f32d7d1 Merge "PDK fix. Remove conditional that stops component from being in PDK."
am: 4578bf1f96

Change-Id: Ib8c2c24a94ad96d182d547274fd9eaaf2f89fd7b
2017-11-06 21:56:52 +00:00
Treehugger Robot 4578bf1f96 Merge "PDK fix. Remove conditional that stops component from being in PDK." 2017-11-06 21:54:13 +00:00
Andreas Gampe 01e6cae2cb Merge "Build: Enable minidebuginfo generation"
am: ca677112f0

Change-Id: Idc1950359c1aba34dccd5193a0738f415a032ff9
2017-11-06 21:50:21 +00:00
Treehugger Robot ca677112f0 Merge "Build: Enable minidebuginfo generation" 2017-11-06 21:45:46 +00:00
Daniel Cardenas 429e5a6363 PDK fix. Remove conditional that stops component from being in PDK.
Bug: 67663308
Test: Build on master and PDK branch
Change-Id: I101452230376c4c509004cf6d03070ce85620e89
2017-11-06 11:57:06 -08:00
Dan Willemsen 2a6e3b00b0 Turn off Windows builds during BUILD_HOST_static
We can only create static host binaries for Linux, so if static host
binaries are requested, turn off Windows cross-builds.

Test: m zipalign BUILD_HOST_static=1
Change-Id: Ib37508d4b502cd56dad535cb6eab648f625486c6
2017-11-06 11:12:09 -08:00
Narayan Kamath 887c645e02 zipalign: Fix build failure in static_sdk_tools.
Convert all dependencies to static deps.

Test: make -j50 static_sdk_tools BUILD_HOST_static=1
Bug: 35246701
Bug: 68804545

Change-Id: Ia46ac30e5c05226f1bfec82a84f05e4be945bf74
2017-11-06 11:12:08 -08:00
Pirama Arumuga Nainar d4a9a3281e Merge "Remove CFI-related WAR that is no longer necessary"
am: 76ceec724f

Change-Id: I17c0d41482c78bc7ae0fb762d30e82d7a13e0091
2017-11-06 18:57:18 +00:00
Treehugger Robot 76ceec724f Merge "Remove CFI-related WAR that is no longer necessary" 2017-11-06 18:54:45 +00:00
Isaac Chen 4d8e808a0b Merge "Move emulator specific configurations to vendor"
am: 8930bf679b

Change-Id: Ie2ebd2cf1ff97349d7858b3dd83751a4ec78f368
2017-11-06 06:21:25 +00:00
Isaac Chen 8930bf679b Merge "Move emulator specific configurations to vendor" 2017-11-06 06:18:04 +00:00
Pirama Arumuga Nainar a8f75983a4 Remove CFI-related WAR that is no longer necessary
Bug: http://b/33678192

Clang has been updated past the revision mentioned in the work around.
So this is no longer necessary.

Test: Build
Change-Id: I08f8e75936bbc3527abc86ba4ce0f2c10382d332
2017-11-04 16:18:29 -07:00
Colin Cross 9159f4b08c Merge "Move BUILD_*_FROM_FILE to config.mk"
am: ab5ce7e1fe

Change-Id: I48441cd072e761147745ed7ca85c82f037f7c74a
2017-11-04 01:30:14 +00:00
Treehugger Robot ab5ce7e1fe Merge "Move BUILD_*_FROM_FILE to config.mk" 2017-11-04 01:22:26 +00:00
Dan Willemsen 2adb61215b Merge "Switch deprecation message to $(warning)"
am: 884af82b27

Change-Id: I3a1c904ee81f938b7ed10282eac8a6c67e081f8c
2017-11-04 00:57:10 +00:00