It may be in a source tree that isn't writable. Instead check that
the target is executable.
Test: m
Test: chmod a-x system/sepolicy/tools/insertkeys.py && \
rm -rf out/host out/soong/host && \
m insertkeys.py
Check that it fails with the expected error message.
Fixes: 169375644
Change-Id: I402d029dba45783127586ad9749c90012afe891d
Because flattened apexes are installed in /<partition>/apex, associated
file_contexts file should be modified to accommodate path changes and
also merged into target-wide file_contexts.bin file.
Soong now emits modified file_contexts via LOCAL_FILE_CONTEXTS, and
these files are collected into a temporary file_contexts.modules.tmp
file, which is used as an additional input of file_contexts.bin.
Bug: 166518492
Test: m file_contexts.bin
check the contents of file_contexts.concat.tmp file
Change-Id: I002a2294af9e06baeaf54bc5a9a5380d23b8a3da
This commit removes system shared libs (e.g. libc, libdl, or libm) from
the prebuilt ELF check fix suggestion.
Bug: 141925662
Test: Write a bad Android.mk module and check fix suggestions
Change-Id: I4a827d07b24a976c1910b814126790abbeccc793
This patch introduces the .mk file required to support build for the new
armv8-2a-dotprod Arm64 arch variant. The file just needs to be present
but does not require to contain anything.
Test: test-art-target on Pixel 4.
Change-Id: I4b6a1e306f9819cf31cd556351bd3e8cf08e2537
The new release of re-client renames env_var_wlist to env_var_allowlist.
We need to make this change as part of the topic so that with the new
release we are able to deprecate this variable.
Bug: b/167677318
Change-Id: I988381f4f72061f7c6eb99d58593f92cfd618b1b
* changes:
Add CSV output of remaining makefiles for bp converstion
Refactor the mongo main() into a class in mk2bp_catalog.py
Add per-partition summaries and "easy" transitions to mk2bp_catalog
Modules partition is a dynamic read-write partition.
- AVB is not enabled on the partition
- OTA is file-based; see follow up CL for details
- No build prop files; in particular, no build fingerprint
- No fs_config
- No notice files; notice files are included in individual APEXes
Test: build on CF
Bug: 163543381
Change-Id: Ie397b9ec61dfd1c158450d050196024604854d4d
Previously, HOST_CROSS_OS/ARCH were fixed to windows/x86. This change
makes the setting configuration and adds the support for new OS/ARCH
combo: linux_bionic/arm64.
linux_bionic is the Linux-based host target that uses Bionic (instead of
glibc) as libc. Previously, it supported only x86_64 and the x86_64
target was NOT configured via Make, but directly via editing
soong.variables file. Now, the support for arm64 is being added in the
Soong side and this change makes it possible to configure the target via
Make.
The new HOST_CROSS_OS/ARCH combo will be used for building the host-side
tools (adb, crosvm, etc.) for running Cuttlefish natively on Linux/ARM
hosts.
Bug: 159685774
Test: HOST_CROSS_OS=linux_bionic HOST_CROSS_ARCH=arm64 m nothing
Change-Id: I6b8ed8f7e26908749bbe778fbdcc34cfbde68179
As a product variable, PRODUCT_PRODUCT_VNDK_VERSION cannot be defined
in config.mk. Instead it can be defined from product_config.mk.
Bug: 144534640
Test: check if the following command returns empty value
$ PRODUCT_USE_PRODUCT_VNDK_OVERRIDE=false \
get_build_var PRODUCT_PRODUCT_VNDK_VERSION
Change-Id: I304fb980610aec1dd5da05864b4c137997fc9aff
* changes:
Remove target-files-package from PARSE_TIME_MAKE_GOALS
Make dist zip files depend on files instead of images
Make dependencies of target-files.zip conditional
Remove INSTALLED_VBMETAIMAGE_TARGET dependency from target-files.zip
It isn't doing anything useful that would be necessary to reparse the
Makefiles for.
Test: m target-files-package
Change-Id: I3aa2490480de8dbe0e57fe36221088c3f18017cb
Depend on the files instead of images so that the dist zip files
can run in parallel with the image generation rules.
Test: treehugger
Change-Id: I1f942dc0ce0a2cbc5288c1f0633ea1019e77f91c
Depend on the files going into the images instead of the images
themselves when the images are not prebuilts. This will allow
paralellizing image generation with target-files.zip.
Test: treehugger
Test: m installclean && m target-files-package has same files before and after
Change-Id: If51d0f53602c08bd946ec34a2edae6f9d95f7bf8
Remove the INSTALLED_VBMETAIMAGE_TARGET, which depends on all the
other images, it is no longer necessary after
If1eff317621882994e7dcbf37cd35f5bfa16b69a. This will allow the
next change to parallelize target-files.zip with the image generation
rules.
Test: treehugger
Change-Id: Ie27bdbd2d414e9b475823639a1b3944fe0756d2a
Set the TEST_ROOT to /data/local/tmp/tests/vendor if LOCAL_VENDOR_MODULE or
LOCAL_USE_VNDK be set, if not, set to /data/local/tmp.
Bug: 138450837
Test: atest binderVendorDoubleLoadTest
Change-Id: I66437816227458a4f5672146b0c9e465c843aa50
BOARD_PREBUILT_ODM_DLKMIMAGE support seems to have been forgotten
in target-files.zip, and BOARD_PREBUILT_ODM_DLKMIMAGE support had
a typeo.
Test: treehugger
Change-Id: I9663220b43f0df4f39a7ef432ad4cfec39803a20
and shared libs.
If a prebuilt module file is a symlink in the .intermediates tree it is
preserved when copied to the final install location. This preserves
symlinks to prebuilt binaries, so that they are run from their prebuilt
source location and can find libraries in relative paths from there.
Symlinks are converted to absolute, to not fail if they are relative in
the source tree.
Test: m clean && m droid dist checkbuild
with and without the change, then compare the lists of symlinks in
the out/ trees
Test: build/soong/soong_ui.bash --make-mode \
TARGET_PRODUCT=crosshatch_hwasan TARGET_BUILD_VARIANT=userdebug \
droid SANITIZE_TARGET=hwaddress \
continuous_instrumentation_tests_api_coverage \
continuous_native_tests device-tests platform_tests
check that libclang_rt.hwasan_static-aarch64-android.a isn't a
symlink in out/target/product/crosshatch/obj
Bug: 145934348
Change-Id: I7600e5b0754f8ea6cd0ffc8e1ba6d39153f182aa
Non-dist builds don't copy out the bootloader.
This change fixes that.
Bug: 167160541
Bug: 164917252
Test: local build
Change-Id: I9bab9ba3455e8abee9e7a38bff431a142e7d5a57
The platform availability check was erroring incorrectly for the
libstatssocket module in master-art-host builds. Nothing being
built depended on libstatssocket, but the check would still
error because libstatspull_test was defined in the branch but
unused in the build.
When ALLOW_MISSING_DEPENDENCIES=true is set and a module fails
the check add an additional dependency on a rule that prints
the error message. This will show the error and fail the build
if an unavailable module is requested to be installed, while
allowing the build to proceed if there are no unavailable
modules in the dependency graph.
Fixes: 154888298
Test: m build-art-host TARGET_BUILD_UNBUNDLED=true ALLOW_MISSING_DEPENDENCIES=true libstatspull_test -k
Test: m build-art-host TARGET_BUILD_UNBUNDLED=true ALLOW_MISSING_DEPENDENCIES=true
Change-Id: I1d57afe60a75d65128e59f794243a0414cbc82f6
Creating the symlinks between partitions (e.g /system/vendor to /vendor)
inside the packaging rules requires duplicating the creation in the
system.img rule as well as in the the target-files.zip rule, which can
cause the target-files.zip rule to fail in soong_zip when the symlink
is removed and recreated by the system.img rule.
Now that our Ninja fork supports symlinks in the build graph, move
the symlink creating to their own rules and add them to the list
of files that the image creation and packaging rules depend on.
Fixes: 161280160
Test: m nothing
Test: treehugger
Change-Id: I0f4d16b57b3052efb12a1f086506f1298c22ec84
Revert submission 1411608-revert-1402265-cf-x86-bootloader-XGKLNEQAPF
Reason for revert: Breakage originally caused by change was fixed. Refer to tracking bug for details.
Reverted Changes:
I89e95d4a6:Revert "Add prebuilt bootloader var and add bootlo...
I8fe199351:Revert "Added bootloader binary to cf x86 based ta...
Bug: 166380489
Bug: 164917252
Test: local build and Treehugger build
Change-Id: Ia895aedd77f2ec825aefecaf74c6dfc1ce631c93
Needed to enable a prebuilt bootloader to make it to the dist and img
directories.
Added a flag to ensure only devices that request will have the update
package populated with a bootloader
Bug: 164917252
Test: local build and Treehugger build
Change-Id: Id67b7bddda14b51a523f794976591c6de04d71ca
Previously, HOST_CROSS_OUT was defined with the assumption that
windows_x86 is the only supported OS/Arch. In preparatio for Linux/ARM
support, HOST_CROSS_OUT is now defined using HOST_CROSS_OS and
HOST_CROSS_ARCH.
Bug: 159685774
Test: m
Change-Id: I0831c2885db37c44af4fd47bab8481bc885b4b7e
If BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES has a numeric value,
it replaces "current" or "system_current" with the version which
the flag indicates.
Bug: 163009188
Test: BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES=29 m, and then check if every vendor
java module's sdk_version is 29 if its sdk_version was current.
Change-Id: I8c7cf21563b984b8e9ef398192031b1f66d96494
aosp/1401989 has a bug to add .TEST_CONFIG after the config file path.
It should be removed.
Bug: 163344047
Test: build and check module-info.json
Change-Id: I5c60250ce26204acf98b79084c5c2839b2adcb56
* changes:
add support to non-A/B for multiple kernels, boot images
add BOARD_GKI_NONAB_COMPAT for non-A/B compatability with GKI
fix recoveryimage-nodeps
Merge all the proguard_usage.zip files produced by the R8 rules and
dist the result.
Bug: 151857441
Test: m TARGET_BUILD_APPS=DocumentsUI dist
Change-Id: I7e6d73241478016093a203dc7bd86407ab86a4ac
Bug: 163854285
Test: m on crosshatch. Vendor overrides are included in
system/build.prop on legacy devices.
Change-Id: Ib134f934de8546af3dff27312f6877eafe5ed22c
The new default points to prebuilts/remoteexecution-client/live.
Also sets the default exec strategy of Javac/R8/D8 to remote local
fallback.
Test: simple one action build
Change-Id: I3392a0f7ac6de818d0c5ba2e113fcb035c6fa0ae
ASAN SANITIZE_TARGET build may have missing dependencies due to
executables being skipped, thus bypass the required module check.
https://source.android.com/devices/tech/debug/asan#sanitize_target
Also streamline the bypassing logic.
Fix: 163802658
Test: TH
Test: lunch aosp_cf_x86_pasan-userdebug &&
m SANITIZE_TARGET=address nothing
Change-Id: Ia43c942ce7eae718bf6fcd254307535e418a70e7
These result in weird command line invocations when used with RBE.
Test: Ran an RBE build locally and made sure it still worked as expected
after the change.
Bug: b/163618332
Change-Id: Ic8a8adb3fffb357754384ddbf13684d944a9767e
Allow hermetically running the test suites by packaging the JDK
into the output zip file.
Bug: 139202337
Test: m cts && zipinfo out/host/linux-x86/cts/android-cts.zip
Change-Id: I6a59bb97a33113c83df9c7162e9c65ca90a8c196
All uses of this property have been migrated to
LOCAL_SANITIZE_BLOCKLIST.
Update language to comply with Android’s inclusive language guidance
See https://source.android.com/setup/contribute/respectful-code for
reference
Bug: 161896447
Bug: 162245450
Test: Add the old property to an Android.mk and ensure error is thrown.
Change-Id: I797ff651f03b954b410f76f4d201a962ded717df
So we don't accidentally create phony rules like
`MODULES-IN-: MODULES-IN-` and `MODULES-IN-.: MODULES-IN-*`
Bug: 162918277
Test: m com.android.art
Test: ninja -t browse
Change-Id: Id0656d1b08bc933df57914df162853934352593b
This hasn't worked for a couple years, and continues to bitrot. Just
remove it.
Test: treehugger
Change-Id: Iea6caf3c08252a560155e095135c5ddaad712991
Merged-In: Iea6caf3c08252a560155e095135c5ddaad712991
Allow for relocated partition directories in out, mainly for
devices which do not possess e.g. /product but must
distribute it in /system/product.
Use argparse to cope with increased argument count.
Test: Device without physical /product partition
m out/target/product/<device>/shareduid_violation_modules.json
-> Observe addition of violating apks from product
partition in shareduid_violation_modules.json
Signed-off-by: Felix <google@ix5.org>
Change-Id: I2d7826b41fb5b924f15ae21a73178fa4eec6a879
It should happen after adjusting vendor and product variables.
Bug: 162476652
Test: see image variant with LOCAL_PROPRIETARY_MODULE := true
Change-Id: I071434916c9ad18572c559a26e3ef6abb8c47303
The directory structure of several ramdisks are different depending on
whether the target is A/B or non-A/B. When the target needs to be
compatible with the GKI however, which is always built as A/B, it is
necessary to build these ramdisks using the A/B file hierarchy. Provide
a flag to enable this override when necessary.
Bug: 161579556
Change-Id: I1cf9a0ef5a338b0b5152113533b62804f3088c83
Now that they're defined with prebuilt_build_tool, we don't need to set
them here.
In future changes we can replace more of these definitions with
prebuilt_build_tool, as it can centralize the selection of
build-from-source or prebuilt for Make, Soong, and user-defined
genrules.
Test: treehugger
Change-Id: I5821bbad1b655d561919245320d7c184a6eac737
This will let us quickly check the system image build type,
and modify *.rc behavior based on that.
Bug: 142430632
Test: adb shell getprop ro.sanitize.hwaddress in hwasan build
Change-Id: Id1738ebc94a7c29ea9902a063f5d8dd6deb48f1b
This improved NOTICE bundling now includes TARGET_OUT deps that Android
Test Suites packages need, especially those for .apk files.
Bug: b/141258651
Test: $ make cts && \
unzip -p out/host/linux-x86/cts/android-cts.zip \
android-cts/NOTICE.txt \
| less -N
Change-Id: I4c84d194ff5982fc57b6a8097602d4a9df68d61c
Merged-In: I4c84d194ff5982fc57b6a8097602d4a9df68d61c
(cherry picked from commit e73186d2ac)
- the NOTICE file is only taken from out/host.
- currently only enabled from cts by setting flag "test_suite_notice"
Test: $ make cts && unzip -l \
out/host/linux-x86/cts/android-cts.zip \
| grep NOTICE
$ make pts && \ unzip -l \
out/host/linux-x86/cts/android-cts.zip \
| grep NOTICE
Bug: b/141258651
Change-Id: I696b424e5f2b09d28d53ccbd9198e1f4f301ec01
Merged-In: I696b424e5f2b09d28d53ccbd9198e1f4f301ec01
(cherry picked from commit 93d2fbbcad)
In Make, clang-tidy and clang run in the same action, but only clang can
be remoted via RBE/GOMA. So to prevent running up to 500 clang-tidy
instances at the same time and overloading the machine, use the local
pool when using clang-tidy. This does limit the parallelism of the clang
actions attached to clang-tidy, but hopefully that's not that much of a
problem. Clang-tidy isn't enabled by default (opt-in per-build /
per-module), and Soong does not run into this problem.
Bug: 162615762
Test: m WITH_TIDY=1 nothing; build-aosp_flame.ninja is identical before/after
Test: use_rbe m WITH_TIDY=1; inspect build-aosp_flame.ninja, see local_pool
Change-Id: I7dd196fcf4183d175b9608d3d48cdcdf81b514ce
Merged-In: I7dd196fcf4183d175b9608d3d48cdcdf81b514ce
This is a list of KMI versions used to filter gki_apex modules. Only
gki_apex modules with kmi_version field that are in the list are created.
Test: build GKI APEXes
Bug: 162888350
Change-Id: I0f582f6ea200d52482fd4065c8f4f8b32efc4dee
Dependencies of makefile modules are being redirected according to
SOONG_CFI_STATIC_LIBRARIES and SOONG_HWASAN_STATIC_LIBRARIES. But the
variables are shared among all variants (e.g. core, vendor, product,
arch), which can cause build error.
This splits the Makefile variables into several lists, one list per each
arch and each image variant, to correctly make the redirection.
Bug: 162476652
Test: build and inspect ninja
Change-Id: I8a46804d4b7c1c485e59e10710cc514a89333fa4
Instead of TARGET_BUILD_APPS, introduce DISABLE_PREOPT,
which is true when TARGET_BUILD_UNBUNDLED_IMAGE or TARGET_BUILD_APPS is set.
Test: TARGET_BUILD_UNBUNDLED_IMAGE=true m vendorimage and then
check if there is no preopt
Bug: 160390776
Change-Id: Id27030e602a29ebd438678270db13744dd145143
- TARGET_BUILD_UNBUNDLED_IMAGE is similar to TARGET_BUILD_APPS, but
its targets are the unbundled partitions instead of apps.
- Rename TARGET_BUILD_APPS_USE_PREBUILT_SDK to TARGET_BUILD_USE_PREBUILT_SDKS
because it is used even without TARGET_BUILD_APPS.
-Instead of TARGET_BUILD_APPS, use TARGET_BUILD_USE_PREBUILT_SDKS
to build java modules with prebuilt sdks, and propagate to Soong.
Bug: 160390776
Test: TARGET_BUILD_UNBUNDLED_IMAGE=true m vendorimage
Change-Id: Ie096212ccbcca0018baae55e106af693b002c9e5
The prop list the name of the a/b partitions that are supposed to
update via an OTA. The list varies by product, and update engine
needs to know these partitions to install the GKI update correctly.
Test: build and check the property
Change-Id: I5258955a5c3303bdc61b97fc92f5dfa1905f7c37
It'll replace LOCAL_SANITIZE_BLACKLIST.
Update language to comply with Android’s inclusive language guidance
See https://source.android.com/setup/contribute/respectful-code for
reference
Bug: 161896447
Bug: 162245450
Test: n/a (no users in AOSP for this property).
Change-Id: Ie31c35af722d05011a528e1170b0c026b50fbf88
Update android_app_set make files to use INSTALL rather than MASTER for
android_app_sets, this better matches the wording used for apex_set.
See https://source.android.com/setup/contribute/respectful-code for
reference
Bug: 161896447
Test: m nothing
Change-Id: I7f37a72914f4b18a839942cc3db98b1c57db921e
There are a few extra flags and a few changes to flags that have
happened over the course of getting Robolectric to run under Tradefed
that need adding to the autogenerated config.
Bug: b/157635117
Test: manual
Change-Id: Ifdf90bb512a6e92ed39e671aeff65e0ddf2d0c4f
This improved NOTICE bundling now includes TARGET_OUT deps that Android
Test Suites packages need, especially those for .apk files.
Bug: b/141258651
Test: $ make cts && \
unzip -p out/host/linux-x86/cts/android-cts.zip \
android-cts/NOTICE.txt \
| less -N
Change-Id: I4c84d194ff5982fc57b6a8097602d4a9df68d61c
(cherry picked from commit e73186d2ac)
Apparently needed for cts tests due to apks putting intermediate files under
TARGET_OUT even when going to HOST_OUT.
Test: m with and without change verified no differences in notice files
Bug: 141258651
Change-Id: Iea50b6bd9af9452a2600c97e2f7cb89218b9be7f
(cherry picked from commit 5e9e1fbe83)
Merged-In: Iea50b6bd9af9452a2600c97e2f7cb89218b9be7f
(cherry picked from commit 74a6a0a32a)
- the NOTICE file is only taken from out/host.
- currently only enabled from cts by setting flag "test_suite_notice"
Test: $ make cts && unzip -l \
out/host/linux-x86/cts/android-cts.zip \
| grep NOTICE
$ make pts && \ unzip -l \
out/host/linux-x86/cts/android-cts.zip \
| grep NOTICE
Bug: b/141258651
Change-Id: I696b424e5f2b09d28d53ccbd9198e1f4f301ec01
(cherry picked from commit 93d2fbbcad)
The change enables conversion of
hardware/interfaces/drm/1.0/default from make to Soong
by exporting a variable used in a conditional check by
the modules in that directory.
Bug: 161571531
Bug: 123557988
Test: Build with TARGET_ENABLE_MEDIADRM_64 :=
Test: Build with TARGET_ENABLE_MEDIADRM_64 := true
Test: Insepction of out/soong/soong.variables for each
Test: Inspection of target files package for each
Test: Verify inclusion of modules in vendor snapshot
Change-Id: I5737d9d4687e182595a213be000b2e56c7536b8a
Revert "Track allowed transitive deps in any updatable module."
Revert submission 1312796-apex-allowed-deps
Reason for revert: b/161974327
Reverted Changes:
I52a4be72e:Add a check for apex/allowed_deps.txt to droidcore...
I56771ba3f:Track allowed transitive deps in any updatable mod...
Change-Id: I20ad7bf2001e76b5e3ca4aaf3baa5318e270f3dc
The check ensures that build graph for updatable modules contains only
allowed dependencies at build time.
Bug: 149622332
Test: m
Change-Id: I52a4be72efaa523d53827dd11822a7802543dd10
Merged-In: I5695dd1003386191dbbe0ea511ef5b615d0d5e4e
Exempt-From-Owner-Approval: cp
Apparently needed for cts tests due to apks putting intermediate files under
TARGET_OUT even when going to HOST_OUT.
Test: m with and without change verified no differences in notice files
Change-Id: Iea50b6bd9af9452a2600c97e2f7cb89218b9be7f
Android S would not support upgrade from O-MR1 devices, so VNDK Lite
configuration is no more valid. This change removes all VNDK-Lite
related steps and makr BOARD_VNDK_RUNTIME_DISABLE as deprecated
variable.
Bug: 158719241
Test: m -j passed
Change-Id: Ifb355da936933843862426e7ddfce9c7f69cea61
Merged-In: Ifb355da936933843862426e7ddfce9c7f69cea61
* changes:
Create $OUT/{vendor,odm}/lib before symlink modules
Add odm_dlkm/etc/build.prop
Install ODM dlkm to appropriate place and symlink
Add notice files for odm_dlkm
Add odm_dlkm partition.
Test: Verified in conjunction with changes to soong (aosp/1359742)
Test: Treehugger to verify backwards compatibility
Change-Id: I39d2669ff74b4387606b6416e8afefc1f6507348
When building an app in Soong with JNI libraries copy the unstripped
libraries to the symbols directory in directory that matches the
installed path of the APK.
Bug: 159726429
Test: forrest
Change-Id: If8e423c7cdf3afd518761b5ab6bc857321acda46
Merged-In: If8e423c7cdf3afd518761b5ab6bc857321acda46
(cherry picked from commit e926cab372)
In the concept of system/vendor build split, usually vbmeta.img
won't be built in a system-only build and/or a vendor-only build.
Instead, vbmeta.img will be generated later when combining system
and vendor artifacts.
- system-only artifacts: system.img, system_ext.img,
product.img and vbmeta_system.img
- vendor-only artifacts: boot.img, vendor.img, odm.img and
vbmeta_vendor.img
PRODUCT_BUILD_VBMETA_IMAGE can be used to disable building vbmeta.img.
However, it also disables vbmeta_system.img and vbmeta_vendor.img
generation because both are only depended by vbmeta.img.
This change adds both vbmeta_[system|vendor].img into droidcore,
so they will be built even if PRODUCT_BUILD_VBMETA_IMAGE is set
to false, when we're building system-only artifacts or vendor-only
artifacts.
Bug: 161425613
Test: sets PRODUCT_BUILD_VBMETA_IMAGE := false then build, checks
vbmeta_system.img is generated but vbmeta.img is not.
Change-Id: I39d9819da4704195b0e1ee58d13c848ae97d474a
* changes:
LOCAL_JNI_SHARED_LIBRARIES is no longer bad, so remove from my_soong_problems
Add mk2bp_catalog.py that outputs more data about makefiles to be converted to soong.