Fixed a bunch of stuff in the prelink mappings file:

* Added mappings for most of the libraries that didn't already
have them (as observed from my build).

* Re-canonicalized all the offsets in the mappings file,
per the official policy of keeping things megabyte-aligned.

* Added comments on each line indicating what size the library
actually appeared to be in my build (to help with future rejiggerings).

* Added a bit of documentation about the whole deal.

Even with this change, I know there are other libraries that will
still need to be included, but I think what I have here is a good
step. Also, this change only reserves room for the new libraries, but
subsequent changes (in other subprojects) are required to actually
start prelinking the new libraries. Those changes will be forthcoming
as well.

Bug: 2651381
Change-Id: I7a06382fc2b8a14bbd3261de58df3f8a31e4108e
diff --git a/core/prelink-linux-arm.map b/core/prelink-linux-arm.map
index 5ae1a78..cb4535e 100644
--- a/core/prelink-linux-arm.map
+++ b/core/prelink-linux-arm.map
@@ -1,4 +1,3 @@
-
 # 0xC0000000 - 0xFFFFFFFF Kernel
 # 0xB0100000 - 0xBFFFFFFF Thread 0 Stack
 # 0xB0000000 - 0xB00FFFFF Linker
@@ -9,159 +8,199 @@
 # 0x10000000 - 0x3FFFFFFF Thread Stacks
 # 0x00000000 - 0x0FFFFFFF .text / .data / heap
 
+# Note: The general rule is that libraries should be aligned on 1MB
+# boundaries. For ease of updating this file, you will find a comment
+# on each line, indicating the observed size of the library, which is
+# one of:
+#
+#     [<64K] observed to be less than 64K
+#     [~1M] rounded up, one megabyte (similarly for other sizes)
+#     [???] no size observed, assumed to be one megabyte
+
 # core system libraries
-libdl.so                0xAFF00000
-libc.so                 0xAFE00000
-libstdc++.so            0xAFD00000
-libm.so                 0xAFC00000
-liblog.so               0xAFBC0000
-libcutils.so            0xAFB00000
-libthread_db.so         0xAFA00000
-libz.so                 0xAF900000
-libevent.so             0xAF800000
-libssl.so               0xAF700000
-libcrypto.so            0xAF500000
-libsysutils.so          0xAF400000
+libdl.so                0xAFF00000 # [<64K]
+libc.so                 0xAFD00000 # [~2M]
+libstdc++.so            0xAFC00000 # [<64K]
+libm.so                 0xAFB00000 # [~1M]
+liblog.so               0xAFA00000 # [<64K]
+libcutils.so            0xAF900000 # [~1M]
+libthread_db.so         0xAF800000 # [<64K]
+libz.so                 0xAF700000 # [~1M]
+libevent.so             0xAF600000 # [???]
+libssl.so               0xAF400000 # [~2M]
+libcrypto.so            0xAF000000 # [~5M]
+libsysutils.so          0xAEF00000 # [~1M]
 
 # bluetooth
-liba2dp.so              0xAEE00000
-audio.so                0xAED00000
-input.so                0xAEC00000
-libbluetoothd.so        0xAEB00000
-libbluedroid.so         0xAEA00000
-libbluetooth.so         0xAE900000
-libdbus.so              0xAE800000
+liba2dp.so              0xAEE00000 # [~1M]
+audio.so                0xAED00000 # [~1M]
+input.so                0xAEC00000 # [~1M]
+libbluetoothd.so        0xAEA00000 # [~2M]
+libbluedroid.so         0xAE900000 # [<64K]
+libbluetooth.so         0xAE800000 # [~1M]
+libdbus.so              0xAE700000 # [~1M]
 
 # extended system libraries
-libril.so               0xAE400000
-libreference-ril.so     0xAE000000
-libwpa_client.so        0xADC00000
-libnetutils.so          0xADB00000
+libril.so               0xAE600000 # [~1M]
+libreference-ril.so     0xAE500000 # [~1M]
+libwpa_client.so        0xAE400000 # [<64K]
+libnetutils.so          0xAE300000 # [~1M]
 
 # core dalvik runtime support
