b375e71d30
This patch removes support for prelinking from the build system. By now, the prelinker has outlived its usefulness for several reasons. Firstly, the speedup that it afforded in the early days of Android is now nullified by the speed of hardware, as well as by the presence of Zygote. Secondly, the space savings that come with prelinking (measued at 17MB on a recent honeycomb stingray build) are no longer important either. Thirdly, prelinking reduces the effectiveness of Address-Space-Layout Randomization. Finally, since it is not part of the gcc suite, the prelinker needs to be maintained separately. The patch deletes apriori, soslim, lsd, isprelinked, and iself from the source tree. It also removes the prelink map. LOCAL_PRELINK_MODULE becomes a no-op. Individual Android.mk will get cleaned separately. Support for prelinking will have to be removed from the recovery code and from the dynamic loader as well. Change-Id: I5839c9c25f7772d5183eedfe20ab924f2a7cd411
23 lines
766 B
Makefile
23 lines
766 B
Makefile
###########################################################
|
|
## Standard rules for building an executable file.
|
|
##
|
|
## Additional inputs from base_rules.make:
|
|
## None.
|
|
###########################################################
|
|
|
|
ifeq ($(strip $(LOCAL_MODULE_CLASS)),)
|
|
LOCAL_MODULE_CLASS := EXECUTABLES
|
|
endif
|
|
ifeq ($(strip $(LOCAL_MODULE_SUFFIX)),)
|
|
LOCAL_MODULE_SUFFIX := $(TARGET_EXECUTABLE_SUFFIX)
|
|
endif
|
|
|
|
include $(BUILD_SYSTEM)/dynamic_binary.mk
|
|
|
|
ifeq ($(LOCAL_FORCE_STATIC_EXECUTABLE),true)
|
|
$(linked_module): $(TARGET_CRTBEGIN_STATIC_O) $(all_objects) $(all_libraries) $(TARGET_CRTEND_O)
|
|
$(transform-o-to-static-executable)
|
|
else
|
|
$(linked_module): $(TARGET_CRTBEGIN_DYNAMIC_O) $(all_objects) $(all_libraries) $(TARGET_CRTEND_O)
|
|
$(transform-o-to-executable)
|
|
endif
|