Imported Upstream version 0.153
[platform/upstream/elfutils.git] / TODO
1                       ToDo list for elfutils                      -*-outline-*-
2                       ----------------------
3
4 Time-stamp: <2009-02-05 22:08:01 drepper>
5
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
25 ** 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
32
33 * libdw
34
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
47
48 * 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
62 * 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
103 ** 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
108 ** .eh_frame_hdr
109
110    Not implemented at all in the moment except for recognition of the option
111    itself.
112
113 ** 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
120 * elflint
121
122 ** additional checks
123
124    1st GOT entry == _DYNAMIC
125
126    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
133    check TLS relocation depencies
134
135    Check content of .eh_frame_hdr, .eh_frame, .gcc_except_table
136
137 *** for x86
138
139     check that R_386_TLS_GD is followed by R_386_PLT32 for __tls_get_addr
140
141 ** relax
142
143    prelink generated files
144
145 * 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.
153
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
188 Local Variables:
189 eval:(hide-sublevels 3)
190 End: