Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: tools/relocation_packer/README.TXT

Issue 407093003: Switch from ELF CPU-specific to OS-specific DT_ tags. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase to master Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 Introduction: 1 Introduction:
2 ------------- 2 -------------
3 3
4 R_ARM_RELATIVE relocations are the bulk of dynamic relocations (the .rel.dyn 4 R_ARM_RELATIVE relocations are the bulk of dynamic relocations (the .rel.dyn
5 section) in libchrome.<version>.so. The ELF standard representation of them 5 section) in libchrome.<version>.so. The ELF standard representation of them
6 is wasteful. 6 is wasteful.
7 7
8 Packing uses run length encoding to store them more efficiently. Packed 8 Packing uses run length encoding to store them more efficiently. Packed
9 relocations are placed in a new .android.rel.dyn section. Packing reduces 9 relocations are placed in a new .android.rel.dyn section. Packing reduces
10 the footprint of libchrome.<version>.so in the filesystem, in APK downloads, 10 the footprint of libchrome.<version>.so in the filesystem, in APK downloads,
(...skipping 13 matching lines...) Expand all
24 Notes: 24 Notes:
25 ------ 25 ------
26 26
27 Packing does not adjust debug data. An unstripped libchrome.<version>.so 27 Packing does not adjust debug data. An unstripped libchrome.<version>.so
28 can be packed and will run, but may no longer be useful for debugging. 28 can be packed and will run, but may no longer be useful for debugging.
29 29
30 Unpacking on the device requires the explicit support of an extended crazy 30 Unpacking on the device requires the explicit support of an extended crazy
31 linker. Adds the following new .dynamic tags, used by the crazy linker to 31 linker. Adds the following new .dynamic tags, used by the crazy linker to
32 find the packed .android.rel.dyn section data: 32 find the packed .android.rel.dyn section data:
33 33
34 DT_ANDROID_ARM_REL_OFFSET = DT_LOPROC (Processor specific: 0x70000000) 34 DT_ANDROID_REL_OFFSET = DT_LOOS (Operating System specific: 0x6000000d)
35 - The offset of .android.rel.dyn data in libchrome.<version>.so 35 - The offset of .android.rel.dyn data in libchrome.<version>.so
36 DT_ANDROID_ARM_REL_SIZE = DT_LOPROC + 1 (Processor Specific: 0x70000001) 36 DT_ANDROID_REL_SIZE = DT_LOOS + 1 (Operating System Specific: 0x6000000e)
37 - The size of .android.rel.dyn data in bytes 37 - The size of .android.rel.dyn data in bytes
38 38
39 The format of .android.rel.dyn data is: 39 The format of .android.rel.dyn data is:
40 40
41 "APR1" identifier 41 "APR1" identifier
42 N: the number of count-delta pairs in the encoding 42 N: the number of count-delta pairs in the encoding
43 A: the initial offset 43 A: the initial offset
44 N * C,D: N count-delta pairs 44 N * C,D: N count-delta pairs
45 45
46 All numbers in the encoding stream are stored as LEB128 values. For details 46 All numbers in the encoding stream are stored as LEB128 values. For details
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 the allocation). 93 the allocation).
94 94
95 Requires libelf 0.158 or later. Earlier libelf releases may be buggy in 95 Requires libelf 0.158 or later. Earlier libelf releases may be buggy in
96 ways that prevent the packer from working correctly. 96 ways that prevent the packer from working correctly.
97 97
98 98
99 Testing: 99 Testing:
100 -------- 100 --------
101 101
102 Unittests run under gtest, on the host system. 102 Unittests run under gtest, on the host system.
OLDNEW
« no previous file with comments | « third_party/android_crazy_linker/src/src/crazy_linker_shared_library.cpp ('k') | tools/relocation_packer/src/elf_file.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698