-libandroid_servers.so   0xAD900000
-#libicudata.so           0xAD600000
-libicuuc.so             0xAD500000
-libicui18n.so           0xAD400000
-libandroid_runtime.so   0xAD300000
-libnativehelper.so      0xAD200000
-libdvm-ARM.so           0xAD100000
-libdvm.so               0xAD000000
+libandroid_servers.so   0xAE200000 # [~1M]
+libicuuc.so             0xADE00000 # [~4M]
+libicui18n.so           0xAD900000 # [~5M]
+libandroid_runtime.so   0xAD300000 # [~6M]
+libnativehelper.so      0xAD100000 # [~2M]
+libdvm-ARM.so           0xAD000000 # [???]
+libdvm.so               0xACA00000 # [~6M]
+# Note: libicudata.so intentionally omitted
 
 # graphics
-libpixelflinger.so      0xACF00000
+libpixelflinger.so      0xAC900000 # [~1M]
 # libcorecg is for backward-compatibility with donut
-libcorecg.so            0xACE00000
-libsurfaceflinger_client.so 0xACD80000
-libsurfaceflinger.so    0xACD00000
-libGLES_android.so      0xACC80000
-libagl.so               0xACC00000
+libcorecg.so            0xAC800000 # [???]
+libsurfaceflinger_client.so 0xAC700000 # [~1M]
+libsurfaceflinger.so    0xAC500000 # [~2M]
+libGLES_android.so      0xAC400000 # [~1M]
+libagl.so               0xAC300000 # [???]
 
-libGLESv1_CM.so         0xACB00000
-libGLESv2.so            0xACA00000
-libOpenVG_CM.so         0xAC900000
-libOpenVGU_CM.so        0xAC800000
-libEGL.so               0xAC700000
-libETC1.so              0xAC680000
+libGLESv1_CM.so         0xAC200000 # [~1M]
+libGLESv2.so            0xAC100000 # [~1M]
+libOpenVG_CM.so         0xAC000000 # [???]
+libOpenVGU_CM.so        0xABF00000 # [???]
+libEGL.so               0xABE00000 # [~1M]
+libETC1.so              0xABD00000 # [<64K]
 
-libacc.so               0xAC600000
+libacc.so               0xABC00000 # [~1M]
 
-libexif.so              0xAC500000
-libcamera_client.so     0xAC480000
-libui.so                0xAC400000
+libexif.so              0xABB00000 # [~1M]
+libcamera_client.so     0xABA80000 # [~1M]
+libui.so                0xAB900000 # [~1M]
 # libsgl is for backward-compatibility with donut
-libsgl.so               0xAC200000
-libskia.so              0xAC000000
-librs_jni.so            0xABF00000
-libRS.so                0xAB900000
-
+libsgl.so               0xAB800000 # [???]
+libskia.so              0xAB100000 # [~7M]
+librs_jni.so            0xAB000000 # [~1M]
+libRS.so                0xA9E00000 # [~2M]
+libjnigraphics.so       0xA9D00000 # [<64K]
+libskiagl.so            0xA9C00000 # [~1M]
 
 # audio
-libFLAC.so              0xAB8A0000
-libaudiopolicy.so       0xAB880000
-libaudiopolicygeneric.so 0xAB800000
-libsoundpool.so         0xAB780000
-libaudio.so             0xAB700000
-libspeech.so            0xAB600000
-libsonivox.so           0xAB500000
-libvorbisidec.so        0xAB400000
-libmedia_jni.so         0xAB300000
-libmediaplayerservice.so 0xAB280000
-libmedia.so             0xAB200000
-libFFTEm.so             0xAB100000
-libaudioflinger.so      0xAB000000
+libFLAC.so              0xA9B00000 # [???]
+libaudiopolicy.so       0xA9A00000 # [~1M]
+libaudiopolicygeneric.so 0xA9900000 # [???]
+libsoundpool.so         0xA9800000 # [~1M]
+libaudio.so             0xA9700000 # [~1M]
+libspeech.so            0xA9600000 # [~1M]
+libsonivox.so           0xA9500000 # [~1M]
+libvorbisidec.so        0xA9400000 # [~1M]
+libmedia_jni.so         0xA9300000 # [~1M]
+libmediaplayerservice.so 0xA9200000 # [~1M]
+libmedia.so             0xA9000000 # [~2M]
+libFFTEm.so             0xA8F00000 # [~1M]
+libSR_AudioIn.so        0xA8E00000 # [<64K]
+libaudioflinger.so      0xA8D00000 # [~1M]
 
 # assorted system libraries
