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