Squashed 'third_party/elfutils/' content from commit 555e15e

Change-Id: I61cde98949e47e5c8c09c33260de17f30921be79
git-subtree-dir: third_party/elfutils
git-subtree-split: 555e15ebe8bf1eb33d00747173cfc80cc65648a4
diff --git a/TODO b/TODO
new file mode 100644
index 0000000..ad10a5e
--- /dev/null
+++ b/TODO
@@ -0,0 +1,195 @@
+		      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 depencies
+
+   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: