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