Commit Graph

18807 Commits

Author SHA1 Message Date
David Srbecky
0f6fdf5544 Fix dex-location for host.
Fix the location for non-default build output path.

Test: Run host test on golem.
Change-Id: Idbaccfc69196fc0b17a849b4a0c7a54d75fd363d
2020-04-06 18:48:22 +01:00
Treehugger Robot
dd22225b3a Merge "Add product_variables.eng.optimize.enabled" 2020-04-06 04:09:54 +00:00
Treehugger Robot
b9e4a3fdf4 Merge changes from topic "no_whitelisting_apex_available"
* changes:
  Remove some apex_available whitelist for the adbd APEX
  Make ndk_prebuilt_* be available to any apex
2020-04-05 09:10:47 +00:00
Treehugger Robot
ab768cf54b Merge "[soong] new field in Android.bp to request APK signing V4" 2020-04-05 02:14:41 +00:00
Songchun Fan
17d69e3484 [soong] new field in Android.bp to request APK signing V4
If "v4_signature: true" is set, the v4 signature file,
named [outputApkFile].idsig
will be generated along side the outputApkFile.

Test: m nothing
Test: atest PackageManagerShellCommandIncrementalTest
BUG: 149354175
Change-Id: Ie84725a15406f96f65042ea9909460e4eb34d57f
Merged-In: Ie84725a15406f96f65042ea9909460e4eb34d57f
2020-04-04 12:37:45 -07:00
Ramy Medhat
ff6231920d Merge "Fix RuleBuilder remoteable actions running in the local pool." 2020-04-03 20:28:41 +00:00
Treehugger Robot
3d568ddd34 Merge "Minor refactoring to put mock filesystem init closer to tests." 2020-04-03 17:03:16 +00:00
Treehugger Robot
237690224e Merge "Propagate stubs to the SDK for libraries that have them." 2020-04-03 17:03:12 +00:00
Diego Wilson
e7190f29de Merge "Mount soong sandbox chroot as read-only" 2020-04-03 16:42:01 +00:00
Treehugger Robot
4066e5e882 Merge "soong_config: bool_variables shortcut" 2020-04-03 15:43:42 +00:00
Martin Stjernholm
adeb088c8b Minor refactoring to put mock filesystem init closer to tests.
Test: m nothing
Change-Id: I39449b52d39d8e4351ff5a193df5804f281a017f
2020-04-02 22:39:12 +01:00
Martin Stjernholm
c5dd4f7c1f Propagate stubs to the SDK for libraries that have them.
Necessary to make the APEX build logic treat the libraries as API
boundaries rather than dependencies to bundle.

The .so files in the snapshots are the compiled stub libraries in this
case. They are strictly speaking redundant since they can be generated
from the .map.txt files in the snapshots, but doing that would require
extending the cc_prebuilt_library(_shared) module types with a full
compiler pass etc, and that would break a lot of assumptions in the cc
package.

Test: m nothing
Test: Create an SDK snapshot with Bionic libs, drop it into a
  master-art tree without bionic/ in it, build ART APEXes, and check
  that the Soong phase completes (specifically no errors about various
  APEX libs requiring libc that is not available to them).
Bug: 152481980
Change-Id: I31b928e6261198b6dd6f6b17196e714f07b64172
2020-04-02 22:39:12 +01:00
Diego Wilson
a22240bf22 Mount soong sandbox chroot as read-only
It's safer to disallow writing to the root filesystem of the sandbox.
Still allow write access to the source, tmp, out and dist directories.

Test: build aosp_cf_x86_64_phone-userdebug
Change-Id: Idf0d3a420669fbf6c3aba24e058f09a314ec6d0e
2020-04-02 18:11:28 +00:00
Vladimir Marko
1c5d4fe4f7 Merge "Add file with updatable BCP packages to /system/etc/" 2020-04-02 11:42:08 +00:00
Nicolas Geoffray
11a8d879b6 Merge "Support secondary arch for host module exports." 2020-04-02 08:12:45 +00:00
Vladimir Marko
205e6c2a15 Add file with updatable BCP packages to /system/etc/
Make `permitted_packages` mandatory for updatable boot class
path jars. Collect the permitted_packages from those jars to
a file installed as /system/etc/updatable_bcp_packages.txt .

