154 lines
4.5 KiB
Plaintext
154 lines
4.5 KiB
Plaintext
ToDo list for elfutils -*-outline-*-
|
|
----------------------
|
|
|
|
Time-stamp: <02/06/28 10:07:28 drepper>
|
|
|
|
|
|
* libelf:
|
|
|
|
** verify section
|
|
|
|
Currently the elf_update function trusts the user blindly if the
|
|
ELF_F_LAYOUT flag is set. This is OK if the data is prepared by a
|
|
ELF_C_NULL call but not if the user prepared the data herself
|
|
|
|
** break out archive handling from elf_begin
|
|
|
|
The handling of archives (especially of the symbol tables) must be
|
|
broken out of elf_begin. There are several different forms of
|
|
archives and only when having the archive handling separately this
|
|
remains maintainable.
|
|
|
|
|
|
* libdwarf
|
|
|
|
** Should we do more error checking?
|
|
|
|
Most functions don't check whether they get a NULL value passed for
|
|
a pointer argument. It could be argued that this is OK since it's
|
|
a bug inthe program. But perhaps one could catch the case and return
|
|
an error which would allow the program using libdwarf to have fewer
|
|
places with error checking.
|
|
|
|
** More memory access checks needed
|
|
|
|
All accesses to the debug sections should make sure the offsets are
|
|
valid. This is currently especially a problem with leb128 accesses.
|
|
|
|
** Low level macro information operations
|
|
|
|
in 5.11.3 are not implemented. gcc currently does not emit this
|
|
information so I cannot test it.
|
|
|
|
** Rename dwarf_getabbrev
|
|
|
|
** dwarf_loclist()
|
|
|
|
This function and its interface seem to be misdesigned. The specification
|
|
is unclear and its changed between v2 and v2.1. Other implementation
|
|
implement even different behavior.
|
|
|
|
|
|
* nm:
|
|
|
|
** add demangler support
|
|
|
|
Use demangler from libiberty.
|
|
|
|
** add support to read debugging symbols
|
|
|
|
after libdwarf is implemented use it to read debugging information.
|
|
sysv format needs output of line number
|
|
|
|
|
|
* strip:
|
|
|
|
** support SHT_SYMTAB_SHNDX
|
|
|
|
renumbering
|
|
should be removed if not needed anymore
|
|
|
|
follow and update cross-references in SHT_SYMTAB_SHNDX as well.
|
|
|
|
|
|
* ld:
|
|
|
|
** sanity check .rel sh_info content
|
|
|
|
the sh_info of all .rel sections with the same name must point to
|
|
sections which also have the same name
|
|
|
|
** use ld.so.conf
|
|
|
|
to locate shared libraries aslo use /etc/ld.so.conf
|
|
|
|
** handle object files for different architectures
|
|
|
|
ld.so is expected to ignore object files for different architectures and
|
|
continue looking for a matching file (e.g., ignore 32-bit binaries on
|
|
64-bit platforms and vice versa). We probably need the same in ld.
|
|
|
|
** reuse after elf_end
|
|
|
|
Some files are closed using elf_end. They are removed from memory only
|
|
if no reference is left (especially for archives this is a problem).
|
|
The old mapping should be reused in that case. The problem is worse
|
|
for files which are not mapped read-only (archives again).
|
|
|
|
|
|
* elflint
|
|
|
|
** additional checks
|
|
|
|
1st GOT entry == _DYNAMIC
|
|
|
|
if TEXTREL check whether any relocation touches RO segment
|
|
|
|
if TEXTREL not set check that no relocation touches RO segment
|
|
|
|
check versioning info:
|
|
|
|
always BASE in verdef
|
|
sh_size/sh_entsize matches last offset != 0
|
|
|
|
check whether any relocation is for a merge-able section
|
|
|
|
|
|
* mcs
|
|
|
|
Sun has it. Can modify sections which are not in segments.
|
|
|
|
-a string
|
|
Append string to the comment section of the ELF object
|
|
files. If string contains embedded blanks, it must be
|
|
enclosed in quotation marks.
|
|
|
|
-c Compress the contents of the comment section of the
|
|
ELF object files. All duplicate entries are removed.
|
|
The ordering of the remaining entries is not dis-
|
|
turbed.
|
|
|
|
-d Delete the contents of the comment section from the
|
|
ELF object files. The section header for the comment
|
|
section is also removed.
|
|
|
|
-n name
|
|
Specify the name of the comment section to access if
|
|
other than .comment. By default, mcs deals with the
|
|
section named .comment. This option can be used to
|
|
specify another section. mcs can take multiple -n
|
|
options to allow for specification of multiple sec-
|
|
tion comments.
|
|
|
|
-p Print the contents of the comment section on the stan-
|
|
dard output. Each section printed is tagged by the
|
|
name of the file from which it was extracted, using
|
|
the format file[member_name]: for archive files and
|
|
file: for other files.
|
|
|
|
-V Print on standard error the version number of mcs.
|
|
|
|
Local Variables:
|
|
eval:(hide-body)
|
|
End:
|