Blame TODO

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