Test: aosp_taimen-userdebug boots.
Test: adb shell cat /system/etc/updatable-bcp-packages
Test: Manual, remove permitted_packages from framework-tethering,
      build fails.
Bug: 151314205
Change-Id: I21def97ace9081e707910d449943c683189f16cf
2020-04-02 08:51:39 +01:00
Treehugger Robot
131db09396 Merge "Fix long mac test times; only initialize host settings once" 2020-04-02 03:50:59 +00:00
Jooyung Han
bce3864ca8 Merge "Enforce apex.min_sdk_version for bundled builds" 2020-04-02 03:34:45 +00:00
Jooyung Han
7556839772 Enforce apex.min_sdk_version for bundled builds
Previously, when Q-targeting apexes are bundled-built, they are built
against the latest stubs.

It was because unwinder is linked dynamically in R and APIs are provided
by libc while Q apexes should run on Q where libc doesn't provide those
APIs. To make Q apexes run on Q device, libc++ should be linked with
static unwinder. But, because libc++ with static unwinder may cause problem
on HWASAN build, Q apexes were built against the latest stubs for bundled
build.

However, Q apexes should be built against Q stubs.

Now, only for HWASAN builds, Q apexes are built against the latest stubs
(and native modules are not linked with static unwinder).

Bug: 151912436
Test: TARGET_SANITIZE=hwaddress m
      => Q apexes(media, resolv, ..) are linked with the latest stubs
      m
      => Q apexes are linked with Q stubs,
         and Q apexes' libc++ is linked with static unwinder
Merged-In: If32f1b547e6d93e3955c7521eec8aef5851f908c
Change-Id: If32f1b547e6d93e3955c7521eec8aef5851f908c
(cherry picked from commit 7406660685)

Exempt-From-Owner-Approval: cp from internal
Change-Id: If32f1b547e6d93e3955c7521eec8aef5851f908c
2020-04-02 03:34:30 +00:00
Dan Willemsen
6ba5367a70 Fix long mac test times; only initialize host settings once
It looks like sometime in late February our Mac builds started taking
~10 minutes longer than before. On my local workstation the Soong tests
were taking >25 minutes before completing (likely because I don't have
the older SDKs installed, and we iterate from older to newer to find the
oldest installed SDK).

Most of this time was spend running the `xcrun` tools to interrogate the
system about which Mac SDKs are installed and where the tools are. This
will never change during any build or test, so wrap it all in a
sync.Once so that we only ever call them once.

And remove the macSdkPath variable, which has been unused for years and
no longer works (as we don't allow the use of xcode-select during the
build).

Bug: 153010389
Test: prebuilts/build-tools/build-prebuilts.sh on a Mac
Change-Id: I39b2d49739e628e4c11bec4805b25039115d2fd0
2020-04-01 14:44:58 -07:00
Anton Hansson
3f7534c0cb Merge "Convert sdk_library to use androidmk Dist" 2020-04-01 19:52:51 +00:00
Anton Hansson
e61c9b09e1 Merge "Add a Tag field to dist to dist a tagged output" 2020-04-01 19:52:38 +00:00
Paul Duffin
4ac530d4c7 Merge "Allow walkPayloadDeps visitor to control walk flow" 2020-04-01 17:54:04 +00:00
David Srbecky
20d854948b Merge "Adjust embedded dex locations in host boot image." 2020-04-01 15:42:29 +00:00
Jiyong Park
1cda30e211 Merge "Remove some apex_available whitelist" 2020-04-01 13:03:10 +00:00
Felka Chang
f13642ef24 Add product_variables.eng.optimize.enabled
The default build is to enable optimization for all of module.
In order to have the feasibility to the owners of the modules,
to create product_variables.eng.optimize.enabled let the owners
to have the choice to decide whether the build enable the optimization
or not.

