196 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			196 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 		      ToDo list for elfutils                      -*-outline-*-
 | |
|                       ----------------------
 | |
| 
 | |
| Time-stamp: <2009-02-05 22:08:01 drepper>
 | |
| 
 | |
| * mkinstalldirs
 | |
| 
 | |
|   Remove everywhere.  Use mkdir -p.
 | |
| 
 | |
| * 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.
 | |
| 
 | |
| ** shdrs in read-only files
 | |
| 
 | |
|    When reading (ELF_C_READ*) then there is no need to malloc Shdr
 | |
|    structure in elfXX_getshdr if file is mmaped and unaligned access
 | |
|    is allowed or the structure is aligned.  Use ELF_F_MALLOCED flag
 | |
|    to differentiate.
 | |
| 
 | |
| ** shdrs after elf_cntl (ELF_C_FDREAD)
 | |
| 
 | |
|    Similar to the above. After ELF_C_FDREAD the file is completely
 | |
|    in memory.  See also this mailing list thread:
 | |
|    https://fedorahosted.org/pipermail/elfutils-devel/2012-July/002368.html
 | |
| 
 | |
| * libdw
 | |
| 
 | |
| ** 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
 | |
| 
 | |
| 
 | |
| * libcpu
 | |
| 
 | |
| ** x86
 | |
| 
 | |
| *** Opcodes
 | |
| 
 | |
|      crc32
 | |
|      extractps
 | |
|      pextrb
 | |
|      pextrd/pextrq
 | |
|      pextrw
 | |
|      pinsrq
 | |
|      popcnt 64-bit reg
 | |
| 
 | |
| * nm:
 | |
| 
 | |
| ** add demangler support
 | |
| 
 | |
|    Use demangler from libiberty.
 | |
| 
 | |
| ** add support to read debugging symbols
 | |
| 
 | |
|    Implement -l option for BSD and POSIX format
 | |
| 
 | |
| 
 | |
| * strip:
 | |
| 
 | |
| ** support SHT_SYMTAB_SHNDX
 | |
| 
 | |
|    should be removed if not needed anymore
 | |
| 
 | |
| * 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 also 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).
 | |
| 
 | |
| ** size for STT_SECTION entries
 | |
| 
 | |
|    The STT_SECTION entries have zero for the size but can easily get
 | |
|    the size of the section.
 | |
| 
 | |
| ** .eh_frame_hdr
 | |
| 
 | |
|    Not implemented at all in the moment except for recognition of the option
 | |
|    itself.
 | |
| 
 | |
| ** variables with aliases in executables
 | |
| 
 | |
|    When linking an executable with a references against a variable in a
 | |
|    DSO, create symbol table entries for all the aliases of the variable
 | |
|    in the DSO and create a relocation for one of them (a non-weak
 | |
|    definition)
 | |
| 
 | |
| * elflint
 | |
| 
 | |
| ** additional checks
 | |
| 
 | |
|    1st GOT entry == _DYNAMIC
 | |
| 
 | |
|    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
 | |
| 
 | |
|    check TLS relocation dependencies
 | |
| 
 | |
|    Check content of .eh_frame_hdr, .eh_frame, .gcc_except_table
 | |
| 
 | |
| *** for x86
 | |
| 
 | |
|     check that R_386_TLS_GD is followed by R_386_PLT32 for __tls_get_addr
 | |
| 
 | |
| ** relax
 | |
| 
 | |
|    prelink generated files
 | |
| 
 | |
| * elfcmp
 | |
| 
 | |
| ** treat relocation sections special
 | |
| 
 | |
|    Differences in the relocation sections can be ignored if all
 | |
|    the same symbols with the same targets are present and the order
 | |
|    of overlapping relocations doesn't change.  There really never
 | |
|    should be overlapping relocations but who knows.
 | |
| 
 | |
| * 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-sublevels 3)
 | |
| End:
 |