blob: ad10a5ee07a7a342b305e8cff01bb3c16cb1e2f0 [file] [log] [blame]
Ulrich Drepperb08d5a82005-07-26 05:00:05 +00001 ToDo list for elfutils -*-outline-*-
2 ----------------------
3
Ulrich Drepper04af0182009-02-05 22:09:34 -08004Time-stamp: <2009-02-05 22:08:01 drepper>
Ulrich Drepperb08d5a82005-07-26 05:00:05 +00005
6* mkinstalldirs
7
8 Remove everywhere. Use mkdir -p.
9
10* libelf:
11
12** verify section
13
14 Currently the elf_update function trusts the user blindly if the
15 ELF_F_LAYOUT flag is set. This is OK if the data is prepared by a
16 ELF_C_NULL call but not if the user prepared the data herself
17
18** break out archive handling from elf_begin
19
20 The handling of archives (especially of the symbol tables) must be
21 broken out of elf_begin. There are several different forms of
22 archives and only when having the archive handling separately this
23 remains maintainable.
24
Ulrich Dreppercea5ee32009-02-01 16:19:06 -080025** shdrs in read-only files
26
27 When reading (ELF_C_READ*) then there is no need to malloc Shdr
28 structure in elfXX_getshdr if file is mmaped and unaligned access
29 is allowed or the structure is aligned. Use ELF_F_MALLOCED flag
30 to differentiate.
31
Mark Wielaard030f6262012-07-18 13:14:30 +020032** shdrs after elf_cntl (ELF_C_FDREAD)
33
34 Similar to the above. After ELF_C_FDREAD the file is completely
35 in memory. See also this mailing list thread:
36 https://fedorahosted.org/pipermail/elfutils-devel/2012-July/002368.html
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000037
Ulrich Drepperfbe998a2005-08-29 16:27:10 +000038* libdw
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000039
40** More memory access checks needed
41
42 All accesses to the debug sections should make sure the offsets are
43 valid. This is currently especially a problem with leb128 accesses.
44
45** Low level macro information operations
46
47 in 5.11.3 are not implemented. gcc currently does not emit this
48 information so I cannot test it.
49
50** Rename dwarf_getabbrev
51
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000052
Ulrich Drepper3bf57592009-01-01 18:52:05 -080053* libcpu
54
55** x86
56
57*** Opcodes
58
59 crc32
60 extractps
61 pextrb
62 pextrd/pextrq
63 pextrw
64 pinsrq
65 popcnt 64-bit reg
66
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000067* nm:
68
69** add demangler support
70
71 Use demangler from libiberty.
72
73** add support to read debugging symbols
74
75 Implement -l option for BSD and POSIX format
76
77
78* strip:
79
80** support SHT_SYMTAB_SHNDX
81
82 should be removed if not needed anymore
83
84* ld:
85
86** sanity check .rel sh_info content
87
88 the sh_info of all .rel sections with the same name must point to
89 sections which also have the same name
90
91** use ld.so.conf
92
93 to locate shared libraries also use /etc/ld.so.conf
94
95** handle object files for different architectures
96
97 ld.so is expected to ignore object files for different architectures and
98 continue looking for a matching file (e.g., ignore 32-bit binaries on
99 64-bit platforms and vice versa). We probably need the same in ld.
100
101** reuse after elf_end
102
103 Some files are closed using elf_end. They are removed from memory only
104 if no reference is left (especially for archives this is a problem).
105 The old mapping should be reused in that case. The problem is worse
106 for files which are not mapped read-only (archives again).
107
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000108** size for STT_SECTION entries
109
110 The STT_SECTION entries have zero for the size but can easily get
111 the size of the section.
112
Ulrich Dreppercbb51e52006-06-11 20:25:23 +0000113** .eh_frame_hdr
114
115 Not implemented at all in the moment except for recognition of the option
116 itself.
117
Ulrich Drepperc2e71c52009-02-05 21:41:11 -0800118** variables with aliases in executables
119
120 When linking an executable with a references against a variable in a
121 DSO, create symbol table entries for all the aliases of the variable
122 in the DSO and create a relocation for one of them (a non-weak
123 definition)
124
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000125* elflint
126
127** additional checks
128
129 1st GOT entry == _DYNAMIC
130
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000131 check versioning info:
132
133 always BASE in verdef
134 sh_size/sh_entsize matches last offset != 0
135
136 check whether any relocation is for a merge-able section
137
Ulrich Drepper834de6f2008-02-23 06:50:01 +0000138 check TLS relocation depencies
139
Ulrich Drepper3a52c7a2009-01-16 21:11:49 -0800140 Check content of .eh_frame_hdr, .eh_frame, .gcc_except_table
141
Ulrich Drepper834de6f2008-02-23 06:50:01 +0000142*** for x86
143
144 check that R_386_TLS_GD is followed by R_386_PLT32 for __tls_get_addr
145
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000146** relax
147
148 prelink generated files
149
Ulrich Drepperfbe998a2005-08-29 16:27:10 +0000150* elfcmp
151
152** treat relocation sections special
153
154 Differences in the relocation sections can be ignored if all
155 the same symbols with the same targets are present and the order
156 of overlapping relocations doesn't change. There really never
157 should be overlapping relocations but who knows.
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000158
159* mcs
160
161 Sun has it. Can modify sections which are not in segments.
162
163 -a string
164 Append string to the comment section of the ELF object
165 files. If string contains embedded blanks, it must be
166 enclosed in quotation marks.
167
168 -c Compress the contents of the comment section of the
169 ELF object files. All duplicate entries are removed.
170 The ordering of the remaining entries is not dis-
171 turbed.
172
173 -d Delete the contents of the comment section from the
174 ELF object files. The section header for the comment
175 section is also removed.
176
177 -n name
178 Specify the name of the comment section to access if
179 other than .comment. By default, mcs deals with the
180 section named .comment. This option can be used to
181 specify another section. mcs can take multiple -n
182 options to allow for specification of multiple sec-
183 tion comments.
184
185 -p Print the contents of the comment section on the stan-
186 dard output. Each section printed is tagged by the
187 name of the file from which it was extracted, using
188 the format file[member_name]: for archive files and
189 file: for other files.
190
191 -V Print on standard error the version number of mcs.
192
193Local Variables:
Ulrich Drepper3bf57592009-01-01 18:52:05 -0800194eval:(hide-sublevels 3)
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000195End: