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