No prelinker in Android anymore

Ice Cream Sandwich当中,Prelinker这个东西就被移除了,理由如下:

commit b375e71d306f2fd356b9b356b636e568c4581fa1
Author: Iliyan Malchev
Date: Tue Mar 8 16:19:48 2011 -0800

build: remove prelinker build build system

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

有关的参考(为何而生,为何而死):
https://groups.google.com/forum/#!topic/android-building/UGJvYMZaVqw
http://en.wikipedia.org/wiki/Address_space_layout_randomization
http://people.redhat.com/jakub/prelink/prelink.pdf
http://jserv.blogspot.com/2010/10/android.html

所以现在还在讨论这个的用处的应该可以收手了。

Leave a Reply

Your email address will not be published. Required fields are marked *