|
Packit |
032894 |
ToDo list for elfutils -*-outline-*-
|
|
Packit |
032894 |
----------------------
|
|
Packit |
032894 |
|
|
Packit |
032894 |
Time-stamp: <2009-02-05 22:08:01 drepper>
|
|
Packit |
032894 |
|
|
Packit |
032894 |
* mkinstalldirs
|
|
Packit |
032894 |
|
|
Packit |
032894 |
Remove everywhere. Use mkdir -p.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
* libelf:
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** verify section
|
|
Packit |
032894 |
|
|
Packit |
032894 |
Currently the elf_update function trusts the user blindly if the
|
|
Packit |
032894 |
ELF_F_LAYOUT flag is set. This is OK if the data is prepared by a
|
|
Packit |
032894 |
ELF_C_NULL call but not if the user prepared the data herself
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** break out archive handling from elf_begin
|
|
Packit |
032894 |
|
|
Packit |
032894 |
The handling of archives (especially of the symbol tables) must be
|
|
Packit |
032894 |
broken out of elf_begin. There are several different forms of
|
|
Packit |
032894 |
archives and only when having the archive handling separately this
|
|
Packit |
032894 |
remains maintainable.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** shdrs in read-only files
|
|
Packit |
032894 |
|
|
Packit |
032894 |
When reading (ELF_C_READ*) then there is no need to malloc Shdr
|
|
Packit |
032894 |
structure in elfXX_getshdr if file is mmaped and unaligned access
|
|
Packit |
032894 |
is allowed or the structure is aligned. Use ELF_F_MALLOCED flag
|
|
Packit |
032894 |
to differentiate.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** shdrs after elf_cntl (ELF_C_FDREAD)
|
|
Packit |
032894 |
|
|
Packit |
032894 |
Similar to the above. After ELF_C_FDREAD the file is completely
|
|
Packit |
032894 |
in memory. See also this mailing list thread:
|
|
Packit |
032894 |
https://fedorahosted.org/pipermail/elfutils-devel/2012-July/002368.html
|
|
Packit |
032894 |
|
|
Packit |
032894 |
* libdw
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** More memory access checks needed
|
|
Packit |
032894 |
|
|
Packit |
032894 |
All accesses to the debug sections should make sure the offsets are
|
|
Packit |
032894 |
valid. This is currently especially a problem with leb128 accesses.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** Low level macro information operations
|
|
Packit |
032894 |
|
|
Packit |
032894 |
in 5.11.3 are not implemented. gcc currently does not emit this
|
|
Packit |
032894 |
information so I cannot test it.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** Rename dwarf_getabbrev
|
|
Packit |
032894 |
|
|
Packit |
032894 |
|
|
Packit |
032894 |
* libcpu
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** x86
|
|
Packit |
032894 |
|
|
Packit |
032894 |
*** Opcodes
|
|
Packit |
032894 |
|
|
Packit |
032894 |
crc32
|
|
Packit |
032894 |
extractps
|
|
Packit |
032894 |
pextrb
|
|
Packit |
032894 |
pextrd/pextrq
|
|
Packit |
032894 |
pextrw
|
|
Packit |
032894 |
pinsrq
|
|
Packit |
032894 |
popcnt 64-bit reg
|
|
Packit |
032894 |
|
|
Packit |
032894 |
* nm:
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** add demangler support
|
|
Packit |
032894 |
|
|
Packit |
032894 |
Use demangler from libiberty.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** add support to read debugging symbols
|
|
Packit |
032894 |
|
|
Packit |
032894 |
Implement -l option for BSD and POSIX format
|
|
Packit |
032894 |
|
|
Packit |
032894 |
|
|
Packit |
032894 |
* strip:
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** support SHT_SYMTAB_SHNDX
|
|
Packit |
032894 |
|
|
Packit |
032894 |
should be removed if not needed anymore
|
|
Packit |
032894 |
|
|
Packit |
032894 |
* ld:
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** sanity check .rel sh_info content
|
|
Packit |
032894 |
|
|
Packit |
032894 |
the sh_info of all .rel sections with the same name must point to
|
|
Packit |
032894 |
sections which also have the same name
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** use ld.so.conf
|
|
Packit |
032894 |
|
|
Packit |
032894 |
to locate shared libraries also use /etc/ld.so.conf
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** handle object files for different architectures
|
|
Packit |
032894 |
|
|
Packit |
032894 |
ld.so is expected to ignore object files for different architectures and
|
|
Packit |
032894 |
continue looking for a matching file (e.g., ignore 32-bit binaries on
|
|
Packit |
032894 |
64-bit platforms and vice versa). We probably need the same in ld.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** reuse after elf_end
|
|
Packit |
032894 |
|
|
Packit |
032894 |
Some files are closed using elf_end. They are removed from memory only
|
|
Packit |
032894 |
if no reference is left (especially for archives this is a problem).
|
|
Packit |
032894 |
The old mapping should be reused in that case. The problem is worse
|
|
Packit |
032894 |
for files which are not mapped read-only (archives again).
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** size for STT_SECTION entries
|
|
Packit |
032894 |
|
|
Packit |
032894 |
The STT_SECTION entries have zero for the size but can easily get
|
|
Packit |
032894 |
the size of the section.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** .eh_frame_hdr
|
|
Packit |
032894 |
|
|
Packit |
032894 |
Not implemented at all in the moment except for recognition of the option
|
|
Packit |
032894 |
itself.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** variables with aliases in executables
|
|
Packit |
032894 |
|
|
Packit |
032894 |
When linking an executable with a references against a variable in a
|
|
Packit |
032894 |
DSO, create symbol table entries for all the aliases of the variable
|
|
Packit |
032894 |
in the DSO and create a relocation for one of them (a non-weak
|
|
Packit |
032894 |
definition)
|
|
Packit |
032894 |
|
|
Packit |
032894 |
* elflint
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** additional checks
|
|
Packit |
032894 |
|
|
Packit |
032894 |
1st GOT entry == _DYNAMIC
|
|
Packit |
032894 |
|
|
Packit |
032894 |
check versioning info:
|
|
Packit |
032894 |
|
|
Packit |
032894 |
always BASE in verdef
|
|
Packit |
032894 |
sh_size/sh_entsize matches last offset != 0
|
|
Packit |
032894 |
|
|
Packit |
032894 |
check whether any relocation is for a merge-able section
|
|
Packit |
032894 |
|
|
Packit |
032894 |
check TLS relocation depencies
|
|
Packit |
032894 |
|
|
Packit |
032894 |
Check content of .eh_frame_hdr, .eh_frame, .gcc_except_table
|
|
Packit |
032894 |
|
|
Packit |
032894 |
*** for x86
|
|
Packit |
032894 |
|
|
Packit |
032894 |
check that R_386_TLS_GD is followed by R_386_PLT32 for __tls_get_addr
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** relax
|
|
Packit |
032894 |
|
|
Packit |
032894 |
prelink generated files
|
|
Packit |
032894 |
|
|
Packit |
032894 |
* elfcmp
|
|
Packit |
032894 |
|
|
Packit |
032894 |
** treat relocation sections special
|
|
Packit |
032894 |
|
|
Packit |
032894 |
Differences in the relocation sections can be ignored if all
|
|
Packit |
032894 |
the same symbols with the same targets are present and the order
|
|
Packit |
032894 |
of overlapping relocations doesn't change. There really never
|
|
Packit |
032894 |
should be overlapping relocations but who knows.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
* mcs
|
|
Packit |
032894 |
|
|
Packit |
032894 |
Sun has it. Can modify sections which are not in segments.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
-a string
|
|
Packit |
032894 |
Append string to the comment section of the ELF object
|
|
Packit |
032894 |
files. If string contains embedded blanks, it must be
|
|
Packit |
032894 |
enclosed in quotation marks.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
-c Compress the contents of the comment section of the
|
|
Packit |
032894 |
ELF object files. All duplicate entries are removed.
|
|
Packit |
032894 |
The ordering of the remaining entries is not dis-
|
|
Packit |
032894 |
turbed.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
-d Delete the contents of the comment section from the
|
|
Packit |
032894 |
ELF object files. The section header for the comment
|
|
Packit |
032894 |
section is also removed.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
-n name
|
|
Packit |
032894 |
Specify the name of the comment section to access if
|
|
Packit |
032894 |
other than .comment. By default, mcs deals with the
|
|
Packit |
032894 |
section named .comment. This option can be used to
|
|
Packit |
032894 |
specify another section. mcs can take multiple -n
|
|
Packit |
032894 |
options to allow for specification of multiple sec-
|
|
Packit |
032894 |
tion comments.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
-p Print the contents of the comment section on the stan-
|
|
Packit |
032894 |
dard output. Each section printed is tagged by the
|
|
Packit |
032894 |
name of the file from which it was extracted, using
|
|
Packit |
032894 |
the format file[member_name]: for archive files and
|
|
Packit |
032894 |
file: for other files.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
-V Print on standard error the version number of mcs.
|
|
Packit |
032894 |
|
|
Packit |
032894 |
Local Variables:
|
|
Packit |
032894 |
eval:(hide-sublevels 3)
|
|
Packit |
032894 |
End:
|