diff options
Diffstat (limited to 'libdwfl/ChangeLog')
-rw-r--r-- | libdwfl/ChangeLog | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 4f03855f..1b4a0463 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -125,11 +125,91 @@ * linux-kernel-modules.c (check_module_notes): Use FTS_LOGICAL so we accept symlinks. +2008-04-30 Petr Machata <pmachata@redhat.com> + + * dwfl_module_getdwarf.c + (find_debuginfo): Use mod->debug.cberr to record failure. + 2008-04-27 Roland McGrath <roland@redhat.com> * linux-kernel-modules.c (report_kernel): Fix crash when dwfl_report_elf fails. +2008-04-22 Petr Machata <pmachata@redhat.com> + + * libdwflP.h: Move Module.ebl to dwfl_shared_file. + * dwfl_module_getdwarf.c: Adjust to change above. Module.main's + ebl is always used. + * dwfl_module_register_names.c: Likewise. + * dwfl_module_return_value_location.c: Likewise. + * relocate.c: Likewise. + * dwfl_module.c: Move ebl_closebackend... + * dwfl_file.c: ... here. + +2008-04-22 Petr Machata <pmachata@redhat.com> + + * libdwflP.h: Add dwerr to dwfl_shared_file. Module.dwerr was + retained to record errors in establishing shared debug file. + * dwfl_nextcu.c: Adjust to above change. + * dwfl_module_getdwarf.c: Likewise. + (find_dw): Now returns Dwfl_Error. + +2008-04-22 Petr Machata <pmachata@redhat.com> + + * libdwflP.h: Move Module.dw to struct dwfl_shared_file + * cu.c: Adjust to above change. + * derelocate.c: Likewise. + * dwfl_module_getdwarf.c: Likewise. + * dwfl_module_getsrc_file.c: Likewise. + * dwfl_nextcu.c: Likewise. + * dwfl_module.c: Move dwarf_ending of dw... + * dwfl_file.c: ... here. + +2008-04-17 Petr Machata <pmachata@redhat.com> + + * dwfl_file.c (__libdwfl_open_file): Handle synthetic + ELF (non-null ELF handle, but fd==-1). Key it with all zeroes. + +2008-04-16 Petr Machata <pmachata@redhat.com> + + * dwfl_build_id_find_elf.c (open_and_check): New function, opens a + file and checks its build ID. + (__libdwfl_open_by_build_id): Change prototype. + (dwfl_build_id_find_elf): Only call __libdwfl_open_by_build_id. + * dwfl_module_build_id.c (__libdwfl_find_build_id): Pass build_id + pointer instead of dwfl Module argument. + (dwfl_module_build_id): Adjust to above: pass NULL instead of true. + * libdwflP.h: Adjust to changes above. + * dwfl_build_id_find_debuginfo.c + (dwfl_build_id_find_debuginfo): Call __libdwfl_open_file_build_id + to open file and check build ID. + * dwfl_module_getdwarf.c (find_file): Only open file if callback + didn't open it via __libdwfl_open_file_build_id already. + (find_debuginfo): Likewise. + +2008-04-14 Petr Machata <pmachata@redhat.com> + + * dwfl_build_id_find_elf.c (dwfl_build_id_find_elf): + Cache build_id if it is found to be valid. + +2008-04-11 Petr Machata <pmachata@redhat.com> + + * dwfl_module_build_id.c (found_build_id): Renamed to + __libdwfl_found_build_id, exported. + Now allocates struct build_id on the heap. + * libdwflP.h: Export above. + (BUILD_ID_NOT_FOUND): New macro holds value of cached + build-id-not-found pointer. + (BUILD_ID_PTR): Predicate of validity of build ID pointer. + (struct dwfl_shared_file, struct Dwfl_Module): Make struct + dwfl_build_id heap-allocated. + * dwfl_module_build_id.c (dwfl_module_report_build_id): Call + __libdwfl_found_build_id instead of duplicating the work. + Adjust to above changes. + * dwfl_build_id_find_elf.c, dwfl_file.c, dwfl_module.c, + dwfl_module_getdwarf.c, find-debuginfo.c, linux-kernel-modules.c: + Adjust to above changes. + 2008-04-05 Roland McGrath <roland@redhat.com> * linux-proc-maps.c (proc_maps_report): Don't leak LAST_FILE. @@ -157,6 +237,84 @@ prototype to avoid older compiler's complaint about reuse of the name. (__libdwfl_canon_error): Likewise. +2008-03-14 Petr Machata <pmachata@redhat.com> + + * libdwflP.h (Dwfl_Module.symerr): Delete field. + * dwfl_module_getdwarf.c: Adjust to above. + * relocate.c: Likewise. + +2008-03-14 Petr Machata <pmachata@redhat.com> + + * libdwflP.h (Dwfl_Module.elferr): Delete field. + (dwfl_file.cberr): New field. + * dwfl_module_getdwarf.c: Adjust to above. + +2008-03-13 Petr Machata <pmachata@redhat.com> + + * libdwflP.h (dwfl_shared_file.elferr): New field. + * dwfl_file.c: When reading of the Elf file failed, keep the cache + entry around to cache the failure. + * derelocate.c: Adjust to above. + * dwfl_module_getdwarf.c: Likewise. + * dwfl_module_info.c: Likewise. + * offline.c: Likewise. + +2008-03-07 Petr Machata <pmachata@redhat.com> + + * libdwflP.h + (struct dwfl_build_id): New structure. + (dwfl_shared_file.valid): Dropped. + (dwfl_shared_file.build_id): New field. + (Dwfl_Module.build_id_*): Dropped. + (Dwfl_Module.build_id): New field. + * dwfl_file.c + (__libdwfl_close_file): Always free filename. Also free build id. + * dwfl_module_report_build_id.c: Adjust to above. + * linux-kernel-modules.c: Likewise. + * dwfl_build_id_find_debuginfo.c: Drop validation. + * dwfl_build_id_find_elf.c: Adjust to above, drop validation. + * dwfl_module_build_id.c + (found_build_id): Take dwfl_build_id arg instead of Dwfl_Module. + (check_notes): Likewise. + (__libdwfl_find_build_id): Use appropriate build_id cache + Adjust the rest to above changes. + (dwfl_module_build_id): Likewise. + * find-debuginfo.c: Adjust to above. + (validate): Drop ELF backdooring for now. + +2008-03-07 Petr Machata <pmachata@redhat.com> + + * dwfl_file.c (__libdwfl_open_file): Call elf_cntl ELF_C_FDREAD if + possible, and consume fd right away. + * dwfl_module_getdwarf.c (load_dw): Remove ELF_C_FDREAD hack. + * offline.c (process_elf): Likewise. + * dwfl_report_elf.c (__libdwfl_report_elf): Return error instead + of asserting. + +2008-03-05 Petr Machata <pmachata@redhat.com> + + * libdwflP.h + (dwfl_shared_file): Renamed from dwfl_file. + (dwfl_file): New structure. + (DWBIAS, SYMBIAS): Adjust code to above change. + * delrelocate.c: Likewise. + * dwfl_build_id_find_debuginfo.c: Likewise. + * dwfl_build_id_find_elf.c: Likewise. + * dwfl_module.c: Likewise. + * dwfl_module_addrsym.c: Likewise. + * dwfl_module_build_id.c: Likewise. + * dwfl_module_getdwarf.c: Likewise. + * dwfl_module_getsym.c: Likewise. + * dwfl_module_info.c: Likewise. + * dwfl_module_report_build_id.c: Likewise. + * dwfl_report_elf.c: Likewise. + * dwfl_symtab.c: Likewise. + * find-debuginfo.c: Likewise. + * offline.c: Likewise. + * relocate.c: Likewise. + * dwfl_file.c: Likewise. + (__libdwfl_open_file): Consume passed-in Elf on cache hit. + 2008-02-19 Roland McGrath <roland@redhat.com> * relocate.c (relocate_section): Check for an unhandled relocation @@ -173,11 +331,122 @@ * dwfl_build_id_find_elf.c (__libdwfl_open_by_build_id): Don't clear incoming *FILE_NAME at the start. +2008-01-23 Petr Machata <pmachata@redhat.com> + + * relocate.c (find_relocation_symfile): New function. + (relocate_section): Take additional argument SYMFILE. + (__libdwfl_relocate, __libdwfl_relocate_section): Use above. + +2008-01-22 Petr Machata <pmachata@redhat.com> + + * dwfl_module_getdwarf.c (load_dw): Remove useless call to + find_symfile. + +2008-01-18 Petr Machata <pmachata@redhat.com> + + * relocate.c: + (struct reloc_symtab_cache): Drop. + (#define RELOC_SYMTAB_CACHE): Drop. + (relocate_getsym): Drop most of the code, inline the rest. + (resolve_symbol): Drop loading of symstrdata, that's already done + in __libdwfl_find_symtab. + (relocate_section): Inlined the rest of relocate_getsym. + (__libdwfl_relocate): Take dwfl_file instead of Elf. + (__libdwfl_relocate_section): Likewise. + * derelocate.c: Adjust to above. + * dwfl_module_getdwarf.c: Likewise. + * libdwflP.h (__libdwfl_relocate): Adjust prototype. + (__libdwfl_relocate_section): Likewise. + +2008-01-18 Petr Machata <pmachata@redhat.com> + + * dwfl_symtab.c: New file. + (__libdwfl_find_symtab): New function. + * Makefile.am: Add dwfl_symtab.c to the build process. + * dwfl_module_getdwarf.c + (load_symtab, find_offsets, find_dynsym): Move to dwfl_symtab.c + * libdwflP.h (struct dwfl_file.is_symtab): New field. + (struct dwfl_file.symerr): Likekwise. + +2008-01-14 Petr Machata <pmachata@redhat.com> + + * dwfl_file.c (__libdwfl_open_file): close the file descriptor + when reusing the node, and even when it was passed in by the caller. + (__libdwfl_close_file): Unconditionally close fd and call elf_end. + * dwfl_module_build_id.c: Formatting change. + * dwfl_module_getdwarf.c + (find_file): Return Dwfl_Error instead of void; adjust to changes + in __libdwfl_open_file. + (find_symtab): Take advantage from find_file returning Dwfl_Error. + (__libdwfl_module_getebl, find_dw, dwfl_module_getelf): Likewise. + 2008-01-08 Roland McGrath <roland@redhat.com> * Makefile.am (euinclude): Variable removed. (pkginclude_HEADERS): Set this instead of euinclude_HEADERS. +2007-12-11 Petr Machata <pmachata@redhat.com> + + * libdwflP.h + (struct dwfl_file.bias): Moved to struct Dwfl_Module. + (struct dwfl_file.align): New field. + (struct dwfl_file.start): New field. + (#define DWBIAS): New macro. + (#define SYMBIAS): New macro. + * cu.c: Use SYMBIAS/DWBIAS instead of main/debug->bias. + * derelocate.c: Likewise. + * dwfl_lineinfo.c: Likewise. + * dwfl_module_addrsym.c: Likewise. + * dwfl_module_build_id.c: Likewise. + * dwfl_module_getsym.c: Likewise. + * dwfl_module_info.c: Likewise. + * dwfl_nextcu.c: Likewise. + * dwfl_report_elf.c: Likewise. + * dwfl_module_getdwarf.c: Likewise. + +2007-12-10 Petr Machata <pmachata@redhat.com> + + * dwfl_file.c: Use likely/unlikely where possible. + * libdwflP.h (struct Dwfl_Module): Move symdata, syments, + symstrdata, symxndxdata, to struct dwfl_file. + * dwfl_module_getdwarf.c: Adjust to above changes. + (load_symtab): Drop the parameter `syments'. + (find_symtab): Use module->main or module->debug to initialize + module->symfile when possible. + * dwfl_module_getsym.c: Adjust to above changes. + * dwfl_report_elf.c: Likewise. + * relocate.c: Likewise. + +2007-12-05 Petr Machata <pmachata@redhat.com> + + * dwfl_file.c: New file. + * Makefile.am (libdwfl_a_SOURCES): Add dwfl_file.c. + * libdwflP.h + (__libdwfl_open_file): New internal function. + (__libdwfl_close_file): New internal function. + * cu.c: Adjust to the above change. + * derelocate.c: Likewise. + * dwfl_build_id_find_debuginfo.c: Likewise. + * dwfl_build_id_find_elf.c: Likewise. + * dwfl_lineinfo.c: Likewise. + * dwfl_module.c: Likewise. + * dwfl_module_build_id.c: Likewise. + * dwfl_module_getdwarf.c: Likewise. + * dwfl_module_info.c: Likewise. + * dwfl_module_report_build_id.c: Likewise. + * dwfl_nextcu.c: Likewise. + * dwfl_report_elf.c: Likewise. + * find-debuginfo.c: Likewise. + * offline.c: Likewise. + + * dwfl_module.c (free_file): Code moved to dwfl_file.c. + (__libdwfl_module_free): Call __libdwfl_release_file. + * dwfl_module_getdwarf.c (open_elf): Code moved to dwfl_file.c. + (find_file): Call __libdwfl_open_file. + (find_debuginfo): Likewise. + (find_dw): Call __libdwfl_retain_file instead of copying members. + * dwfl_report_elf.c (__libdwfl_report_elf): Call __libdwfl_open_file. + 2007-10-23 Roland McGrath <roland@redhat.com> * linux-kernel-modules.c (report_kernel_archive): Reorder the kernel |