Commit graph

10 commits

Author SHA1 Message Date
Dan Willemsen
74a1a483fc More performance improvements
Instead of using `x := $(x) foo`, make sure `x` is initialized first,
then use `x += foo`.

For a aosp-master/aosp_crosshatch-userdebug build, this takes the build
from 49s to 33s (no significant difference in peak memory)

Bug: 158488548
Test: build-aosp_crosshatch.ninja is the same before/after
Change-Id: I41fb7611030dd3ba824f896a9c9eadbdd218f464
Merged-In: I41fb7611030dd3ba824f896a9c9eadbdd218f464
(cherry picked from commit fd1e67b8ce)
2020-06-10 17:18:13 -07:00
Justin Yun
2bfe0a1a25 Restore "Linktype check for native:product"
Similar to native:vendor, native:product can use VNDK libs but not
vndk_private.
It is activated when PRODUCT_PRODUCT_VNDK_VERSION is set.

This restores the reverted commit
4e7e76fe5a (aosp/1197274).
The problem of the original CL was assuming no modules have both
LOCAL_PRODUCT_MODULE and LOCAL_USE_VNDK in the old implementations.
But many vendor modules in the targets without setting
PRODUCT_PRODUCT_VNDK_VERSION in old branches had both flags that
caused link failures.
To make it no-op without PRODUCT_PRODUCT_VNDK_VERSION, I defined
LOCAL_USE_VNDK_PRODUCT that is set to true if
PRODUCT_PRODUCT_VNDK_VERSION is defined and LOCAL_PRODUCT_MODULE is
true.

Bug: 146620523
Test: build with PRODUCT_PRODUCT_VNDK_VERSION := current
Change-Id: I344c7dc1c47f08706c101e486ff07c3f10aff8ac
2020-01-22 00:16:25 +00:00
Justin Yun
dd5401713c Revert "Linktype check for native:product"
This reverts commit 4e7e76fe5a.

Reason for revert: build breaks (bid: 6147225) and postsubmit test fails.
There are some modules that have both "product_specific: true" and "vendor_available: true", which tags the module as "native:product" unintentionally.
We need to clean up these cases first and revisit this CL.

Bug: 146620523
Bug: 147987741
Change-Id: Ib07543235d72a135b6b732aaa909c147d2df832b
2020-01-20 07:39:41 +00:00
Justin Yun
4e7e76fe5a Linktype check for native:product
Similar to native:vendor, native:product can use VNDK libs but not
vndk_private.
It is activated when PRODUCT_PRODUCT_VNDK_VERSION is set.

Bug: 146620523
Test: build with PRODUCT_PRODUCT_VNDK_VERSION := current
Change-Id: Icfd94dfc30e77581991799d9e2f408f57da22cea
2020-01-19 23:46:47 +00:00
Tom Cherry
6215e436f3 Fix host-init-verifier regression
After the split up of prebuilt_internal.mk, the logic for running
host-init-verifier on init.rc files was misplaced.  This change moves
it back to the right location.

Test: see that a mistake in rootdir/init.rc causes the build to fail
Change-Id: I60e503cc48639f4f11c47e6636f140672fde61b4
2019-08-22 10:47:16 -07:00
Dan Willemsen
18ffd5891e Remove import_includes/export_includes
Now that ONE_SHOT_MAKEFILE no longer exists, we don't have to rely on
the filesystem to store this informtion.

This removes ~16.7k files from our build graph
(aosp-master/aosp_arm64-eng), though only about 600 of them were being
used in a normal build.

Test: treehugger
Change-Id: I3ac12f5ea7f11d25064109a0599bc5be1976fba5
2019-08-01 14:56:45 -07:00
Logan Chien
e984ebbb57 Strip my_shared_libraries to remove space char
This commit strips my_shared_libraries to remove the unwanted space
character when both `$(filter-out ...)` and
`$(my_system_shared_libraries)` are empty.

Bug: 137302468
Test: lunch aosp_walleye-userdebug && make
Test: lunch aosp_walleye-userdebug && make check-elf-files
Change-Id: Ia0410da877196c104a61d48c92a2be969a9754a5
2019-07-12 10:26:50 -07:00
Logan Chien
a45d6f5ee9 Move cxx_stl_setup.mk out of ifdef
This commit moves `include cxx_stl_setup.mk` out of `ifdef
my_shared_libraries` so that it can always get a chance to tweak
my_shared_libraries.

Bug: 137302468
Test: lunch aosp_walleye-userdebug && make
Test: lunch aosp_walleye-userdebug && make check-elf-files
Change-Id: Id756340f0a62d7ac06d301c3260430a1af74ed89
2019-07-12 10:26:50 -07:00
Jooyung Han
36c1f678a3 fix: wrong dependency from ETC to libc++.so
There are prebuilt modules which are meant to be just copied.
e.g. ETC,SCRIPT,DATA files

The problem for current prebuilt_internal.mk is that those modules are
handled by cc_prebuilt_internal.mk, which adds libc++ as dependency,
which is simply wrong with copy-only prebuilt modules.

As a fix, misc_prebuilt_internal.mk is introduced to handle
ETC,SCRIPT,DATA prebuilt modules and doesn't do additional processing.

Bug: 132925121
Test: m nothing && check build-<TARGET>.ninja if there is no dependency
to libc++ from ETC modules such as /system/etc/sepolicy_test

Change-Id: I846f8e1f3741ca71c86f5420cfaafa7419ebf3f6
2019-05-31 07:24:42 +09:00
Jaewoong Jung
f22997ead4 prebuilt_internal.mk refactoring.
Add cc_prebuilt_internal.mk and java_prebuilt_internal.mk. Now all
buisiness logic lives in individual per-class prebuilt mk files.

Fixes: 128609813
Test: Built and flashed a Pixel device image + TreeHugger
Change-Id: I3827f990642bb7587dc682d1a382b3a1ce22fe66
2019-03-26 15:29:20 -07:00