| 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: |