Home | History | Annotate | Download | only in elfutils
      1 		      ToDo list for elfutils                      -*-outline-*-
      2                       ----------------------
      3 
      4 Time-stamp: <2003-08-07 12:52:49 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 * libdwarf
     27 
     28 ** Should we do more error checking?
     29 
     30    Most functions don't check whether they get a NULL value passed for
     31    a pointer argument.  It could be argued that this is OK since it's
     32    a bug inthe program.  But perhaps one could catch the case and return
     33    an error which would allow the program using libdwarf to have fewer
     34    places with error checking.
     35 
     36 ** More memory access checks needed
     37 
     38    All accesses to the debug sections should make sure the offsets are
     39    valid.  This is currently especially a problem with leb128 accesses.
     40 
     41 ** Low level macro information operations
     42 
     43    in 5.11.3 are not implemented.  gcc currently does not emit this
     44    information so I cannot test it.
     45 
     46 ** Rename dwarf_getabbrev
     47 
     48 ** dwarf_loclist()
     49 
     50    This function and its interface seem to be misdesigned.  The specification
     51    is unclear and its changed between v2 and v2.1.  Other implementation
     52    implement even different behavior.
     53 
     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 
     97 ** size for STT_SECTION entries
     98 
     99    The STT_SECTION entries have zero for the size but can easily get
    100    the size of the section.
    101 
    102 * elflint
    103 
    104 ** additional checks
    105 
    106    1st GOT entry == _DYNAMIC
    107 
    108    if TEXTREL check whether any relocation touches RO segment
    109 
    110    if TEXTREL not set check that no relocation touches RO segment
    111 
    112    check versioning info:
    113 
    114      always BASE in verdef
    115      sh_size/sh_entsize matches last offset != 0
    116 
    117    check whether any relocation is for a merge-able section
    118 
    119 ** possibly missing tests
    120 
    121    at most one extended section index table for a symtab
    122 
    123    no extended section index table != ET_REL
    124 
    125    no extended section index table for SHT_DYNSYM
    126 
    127 
    128 * mcs
    129 
    130   Sun has it.  Can modify sections which are not in segments.
    131 
    132      -a string
    133            Append string to the comment section of the ELF object
    134            files. If  string contains embedded blanks, it must be
    135            enclosed in quotation marks.
    136 
    137      -c    Compress the contents of the comment  section  of  the
    138            ELF  object  files. All duplicate entries are removed.
    139            The ordering of the  remaining  entries  is  not  dis-
    140            turbed.
    141 
    142      -d    Delete the contents of the comment  section  from  the
    143            ELF  object  files. The section header for the comment
    144            section is also removed.
    145 
    146      -n name
    147            Specify the name of the comment section to  access  if
    148            other  than  .comment.  By default, mcs deals with the
    149            section named .comment. This option  can  be  used  to
    150            specify  another  section.  mcs  can  take multiple -n
    151            options to allow for specification of   multiple  sec-
    152            tion comments.
    153 
    154      -p    Print the contents of the comment section on the stan-
    155            dard  output.  Each  section  printed is tagged by the
    156            name of the file from which it  was  extracted,  using
    157            the  format  file[member_name]:  for archive files and
    158            file:  for other files.
    159 
    160      -V    Print on standard error the version number of mcs.
    161 
    162 Local Variables:
    163 eval:(hide-body)
    164 End:
    165