Ban ELF prebuilts in PRODUCT_COPY_FILES

ELF prebuilts in PRODUCT_COPY_FILES are an build error.
Define prebuilt modules and add them to PRODUCT_PACKAGES instead.

To triage any build break caused by this change, temporarily opt out
this check by setting
BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true in BoardConfig.mk.

Bug: 140560012
Test: build_test & verify that either PRODUCT_COPY_FILES has no ELF \
      prebuilt or BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES is true
Change-Id: I9dcbe7b68c38fc23dac91fe5751cbc478105656e
This commit is contained in:
Yo Chiang 2020-04-07 15:59:59 +08:00
parent 0b49c03727
commit 73d3148c5f
2 changed files with 15 additions and 4 deletions

View File

@ -1,5 +1,18 @@
# Build System Changes for Android.mk Writers
## ELF prebuilts in PRODUCT_COPY_FILES
ELF prebuilts in PRODUCT_COPY_FILES that are installed into these paths are an
error:
* `<partition>/bin/*`
* `<partition>/lib/*`
* `<partition>/lib64/*`
Define prebuilt modules and add them to PRODUCT_PACKAGES instead.
To temporarily relax this check and restore the behavior prior to this change,
set `BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true` in `BoardConfig.mk`.
## COPY_HEADERS usage now produces warnings {#copy_headers}
We've considered `BUILD_COPY_HEADERS`/`LOCAL_COPY_HEADERS` to be deprecated for

View File

@ -40,11 +40,9 @@ $(if $(filter true,$(BUILD_BROKEN_VINTF_PRODUCT_COPY_FILES)),, \
)
endef
# TODO(b/140560012): Flip BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES to default
# false after all problematic devices are tagged.
check_elf_prebuilt_product_copy_files :=
ifneq (,$(filter false,$(BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES)))
check_elf_prebuilt_product_copy_files := true
ifneq (,$(filter true,$(BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES)))
check_elf_prebuilt_product_copy_files :=
endif
check_elf_prebuilt_product_copy_files_hint := \
found ELF prebuilt in PRODUCT_COPY_FILES, use cc_prebuilt_binary / cc_prebuilt_library_shared instead.