$(OUT_DIR)/target/product/$(TARGET_DEVICE)/lsdump_paths.txt will contain all
.lsdump paths relative to $(ANDROID_BUILD_TOP). This helps faster lookup while
running scripts to generate reference dumps.
Test: m -j findlsdumps for aosp_arm64_ab.
$OUT_DIR/lsdump_paths/generic_arm64_ab/paths.txt has paths to lsdump files
generated for the build.
Test: m -j findlsdumps for aosp_arm_ab.
$OUT_DIR/target/product/generic_arm_ab/lsump_paths.txt has paths to
lsdump files generated for the build.
Change-Id: Iab1640f57bf9d0af5e88e6dda64a610fedcbe87e
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
If there's a prebuilt with LOCAL_MULTILIB := true, but only a single
LOCAL_SRC_FILES entry, we end up with a weird build error where `cp`
is trying to copy the local directory. Exit early with an error in this
case.
Bug: 73904572
Test: build-aosp_marlin.ninja is identical
Change-Id: Ie2821817c237087a96e87fb9602e430e0f86584a
Instead of relying on whatever version of xmllint is on the host system,
build and use the version in external/libxml2.
Test: diff build_aosp-marlin.ninja, expected changes.
Test: m $(xmllint targets in build_aosp-marlin.ninja)
Test: introduce xml error, build fails
Change-Id: I39579f06db3777e3b5c8dda7c7541c25a35887b2
Before this CL, the build could fail with error messages such as:
Error: out/target/common/obj/JAVA_LIBRARIES/core-oj_intermediates/classes.jar
contains class file jdk/internal/HotSpotIntrinsicCandidate.class, which is not
in the whitelist
This error message was only moderately helpful because it left a few
questions unanswered or misled ("Whitelist for what?", "Where does the
whitelist live?", "Is it a whitelist of class files or of packages?").
This CL clarifies that:
- it's a whitelist of packages allowed on the bootclasspath,
- where it lives (currently
build/make/core/tasks/check_boot_jars/package_whitelist.txt)
which makes the error message more actionable.
Test: manually checked that the error message now looks okay.
Bug: 17434570
Change-Id: I2f52a5e2eb532bc4945bedf9811de5857f67a9a3
<Two phase commits> Since internal master code has more places that use
BUILD_NUMBER (mostly in vendor/) than AOSP (conflict). We can't
deprecate BUILD_NUMBER directly. Therefore, we try to switch to
BUILD_NUMBER_FROM_FILE as much as possible at first. Then we will do
a one-off deprecation for BUILD_NUMBER in internal master next step.
Test: m -j
Bug: b/70351683
Change-Id: I14ffee7381933c9fde14c4bde8c0c14e45fe98bf
Added product property: PRODUCT_DEX_PREOPT_GENERATE_DM_FILES.
If this property is true, APKs compiled as verify will have the dex
files left compressed and the vdex put in a dm file. The vdex file
and oat files are not copied to system partition in this case.
Bug: 70934104
Test: manual
Change-Id: Ie137e14f14642b803a506162de6db8ac65a43f46
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
Change Ibe4ceb1b224c5e8f3e1a8a59cfee89217765a901 caused kati to
regenerate on every build:
$(shell cat out/build_date.txt) was changed, regenerating...
Switch back to $(shell date +%s) which is special cased in kati
to not cause a regeneration. Everything besides DATE will still
use BUILD_DATETIME_FROM_FILE from soong_ui.
Once BUILD_NUMBER is moved to soong_ui $(DATE) is no longer
necessary and the whole thing can be removed.
Bug: 70351683
Bug: 73352417
Test: m && m doesn't regenerate
Test: m BUILD_DATETIME=1234 shows up in ro.build.version.incremental
Change-Id: I8444beb2b47a49095ef760083fc85f220821bffe
LOCAL_RES_LIBRARIES and LOCAL_APK_LIBRARIES should still be honored.
Test: make CtsDevicePrereleaseSdkApp
Change-Id: I3360d0fe2f7e2f3038e48f41905923a72609ceec
export Android.mk config vars to Soong, and export stubs.jar to Make
after compiling Droiddoc from Soong.
Bug: b/70351683
Test: Convert libcore docs Android.mk to Soong manually.
Change-Id: I749b4b3e1e50abce8a757130987c18d7135a3859
Move application of module flags to host_java_library_common.mk
so that dalvik host builds can also have flags.
Bug: 72451126
Test: m javac-check RUN_ERROR_PRONE=true
Change-Id: Idbf43afd886536cc7ea674aa4487da3c22987850
* Use the definitions of ClangDefaultBase and ClangDefaultVersion
in build/soong/cc/config/global.go.
* scan-build is too old;
replaced by better clang-tidy's -clang-analyzer-* checks.
* WITH_STATIC_ANALYZER is still effective
to invoke ccc-analyzer or c++-analyzer.
Test: make checkbuild
Change-Id: Ifd159dd28e529d5d3c9807f5e391911365da8cdb
There are too many duplicates warnings, disable them until someone
is actually looking at them.
Bug: 69316739
Test: m checkbuild
Change-Id: Ifb67dbf7734b5f53941d110f578c4fe642e36005
When LOCAL_NO_STANDARD_LIBRARIES is set to true, droiddoc only omits
framework libraries from the required libs. This enables us to use
droiddoc even when frameworks/base is absent (i.e. master-art branch).
Test: m -j core.current.stubs
Test: build in master-art branch
Change-Id: Ia9f0b8bda84b006881b3e62e6573a7784ca56a8c
patchoat was already ignoring the basename part of the filename passed
to it for both --output-image-file and --output-image-relocation-file.
We can therefore just pass in the directories instead.
Bug: 72828459
Test: make test-art-host-gtest-patchoat_test
Change-Id: I50f2e19fec1fd27433d3e6ec82df0cfb04c43f21
This variable can be set in BoardConfig.mk to specify a list of
additional paths that contain PGO profiles. These directories are
searched before the predefined paths in soong/cc/pgo.go while finding
PGO profiles.
Test: Set this variable in a BoardConfig and verify that such profiles
are found and that these paths are searched before the predefined paths
in soong/cc/pgo.go.
Change-Id: Ied3ebf0ce6e6e2ead57f4828998e9617424e4573
Create only one vdex file and share between different ISAs.
By sharing vdex file, zygote32 and zygote64 can share the same file and
the system partition size is reduced by about 32MB.
Test: make framework & check boot.vdex and boot-*.vdex files
Test: test system boots with no selinux violations
Bug: 64211239
Change-Id: I31ede4b6aa342f2047d9309b8c631217e6699202
This reverts commit 30d6869faf.
Fixes an issue with the original change where proguard files without
newlines at the end of the file would get merged with the next file.
Most of the time the next file started with a comment, which worked
fine, but sometimes it was a syntax error.
Bug: 72969557
Test: m
Test: build on an internal tree that failed last time
Change-Id: I66f13ae80ee0f96b456e526bfbfc2cdcf82c3f3a
The art targets don't check MAKECMDGOALS any more, remove them
from PARSE_TIME_MAKE_GOALS.
Bug: 26275726
Test: m clean-oat
Test: m test-art-host-run-test-dependencies
Change-Id: I75869495c91f142bf8eff681e6e764c9b0464031
So they can be used by art/test/Android.run-test.mk.
Also remove the line wrapping, which was inserting extra characters
at the beginning of the result, and add a sanity check.
Bug: 26275726
Test: no change to out/build-hikey960-test-art.ninja
Change-Id: I35b54c258a1dc76bb1a8a758ec4a08915a2b226d
Packages would use proguard rules from their
LOCAL_STATIC_ANDROID_LIBRARIES, but other libraries wouldn't propagate
the rules from their LOCAL_STATIC_ANDROID_LIBRARIES.
Bug: 72969557
Test: m
Change-Id: I514af02627d78c48cf6cd08d4b3c17911c6bac2f
due to missing header.jar, build was broken with error:
"android_stubs_current_intermediates/classes-header.jar needed by
android-support-annotations_intermediates/classes-turbine.jar,
missing and no known rule to make it"
Bug: b/72961456
Test: after check-in, I will download platform.zip to built it again.
Change-Id: I32ac8d8713ca31d27de42f87bde72185609d270c
This was ok for apk because they are in different parent directory.
Test: marlin built
Bug: 63920015
Bug: 30972906
Change-Id: I5ed00824fda9e7e0a99c825402753c21a06ba6c5
Since Clang-4579689, crt libraries use i386 instead of i686. Update the
hardcoded paths to the new names.
Bug: 72942266
Test: N/A
Change-Id: I24f8f5742ac2fecd374fdaa3be8a11f410d31cbf
If PRODUCT_TREBLE_LINKER_NAMESPACES is not true when
BOARD_VNDK_VERSION is defined, report a build error.
To enable VNDK, linker namespace must be configured.
Bug: 72704254
Test: Try to build with one of them is missing
Change-Id: I804704e2f48fa44c8f998183508741d5cc40e4ce
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED can be true only if early-mount of
partitions is supported. But the early-mount must be supported for full
treble products, and so BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED should be
set by default for full treble products.
Additionally this CL sets ro.vndk.version regardless of
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED.
Bug: 73078796
Test: tested with walleye
Change-Id: Icfe1b6957b55b0f9261d34d7e92db3dc5073cb58
The LOCAL_COMPATIBILITY_SUITE tag is used to package tests and
auto-generate test configs for use in the test infrastructure
and locally by atest.
Rather than update hundreds of makefiles across the tree, this
change adds significant atest support to many unittests.
Bug: 73000943, 72969679, 71510529
Test: `atest NotificationStressTests` works as expected.
Change-Id: I1b0a779b8366aee4b4df98181267f72fcb68916a
This change adds a flag so that the mksquashfs wrapper scripts generate
an entry that is fs_config-friendly for the root inode. Namely, the root
entry is expected to have an empty filename.
Bug: 72745016
Test: m -j100 dist
Change-Id: Iebdf79c5af0b9d999b7e5f5fe240abfe52cbadda
The module name of system_$(VER) prebuilt file is system_sdk_v$(VER).
But this is inconsistent with sdk_v$(LOCAL_SDK_VERSION) in prebuilts/sdk.
So, system_sdk_v$(VER) is changed to sdk_vsystem_$(VER) to use the same
naming policy.
Bug: 72031391
Test: build
Change-Id: I379c0f9aa0de7407489eeec2b07ee7727e81d69d
Allows target modules to directly request host modules they
require to be built and installed as well.
Bug: 72761631
Test: Added LOCAL_HOST_REQUIRED_MODULES to a target apk test and
the host module was built.
Change-Id: I5aca11b3ba8b54676f068d337f1c9ba0e0b01997
Kati's find emulator doesn't understand "| sort", so use use the make
function instead so that we can emulate the find commands.
before: *kati*: shell time (regen): 1.316989 / 187
after: *kati*: shell time (regen): 1.249748 / 184
The time has a lot of variance, the important change is the reduction in
number of shell commands. Kati has other issues with some of these (it
doesn't support find's implicit -a), which is why it only goes down by
3. I'll be fixing Kati separately to handle those cases.
Test: diff out/build-aosp_taimen.ninja before&after
Change-Id: I5c8c2993f01a8a6af84963e903a8a0c186a61e82
This is a list of sepolicy versions that the framework supports.
Test: build framework compatibility matrix
Test: boots
Bug: 67920434
Change-Id: I82365742172b653eadb7b5315398e06cace4e000
This prevents them from mistakenly bleeding between test targets.
Bug: 72384841
Test: make Run_TeleService_robotests
Change-Id: Ie2c047be1450420f8e27b8b45e9416e96b477b45
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
CPU/ABIs related information is already in system/build.prop. It
should also be included in the vendor image so it can still be
examined outside of a device, build environment, or $OUT directory,
by a standalone utility to check its basic characteristics and if
it's compatible with some specific system image (usually GSI).
Bug: 72079894
Test: Built and verified aosp_x86(_64):
# On host
$ grep ro.vendor.product.cpu $OUT/vendor/build.prop
# On device
$ getprop | grep ro.vendor.product
$ su
# grep ro.vendor.product /vendor/build.prop
Change-Id: Ic9ac8065d5983710840e33a805f982de75d86ce3
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
Kati has a `--warn` option that adds some extra Kati-specific warnings
-- like using undefined make functions, undefined user functions, likely
bad variable lookups, etc. Some of these are bugs, others are fine doing
nothing. This fixes up all of them in the core build system.
It also complains about $(eval) usage in a recipe not being recommended.
Those aren't handled as part of this change.
Bug: 72661763
Test: build-aosp_arm.ninja is identical before and after
Change-Id: I8e00af142a7745236d3ad4efc9e91ec3ce71a511
Bug: http://b/72642679
Store missing profile files and the modules that refer to them, passed
via SOONG_MODULES_MISSING_PGO_PROFILE_FILE variable, to
$DIST_DIR/pgo_profile_file_missing.txt as part of the 'dist' target.
Test: 'm dist' and verify creation of pgo_profile_file_missing.txt.
Change-Id: I4ac0a1f413cbb99b33ad1903aeebd3ebcf3b9f59
Fixes lots of warnings of the form:
build/make/core/base_rules.mk:606: warning: overriding commands for target `out/target/product/generic_arm64/testcases/simpleperf_unit_test/testdata/perf.data'
build/make/core/base_rules.mk:606: warning: ignoring old commands for target `out/target/product/generic_arm64/testcases/simpleperf_unit_test/testdata/perf.data'
Test: lunch aosp_arm64-eng; m device-tests
Change-Id: I32575d25f3aef1d4000fcb63d6ffc025ad21f937