Test: atest -m # build soong
Test: # follow Developing for Soong & setup GOPATH
      # to run the new tests in variables_test.go
    cd $GOPATH; \
    go test android/soong/android
Test: #1. change frameworks/base/packages/SystemUI/Android.bp to change
          product_variables.eng.optimize.enabled = false;
      #2. source build/setupenv.sh;
      #3. lunch aosp_x86-eng; make -j16 SystemUI
      #4. lunch aosp_x86-userdebug; make -j16 SystemUI
      #5. aosp_x86-eng should be bigger than aosp_x86-userdebug
Bug: 130259652

Change-Id: Ie62c35458ca91d66ec65bda58d315fb971139849
2020-04-01 12:23:12 +00:00
David Srbecky
ab99498ea1 Adjust embedded dex locations in host boot image.
ART tests require that "out/host/linux-x86" is included.

This requires making the dexLocations per-variant specific.

Test: m test-art-host-gtest
Bug: 147817558
Bug: 147819342
Change-Id: I7839ee15cb6dfc62508bdd3fa0f306336af17055
2020-04-01 12:06:56 +01:00
Paul Duffin
be5a5be549 Allow walkPayloadDeps visitor to control walk flow
Delegate the responsibility for determining whether the
walkPayloadDeps() should visit a child dependency to its do function.
This is needed to allow the visitor in checkApexAvailability() to avoid
checking the apex_available setting after crossing the APEX boundary.

Bug: 152878661
Test: m droid
Change-Id: If46a2f74b6eca670befc3aeae430650e85542346
2020-04-01 09:30:31 +01:00
Ramy Medhat
944839a88a Fix RuleBuilder remoteable actions running in the local pool.
This CL fixes a bug with RuleBuilder's handling of remoteable actions.
It adds a new type of pool to identify remoteable rules by the android
module context. The pool is then set to nil to actually run actions at
NINJA_REMOTE_NUM_JOBS parallelism.

Test: built aosp crosshatch userdebug
Change-Id: I29452f6fc7a161b94189731e3e3cc1f34907b80c
2020-03-31 22:18:40 -04:00
Dan Shi
7182c45fe7 Merge "Rename VTS to VTS10" 2020-03-31 17:32:34 +00:00
Bill Peckham
0ad0e940c0 Merge "Include partition tag in apexkeys.txt." 2020-03-31 13:42:30 +00:00
satayev
b7f5c22ee4 Merge "Use modular removed-dex.txt files for greylisting." 2020-03-31 12:24:10 +00:00
Nicolas Geoffray
32e89ddb60 Merge "Update owners of build-aml-prebuilts.sh." 2020-03-31 09:08:35 +00:00
Paul Duffin
545d958508 Merge "Add apex_available to sysprop_library" 2020-03-31 09:06:58 +00:00
Paul Duffin
4db3298d34 Merge "Improve missing apex_available message" 2020-03-31 09:06:42 +00:00
Paul Duffin
33050c13c0 Merge "Split TestApexAvailable into separate tests" 2020-03-31 09:06:31 +00:00
Anton Hansson
5fd5d24a91 Convert sdk_library to use androidmk Dist
Reuse the generic Dist support instead of writing
custom mk rules for it. Use the new Tag support to
grab the classes.jar instead of the dexed jar.

Bug: 152618077
Test: m sdk dist
Change-Id: Id893d52cc24b66e6bd900b5062a59f3820000bcd
Merged-In: Id893d52cc24b66e6bd900b5062a59f3820000bcd
(cherry picked from commit 6bb8810c8e)
2020-03-31 09:56:00 +01:00
Anton Hansson
78156ef5dd Add a Tag field to dist to dist a tagged output
Make java_library support this mode of output, to allow
callers to dist the classes.jar file rather than the dexed
jar file.

