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