-libsqlite.so            0xAAC00000
-libexpat.so             0xAAB00000
-libwebcore.so           0xAA000000
-libbinder.so            0xA9D80000
-libutils.so             0xA9D00000
-libcameraservice.so     0xA9C80000
-libhardware.so          0xA9C70000
-libhardware_legacy.so   0xA9C00000
-libapp_process.so       0xA9B00000
-libsystem_server.so     0xA9A00000
-libime.so               0xA9800000
-libgps.so               0xA9700000
-libcamera.so            0xA9680000
-liboemcamera.so         0xA9400000
+libsqlite.so            0xA8B00000 # [~2M]
+libexpat.so             0xA8A00000 # [~1M]
+libwebcore.so           0xA8400000 # [~6M] 
+libbinder.so            0xA8300000 # [~1M]
+libutils.so             0xA8200000 # [~1M]
+libcameraservice.so     0xA8100000 # [~1M]
+libhardware.so          0xA8000000 # [<64K]
+libhardware_legacy.so   0xA7F00000 # [~1M]
+libapp_process.so       0xA7E00000 # [???]
+libsystem_server.so     0xA7D00000 # [~1M]
+libime.so               0xA7C00000 # [???]
+libgps.so               0xA7B00000 # [~1M]
+libcamera.so            0xA7A00000 # [~1M]
+liboemcamera.so         0xA7800000 # [~2M]
+libdiskconfig.so        0xA7700000 # [<64K]
+libemoji.so             0xA7600000 # [<64K]
+libjni_latinime.so      0xA7500000 # [~1M]
+libjni_pinyinime.so     0xA7400000 # [~1M]
+libttssynthproxy.so     0xA7300000 # [~1M]
+libttspico.so           0xA7100000 # [~2M]
 
 # pv libraries
-libpvasf.so                    0xA7C26000
-libpvasfreg.so                 0xA7C00000
-libomx_sharedlibrary.so        0xA7BA0000
-libopencore_download.so        0xA7B40000
-libopencore_downloadreg.so     0xA7B00000
-libopencore_net_support.so     0xA7A00000
-libopencore_rtsp.so            0xA7900000
-libopencore_rtspreg.so         0xA7890000
-libopencore_author.so          0xA7800000
-libomx_aacdec_sharedlibrary.so 0xA7700000
-libomx_amrdec_sharedlibrary.so 0xA76A0000
-libomx_amrenc_sharedlibrary.so 0xA7680000
-libomx_avcdec_sharedlibrary.so 0xA7660000
-libomx_avcenc_sharedlibrary.so 0xA7610000
-libomx_m4vdec_sharedlibrary.so 0xA75C0000
-libomx_m4venc_sharedlibrary.so 0xA7590000
-libomx_mp3dec_sharedlibrary.so 0xA7450000
-libopencore_mp4local.so        0xA7400000
-libopencore_mp4localreg.so     0xA7300000
-libopencore_player.so          0xA7000000
+libpvasf.so                    0xA7000000 # [???]
+libpvasfreg.so                 0xA6F00000 # [???]
+libomx_sharedlibrary.so        0xA6E00000 # [~1M]
+libopencore_download.so        0xA6D00000 # [~1M]
+libopencore_downloadreg.so     0xA6C00000 # [~1M]
+libopencore_net_support.so     0xA6900000 # [~3M]
+libopencore_rtsp.so            0xA6300000 # [~6M]
+libopencore_rtspreg.so         0xA6200000 # [~1M]
+libopencore_author.so          0xA5E00000 # [~4M]
+libomx_aacdec_sharedlibrary.so 0xA5C00000 # [~2M]
+libomx_amrdec_sharedlibrary.so 0xA5B00000 # [~1M]
+libomx_amrenc_sharedlibrary.so 0xA5A00000 # [~1M]
+libomx_avcdec_sharedlibrary.so 0xA5900000 # [~1M]
+libomx_avcenc_sharedlibrary.so 0xA5800000 # [???]
+libomx_m4vdec_sharedlibrary.so 0xA5700000 # [~1M]
+libomx_m4venc_sharedlibrary.so 0xA5600000 # [???]
+libomx_mp3dec_sharedlibrary.so 0xA5500000 # [~1M]
+libopencore_mp4local.so        0xA5300000 # [~2M]
+libopencore_mp4localreg.so     0xA5200000 # [~1M]
+libopencore_player.so          0xA4900000 # [~9M]
 
 # opencore hardware support