Bug: 152618077
Test: followup CL
Change-Id: I5ba6949833a0fbb95376142aec5096ff5f084c00
Merged-In: I5ba6949833a0fbb95376142aec5096ff5f084c00
(cherry picked from commit 1e65f94a4b)
2020-03-31 09:55:49 +01:00
Hsin-Yi Chen
74b2c7cb38 Merge "Fix the logic for selecting ABI dump paths" 2020-03-31 02:30:55 +00:00
Bill Peckham
fff3f8a3f8 Include partition tag in apexkeys.txt.
The partition tag helps merge_target_files.py determine
which apexkeys.txt to select from the framework partial
target files and which to select from the vendor partial
target files. The partition tag is the pysical partition
name, for example, a system_ext module on a device where
system_ext is at system/system_ext has a system
partition tag.

Bug: 138942268
Change-Id: Ia07887b34f1aa77dae94ef23610dfef83c1a5849
2020-03-30 22:33:50 +00:00
Paul Duffin
7b3de8f85b Add apex_available to sysprop_library
Added apex_available support to sysprop_library and copied it onto the
underlying cc_library.

Bug: 152762638
Test: m nothing
Change-Id: I8f4c539532b48f3a45c1fbf0f7287db11df69d2f
2020-03-30 18:43:39 +01:00
Paul Duffin
df915ff3db Improve missing apex_available message
The apex available check can traverse quite a long path (5+ steps) to
get from the apex to a module that is missing the apex from its
apex_available property. Understanding where that dependency came from
can often require examining the dependency path which can be difficult.
This change adds the path to the error to simplify that process.

Test: m nothing
Bug: 152762638
Change-Id: Ic4eb169dc2026cd8339d49e23b25d6d1c3879750
2020-03-30 18:43:39 +01:00
Paul Duffin
e52e66fba0 Split TestApexAvailable into separate tests
Having multiple tests within one method makes debugging specific
failures more difficult so this change split the TestApexAvailable
test into multiple separate tests.

Test: m nothing
Bug: 152762638
Change-Id: I2b2408ef515fd79c078686ef29a6ee8fb0407e7e
2020-03-30 18:43:39 +01:00
Artur Satayev
c7fb5c9964 Use modular removed-dex.txt files for greylisting.
Use droidstubs for public and system stubs to provide a list of @removed APIs. As these APIs are not present in the stubs, they are not whitelisted / greylised automatically. Keep them on greylist manually.

Bug: 143864733
Test: diff out/soong/hiddenapi/hiddenapi-flags.csv
Change-Id: I4c8e6899fadfdfd1da82f6f453cc92e71aa9b78c
2020-03-30 17:25:13 +01:00
Nicolas Geoffray
90934f7177 Update owners of build-aml-prebuilts.sh.
Test: N/A
Change-Id: Ie5be75f90be00db5adeaa40662e26a92c66d1b05
2020-03-30 14:23:13 +01:00
Dan Shi
984c129c84 Rename VTS to VTS10
Bug: 151896491
Test: m -j vts10
Change-Id: I7b70b13401678d70e4b46f9e7eb9d844bcfa315e
2020-03-28 16:42:17 -07:00
Jiyong Park
58d1090032 Don't run apex_available check for coverage builds
Coverage build adds extra dependencies for the runtime libs. Marking
them and their transitive dependenciese with apex_available doesn't make
any value; it instead adds noise.

Bug: 150999716
Test: m
Change-Id: I08e51cec1de6ded624ef9d4c41c1e5b2e611ff38
2020-03-28 14:43:19 +09:00
Evgenii Stepanov
995bccfad2 Merge "Revert "Reenable the new pass manager in hwasan builds."" 2020-03-27 20:17:33 +00:00
Evgenii Stepanov
96fa3dd0af Revert "Reenable the new pass manager in hwasan builds."
This reverts commit 259eaab3b3.

Reason for revert: breaks hwasan + gcov

Bug: 135298400
Change-Id: Ie8574753f9237a55ad1618783bd5150ffb646015
2020-03-27 19:42:01 +00:00
David Srbecky
2d557ced02 Merge "Fix dump-oat-boot build target." 2020-03-27 16:12:22 +00:00