blob: 0012a5664167610dcfb224110aaec280aacb8204 [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
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000032
Ulrich Drepperfbe998a2005-08-29 16:27:10 +000033* libdw
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000034
35** More memory access checks needed
36
37 All accesses to the debug sections should make sure the offsets are
38 valid. This is currently especially a problem with leb128 accesses.
39
40** Low level macro information operations
41
42 in 5.11.3 are not implemented. gcc currently does not emit this
43 information so I cannot test it.
44
45** Rename dwarf_getabbrev
46
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000047
Ulrich Drepper3bf57592009-01-01 18:52:05 -080048* libcpu
49
50** x86
51
52*** Opcodes
53
54 crc32
55 extractps
56 pextrb
57 pextrd/pextrq
58 pextrw
59 pinsrq
60 popcnt 64-bit reg
61
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000062* nm:
63
64** add demangler support
65
66 Use demangler from libiberty.
67
68** add support to read debugging symbols
69
70 Implement -l option for BSD and POSIX format
71
72
73* strip:
74
75** support SHT_SYMTAB_SHNDX
76
77 should be removed if not needed anymore
78
79* ld:
80
81** sanity check .rel sh_info content
82
83 the sh_info of all .rel sections with the same name must point to
84 sections which also have the same name
85
86** use ld.so.conf
87
88 to locate shared libraries also use /etc/ld.so.conf
89
90** handle object files for different architectures
91
92 ld.so is expected to ignore object files for different architectures and
93 continue looking for a matching file (e.g., ignore 32-bit binaries on
94 64-bit platforms and vice versa). We probably need the same in ld.
95
96** reuse after elf_end
97
98 Some files are closed using elf_end. They are removed from memory only
99 if no reference is left (especially for archives this is a problem).
100 The old mapping should be reused in that case. The problem is worse
101 for files which are not mapped read-only (archives again).
102
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000103** size for STT_SECTION entries
104
105 The STT_SECTION entries have zero for the size but can easily get
106 the size of the section.
107
Ulrich Dreppercbb51e52006-06-11 20:25:23 +0000108** .eh_frame_hdr
109
110 Not implemented at all in the moment except for recognition of the option
111 itself.
112
Ulrich Drepperc2e71c52009-02-05 21:41:11 -0800113** variables with aliases in executables
114
115 When linking an executable with a references against a variable in a
116 DSO, create symbol table entries for all the aliases of the variable
117 in the DSO and create a relocation for one of them (a non-weak
118 definition)
119
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000120* elflint
121
122** additional checks
123
124 1st GOT entry == _DYNAMIC
125
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000126 check versioning info:
127
128 always BASE in verdef
129 sh_size/sh_entsize matches last offset != 0
130
131 check whether any relocation is for a merge-able section
132
Ulrich Drepper834de6f2008-02-23 06:50:01 +0000133 check TLS relocation depencies
134
Ulrich Drepper3a52c7a2009-01-16 21:11:49 -0800135 Check content of .eh_frame_hdr, .eh_frame, .gcc_except_table
136
Ulrich Drepper834de6f2008-02-23 06:50:01 +0000137*** for x86
138
139 check that R_386_TLS_GD is followed by R_386_PLT32 for __tls_get_addr
140
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000141** relax
142
143 prelink generated files
144
Ulrich Drepperfbe998a2005-08-29 16:27:10 +0000145* elfcmp
146
147** treat relocation sections special
148
149 Differences in the relocation sections can be ignored if all
150 the same symbols with the same targets are present and the order
151 of overlapping relocations doesn't change. There really never
152 should be overlapping relocations but who knows.
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000153
154* mcs
155
156 Sun has it. Can modify sections which are not in segments.
157
158 -a string
159 Append string to the comment section of the ELF object
160 files. If string contains embedded blanks, it must be
161 enclosed in quotation marks.
162
163 -c Compress the contents of the comment section of the
164 ELF object files. All duplicate entries are removed.
165 The ordering of the remaining entries is not dis-
166 turbed.
167
168 -d Delete the contents of the comment section from the
169 ELF object files. The section header for the comment
170 section is also removed.
171
172 -n name
173 Specify the name of the comment section to access if
174 other than .comment. By default, mcs deals with the
175 section named .comment. This option can be used to
176 specify another section. mcs can take multiple -n
177 options to allow for specification of multiple sec-
178 tion comments.
179
180 -p Print the contents of the comment section on the stan-
181 dard output. Each section printed is tagged by the
182 name of the file from which it was extracted, using
183 the format file[member_name]: for archive files and
184 file: for other files.
185
186 -V Print on standard error the version number of mcs.
187
188Local Variables:
Ulrich Drepper3bf57592009-01-01 18:52:05 -0800189eval:(hide-sublevels 3)
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000190End: