between http://r.android.com/890494 and http://r.android.com/913898.
(Repopulating libs from intermediates is quick, so not wasting effort trying
to be precise.)
Test: Don't have a suitably old build tree to test with.
Bug: 124498388
Change-Id: Ice35606e4c301d5b01837963137421f9d23a9733
Dexpreopting of boot jars is now implemented in
build/soong/java/dexpreopt_bootjars.go.
Test: m checkbuild
Change-Id: I036510e7674b876976ce191c5b18bf0b7a15c6ee
Remove ART modules (`art-runtime`, `art-tools`) from `PRODUCT_PACKAGES`, as
they are provided by the Android Runtime APEX module
(`com.android.runtime`).
Copy of rpl's http://r.android.com/812674.
Test: Flash and boot
Test: atest CtsJniTestCases
Test: atest CtsJdwpTestCases
Test: m checkbuild dist
Bug: 113373927
Change-Id: I3e0c130f1a9c596629ab243648f0251cf71c1499
This changes the default location of RRO packages that don't
specify where they should be installed to /product instead of
/vendor.
Also change the auto-generated "enforced RRO" packages to install
on /product, and be explicit about that in the mk to make it
independent of the RRO default.
The reasoning for this change is that most overlays tend to be
for product level customizations, like themes and so on. RROs
for hardware related things can still be explicitly installed
on /vendor.
Bug: 123566903
Test: preubmit
Test: various internal tests
Change-Id: Ie7d5f19dc7ab421a7bcf584153f991e18e961cda
Hiddenapi rules are now in build/soong/java/hiddenapi_singleton.go.
This effectively requires any module in PRODUCT_BOOT_JARS to be
defined in Soong.
Bug: 123645297
Test: m checkbuild
Change-Id: If72bd1c20b2014d0a3d400624d37fdb0a3052245
Noone is intended to use product_services for now, so make
product_services modules merge in product by default.
Bug: 113098451
Test: boot blueline
Test: boot walleye
Change-Id: Id13487e40afe4ae581fac027c8c075798c26c7e8
We tried to start using toybox's sed, but it produced invalid results
with one of init's genrules. Clear out that generated code to fix future
incremental builds, since we don't rebuild everything on a $PATH change.
Bug: 122744241
Test: generate bad file, remove toybox sed, apply this change
Change-Id: I197aa4b68b2fe309b3033e8736e1d80c8ded80ad
Individual products can add their own calculator package if desired.
Bug: 120905067
Test: lunch aosp_arm64 && make -j8
Merged-In: I60490b6e2a42c4304768075e8fef9f07cb72d268
Change-Id: I60490b6e2a42c4304768075e8fef9f07cb72d268
I59b20c931ee3e5a8d35eb30da4148691c5095502 accidentally wrote depsfiles
to a file called .d in the top level of the source tree, remove them.
Bug: 119412419
Test: m
Change-Id: Iaf71a64a7ee4aa39084423dfd16aa934613ba158
Ica006a007d112c232311435aaac0c0e476232b67 added a clean step that was
reverted in I0ce3ad70c73ff997aacaf411b0b5dc73760e7f91. Reverting
a clean step could cause a future clean step to be skipped, because
Make only tracks how many clean steps have been run out of each
CleanSpec.mk file. Add back the reverted clean step.
Bug: 119412419
Test: none
Change-Id: I11fe12d7c3526ccc21f468b350b4288cb55a9447
Ie7daa94e107d53eff075ca58dbe721bd9d7fc8c2 attempted to pre-create
the directories that unzip would unzip into, but incorrectly
created them in the top of the source tree instead of in
$(PRODUCT_OUT). Fix the directory location and add a cleanspec
to clean up the incorrect directories in the source tree.
Bug: 119412419
Test: m correctly cleans up incorrect directories in source tree
Test: extract unzip command from out/verbose.log.gz and add bash -x
Change-Id: Ica006a007d112c232311435aaac0c0e476232b67
Needed to get some space on marlin-eng :(
Also avoids static linking libart into perfprofd. Roland will follow-up by reverting the no-perfprofd changes.
bug: 73175642
Test: lunch marlin-eng && m -j32
Change-Id: Ic1c79c6dd1052981801b92604f9891a8a63b4ea0
Likely not the final setting we'll settle with for this device,
but brings mainline_system builds closer to the device builds
it's targeting.
Bug: 80410283
Test: build mainline_arm64
Change-Id: Ib672d1a060d0ad6a4e1faa210461bbbbaf6f2bc6
Test suite directories not covered by installclean have an old copy
of host-libprotobuf-java-full in them that causes problems when
libprotobuf-java-full uses an updated ABI, remove them.
Bug: 119049592
Test: manual
Change-Id: Iedf0aaf2a1d1ca2c7332da3cc6d948946946eebe
Instead of looking at `dist` and DIST_DIR directly in the Kati Build
step, always write out information about every call to dist, then create
the rules in another ckati run.
So instead of having:
dist: <goal> -> <dist> -> <output>
\______________↑
nodist: <goal> -----------> <output>
Always use another phony target in the Kati Build step:
<goal> ---> <output>
\----> _dist_<goal>
Then in the packaging step (which is much faster), choose between dist
and no dist:
dist: _dist_<goal> -> <dist> -> <output>
nodist: _dist_<goal>
Bug: 117463001
Test: m dist
Change-Id: Ic96bb6356740300dd3113f6ed699e6a619360c40
Add a cleanspec to removed unused strip.sh intermediates. Saved
32GB on my AOSP checkout that had been used to build multiple
devices.
Test: m nothing
Change-Id: Ia319a2feacdd1a1ac8b88a6783766c370438ce12
They used to be installed under recovery/root/etc. This CL moves the
files to the new location and creates a symlink from /etc to /system/etc
(done by the rule in system/core/rootdir). This gives similar layout
between normal boot and recovery, and allows installing prebuilt_etc
files with Soong (`recovery_available: true`).
As part of the change, we no longer need the whitelisting rule for
mke2fs.conf.
Bug: 112780007
Test: Build with other changes in the topic (aosp_taimen-userdebug).
Check the generated files under recovery (/etc being a symlink to
/system/etc).
Test: Boot into recovery. Verify basic functionalities (`adb shell` and
`adb sideload`, factory reset).
Test: `build/soong/build_test.bash --dist`
Change-Id: Ibb6dea6f179a339f0c2d0fd8ba05ec0085b79a12
Attempting to reduce the number of different spellings we have for
"product services" partition in the codebase.
Bug: 112431447
Test: m
Change-Id: I6debd3f5f5abc4bd1e22f2ef11c5fe131915976c
Merged-In: I6debd3f5f5abc4bd1e22f2ef11c5fe131915976c
Bug: 112058806
Test: Device booted after flashing a build with this change.
Change-Id: If0bda6869a7ed09b8c320b5c44c43f9d4cb4c3dd
Merged-In: If0bda6869a7ed09b8c320b5c44c43f9d4cb4c3dd
Not all phones support the VR, so on phones
that don't, the inclusion of vr_hwc is causing
VtsHalGraphicsComposerV2_1Target failures.
Bug: 109913118
Bug: 111963599
Test: vr_hwc is not on aosp_arm64_ab
Change-Id: I803b4dddc5a87e35875992ad9421c644698112f1
Merged-In: I803b4dddc5a87e35875992ad9421c644698112f1
(cherry picked from commit 52971ca09b)
Some modules generate their own custom AndroidManifest.xml file
to $(intermediates.COMMON)/AndroidManifest.xml file. Move the
build system's location to
$(intermediates.COMMON)/manifest/AndroidManifest.xml.
This location will also be used later for finding manifest files
from LOCAL_STATIC_ANDROID_LIBRARIES dependencies.
Bug: 78447299
Test: m checkbuild
Change-Id: I345f079bdd191451333b38d882418f2f7150b1e9
Merged-In: I345f079bdd191451333b38d882418f2f7150b1e9
(cherry picked from commit 0bcc120b54)
The objective of this commit is to support these 3 combinations:
1. Master-GSI + Master-VENDOR (w/ BOARD_VNDK_VERSION)
2. Master-GSI + Master-VENDOR (w/o BOARD_VNDK_VERSION for upgrading devices)
3. Master-GSI + O-MR1-VENDOR (w/ BOARD_VNDK_VERSION)
This commit defines a new property `ro.vndk.lite` to indicate the status
of BOARD_VNDK_VERSION run-time enforcement. Now, all devices should
have `ro.vndk.version` so that `libhidlbase.so`, `libRSCpuRef.so`, and
`libnativeloader.so` can find the versioned VNDK directory.
Bug: 78605339
Test: aosp_sailfish Master-SYSTEM + Master-VENDOR boots
Test: aosp_sailfish Master-GSI + Master-VENDOR boots
Test: aosp_walleye Master-SYSTEM + Master-VENDOR boots
Test: aosp_walleye Master-GSI + Master-VENDOR boots
Test: aosp_walleye Master-GSI + O-MR1-VENDOR boots
Change-Id: Iee9553b3ca9e0798a873e655d87d10cdc23d4b1c
ASAN builds run as two consecutive builds. The cleanspec is applied by
the first one, which cleans the obj directory, and ignored by the
second. This can result in old entries in the obj_asan directory.
Bug: 73885582
Test: obj_asan dirs are deleted
Change-Id: I54b8ec9cff581fcd9ec2a843aa7126805340c387
Merged-In: I54b8ec9cff581fcd9ec2a843aa7126805340c387
(cherry picked from commit 4e2da3277a)
Dumping files in the *_intermediates/src causes incremental build
problems, because we don't know when to delete them if they are
no longer generated. Switch to outputting a srcjar instead, and
pass it in to the turbine and javac compiles.
Bug: 73885582
Test: m checkbuild
Change-Id: Ibef28507522339d930c09426d0c98372eb864cb6
Merged-In: Ibef28507522339d930c09426d0c98372eb864cb6
(cherry picked from commit 2d1cddd567)
Replace RenderScript.stamp with a srcjar, with a resource zip as
an implicit output. This makes the renderscript rules self contained,
which will make it easier to move them before aapt.
Bug: 73885582
Test: m checkbuild
Change-Id: I12d33e52019aebac6ea33271939228e4690a4173
Merged-In: I12d33e52019aebac6ea33271939228e4690a4173
(cherry picked from commit e00e2fae52)
classes-no-debug-var.jar is incorrect, jars in coverage builds
do have debug information. Remove full_classes_compiled_jar_leaf
and hardcode classes-full-debug.jar.
After the previous patch, all dex files have debug information,
so remove the no-local and with-local directories and replace
them with dex/.
Remove the unnecessary jarjar_leaf.
Bug: 70886092
Test: m checkbuild
Change-Id: I63eace8f8cda5ad8bc0cbd11eefda73dd063ed76
PLATFORM_VNDK_VERSION means the VNDK version that current build
provides. This value will be set to PLATFORM_SDK_VERSION once the
version is release. Otherwise, it will be set to "current".
Bug: 69883025
Test: device boot
Change-Id: I3fde4943aa062d9d148a3d7fc2798948870a48c6
PRODUCT_AAPT2_CFLAGS and PRODUCT_AAPT_FLAGS are only used to pass
--pseudo-localize. The flag doesn't need to be conditional on the
product, because the pseudo locale will be stripped out later if it
is not wanted. Having it conditional on the product causes the
AAPT2-compiled resources to vary between products, which causes
unnecessary rebuilds when swithcing products.
Remove the variables, always add --pseudo-localize, and move
the AAPT2 compiled output to the common intermediates.
Test: m checkbuild
Change-Id: Iacc914114616b5bd19d9a1011802f4f9bca9bc19
So that they can't be generated into src/, which would be added to the
source list automatically.
Bug: 36698184
Test: m telephony-common without this change, pass
Test: m telephony-common without the cleanspec, fail with dup class
Test: m telephony-common with the cleanspec, pass
Change-Id: I7b2fc1847d52ff4a9ba8c69e76123fe152629ef8
Soong renamed intermediate directories from linux_(common|x86|x86_64)...
to linux_glibc_(common|x86|x86_64)..., so remove the old versions to
save space.
Test: Check for old intermediates after applying and running cleanspec
Change-Id: I73ff39014491826224535e1d45c2215669fd19a2
This change will be submitted with other changes moving adbd from
root/sbin to system/bin. We need to copy it specifically to recovery root.
Previously it was copied by rsync $(TARGET_ROOT_OUT) $(TARGET_RECOVERY_OUT).
Bug: 63910933
Test: normal boot sailfish, checks adb works
Test: recovery boot sailfish, checks adb works
Test: normal boot bullhead, checks adb works
Test: recovery boot bullhead, checks adb works
Change-Id: Ib49605f97a190aec2648cb000d1159b6e15db673
Merged-In: Ib49605f97a190aec2648cb000d1159b6e15db673
(cherry picked from commit 3147e7cfab)
Jack is no longer the default java compiler, clean the intermediates
to save space.
Bug: 36902714
Test: manual
Change-Id: I368442c8ad71eb5839c52839f2aa6ca55cf20bdd
This removes versions_checked.mk that caused kati to regenerate the
ninja file 3 times for a clean out directory. Kati needs to regenerate
every time that we write a file that we also read. soong_ui doesn't have
this problem.
Bug: 35970961
Test: m clean; m -j blueprint_tools; m -j blueprint_tools; m -j blueprint_tools
Test: $OUT_DIR/versions_checked.mk no longer exists
Change-Id: I14b67dc275ea3daa77a7315c2985dc73d77fd07c
Soong modules may be split into both /system and /vendor variants.
Ensure that Make libraries link against the correct version based on
whether LOCAL_USE_VNDK is set.
Bug: 36426473
Bug: 36079834
Test: build-aosp_arm64.ninja files are the same before/after
Test: attempt building with BOARD_VNDK_VERSION:=current
Change-Id: I229bc290373743406275f3ca16081eae04c27987
This CL moves the location of ASAN-ified libraries on disk in the
following manner:
/data/lib* --> /data/asan/system/lib*
/data/vendor/* --> /data/asan/vendor/*
There are a couple of advantages to this, including better isolation
from other components, and more transparent linker renaming and
SELinux policies.
Bug: 36574794
Bug: 36674745
Test: m -j40 && SANITIZE_TARGET="address" m -j40 and the device
boots. All sanitized libraries are correctly located in /data/asan/*.
Change-Id: Ic6ba8e43e31df2ea92b85fd60f572823b6883ba2
This reverts commit 842a985f90. It's
causing test failures, warnings and complaints, so backing it out and
we'll resolve those before putting it back in.
This also bundles in the revert of a minor warning/error fixup for this
code, and does the correct thing with the CleanSpec.mk (which can't just
be reverted).
Bug: 33681361
Test: m -j
Change-Id: Ic889ce6a4737a497ad6bf633424ce1860713f7d0
Shared libraries are now installed to different directories depending on
their types.
* NDK libraries: /system/lib/ndk (with symlink from /system/lib)
* VNDK libraries: /system/lib/vndk
* VNDK-ext libraries: /system/lib/vndk-ext
* Framework-only libraries: /system/lib
* Vendor-only libraries: /vendor/lib
* Same-process HALs: /vendor/lib/sameprocess
However, if LOCAL_MODULE_PATH is explicitly set, then it is respected,
with a warning message. Module owners are highly encouraged to
investigate the warnings and use alternatives to LOCAL_MODULE_PATH;
combination of LOCAL_[PROPRIETARY|OEM|ODM]_MODULE, LOCAL_MODULE_CLASS
and LOCAL_RELATIVE_PATH will cover most of the cases.
Furthermore, for each shared libraries whose path is changed, a symolic
link from the original path to the new path is *temporarily* generated.
e.g. /system/lib/libbase.so -> vndk/libbase.so. This is
to prevent sudden breakage of the code expecting the lib from the old
path. This symbolic links will eventually be removed before O launch
(b/34917183).
Finally, BOARD_SAME_PROCESS_HAL_DEPS is added. It contains the list of
shared libraries implementing the same-process HALs and its internal sub
libraries. This is designed to be defined in BoardConfig.mk
Bug: 33681361
Test: build & run. Libraries must be in the correct directories.
Symlinks from the old path to the new path must exist.
Change-Id: I46130aac09ae65400fd4d0abbc2e12dddd154fb1
The init.rc path selection uses the same partition_tag detection to
select an installation partition. So make sure that we always set
partition_tag even if we've been given an explicit module path.
Bug: 35314904
Test: set proprietary: true to Soong module with an init rc, verify
that was the only change to build-aosp_arm64.ninja
Change-Id: Ic6ffd7a5177959db96a34a24896b242ee5b09e41
Fix an issue with incremental builds and the new common
testcase directories.
Bug: None
Test: Removed https://android-review.googlesource.com/#/c/234478/
then ran `m cts-platform-version-check` then reapplied the
change to verify the failure. Then applied this new change
to verify the problem was resolved.
Change-Id: I77529021e852af35571fb99537d87100010b47af
When we removed the src/ directory, the R.stamp file was removed -- with
AAPT, this triggers src/android/Manifest.java to be regenerated. But
AAPT2 only uses the R.stamp file as a timestamp to find the
Manifest.java file, not to create it.
So add a new CleanSpec.mk to fix the builds by removing the target that
AAPT2 uses to generate the src/android/Manifest.java file.
Test: None
Change-Id: If56f326ad701f7f92aa7c8aeda57e92d9c62cff9
Just move the proto and renderscript sources into their own directories
-- the entire directory is wiped if the file list changes since the
command line will change. So we can just enable/disable pulling sources
from those directories based on whether there were files in the list or
not.
Bug: 30947985
Test: m -j java
Test: Remove a proto file from a java lib, ensure the generated source
is not included.
Change-Id: If7529979de6fa62a651933a3a974f47b033851d6
There are no users left, so remove all of this.
Test: lunch aosp_arm-eng; m -j native
Test: build/tools/kati_all_products.sh on aosp and internal master
Change-Id: I32f5c8b470a43dd203d7e20c192167630e4e6888
This workaround to clean package intermediates is no longer necessary,
as ninja reruns commands whose command line changes.
Test: switch between product overlays that use add-resource, verify
R.java is regenerated.
Change-Id: Icb1f76360e39882e4401180414a031956777b020
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
Incremental build going across CL in [1] needs to remove the old
symlink to avoid hitting mkdir error.
[1]: commit 3f56a33041
Change-Id: Iff62ed55eb2782ba3e1e9b6de39a691de2427384
This is a BCP-47 language tag representing the default locale for a
given device. Support for the earlier mechanism of supplying a language
and region via ro.product.locale.region/language has been removed. This
change also removes support for supplying these properties via
PRODUCT_ADDITIONAL_PROPERTY_OVERRIDES. Devices that need to override
this should either rearrange their PRODUCT_LANGUAGES or supply a custom
.prop file.
bug: 17691569
Change-Id: I00c74098542b49b9c514a6ca39ea8d08179546c1
There are a _lot_ of users of `typeof` in the tree, and they'll need a
GNU flavored standard. Rather than fixing up all of these
individually, let's just use gnu++11 as the default.
Bug: 18466763
Change-Id: Ia1bd3adaa74fadba259fda3d37653fb8d5cff69a
The code name looked at 5.0 despondently. "Won't anyone care about
me? Why does everyone pretend like I don't even exist!" And it
was true -- for all of its life, nobody had ever whispered L's
true name, at least not in the same breath as many other names that
were not L's at all.
But 5.0 knew better. "L," the number said, "don't you fear. Some
day, I am sure, your name will go up in lights. Your name will shine
brighter than even my own. And everyone who is anyone will know
your name, write pages and pages all about your name, and debate
endlessly about everything you are."
L could only hope this would be true. But not today. Today, L
is still nobody.
Change-Id: I2523dd34ff7486badf8c9cd40e43833a5ef448b8
This will allow us to conditionally change the compiler-filter based on other properties.
Bug: 15165413
(cherry picked from commit 4d30e5e260)
Change-Id: I84e8038c6536291e6775f39b33556b8169fdf292
This will allow us to conditionally change the compiler-filter based on other properties.
Bug: 15165413
Change-Id: Ie3f9292d35e9d4abf93271b7d22b72d185ee5ce2
If LOCAL_CLANG is not set to false for a host module, clang will be used instead of gcc.
This also enables the integrated assembler by default for Darwin host builds.
bug 16172793
Change-Id: If7484c5dbcccce7d925bec97bff0a3e4c30e9434
Apk's path is changed to <parent_dir>/MyApp/MyApp.apk;
JNI path is changed to <parent_dir>/MyApp/lib/<arch_name>/libfoo.so.
Symlinks of JNIs are changed accordingly.
Bug: 16319961
Change-Id: Ib3b2309c95fa9aea27837fcc29e28d990b04747b
Also we don't need to force LLVM built from source, for we already force
LLVM to be built as 32-bit.
Bug: 13751317
Change-Id: Ifadf1988d28b60cb06316de50f5bdc1834f1acc0
Also siezes the opportunity to remove the hardcoded
TARGET_PREFER_32_BIT_APPS directing in core_64_bit.mk.
This avoids the need for further hacks but needs supporting
changes to a few apps to force them to 32 bit.
Change-Id: I36ba9e5f5b08dd87d6a4afc27961a436306eed99
This isn't required any longer, besides individual products
should be allowed to set this value themselves.
(cherry picked from commit 7b9347a7f9)
Change-Id: If459eab32c6e7831596224ad3503baefbf028133
This isn't required any longer, besides individual products
should be allowed to set this value themselves.
Change-Id: I684edf073b5c19f412b4617f8aa22824193c19be
Introduce ro.product.cpu.abilist32 / abilist64, which are
comma separated lists of the 32 and 64 bit ABIs that the
device supports. These properties are used by the zygote and
system server to determine what ABI an app should be
started with.
This changes move abilist related make steps out of envsetup.mk
and into config.mk because they depend on variables set by
core/combo/***. Additionally, config.mk performs a few additional
cleanups of these variables (like stripping them) after the
inclusion of envsetup.mk so this seems like a better place to
put them.
bug: 13647418
Change-Id: I3db39bdd761220c5b4966f651892fb592396f9a1