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: