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