-libmm-adspsvc.so              0xA6FFD000
-libOmxCore.so                 0xA6FF0000
-libOmxMpeg4Dec.so             0xA6FC0000
-libOmxH264Dec.so              0xA6F90000
-libOmxVidEnc.so               0xA6F60000
-libopencorehw.so              0xA6F50000
+libmm-adspsvc.so              0xA4800000 # [???]
+libOmxCore.so                 0xA4700000 # [<64K]
+libOmxMpeg4Dec.so             0xA4600000 # [???]
+libOmxH264Dec.so              0xA4500000 # [???]
+libOmxVidEnc.so               0xA4400000 # [~1M]
+libopencorehw.so              0xA4300000 # [~1M]
+libOmxVdec.so                 0xA4200000 # [~1M]
+libmm-omxcore.so              0xA4100000 # [<64K]
 
 # pv libraries
-libopencore_common.so         0xA6000000
-libqcomm_omx.so               0xA5A00000
+libopencore_common.so         0xA3A00000 # [~7M]
+libqcomm_omx.so               0xA3900000 # [<64K]
+
+# stagefright libraries
+libstagefright_amrnb_common.so     0xA3800000 # [~1M]
+libstagefright_avc_common.so       0xA3700000 # [~1M]
+libstagefright_color_conversion.so 0xA3600000 # [<64K]
+libstagefright_omx.so              0xA3500000 # [~1M]
+libstagefrighthw.so                0xA3400000 # [~1M]
+libstagefright.so                  0xA3000000 # [~4M]
+
+# libraries for specific hardware
+libgsl.so               0xA2F00000 # [~1M]
+libhtc_acoustic.so      0xA2E00000 # [<64K]
+libhtc_ril.so           0xA2D00000 # [~1M]
+liblvmxipc.so           0xA2C00000 # [~1M]
 
 # libraries for specific apps or temporary libraries
-libcam_ipl.so           0x9F000000
-libwbxml.so             0x9E800000
-libwbxml_jni.so         0x9E400000
-libxml2wbxml.so         0x9E000000
-libdrm1.so              0x9D800000
-libdrm1_jni.so          0x9D400000
-libwapcore.so           0x9D000000
-libstreetview.so        0x9CC00000
-libwapbrowsertest.so    0x9C800000
-libminiglobe.so         0x9C400000
-libearth.so             0x9C000000
-libembunit.so           0x9BC00000
-libneon.so              0x9B800000
-libjni_example.so       0x9B400000
-libjni_load_test.so     0x9B000000
-libjni_lib_test.so      0x9AC00000
-librunperf.so           0x9A800000
-libctest.so             0x9A700000
-libUAPI_jni.so          0x9A500000
-librpc.so               0x9A400000
-libtrace_test.so        0x9A300000
-libsrec_jni.so          0x9A200000
-libjpeg.so              0x9A000000
+libcam_ipl.so           0x9F000000 # [???]
+libwbxml.so             0x9EF00000 # [???]
+libwbxml_jni.so         0x9EE00000 # [~1M]
+libxml2wbxml.so         0x9EB00000 # [~1M]
+libdrm1.so              0x9EA00000 # [~1M]
+libdrm1_jni.so          0x9E900000 # [<64K]
+libwapcore.so           0x9E800000 # [???]
+libstreetview.so        0x9E700000 # [???]
+libwapbrowsertest.so    0x9E600000 # [???]
+libminiglobe.so         0x9E500000 # [???]
+libearth.so             0x9E400000 # [???]
+libembunit.so           0x9E300000 # [<64K]
+libneon.so              0x9E200000 # [???]
+libjni_example.so       0x9E100000 # [???]
+libjni_load_test.so     0x9E000000 # [???]
+libjni_lib_test.so      0x9DF00000 # [???]
+librunperf.so           0x9DE00000 # [???]
+libctest.so             0x9DD00000 # [<64K]
+libUAPI_jni.so          0x9DC00000 # [???]
+librpc.so               0x9DB00000 # [~1M]
+libtrace_test.so        0x9DA00000 # [???]
+libsrec_jni.so          0x9D800000 # [~2M]
+libjpeg.so              0x9D700000 # [~1M]
+libiprouteutil.so       0x9D600000 # [~1M] for external/iproute2
+libnetlink.so           0x9D500000 # [<64K] for external/iproute2
+libpagemap.so           0x9D400000 # [<64K] for system/extras/libpagemap
+libstlport.so           0x9D100000 # [~3M] for external/stlport
+libzxing.so             0x9D000000 # [<64K] for goggles
+libinterstitial.so      0x9CF00000 # [<64K] for goggles
+liblept.so              0x9CA00000 # [~5M] for external/leptonica