2019-10-07  Omar Sandoval  <osandov@fb.com>

	* dwfl_frame.c (dwfl_getthreads): Get rid of unnecessary
	thread_free_all_states calls.
	(getthread): Ditto.
	(state_free): Remove function.
	(thread_free_all_states): Remove function.
	(free_states): Add function.
	(dwfl_thread_getframes): Don't update thread->unwound while unwinding.
	* libdwflP.h (struct Dwfl_Thread): Update comment for unwound member.

2019-08-12  Mark Wielaard  <mark@klomp.org>

	* gzip.c (open_stream): Return DWFL_E_ERRNO on bad file operation.
	* open.c (libdw_open_elf): New argument bad_elf_ok. Check it and
	return DWFL_E_NOERROR in case it is set and error was DWFL_E_BADELF.
	(__libdw_open_file): Call libdw_open_elf with bad_elf_ok false.
	(__libdw_open_elf): Call libdw_open_elf with bad_elf_ok true.

2019-08-05  Omar Sandoval  <osandov@fb.com>

	* dwfl_segment_report_module.c (dwfl_segment_report_module): Assign
	mod->main.fd.

2019-04-28  Mark Wielaard  <mark@klomp.org>

	* frame_unwind.c (expr_eval): Make sure we left shift a unsigned
	64bit value.

2019-04-28  Mark Wielaard  <mark@klomp.org>

	* cu.c (addrarange): Only call realloc when naranges is not zero.

2019-03-27  Mark Wielaard  <mark@klomp.org>

	* dwfl_segment_report_module.c (dwfl_segment_report_module): Check
	ph_buffer_size vs xlatefrom.d_size after read_portion call.

2019-02-24  Mark Wielaard  <mark@klomp.org>

	* linux-kernel-modules.c (intuit_kernel_bounds): Init *notes before
	fopen.
	(dwfl_linux_kernel_report_kernel): Remove fake note init empty asm.

2019-01-25  Yonghong Song  <yhs@fb.com>

	* linux-proc-maps.c (proc_maps_report): Use PRIu64, not PRIi64, to
	read the inode number.

2019-01-20  Mark Wielaard  <mark@klomp.org>

	* dwfl_segment_report_module.c (dwfl_segment_report_module): Check
	dyn_filesz vs dyn_data_size after read_portion call.

2019-01-16  Mark Wielaard  <mark@klomp.org>

	* linux-core-attach.c (core_next_thread): Pass desc to ebl_core_note.
	(core_set_initial_registers): Likewise.

2018-10-23  Mark Wielaard  <mark@klomp.org>

	* relocate.c (relocate_section): Only sanity check mmapped Elf files
	for overlap. Don't error when section data was malloced, not mmapped.

2018-10-20  Mark Wielaard  <mark@klomp.org>

	* libdwflP.h (__libdw_open_elf): New internal function declaration.
	* open.c (what_kind): Rename close_fd to may_close_fd.
	(__libdw_open_file): Replaced (and renamed) by a call to ...
	(libdw_open_elf): this. And add never_close_fd argument.
	(__libdw_open_elf): New function that calls libdw_open_elf.

2018-10-18  Mark Wielaard  <mark@klomp.org>

	* dwfl_segment_report_module.c (consider_note): Take align as new
	argument.  Use align to set d_type and calculate padding.
	(dwfl_segment_report_module): Pass align to consider_notes.
	* core-file.c (dwfl_core_file_report): Check p_align to set ELF
	type.
	* linux-kernel-modules.c (check_notes): Check name and type of note
	to determine padding.

2018-10-19  Mark Wielaard  <mark@klomp.org>

	* dwfl_module_getdwarf.c (find_aux_sym): Check sh_entsize is not zero.

2018-10-14  Mark Wielaard  <mark@klomp.org>

	* dwfl_segment_report_module.c (read_portion): Check requested
	filesz isn't larger than buffer_available.
	(dwfl_segment_report_module): Check data_size vs filesz after
	read_portion call.

2018-10-02  Andreas Schwab  <schwab@suse.de>

	* relocate.c (relocate): Handle ADD/SUB relocations.

2018-09-13  Mark Wielaard  <mark@klomp.org>

	* dwfl_segment_report_module.c (dwfl_segment_report_module):
	Document why we use e_shnum directly.
	* elf-from-memory.c (elf_from_remote_memory): Likewise.

2018-07-17  Ulf Hermann  <ulf.hermann@qt.io>

	* linux-pid-attach.c: Include sys/uio.h only on linux.

2018-06-04  Mark Wielaard  <mark@klomp.org>

	* libdwflP.h (__libdwfl_addrsym): Remove function declaration.
	* dwfl_module_addrsym.c (__libdwfl_addrsym): Make a static function.

2018-05-27  Mark Wielaard  <mark@klomp.org>

	* relocate.c (__libdwfl_relocate): Always call relocate_section with
	partial true.

2018-05-17  Mark Wielaard  <mark@klomp.org>

	* dwfl_module (__libdwfl_module_free): Free elfdir.
	* dwfl_module_getdwarf.c (load_dw): Close file descriptors after
	dwarf_begin_elf call. Set Dwarf debugdir if it is NULL, this is the
	main module file and we recorded the elfdir.
	* libdwflP.h (struct Dwfl_Module): Add elfdir field.
	* offline.c (process_elf): Record the elfdir before we close the
	main ELF file descriptor.

2018-04-10  Mark Wielaard  <mark@klomp.org>

	* frame_unwind.c (unwind): If __libdwfl_frame_reg_get fails for
	the return address either set an error or mark the pc undefined.

2018-03-17  Mark Wielaard  <mark@klomp.org>

	* libdwflP.h (struct __libdwfl_remote_mem_cache): New.
	(struct __libdwfl_pid_arg): Add mem_cache field.
	* linux-pid-attach.c (read_cached_memory): New function.
	(clear_cached_memory): Likewise.
	(pid_memory_read): Call read_cached_memory.
	(pid_detach): Free mem_cache.
	(pid_thread_detach): Call clear_cached_memory.
	(dwfl_linux_proc_attach): Initialize mem_cache to NULL.

2018-03-05  Mark Wielaard  <mark@klomp.org>

	* dwfl_build_id_find_elf.c (__libdwfl_open_by_build_id): Use
	realpath (name, NULL) instead of canonicalize_file_name (name).
	* find-debuginfo.c (dwfl_standard_find_debuginfo): Likewise.

2018-01-29  Mark Wielaard  <mark@klomp.org>

	* cu.c (cudie_offset): Use __libdw_first_die_off_from_cu instead of
	DIE_OFFSET_FROM_CU_OFFSET.
	(intern_cu): Simply use a copy of the given die CU as key instead of
	trying to construct a dummy one by hand.

2018-02-15  Mark Wielaard  <mark@klomp.org>

	* linux-pid-attach.c: Include sys/wait.h after sys/ptrace.h.

2018-02-09  Joshua Watt  <JPEWhacker@gmail.com>

	* dwfl_report_elf.c (__libdwfl_elf_address_range): Use FALLTHROUGH
	macro instead of comment.
	* frame_unwind.c (expr_eval): Likewise.

2017-11-20  Mark Wielaard  <mark@klomp.org>

	* link_map.c (do_check64): Take a char * and calculate type and val
	offsets before reading, possibly unaligned, values.
	(do_check32): Likewise.
	(check64): Remove define.
	(check32): Likewise.
	(auxv_format_probe): Call do_check32 and do_check64 directly with
	a, possibly unaligned, auxv entry pointer.
	(dwfl_link_map_report): Redefine AUXV_SCAN to not dereference a
	possibly unaligned auxv entry pointer.

2017-10-16  Mark Wielaard  <mark@klomp.org>

	* argp-std.c (parse_opt): For -k call argp_failure not failure to
	keep dwfl around.

2017-07-26  Yunlian Jiang  <yunlian@google.com>

	* argp-std.c (failure): Move to file scope.
	(fail): Likewise.

2017-04-20  Ulf Hermann  <ulf.hermann@qt.io>
	    Mark Wielaard  <mark@klomp.org>

	* derelocate.c (compare_secrefs): Compare by end address and then by
	section number if addresses are equal.

2017-04-20  Ulf Hermann  <ulf.hermann@qt.io>
	    Mark Wielaard  <mark@klomp.org>

	* linux-kernel-modules.c: Always return NULL from kernel_release() on
	non-linux systems and set errno to ENOTSUP.

2017-04-20  Ulf Hermann  <ulf.hermann@qt.io>

	* libdwflP.h: Don't include config.h.
	* argp-std.c: Include config.h.
	* cu.c: Likewise.
	* derelocate.c: Likewise.
	* dwfl_addrdie.c: Likewise.
	* dwfl_addrdwarf.c: Likewise.
	* dwfl_addrmodule.c: Likewise.
	* dwfl_begin.c: Likewise.
	* dwfl_build_id_find_debuginfo.c: Likewise.
	* dwfl_build_id_find_elf.c: Likewise.
	* dwfl_cumodule.c: Likewise.
	* dwfl_dwarf_line.c: Likewise.
	* dwfl_end.c: Likewise.
	* dwfl_frame.c: Likewise.
	* dwfl_frame_regs.c: Likewise.
	* dwfl_getdwarf.c: Likewise.
	* dwfl_getmodules.c: Likewise.
	* dwfl_getsrc.c: Likewise.
	* dwfl_getsrclines.c: Likewise.
	* dwfl_line_comp_dir.c: Likewise.
	* dwfl_linecu.c: Likewise.
	* dwfl_lineinfo.c: Likewise.
	* dwfl_linemodule.c: Likewise.
	* dwfl_module.c: Likewise.
	* dwfl_module_addrdie.c: Likewise.
	* dwfl_module_addrname.c: Likewise.
	* dwfl_module_addrsym.c: Likewise.
	* dwfl_module_build_id.c: Likewise.
	* dwfl_module_dwarf_cfi.c: Likewise.
	* dwfl_module_eh_cfi.c: Likewise.
	* dwfl_module_getdarf.c: Likewise.
	* dwfl_module_getelf.c: Likewise.
	* dwfl_module_getsrc.c: Likewise.
	* dwfl_module_getsrc_file.c: Likewise.
	* dwfl_module_getsym.c: Likewise.
	* dwfl_module_info.c: Likewise.
	* dwfl_module_nextcu.c: Likewise.
	* dwfl_module_register_names.c: Likewise.
	* dwfl_module_report_build_id.c: Likewise.
	* dwfl_module_return_value_location.c: Likewise.
	* dwfl_nextcu.c: Likewise.
	* dwfl_onesrcline.c: Likewise.
	* dwfl_report_elf.c: Likewise.
	* dwfl_validate_address.c: Likewise.
	* dwfl_version.c: Likewise.
	* find-debuginfo.c: Likewise.
	* gzip.c: Likewise.
	* image-header.c: Likewise.
	* lines.c: Likewise.
	* linux-core-attach.c: Likewise.
	* linux-pid-attach.c: Likewise.
	* offline.c: Likewise.
	* open.c: Likewise.
	* relocate.c: Likewise.
	* segment.c: Likewise.

2017-04-20  Ulf Hermann  <ulf.hermann@qt.io>

	* libdwfl.h: Use __const_attribute__.

2017-04-20  Ulf Hermann  <ulf.hermann@qt.io>

	* elf-from-memory.c: Explicitly cast phnum to size_t.

2017-04-20  Ulf Hermann  <ulf.hermann@qt.io>

	* dwfl_module_getdwarf.c: Check shnum for 0 before subtracting from
	it.

2017-04-20  Ulf Hermann  <ulf.hermann@qt.io>

	* dwfl_frame.c: Drop unused sys/ptrace.h include.
	* frame_unwind.c: Likewise.
	* linux-pid-attach.c: Include sys/ptrace.h and sys/syscall.h only on
	linux.

2017-04-20  Ulf Hermann <ulf.hermann@qt.io>

	* linux-kernel-modules.c: Include sys/types.h before fts.h

2017-03-24  Mark Wielaard  <mark@klomp.org>

	* linux-core-attach.c (core_next_thread): If n_namesz == 0 then
	the note name data is the empty string.
	(dwfl_core_file_attach): Likewise.

2017-02-15  Ulf Hermann  <ulf.hermann@qt.io>

	* linux-kernel-modules.c: Include system.h.

2017-02-15  Ulf Hermann  <ulf.hermann@qt.io>

	* linux-kernel-modules.c: Use sysconf(_SC_PAGESIZE) to get page size.
	* linux-proc-maps.c: Likewise.

2016-12-29  Luiz Angelo Daros de Luca  <luizluca@gmail.com>

	* dwfl_build_id_find_elf.c: Include system.h.
	* dwfl_module_getdwarf.c: Likewise.
	* libdwfl_crc32_file.c: Don't define LIB_SYSTEM_H.

2016-11-23  Mark Wielaard  <mjw@redhat.com>

	* linux-kernel-modules.c: Only include fts.h early if BAD_FTS is
	defined.

2016-10-11  Akihiko Odaki  <akihiko.odaki.4i@stu.hosei.ac.jp>

	* core-file.c: Remove sys/param.h.
	* dwfl_segment_report_module.c: Likewise. Add system.h include.
	(MAX): Remove definition.
	* frame_unwind.c: Add system.h include.
	(MAX): Remove definition.
	* linux-core-attach.c (MIN): Remove definition.
	* linux-pid-attach.c (MAX): Likewise.

2016-08-12  Mark Wielaard  <mjw@redhat.com>

	* link_map.c (dwfl_link_map_report): Fix assert, set in.d_size.

2016-04-14  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getsrc_file.c (dwfl_module_getsrc_file): Free match
	on invalid DWARF if we allocated it.

2016-04-14  Mark Wielaard  <mjw@redhat.com>

	* linux-proc-maps.c (proc_maps_report): Free last_file on bad file
	mapping.

2016-03-01  Steven Chamberlain  <steven@pyro.eu.org>

	* linux-pid-attach.c: Removed unused pid_thread_callbacks,
	pid_thread_detach, pid_detach, pid_set_initial_registers,
	pid_memory_read, pid_getthread, pid_next_thread in #ifndef
	__linux__ code.

2016-02-22  Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
	    Mark Wielaard  <mjw@redhat.com>

	* find-debuginfo.c (find_debuginfo_in_path): Remember whether
	debuglink_file is NULL. Try file basename (without .debug) ofr
	absolute and relative path if debug_file was NULL.
	* linux-kernel-modules.c (try_kernel_name): If try_debug is true call
	dwfl_standard_find_debuginfo with NULL debuglink_file, otherwise with
	basename of fname.

2016-02-13  Mark Wielaard  <mjw@redhat.com>

	* linux-proc-maps.c (proc_maps_report): Free last_file when ENOEXEC.

2016-02-13  Mark Wielaard  <mjw@redhat.com>

	* frame_unwind.c (new_unwound): Check and return unwound.
	(handle_cfi): Check new_unwound was able to allocate new memory
	before use. Return DWFL_E_NOMEM otherwise.

2016-02-11  Mark Wielaard  <mjw@redhat.com>

	* relocate.c (relocate_section): Check result of all gelf_get* calls.
	(__libdwfl_relocate): Likewise.
	(__libdwfl_relocate_section): Likewise.

2016-02-11  Mark Wielaard  <mjw@redhat.com>

	* relocate.c (relocate_section): Check result of gelf_update_* calls.

2016-01-08  Mark Wielaard  <mjw@redhat.com>

	* libdwfl_a_SOURCES: Unconditionally add gzip.c.
	* linux-kernel-modules.c (vmlinux_suffixes): We always have at least
	.gz support.
	(try_kernel_name): Likewise.
	(check_suffix): Likewise.
	* open.c (decompress): Likewise.

2015-12-18  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getdwarf.c (find_symtab): Uncompress symstr, xndx, sym
	sections and aux_str, aux_xndx and aux_sym sections if necessary.
	* relocate.c (relocate_getsym): Uncompress symtab and symtab_shndx
	if necessary.
	(resolve_symbol): Uncompress strtab section if necessary.
	(relocate_section): Uncompress the section the relocations apply to
	if necessary.

2015-11-18  Chih-Hung Hsieh <chh@google.com>

	* linux-proc-maps.c (proc_maps_report): Move nested function
	'report' to file scope.

2015-11-18  Chih-Hung Hsieh <chh@google.com>

	* core-file.c (elf_begin_rand): Move nested function 'fail' to file
	scope.
	* core-file.c (dwfl_elf_phdr_memory_callback): Move nested functions
	'update_end' and 'more' to file scope.

2015-11-17  Chih-Hung Hsieh <chh@google.com>

	* link_map.c (auxv_format_probe): Move nested functions
	check64 and check32 to file scope.

2015-12-08  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* dwfl_frame.c (state_fetch_pc): Add a backend-defined offset to
	the value of the return address register as defined by the CFI
	abi.
	* frame_unwind.c (handle_cfi): Likewise.

2015-12-01  Mark Wielaard  <mjw@redhat.com>

	* link_map.c (dwfl_link_map_report): Track whether in.d_buf comes
	from exec or memory_callback, free as appropriate.

2015-12-01  Mark Wielaard  <mjw@redhat.com>

	* libdwflP.h (struct Dwfl_User_Core): New.
	(struct DWfl): Replace executable_for_core with user_core.
	* argp-std.c (parse_opt): Store core and fd in Dwfl user_core.
	* core-file.c (dwfl_core_file_report): Check and store
	executable_for_core in Dwfl user_core.
	* dwfl_build_id_find_elf.c (dwfl_build_id_find_elf): Check and use
	executable_for_core in Dwfl user_core.
	* dwfl_end.c (dwfl_end): Release resources held in Dwfl user_core.
	* link-map.c (report_r_debug): Check executable_for_core in Dwfl
	user_core.
	(dwfl_link_map_report): Likewise.

2015-11-16  Chih-Hung Hsieh <chh@google.com>

	* dwfl_module_getdwarf.c (find_prelink_address_sync): Move nested
	function 'consider_shdr' to file scope.
	* dwfl_module_getdwarf.c (find_dynsym): Move nested function
	'translate_offs' to file scope.

2015-11-16  Chih-Hung Hsieh <chh@google.com>

	* dwfl_module_addrsym.c (__libdwfl_addrsym): Move nested functions
	'same_section', 'binding_value', 'try_sym_value', and 'search_table'
	to file scope.

2015-11-19  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module.c (__libdwfl_module_free): Remove Dwfl_Module Ebl from
	eh_cfi and dwarf_cfi cache if necessary before calling dwarf_end and
	dwarf_cfi_end.

2015-11-13  Chih-Hung Hsieh <chh@google.com>

	* gzip.c (unzip): Move nested functions to file scope.

2015-10-21  Chih-Hung Hsieh <chh@google.com>
	    Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getsrc_file.c (dwfl_module_getsrc_file): Move nested
	functions 'dwarf_line_file', 'dwfl_line', and 'dwfl_line_file' to
	file scope. Rename dwarf_line_file to dwfl_dwarf_line_file. Don't
	use INTUSE.

2015-10-21  Chih-Hung Hsieh <chh@google.com>

	* frame_unwind.c (expr_eval): Move nested function 'push' and 'pop'
	to file scope. Pass used local variables in struct eval_stack.

2015-10-21  Chih-Hung Hsieh <chh@google.com>

	* dwfl_module.c (dwfl_report_module): Move nested function 'use' to
	file scope.

2015-10-09  Josh Stone  <jistone@redhat.com>

	* core-file.c (elf_begin_rand): Replace loff_t with off_t.
	* open.c (decompress): Replace off64_t with off_t.
	* gzip.c (unzip): Likewise.
	* image-header.c (__libdw_image_header): Likewise.
	* libdwflP.h: Likewise in function declarations.
	* argp-std.c (parse_opt): Replace open64 with open.
	* dwfl_build_id_find_elf.c (__libdwfl_open_mod_by_build_id,
	dwfl_build_id_find_elf): Likewise.
	* dwfl_module_getdwarf.c (open_elf_file): Likewise.
	* dwfl_report_elf.c (dwfl_report_elf): Likewise.
	* dwfl_segment_report_module.c (dwfl_segment_report_module): Likewise.
	* link_map.c (report_r_debug): Likewise.
	* offline.c (dwfl_report_offline): Likewise.
	* linux-proc-maps.c (grovel_auxv, get_pid_class,
	dwfl_linux_proc_find_elf): Likewise.
	(read_proc_memory): Replace off64_t with off_t.
	* find-debuginfo.c (find_debuginfo_in_path): Replace stat64 and
	fstat64 with stat and fstat.
	(try_open): Likewise, and replace open64 with open.
	* linux-kernel-modules.c: Manually define open and fopen to open64 and
	fopen64 when needed, since the early fts.h include breaks that.
	(try_kernel_name): Replace open64 with open.
	(check_notes): Likewise.

2015-10-09  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* linux-proc-maps.c (read_proc_memory): Use seek+read instead of
	pread, as the later doesn't accept negative offsets.

2015-10-07  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getdwarf.c (MAX): Removed.
	(find_prelink_address_sync): Allocate exact amount of bytes for
	phdrs and shdrs.
	* dwfl_segment_report_module.c (dwfl_segment_report_module):
	Likewise for phdrs.
	* elf-from-memory.c (MAX): Removed.
	(elf_from_remote_memory): Allocate exact amount of bytes for phdrs.

2015-10-05  Chih-Hung Hsieh <chh@google.com>

	* dwfl_module_getdwarf.c (find_prelink_address_sync): Do not use
	union of variable length arrays.
	* dwfl_segment_report_module.c (dwfl_segment_report_module): Likewise.
	* elf-from-memory.c (elf_from_remote_memory): Likewise.
	* link_map.c (auxv_format_probe): Likewise.
	* link_map.c (report_r_debug): Likewise.
	* link_map.c (dwfl_link_map_report): Likewise.

2015-09-18  Chih-Hung Hsieh  <chh@google.com>

	* relocate.c (relocate_section): Move nested function "relocate"
	to file scope, pass all used local variables as constants.
	Move nested "check_badreltype" to file scope, pass addresses of
	updated used local variables.
	* linux-kernel-modules.c (intuit_kernel_bounds): Move nested function
	"read_address" to file scope, pass all updated local variables in
	a state structure.
	* linux-kernel-modules.c (dwfl_linux_kernel_find_elf): Move nested
	function "subst_name" to file scope, pass all used local variables
	as constants.
	* linux-kernel-modules.c (dwfl_linux_kernel_report_kernel): Replace
	simple nested function "report" with a macro. Work around gcc static
	analysis error -Werror=maybe-uninitialized.

2015-09-22  Mark Wielaard  <mjw@redhat.com>

	* core-file.c: Remove old-style function definitions.
	* dwfl_error.c: Likewise.
	* dwfl_module_dwarf_cfi.c: Likewise.
	* dwfl_module_eh_cfi.c: Likewise.
	* dwfl_module_register_names.c: Likewise.
	* dwfl_module_return_value_location.c: Likewise.
	* dwfl_version.c: Likewise.

2015-09-09  Chih-Hung Hsieh  <chh@google.com>
	    Mark Wielaard  <mjw@redhat.com>

	* dwfl_frame.c (dwfl_attach_state): Remove redundant NULL tests
	on parameters declared with __nonnull_attribute__.
	* libdwfl.h (dwfl_module_getelf): Don't mark first argument as
	nonnull.

2015-09-08  Mark Wielaard  <mjw@redhat.com>

	* libdwflP.h (struct __libdwfl_pid_arg): Add elf and elf_fd.
	* linux-pid-attach.c (pid_detach): Call elf_end and close.
	(dwfl_linux_proc_attach): Open and save /proc/PID/exe.

2015-09-04  Chih-Hung Hsieh  <chh@google.com

	* frame_unwind.c (expr_eval): Use llabs instead of abs.

2015-08-14  Dodji Seketeli  <dodji@seketeli.org>

	* find-debuginfo.c (find_debuginfo_in_path): Try to locate the
	debug info file named debuglink_file under
	mod->dwfl->callbacks->debuginfo_path, by looking at
	the set of sub-trees under mod->dwfl->callbacks->debuginfo_path
	which is common to the set of non-absolute parent trees of
	file_name.

2015-06-18  Mark Wielaard  <mjw@redhat.com>

	* find-debuginfo.c (try_open): Free fname on all failure paths.

2015-06-18  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getdwarf.c (find_symtab): Check shdr is not NULL and
	sh_entsize is not zero.

2015-06-06  Mark Wielaard  <mjw@redhat.com>

	* find-debuginfo.c (find_debuginfo_in_path): Always free localpath,
	localname and file_dirname.

2015-06-06  Mark Wielaard  <mjw@redhat.com>

	* derelocate.c (cache_sections): Free sortrefs.

2015-06-05  Mark Wielaard  <mjw@redhat.com>

	* dwfl_segment_report_module.c (dwfl_segment_report_module):
	If the note_file exists, but the build_id doesn't match discard
	the file and continue reporting.

2015-06-01  Mark Wielaard  <mjw@redhat.com>

	* dwfl_build_id_find_elf.c (__libdwfl_open_by_build_id): Copy path
	pointer before passing to strsep.

2015-05-30  Mark Wielaard  <mjw@redhat.com>

	* link_map.c (check32): Use read_4ubyte_unaligned_noncvt to read
	type and value.
	(read_addrs): Use read_(4|8)ubyte_unaligned_noncvt or to read
	adresses.

2015-05-30  Mark Wielaard  <mjw@redhat.com>

	* find-debuginfo.c (dwfl_standard_find_debuginfo): Check file_name is
	not NULL before calling canonicalize_file_name.

2015-05-24  Mark Wielaard  <mjw@redhat.com>

	* derelocate.c (check_module): Check mod is not NULL.

2015-05-22  Mark Wielaard  <mjw@redhat.com>

	* link_map.c (dwfl_link_map_report): Allocate phdrs and dyn with
	malloc instead of stack allocating. Call free when done with data.

2015-05-22  Mark Wielaard  <mjw@redhat.com>

	* dwfl_segment_report_module.c (dwfl_segment_report_module):
	Allocate phdrs with malloc, not on stack. free in finish.
	Allocate dyn with malloc, not on stack, free after use.

2015-05-22  Mark Wielaard  <mjw@redhat.com>

	* find-debuginfo.c (find_debuginfo_in_path): malloc or strdup,
	instead of alloca or strdupa, local strings of unknown size.
	Call free before return.

2015-05-22  Mark Wielaard  <mjw@redhat.com>

	* dwfl_build_id_find_elf.c (__libdwfl_open_by_build_id): Return
	error when id_len too small or too large. strdup, not strdupa,
	and free path when done.

2015-05-19  Mark Wielaard  <mjw@redhat.com>

	* elf-from-memory.c (elf_from_remote_memory): Don't allocate all
	phdrs on the stack. Allocate with malloc and free when done.

2015-05-19  Mark Wielaard  <mjw@redhat.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_find_elf): malloc and
	free alternate_name.

2015-05-19  Mark Wielaard  <mjw@redhat.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_report_offline): Don't
	stack allocate name. Only change chars up to suffix.

2015-05-18  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getdwarf.c (find_prelink_address_sync): Allocate
	phdrs and shdrs unions with malloc, not alloca. Free after use.

2015-05-18  Mark Wielaard  <mjw@redhat.com>

	* derelocate.c (cache_sections): Allocate temporary newrefs and
	sortrefs with malloc, not alloca. Always free them on return.

2015-05-07  Mark Wielaard  <mjw@redhat.com>

	* cu.c (intern_cu): Check for EOF and check cuoff points to a real
	Dwarf_Die before interning. Explicitly check EOF is expected.

2015-05-05  Mark Wielaard  <mjw@redhat.com>

	* dwfl_lineinfo.c (dwfl_lineinfo): Check info->file is valid.

2015-05-06  Roland McGrath  <roland@hack.frob.com>

	* dwfl_error.c (struct msgtable): Break type definition out of
	the 'msgtable' initializer.
	(msgtable): Make it a union of struct msgtable and a char array.
	(msgstr): Use the full-table char array rather than the msg_0 entry.

2015-04-23  Max Filippov  <jcmvbkbc@gmail.com>

	* core-file.c (_compat_without_executable_dwfl_core_file_report):
	Guard with SYMBOL_VERSIONING.
	* dwfl_module_build_id.c (_compat_vaddr_at_end_dwfl_module_build_id):
	Likewise.
	* dwfl_report_elf.c (_compat_without_add_p_vaddr_dwfl_report_elf):
	Likewise.

2015-04-02  Mark Wielaard  <mjw@redhat.com>

	* segment.c (insert): Check correct number of lookup_elts.

2015-03-31  Mark Wielaard  <mjw@redhat.com>

	* core-file.c (core_file_read_eagerly): Special case small images.

2015-01-26  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getdwarf.c (find_symtab): Explicitly clear symdata,
	syments and first_global on elferr before calling find_dynsym.

2014-12-27  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getsrc.c (dwfl_module_getsrc): Never match a line that
	has end_sequence set.

2015-01-04  Mark Wielaard  <mjw@redhat.com>

	* cu.c (intern_cu): Store result and return directly when finding
	EOF marker.
	(__libdwfl_nextcu): Check *nextp as returned by intern_cu isn't -1.

2014-12-19  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getdwarf.c (find_symtab): Always try find_dynsym last.

2014-12-19  Mark Wielaard  <mjw@redhat.com>

	* elf-from-memory.c (handle_segment): Remove palign sanity check.

2014-12-18  Mark Wielaard  <mjw@redhat.com>

	* relocate.c (resolve_symbol): Make sure symstrdata->d_buf != NULL.

2014-12-13  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getdwarf.c (find_dynsym): elf_getdata_rawchunk takes
	a size_t, make sure it doesn't overflow.

2014-12-13  Mark Wielaard  <mjw@redhat.com>

	* cu.c (cudie_offset): Make sure Dwarf_Off difference doesn't
	wrap around before returning as int.

2014-12-11  Josh Stone  <jistone@redhat.com>

	* dwfl_module_getsrc.c (dwfl_module_getsrc): Return the *last* line
	record <= addr, rather than returning immediately on matches.

2014-12-09  Mark Wielaard  <mjw@redhat.com>

	* dwfl_segment_report_module.c (handle_file_note): Check count doesn't
	overflow.

2014-12-07  Mark Wielaard  <mjw@redhat.com>

	* relocate.c (relocate_section): Sanity check section overlap against
	actually used ehsize, shentsize and phentsize.

2014-12-07  Mark Wielaard  <mjw@redhat.com>

	* offline.c (dwfl_offline_section_address): Assert shndx is not zero.
	* relocate.c (__libdwfl_relocate_value): Don't relocate against
	section zero.

2014-11-29  Mark Wielaard  <mjw@redhat.com>

	* relocate.c (relocate_section): Check relocation section and target
	section data don't overlap any of the ELF headers.
	(relocate): Check for offset + size overflow.

2014-11-22  Mark Wielaard  <mjw@redhat.com>

	* link_map.c (consider_executable): Use elf_getphdrnum.
	(dwfl_link_map_report): Likewise.

2014-11-18  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getdwarf.c (find_symtab): Sanity check the data buffer,
	number of symbols and first_global before use.

2014-11-14  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getdwarf.c (load_symtab): Don't use tables which have
	a zero sh_entsize.

2014-11-10  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getdwarf.c (find_dynsym): New inner function
	translate_offs that takes an adjust argument. Try finding
	the symbol table with and without adjusting to main_bias.

2014-09-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support NT_FILE for locating files.
	* core-file.c (dwfl_core_file_report): New variables note_file and
	note_file_size, set them and pass them to dwfl_segment_report_module.
	* dwfl_segment_report_module.c: Include common.h and fcntl.h.
	(buf_has_data, buf_read_ulong, handle_file_note): New functions.
	(invalid_elf): New function from code of dwfl_segment_report_module.
	(dwfl_segment_report_module): Add parameters note_file and
	note_file_size.  New variables elf and fd, clean them up in finish.
	Move some code to invalid_elf.  Call handle_file_note, if it found
	a name verify the file by invalid_elf.  Protect elf and fd against
	cleanup by finish if we found the file for new Dwfl_Module.
	* libdwflP.h (dwfl_segment_report_module): Add parameters note_file and
	note_file_size.

2014-09-23  Mark Wielaard  <mjw@redhat.com>

	* dwfl_segment_report_module.c (dwfl_segment_report_module):
	Extract ei_class, ei_data and e_type early and use the result.

2014-09-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwfl_build_id_find_elf.c (dwfl_build_id_find_elf): Use IS_EXECUTABLE.
	* dwfl_segment_report_module.c (dwfl_segment_report_module): Set
	IS_EXECUTABLE.
	* libdwflP.h (struct Dwfl_Module): New field is_executable.

2014-08-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwfl_module_getdwarf.c (find_offsets): Add parameter main_bias, use
	it.
	(find_dynsym): Pass the new parameter main_bias.

2014-08-14  Mark Wielaard  <mjw@redhat.com>

	* linux-kernel-modules.c (check-suffix): Also TRY .ko.xz.

2014-07-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix report_r_debug for prelinked libraries.
	* link_map.c (report_r_debug): Comment out variable l_addr.
	Use instead new variable base recalculated from l_ld.

2014-06-24  Kurt Roeckx  <kurt@roeckx.be>

	* linux-pid-attach.c: Make it build on non linux hosts.

2014-06-17  Mark Wielaard  <mjw@redhat.com>

	* frame_unwind.c (handle_cfi): Use ebl_func_addr_mask.
	* dwfl_module_getsym.c (__libdwfl_getsym): Likewise.

2014-06-15  Mark Wielaard  <mjw@redhat.com>

	* linux-core-attach.c (core_memory_read): Use libdw/memory-access.h
	macros read_4ubyte_unaligned_noncvt and read_8ubyte_unaligned_noncvt
	to read possibly unaligned data.
	(core_next_thread): Likewise.
	(core_set_initial_registers): Likewise.
	(dwfl_core_file_attach): Likewise.

2014-06-11  Mark Wielaard  <mjw@redhat.com>

	* dwfl_frame.c (__libdwfl_process_free): Reset dwfl->attacherr.
	(dwfl_attach_state): Set dwfl->attacherr.
	(dwfl_pid): Check and return dwfl->attacherr if set.
	(dwfl_getthreads): Likewise.
	(getthread): Likewise.
	* libdwflP.h: Add DWFL_E_NO_CORE_FILE.
	(struct Dwfl): Add attacherr field.
	* linux-core-attach.c (dwfl_core_file_attach): Set dwfl->attacherr.
	Don't assert if ELF file is not ET_CORE, just return error.
	* linux-pid-attach.c (dwfl_linux_proc_attach): Set dwfl->attacherr.

2014-06-10  Mark Wielaard  <mjw@redhat.com>

	* argp-std.c (parse_opt): Ignore errors from dwfl_core_file_attach
	or dwfl_linux_proc_attach.

2014-05-15  Mark Wielaard  <mjw@redhat.com>

	* linux-proc-maps.c (grovel_auxv): Close fd on error.

2014-05-02  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getdwarf: Remove ENABLE_DWZ ifdefs so find_debug_altlink
	is always called.

2014-05-01  Mark Wielaard  <mjw@redhat.com>

	* libdwflP.h (struct Dwfl_Module): Add alt, alt_fd and alt_elf fields.
	(__libdwfl_open_mod_by_build_id): Renamed __libdwfl_open_by_build_id.
	(__libdwfl_open_by_build_id): New declaration that takes an explicit
	build-id.
	* dwfl_build_id_find_debuginfo.c (dwfl_build_id_find_debuginfo): If
	we already have the Dwarf then look for the alt dwz multi file by
	build-id.
	* dwfl_build_id_find_elf.c (__libdwfl_open_by_build_id): Add the
	build-id we are looking for as argument.
	(__libdwfl_open_mod_by_build_id): New function, calls
	__libdwfl_open_by_build_id.
	(dwfl_build_id_find_elf): Call __libdwfl_open_mod_by_build_id.
	* dwfl_module.c (__libdwfl_module_free): Release alt, alt_elf and
	close alt_fd if necessary.
	* dwfl_module_getdwarf.c (__check_build_id): Removed.
	(try_debugaltlink): Removed.
	(open_debugaltlink): Removed.
	(open_elf_file): First half of open_elf that just opens the elf
	file but doesn't setup the load address.
	(open_elf): Call open_elf_file.
	(find_debug_altlink): New function.
	(load_dw): Remove loading of dwz multifile.
	(find_dw): Call find_debug_altlink.
	* find-debuginfo.c (validate): Handle alt debug case using
	dwelf_dwarf_gnu_debugaltlink and mod->alt_elf.
	(find_debuginfo_in_path): Handle alt debug files possibly in .dwz
	subdirs.
	* linux-kernel-modules.c (try_kernel_name): Use fakemod.debug.name
	to store name to find by dwfl_standard_find_debuginfo instead of
	allocating an extra variable on stack.

2014-04-30  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_build_id.c (__libdwfl_find_elf_build_id): Moved to
	dwelf_elf_gnu_build_id.c.
	(__libdwfl_find_build_id): Add assert to make sure mod is never NULL.
	* dwfl_segment_report_module.c (dwfl_segment_report_module): Call
	dwelf_elf_gnu_build_id directly instead of __libdwfl_find_build_id.
	* dwfl_module_getdwarf.c (__check_build_id): Implement using
	dwelf_elf_gnu_build_id.

2014-04-15  Florian Weimer  <fweimer@redhat.com>

	* dwfl_module_getdwarf.c (__check_build_id): Moved from libdw.
	(try_debugaltlink): Likewise.
	(open_debugaltlink): Likewise.
	(load_dw): Locate alternate debug information using
	dwelf_dwarf_gnu_debugaltlink and call open_debugaltlink.

2014-04-11  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (AM_CPPFLAGS): Add libdwelf.
	* libdwflP.h: Include libdwelfP.h.
	* dwfl_module_getdwarf.c (find_debuglink): Moved to libdwelf.
	(find_debuginfo): Use dwelf_elf_gnu_debuglink.

2014-04-22  Mark Wielaard  <mjw@redhat.com>

	* frame_unwind.c (__libdwfl_frame_reg_get): Use uint64_t when
	checking bits.
	(__libdwfl_frame_reg_set): Likewise.

2014-04-22  Kurt Roeckx  <kurt@roeckx.be>

	* linux-pid-attach.c: Make linux only.

2014-03-14  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am: Remove !MUDFLAP and MUDFLAP conditions.
	Remove libelf and libdw definitions when MUDFLAP is defined.
	* argp-std.c (__libdwfl_argp_mudflap_options): Removed.

2014-03-03  Mark Wielaard  <mjw@redhat.com>

	* elf-from-memory.c (elf_from_remote_memory): Keep track of
	segments_end_mem. Pass memsz to first handle_segment pass. Only
	extend contents_size and use shdrs if only file bits are in
	segment.

2014-03-11  Josh Stone  <jistone@redhat.com>

	* dwfl_module_getdwarf.c (open_elf): Only explicitly set
	mod->e_type when processing the main ELF file.

2014-03-04  Mark Wielaard  <mjw@redhat.com>

	* libdwflP.h (struct __libdwfl_pid_arg): Moved here and renamed from
	linux-pid-attach.c (struct pid_arg).
	(__libdwfl_get_pid_arg): New internal function declaration.
	(__libdwfl_ptrace_attach): Likewise.
	(__libdwfl_ptrace_detach): Likewise.
	* dwfl_frame.c (dwfl_attach_state): Add "(deleted)" files to the
	special exception modules that cannot be checked at this point.
	* linux-pid-attach.c (struct pid_arg): Moved to libdwflP.h
	(ptrace_attach): Renamed to...
	(__libdwfl_ptrace_attach): New internal function.
	(__libdwfl_ptrace_detach): Likewise. Extracted from ...
	(pid_thread_detach): Call __libdwfl_ptrace_detach now.
	(__libdwfl_get_pid_arg): New internal function.
	* linux-proc-maps.c (dwfl_linux_proc_find_elf): Check if special
	module name contains "(deleted)" and dwfl_pid gives an attached
	pid. If pid is set and try to (re)use ptrace attach state of
	process before reading memory.

2014-03-03  Mark Wielaard  <mjw@redhat.com>

	* elf-from-memory.c (elf_from_remote_memory): Take pagesize as
	argument. Free buffer when detecting bad elf. Check PT_LOAD
	alignment requirements on first handle_segment pass. Calculate
	loadbase, start and end of segment using pagesize, not p_align.
	* linux-proc-maps.c (dwfl_linux_proc_find_elf): Provide pagesize
	to elf_from_remote_memory.

2014-02-26  Mark Wielaard  <mjw@redhat.com>

	* linux-proc-maps.c (proc_maps_report): Don't assert on bad input.

2014-02-26  Mark Wielaard  <mjw@redhat.com>

	* elf-from-memory.c (elf_from_remote_memory): Check against p64
	p_type in case ELFCLASS64, not against p32 p_type.

2014-01-17  Petr Machata  <pmachata@redhat.com>

	* relocate.c (relocate_section): Use gelf_fsize instead of relying
	on shdr->sh_entsize.

2014-01-05  Mark Wielaard  <mjw@redhat.com>

	* frame_unwind.c (handle_cfi): Only skip resetting return register
	if the regno is not the actual CIE return address register.

2014-01-02  Mark Wielaard  <mjw@redhat.com>

	* linux-pid-attach.c (dwfl_linux_proc_attach): Use strtol, not atoi.

2013-12-30  Mark Wielaard  <mjw@redhat.com>

	* argp-std.c (parse_opt): Call dwfl_linux_proc_attach and
	dwfl_core_file_attach explicitly.
	* core-file.c (dwfl_core_file_report): Don't call
	__libdwfl_attach_state_for_core implicitly.
	* dwfl_begin.c (dwfl_begin): Remove setting of process_attach_error.
	* dwfl_frame.c (dwfl_pid): Set errno to DWFL_E_NO_ATTACH_STATE, not
	process_attach_error.
	(dwfl_getthreads): Likewise.
	(getthread): Likewise.
	* libdwfl.h (dwfl_core_file_report): Update documentation.
	(dwfl_linux_proc_report): Likewise.
	(dwfl_core_file_attach): New function declaration.
	(dwfl_linux_proc_attach): Likewise.
	* libdwflP.h (struct Dwfl): Remove process_attach_error.
	(__libdwfl_attach_state_for_pid): Removed declaration.
	(__libdwfl_attach_state_for_core): Likewise.
	(dwfl_core_file_attach): New internal declaration.
	(dwfl_linux_proc_attach): Likewise.
	(attach_state_for_core): Renamed to...
	(dwfl_core_file_attach): ...this. Change return type.
	(__libdwfl_attach_state_for_core): Removed.
	* linux-pid-attach.c (struct pid_arg): Add assume_ptrace_stopped.
	(pid_set_initial_registers): Check assume_ptrace_stopped before
	calling ptrace.
	(pid_thread_detach): Likewise.
	(__libdwfl_attach_state_for_pid): Renamed to...
	(dwfl_linux_proc_attach): ...this. Adjust return type.
	* linux-proc-maps.c (dwfl_linux_proc_report): Don't call
	__libdwfl_attach_state_for_pid implicitly.

2013-12-28  Mark Wielaard  <mjw@redhat.com>

	* linux-proc-maps.c (dwfl_linux_proc_find_elf): Don't return special
	character device files, only regular files.

2013-12-24  Mark Wielaard  <mjw@redhat.com>

	* linux-core-attach.c (core_next_thread): Check whether thread_argp
	is NULL. Reset core_arg->thread_note_offset and malloc a thread_arg
	in that case. Free thread_arg if there are no more threads.

2013-12-23  Mark Wielaard  <mjw@redhat.com>

	* dwfl_segment_report_module.c (dwfl_segment_report_module): Free
	build_id before returning early.

2013-12-23  Mark Wielaard  <mjw@redhat.com>

	* linux-pid-attach.c (__libdwfl_attach_state_for_pid): Report actual
	pid (thread group leader) to dwfl_attach_state.

2013-12-21  Mark Wielaard  <mjw@redhat.com>

	* frame_unwind.c (handle_cfi): Track whether the return register
	has been set and only allow it to be set once.

2013-12-20  Mark Wielaard  <mjw@redhat.com>

	* dwfl_frame.c (one_arg): New struct.
	(get_one_thread_cb): New function.
	(dwfl_getthread): Likewise.
	(one_thread): New struct.
	(get_one_thread_frames_cb): New function.
	(dwfl_getthread_frames): Likewise.
	* libdwfl.h (Dwfl_Thread_Callbacks): Add get_thread function.
	(dwfl_getthread_frames): Likewise.
	* libdwflP.h (dwfl_getthread_frames): New internal function declaration.
	* linux-core-attach.c (core_thread_callbacks): Initialize get_thread
	to NULL.
	* linux-pid-attach.c (pid_getthread): New function.
	(pid_thread_callbacks): Initialize get_thread to pid_getthread.

2013-12-20  Mark Wielaard  <mjw@redhat.com>

	* linux-kernel-modules.c (report_kernel_archive): Correct nested
	asprintf result check for debug.a.

2013-12-18  Mark Wielaard  <mjw@redhat.com>

	* derelocate.c (__libdwfl_find_section_ndx): New internal function.
	* dwfl_module_addrname.c (dwfl_module_addrname): Use
	dwfl_module_addrinfo.
	* dwfl_module_addrsym.c (dwfl_module_addrsym_elf): Replace with...
	(__libdwfl_addrsym): ...this. Use __libdwfl_getsym, use value
	for comparisons, not st_value. Fill in off. Search for both value
	and the (adjusted) sym.st_value when different.
	(dwfl_module_addrsym): Implement using __libdwfl_addrsym.
	(dwfl_module_addrinfo): New function.
	* dwfl_module_getsym.c (dwfl_module_getsym_elf): Replace with...
	(__libdwfl_getsym): ...this. Use ebl_resolve_sym_value if requested
	and possible. Adjust sym->st_value only when requested. Fill in addr
	if available.
	(dwfl_module_getsym_info): New function.
	(dwfl_module_getsym): Use __libdwfl_getsym.
	* libdwfl.h (dwfl_module_getsym_elf): Removed.
	(dwfl_module_getsym_info): New function declaration.
	(dwfl_module_addrinfo): Likewise.
	(dwfl_module_addrsym): Add documentation describing differences
	with addrinfo variants.
	(dwfl_module_addrsym_elf): Removed.
	* libdwflP.h (__libdwfl_getsym): New internal function declaration.
	(__libdwfl_addrsym): Likewise.
	(__libdwfl_find_section_ndx): Likewise.
	(dwfl_module_addrinfo): New internal declaration.
	(dwfl_module_getsym_info): Likewise.
	(dwfl_module_addrsym_elf): Removed.
	(dwfl_module_getsym_elf): Likewise.

2013-12-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* argp-std.c (offline_find_elf): Remove.
	(offline_callbacks): Use dwfl_build_id_find_elf instead.
	* dwfl_build_id_find_elf.c (dwfl_build_id_find_elf): Move here the code
	removed above.

2013-12-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	unwinder: s390 and s390x
	* dwfl_frame_pc.c (dwfl_frame_pc): Call ebl_normalize_pc.
	* frame_unwind.c (new_unwound): New function from ...
	(handle_cfi): ... here.  Call it.
	(setfunc, getfunc, readfunc): New functions.
	(__libdwfl_frame_unwind): Call ebl_unwind with those functions.
	* linux-core-attach.c (core_set_initial_registers): Always iterate
	through the Ebl_Register_Location loop.  Call
	dwfl_thread_state_register_pc there.

2013-12-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* frame_unwind.c (handle_cfi): Call ebl_dwarf_to_regno for RA.

2013-12-17  Mark Wielaard  <mjw@redhat.com>

	* linux-pid-attach.c (pid_next_thread): Call rewinddir on first
	traversal.

2013-12-16  Mark Wielaard  <mjw@redhat.com>

	* libdwfl.h (dwfl_module_getsymtab_first_global): New function
	definition.
	* dwfl_module_getdwarf.c (dwfl_module_getsymtab_first_global): New
	function.
	* libdwflP.h (dwfl_module_getsymtab_first_global): New internal
	function definition.
	* dwfl_module_addrsym.c (dwfl_module_addrsym_elf): Use new function.

2013-12-14  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module.c (__libdwfl_module_free): Free mod->reloc_info if
	allocated. Call dwarf_cfi_end on mod->eh_cfi if necessary.
	* frame_unwind.c (handle_cfi): Free frame result from
	dwarf_cfi_addrframe when done.

2013-12-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	unwinder: ppc and ppc64
	* frame_unwind.c (__libdwfl_frame_reg_get, __libdwfl_frame_reg_set):
	Call ebl_dwarf_to_regno.
	* linux-core-attach.c (core_set_initial_registers): Implement
	pc_register support.
	* linux-pid-attach.c (pid_thread_state_registers_cb): Implement
	FIRSTREG -1.

2013-11-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Introduce process_attach_error.
	* dwfl_begin.c (dwfl_begin): Initialize process_attach_error.
	* dwfl_frame.c (dwfl_pid, dwfl_getthreads): Use PROCESS_ATTACH_ERROR if
	PROCESS is NULL.
	* libdwflP.h (struct Dwfl): New field process_attach_error.
	* linux-core-attach.c (__libdwfl_attach_state_for_core): Rename to ...
	(attach_state_for_core): ... here, make it static, change return type,
	no longer use __libdwfl_seterrno.
	(__libdwfl_attach_state_for_core): New wrapper for it.

2013-11-27  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_addrsym.c (dwfl_module_addrsym): Rename to and call...
	(dwfl_module_addrsym_elf): this. Add elfp and biasp arguments,
	keep track of symelf, addr_symelf, closest_elf and sizeless_elf
	instead of tracking dwfl_files.
	* dwfl_module_getsym.c (__libdwfl_module_getsym): Renamed to...
	(dwfl_module_getsym_elf): ...this. Remove dwfl_file argument, add
	new elfp and biasp arguments. Track elf instead of file.
	(dwfl_module_getsym): Call dwfl_module_getsym_elf.
	dwfl_module_info.c (dwfl_module_info): Pass elf to
	dwfl_adjusted_st_value.
	* libdwfl.h (dwfl_module_getsym): Document limitations of shndx.
	(dwfl_module_getsym_elf): New function declaration.
	(dwfl_module_addrsym_elf): Likewise.
	* libdwflP.h (dwfl_module_addrsym_elf): INTDECL.
	(dwfl_module_getsym_elf): Likewise.
	(dwfl_adjusted_st_value): Take and check elf not dwfl_file.
	(dwfl_deadjust_st_value): Likewise.
	(__libdwfl_module_getsym): Removed.
	* relocate.c (resolve_symbol): Pass elf to dwfl_adjusted_st_value.

2013-11-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix non-build-id core files on build-id system.
	* link_map.c (report_r_debug): Remove valid clearing if build-id cannot
	be read from memory.

2013-11-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwfl_segment_report_module.c (dwfl_segment_report_module): New
	variable close_elf.  Call __libdwfl_find_elf_build_id and compare the
	content, if possible.

2013-11-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	link_map: Use proper bias, not l_addr.
	* core-file.c (dynamic_vaddr_get): Rename to ...
	(__libdwfl_dynamic_vaddr_get): ... here, make it global,
	internal_function.
	(dwfl_core_file_report): Update name in the caller.
	* libdwflP.h (__libdwfl_dynamic_vaddr_get): New declaration.
	* link_map.c (report_r_debug): New variable elf_dynamic_vaddr.  Call
	__libdwfl_dynamic_vaddr_get for it.  Remove L_ADDR FIXME comment.
	Use ELF_DYNAMIC_VADDR instead of L_ADDR.

2013-11-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Compatibility with older kernels such as RHEL-6.
	* linux-pid-attach.c (struct pid_arg): New field tid_was_stopped.
	(ptrace_attach): New parameter tid_was_stoppedp.  Set it.
	(pid_set_initial_registers): Pass tid_was_stopped.
	(pid_thread_detach): Use tid_was_stopped.

2013-11-18  Josh Stone  <jistone@redhat.com>

	* dwfl_module_getdwarf.c (find_aux_address_sync): New function.
	(find_aux_sym): Use it.

2013-11-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup: Remove const in prototype
	* dwfl_frame_regs.c (dwfl_thread_state_registers): Remove const from
	firstreg.
	* libdwfl.h (dwfl_thread_state_registers): Likewise.
	* linux-pid-attach.c (pid_thread_state_registers_cb): Likewise.

2013-11-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix dwfl_attach_state machine->elf.
	* dwfl_frame.c (dwfl_attach_state): Change parameter machine to elf.
	Call ebl_openbackend instead of ebl_openbackend_machine.
	* libdwfl.h (dwfl_attach_state): Change parameter machine to elf.
	Update the function description.
	* linux-core-attach.c (__libdwfl_attach_state_for_core): Pass CORE to
	dwfl_attach_state.
	* linux-pid-attach.c (__libdwfl_attach_state_for_pid): Pass NULL to
	dwfl_attach_state.

2013-11-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Provide __libdwfl_module_getsym to get dwfl_file *.
	* dwfl_module_addrsym.c (dwfl_module_addrsym) (i_to_symfile): Remove.
	(dwfl_module_addrsym) (search_table): New variable file.  Use
	__libdwfl_module_getsym.  Use file.
	* dwfl_module_getsym.c (dwfl_module_getsym): Rename to ...
	(__libdwfl_module_getsym): ... here.  Add parameter filep.  Set it.
	(dwfl_module_getsym): New wrapper.
	* libdwflP.h (__libdwfl_module_getsym): New declaration.

2013-11-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix dwfl_module_addrsym for minidebuginfo.
	* dwfl_module_addrsym.c (dwfl_module_addrsym): New variable
	addr_symfile.
	(dwfl_module_addrsym) (same_section): Use it.
	(dwfl_module_addrsym) (i_to_symfile): New function.
	(dwfl_module_addrsym) (search_table): Use it.

2013-11-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (libdwfl_a_SOURCES): Add dwfl_frame.c, frame_unwind.c,
	dwfl_frame_pc.c, linux-pid-attach.c, linux-core-attach.c and
	dwfl_frame_regs.c.
	* core-file.c (dwfl_core_file_report): Call
	__libdwfl_attach_state_for_core.
	* dwfl_end.c (dwfl_end): Call __libdwfl_process_free.
	* dwfl_frame.c: New file.
	* frame_unwind.c: New file.
	* dwfl_frame_pc.c: New file.
	* linux-pid-attach.c: New file.
	* linux-core-attach.c: New file.
	* dwfl_frame_regs.c: New file.
	* libdwfl.h (Dwfl_Thread, Dwfl_Frame): New typedefs.
	(dwfl_core_file_report, dwfl_linux_proc_report): Extend comments.
	(Dwfl_Thread_Callbacks): New definition.
	(struct ebl, dwfl_attach_state, dwfl_pid, dwfl_thread_dwfl)
	(dwfl_thread_tid, dwfl_frame_thread, dwfl_thread_state_registers)
	(dwfl_thread_state_register_pc, dwfl_getthreads, dwfl_thread_getframes)
	(dwfl_frame_pc): New declarations.
	* libdwflP.h (Dwfl_Process): New typedef.
	(LIBEBL_BAD, CORE_MISSING, INVALID_REGISTER, PROCESS_MEMORY_READ)
	(PROCESS_NO_ARCH, PARSE_PROC, INVALID_DWARF, UNSUPPORTED_DWARF)
	(NEXT_THREAD_FAIL, ATTACH_STATE_CONFLICT, NO_ATTACH_STATE, NO_UNWIND)
	(INVALID_ARGUMENT): New DWFL_ERROR entries.
	(struct Dwfl): New entry process.
	(struct Dwfl_Process, struct Dwfl_Thread, struct Dwfl_Frame)
	(__libdwfl_frame_reg_get, __libdwfl_frame_reg_set)
	(__libdwfl_process_free, __libdwfl_frame_unwind)
	(__libdwfl_attach_state_for_pid, __libdwfl_attach_state_for_core)
	(__libdwfl_segment_start, __libdwfl_segment_end): New declarations.
	(dwfl_attach_state, dwfl_pid, dwfl_thread_dwfl, dwfl_thread_tid)
	(dwfl_frame_thread, dwfl_thread_state_registers)
	(dwfl_thread_state_register_pc, dwfl_getthreads, dwfl_thread_getframes)
	(dwfl_frame_pc): New INTDECL entries.
	* linux-proc-maps.c (dwfl_linux_proc_report): Call
	__libdwfl_attach_state_for_pid.
	* segment.c (segment_start): Rename to ...
	(__libdwfl_segment_start): ... here and make it internal_function.
	(segment_end): Rename to ...
	(__libdwfl_segment_end): ... here and make it internal_function.
	(reify_segments, dwfl_report_segment): Rename them at the callers.

2013-11-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* core-file.c (dwfl_core_file_report): Remove the use of MAX.

2013-11-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* core-file.c (dwfl_core_file_report): Replaced variable sniffed by
	retval.  Fix one forgotten LISTED increase.

2013-11-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix core files for re-prelink-ed files.
	* core-file.c (dynamic_vaddr_get): New function.
	(dwfl_core_file_report): New variable file_dynamic_vaddr.  Call
	dynamic_vaddr_get instead of using L_ADDR.
	* libdwflP.h (struct r_debug_info_module): Remove field l_addr.
	* link_map.c (report_r_debug): Do not initialize l_addr.

2013-11-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* core-file.c (dwfl_core_file_report): Reindent block of code by
	continue keyword.

2013-10-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* argp-std.c (parse_opt): Use executable parameter of
	dwfl_core_file_report.
	* core-file.c (dwfl_core_file_report): Add parameter executable.  Set
	it to DWFL.  Add NEW_VERSION for it.
	(_compat_without_executable_dwfl_core_file_report): New.  Twice.
	* libdwfl.h (dwfl_core_file_report): Add parameter executable, update
	the function comment.

2013-10-15  Mark Wielaard  <mjw@redhat.com>

	* linux-proc-maps.c (proc_maps_report): Ignore non-absolute file
	mappings.
	(dwfl_linux_proc_find_elf): Don't abort, just return failure.

2013-09-12  Mark Wielaard  <mjw@redhat.com>

	* cu.c (intern_cu): If dwarf_offdie fails free cu.

2013-09-12  Mark Wielaard  <mjw@redhat.com>

	* linux-proc-maps.c (proc_maps_report): Don't fclose FILE in
	bad_report.

2013-09-12  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getdwarf.c (find_symtab): Call elf_getdata with
	aux_xndxscn, not xndxscn, for aux_symxndxdata.

2013-08-25  Mark Wielaard  <mjw@redhat.com>

	* linux-kernel-modules.c (report_kernel): Pass add_p_vaddr as true
	to dwfl_report_elf.

2013-07-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwfl_segment_report_module.c (dwfl_segment_report_module): Check for
	conflicts all the modules, not just the first one.  Compare L_LD if it
	is equal, not if it is in a module address range.

2013-07-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* libdwflP.h (__libdwfl_elf_address_range): Add internal_function.

2013-07-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* core-file.c (clear_r_debug_info): Close also ELF and FD.
	(dwfl_core_file_report): Call __libdwfl_report_elf for
	R_DEBUG_INFO.MODULE.
	* dwfl_report_elf.c (__libdwfl_elf_address_range): New function from
	code of ...
	(__libdwfl_report_elf): ... this function.  Call it.
	* dwfl_segment_report_module.c: Include unistd.h.
	(dwfl_segment_report_module): Use basename for MODULE->NAME.
	Clear MODULE if it has no build-id and we have segment with build-id.
	Ignore this segment only if MODULE still contains valid ELF.
	* libdwflP.h (__libdwfl_elf_address_range): New declaration.
	(struct r_debug_info_module): New fields fd, elf, l_addr, start, end
	and disk_file_has_build_id.
	(dwfl_link_map_report): Extend the comment.
	* link_map.c (report_r_debug): Extend the comment.  Always fill in new
	r_debug_info_module.  Initialize also the new r_debug_info_module
	fields.  Remove one FIXME comment.  Call __libdwfl_elf_address_range
	instead of __libdwfl_report_elf when R_DEBUG_INFO is not NULL.

2013-07-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* libdwflP.h (__libdwfl_find_elf_build_id): Add internal_function.

2013-07-02  Mark Wielaard  <mjw@redhat.com>

	* relocate.c (__libdwfl_relocate_value): Remove mod->e_type assert.

2013-06-05  Mark Wielaard  <mjw@redhat.com>

	* link_map.c (report_r_debug): Always call release_buffer after
	memory_callback succeeded reading build_id.

2013-05-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* argp-std.c (parse_opt) <ARGP_KEY_SUCCESS> <opt->core> <opt->e>: Set
	executable_for_core before calling dwfl_core_file_report.
	* core-file.c (clear_r_debug_info): New function.
	(dwfl_core_file_report): Move raw segments reporting lower.  New
	variable r_debug_info, pass it to dwfl_segment_report_module.  Call
	clear_r_debug_info in the end.  Return sum of LISTED and SNIFFED.
	* dwfl_module_build_id.c (check_notes): Move into
	__libdwfl_find_elf_build_id.
	(__libdwfl_find_build_id): Rename to ...
	(__libdwfl_find_elf_build_id): ... here.  Add parameters build_id_bits,
	build_id_elfaddr and build_id_len.  Verify MOD vs. ELF.
	(__libdwfl_find_elf_build_id) (check_notes): Remove parameters mod and
	set, rename data_vaddr to data_elfaddr.  Do not call found_build_id.
	(__libdwfl_find_elf_build_id): Update the check_notes caller, do not
	adjust its data_elfaddr parameter.
	(__libdwfl_find_build_id): New wrapper of __libdwfl_find_elf_build_id.
	* dwfl_segment_report_module.c (dwfl_segment_report_module): New
	parameter r_debug_info.  New variable name_is_final.  Adjust addresses
	according to R_DEBUG_INFO->MODULE.  Check conflicts against DWFL.
	Do not overwrite NAME by SONAME if NAME_IS_FINAL.
	* libdwflP.h (__libdwfl_find_elf_build_id): New declaration.
	(struct r_debug_info_module, struct r_debug_info): New definitions.
	(dwfl_segment_report_module, dwfl_link_map_report): Add parameter
	r_debug_info.
	* link_map.c: Include fcntl.h.
	(report_r_debug): Add parameter r_debug_info, describe it in the
	function comment.  Delete dwfl_addrmodule call and its dependent code.
	Verify build-id before calling dwfl_report_elf, also supply
	executable_for_core to it.  Store r_debug_info->module info when
	appropriate.
	(dwfl_link_map_report): Add parameter r_debug_info.  New variable
	in_ok.  Try to read IN from EXECUTABLE_FOR_CORE.  Update report_r_debug
	caller parameters.

2013-04-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwfl_report_elf.c (__libdwfl_report_elf): Add parameter add_p_vaddr.
	Set it to true for ET_EXEC and ET_CORE.  Provide alternative
	setup of START and BIAS if !ADD_P_VADDR.  Set END from BIAS, not BASE.
	(dwfl_report_elf): Add parameter add_p_vaddr.  Pass it down.  Add
	NEW_VERSION.
	(_compat_without_add_p_vaddr_dwfl_report_elf) <SHARED>: New, with
	COMPAT_VERSION.
	* libdwfl.h (dwfl_report_elf): Add parameter add_p_vaddr.  Describe it.
	* libdwflP.h (__libdwfl_report_elf): Add parameter add_p_vaddr.
	* link_map.c (report_r_debug): Use true add_p_vaddr for dwfl_report_elf.
	* linux-kernel-modules.c (report_kernel): Use false add_p_vaddr for
	dwfl_report_elf.
	* offline.c (process_elf): Use true add_p_vaddr for dwfl_report_elf.

2013-04-27  Mark Wielaard  <mjw@redhat.com>

	* link_map.c: #include system.h.

2013-04-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* link_map.c (BE32, BE64, LE32, LE64): Delete the definitions, move
	them to lib/system.h.

2013-04-24  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am: Use AM_CPPFLAGS instead of INCLUDES.

2013-03-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwfl_report_elf.c (__libdwfl_report_elf): Remove BASE aligning.

2013-03-12  Mark Wielaard  <mjw@redhat.com>

	* dwfl_getsrclines.c (dwfl_getsrclines): Return 0 on success.

2013-02-22  Mark Wielaard  <mjw@redhat.com>

	* open.c (__libdw_gunzip,__libdw_bunzip2,__libdw_unlzma): Define
	as DWFL_E_BADELF when not used.

2013-02-10  Mark Wielaard  <mjw@redhat.com>

	* argp-std.c (parse_opt): Use opt->core and opt->e explicitly in
	failure messages When handling ARGP_KEY_SUCCESS because arg will
	not have been set.

2013-01-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linux-proc-maps.c: Include system.h.
	(PROCEXEFMT, get_pid_class): New.
	(grovel_auxv): Detect 32-bit vs. 64-bit auxv, possibly call
	get_pid_class.

2013-01-23  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_getdwarf.c (find_aux_sym): Don't substract one
	from aux_syments by default.
	(find_symtab): Also succeed when only aux_symdata is found.
	When no symtab is found always try to load auxiliary table.
	(dwfl_module_getsymtab): Substract one from result when both
	tables have symbols.
	* dwfl_module_getsym.c (dwfl_module_getsym): Only skip auxiliary
	zero entry when both tables have symbols.
	* dwfl_module_addrsym.c (dwfl_module_addrsym): Only substract
	one from first_global when both tables have symbols.

2013-01-16  Mark Wielaard  <mjw@redhat.com>

	* libdwflP.h (struct Dwfl_Module): Add aux_sym, aux_symdata,
	aux_syments, aux_symstrdata, aux_symxndxdata and aux_first_global.
	(dwfl_adjusted_aux_sym_addr): New function.
	(dwfl_deadjust_aux_sym_addr): Likewise.
	(dwfl_adjusted_st_value): Take and check symfile argument.
	(dwfl_deadjust_st_value): Likewise.
	* dwfl_module_getdwarf.c (find_prelink_address_sync): Take and
	use dwfl_file as argument to set address_sync.
	(find_debuginfo): Call find_prelink_address_sync with debug file.
	(find_aux_sym): New function.
	(find_symtab): Use find_aux_sym if all we have is the dynsym table
	and fill in aux DwflModule fields.
	(dwfl_module_getsymtab): Return syments plus aux_syments.
	(load_symtab): Always set first_global.
	* dwfl_module_addrsym.c (dwfl_module_addrsym): Check symfile
	when using same_section. Calculate first_global based on both
	mod->first_global and mod->aux_first_global.
	* dwfl_module.c (__libdwfl_module_free): Free aux_sym.
	* dwfl_module_getsym.c (dwfl_module_getsym): Use auxsym table
	to retrieve symbol and name if necessary, making sure all locals
	from any table come before any globals.
	* dwfl_module_info.c (dwfl_module_info): Call dwfl_adjusted_st_value
	with symfile.
	* relocate.c (resolve_symbol): Likewise.

2013-01-07  Roland McGrath  <roland@hack.frob.com>

	* link_map.c (auxv_format_probe): Handle unaligned 64-bit data, but
	still assume the data is at least 32-bit aligned anyway.
	(dwfl_link_map_report): Handle unaligned auxv data.

2012-12-11  Mark Wielaard  <mjw@redhat.com>

	* linux-kernel-modules.c (report_kernel): Only free fname if
	find_kernel_elf succeeds and allocates it.
	(report_kernel_archive): Fix brackets around unlikely expression.

2012-11-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* argp-std.c: Update Copyright year.
	(offline_find_elf): New function.
	(offline_callbacks): Use it for find_elf.
	(struct parse_opt): New.
	(parse_opt): New key ARGP_KEY_INIT.  In other make hook struct
	parse_opt pointer from former Dwfl pointer.  Delay 'e and OPT_COREFILE
	processing till ARGP_KEY_SUCCESS.  Initialize state->input already from
	ARGP_KEY_SUCCESS.  Modify the cleanup in ARGP_KEY_ERROR.  Make the
	final state->input initialization optional.
	* dwfl_end.c: Update Copyright year.
	(dwfl_end): Free executable_for_core.
	* libdwflP.h: Update Copyright year.
	(struct Dwfl): New field executable_for_core.

2012-11-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwfl_report_elf.c (__libdwfl_report_elf): Simplify START and BIAS
	calculation.

2012-10-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwfl_module_getdwarf.c (mod_verify_build_id): New function with code
	from ...
	(__libdwfl_getelf): ... here.  Call it.

2012-10-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* libdwfl.h (dwfl_module_getelf): Add __nonnull_attribute__.

2012-10-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwfl_segment_report_module.c (dwfl_segment_report_module):
	Initialize mod->MAIN_BIAS.

2012-10-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwfl_module_addrsym.c (dwfl_module_addrsym): New function
	binding_value.  Use it for both zero and non-zero size symbols
	comparisons.

2012-10-01  Mark Wielaard  <mjw@redhat.com>

	* cu.c (cudie_offset): Don't use type_sig8, it might not be
	initialized and these are always real CUs, never TUs.

2012-10-01  Mark Wielaard  <mjw@redhat.com>

	* derelocate.c (find_section): Check next section exists before
	accessing it.

2012-08-01  Petr Machata  <pmachata@redhat.com>

	* offline.c (process_archive_member): Ignore entry "/SYM64/".

2012-03-28  Roland McGrath  <roland@hack.frob.com>

	* dwfl_segment_report_module.c
	(dwfl_segment_report_module: read_portion): Don't use existing buffer
	when FILESZ is zero (string mode) and available portion doesn't hold
	a terminated string.

2011-12-02  Roland McGrath  <roland@hack.frob.com>

	* elf-from-memory.c (elf_from_remote_memory): Fix ELFCLASS64 case
	to use elf64_xlatetom and PHDRS.p64.
	Reported by Serge Pavlov <serge.pavlov.at.gnu@gmail.com>.

2011-11-31  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_addrsym.c (dwfl_module_addrsym): First search all
	global symbols. Then only when that doesn't provide a match search
	all local symbols too.
	* dwfl_module_getdwarf.c (load_symtab): Take first_global int arg
	and fill it in.
	(find_symtab): Initialize mod->first_global and pass it to load_symtab.
	* libdwfl/libdwflP.h (Dwfl_Module): Add first_global field.

2011-11-31  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_addrsym.c (dwfl_module_addrsym): Only update
	sizeless_sym if needed and closer to desired addr.

2011-10-20  Mark Wielaard  <mjw@redhat.com>

	* derelocate.c (cache_sections): Intern mod->reloc_info check.
	(dwfl_module_relocations): Don't check mod->reloc_info.
	(dwfl_module_relocation_info): Likewise.
	(find_section): Likewise.

2011-07-09  Roland McGrath  <roland@hack.frob.com>

	* image-header.c (LE32): Macro removed (now in lib/system.h).

2011-04-11  Mark Wielaard  <mjw@redhat.com>

	* linux-kernel-modules.c (vmlinux_suffixes): Guard definition
	by check for zlib, bzlib or lzma defines to check it isn't empty.
	(try_kernel_name): Use same guard for use of vmlinux_suffixes.

2011-03-08  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getdwarf.c (open_elf): Clear errno before CBFAIL.
	Reported by Kurt Roeckx <kurt@roeckx.be>.

2011-02-11  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (try_kernel_name): Try .gz, .bz2, .xz
	suffixes if corresponding decompression support is enabled.

2011-02-01  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getdwarf.c (find_prelink_address_sync): Use the
	section-end address as the synchronization point, rather than sh_addr.

	* dwfl_module_getdwarf.c (find_prelink_address_sync): Discover
	PT_INTERP p_vaddr separately from main phdrs and undo phdrs.

	* dwfl_module_getdwarf.c (find_prelink_address_sync): Fix pasto in
	last change, so we recognize PT_INTERP in ELFCLASS64 correctly.

2011-01-11  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getdwarf.c (open_elf): Remove section-based
	address_sync fixup from here.
	(find_prelink_address_sync): New function.
	(find_debuginfo): Call it.
	* libdwflP.h (DWFL_ERRORS): Add BAD_PRELINK error.

2011-01-04  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getdwarf.c (open_elf): Enhance address_sync calculation
	logic to consider section addresses, the better to survive all the
	possible prelink machinations.
	* libdwflP.h (struct dwfl_file): Comment change.

2010-11-30  Roland McGrath  <roland@redhat.com>

	* derelocate.c (dwfl_module_relocations): Remove over-eager assert.

2010-11-12  Roland McGrath  <roland@redhat.com>

	* libdwflP.h (struct Dwfl_Module): New member main_bias.
	(dwfl_adjusted_address, dwfl_deadjust_address): Use it.
	* dwfl_module_getdwarf.c (__libdwfl_getelf): Initialize it.

	* libdwflP.h (dwfl_deadjust_address): New function.
	(dwfl_deadjust_dwarf_addr, dwfl_deadjust_st_value): New functions.
	* cu.c (addrarange): Use dwfl_deadjust_dwarf_addr.
	* dwfl_module_addrsym.c: Use dwfl_deadjust_st_value.

2010-11-11  Roland McGrath  <roland@redhat.com>

	* libdwflP.h (struct dwfl_file): Remove bias member.
	Add vaddr and address_sync members instead.
	(dwfl_adjusted_address): Calculate using vaddr.
	(dwfl_adjusted_dwarf_addr): Calculate using address_sync and call that.
	(dwfl_adjusted_st_value): Use one of those calls.
	* dwfl_module_getdwarf.c (open_elf): Initialize vaddr and address_sync.
	* dwfl_segment_report_module.c (dwfl_segment_report_module): Likewise.
	* derelocate.c (dwfl_module_relocations): Update ET_EXEC assertions.
	* link_map.c (consider_executable): Adjust only MOD->low_addr for
	detected PIE bias change.

	* libdwflP.h (dwfl_adjusted_dwarf_addr): New function.
	* dwfl_module_info.c: Use it.
	* cu.c (addrarange): Likewise.
	* dwfl_dwarf_line.c: Likewise.
	* dwfl_module_dwarf_cfi.c: Likewise.
	* dwfl_lineinfo.c: Likewise.
	* dwfl_nextcu.c: Likewise.
	* dwfl_module_getdwarf.c (dwfl_module_getdwarf): Likewise.

	* libdwflP.h (dwfl_adjusted_st_value): New function.
	* relocate.c (resolve_symbol): Use it.
	* dwfl_module_getsym.c: Likewise.
	* dwfl_module_addrsym.c: Likewise.
	* dwfl_module_info.c: Likewise.

	* libdwflP.h (dwfl_adjusted_address): New function.
	* dwfl_module_build_id.c (__libdwfl_find_build_id): Use it.
	* relocate.c (__libdwfl_relocate_value): Likewise.
	* derelocate.c (cache_sections): Likewise.
	(dwfl_module_address_section): Likewise.
	* dwfl_module_getelf.c: Likewise.
	* dwfl_module_eh_cfi.c: Likewise.
	* link_map.c (consider_executable): Likewise.

2010-08-24  Roland McGrath  <roland@redhat.com>

	* dwfl_dwarf_line.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.

2010-08-18  Roland McGrath  <roland@redhat.com>

	* link_map.c (report_r_debug): Use found name if we have no name,
	even if we already have an Elf handle.

2010-06-30  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_find_elf): Don't be
	confused by -1 return from dwfl_build_id_find_elf after it opened
	the Elf handle.
	* find-debuginfo.c (dwfl_standard_find_debuginfo): Likewise for
	dwfl_build_id_find_debuginfo.

2010-06-16  Roland McGrath  <roland@redhat.com>

	* cu.c (cudie_offset): Use DIE_OFFSET_FROM_CU_OFFSET macro.

2010-06-14  Roland McGrath  <roland@redhat.com>

	* find-debuginfo.c (try_open): Take new arg MAIN_STAT.  Compare
	candidate file to that st_dev/st_ino and pretend it didn't exist
	if they match.
	(find_debuginfo_in_path): Update caller, pass main file's info.

2010-05-20  Roland McGrath  <roland@redhat.com>

	* linux-proc-maps.c (find_sysinfo_ehdr): Renamed to ...
	(grovel_auxv): ... this.  Take DWFL argument.
	(dwfl_linux_proc_report): Update caller.

	* dwfl_module_getdwarf.c (open_elf): Calculate alignment for bias
	based on dwfl->segment_align or manifest alignment of MOD->low_addr.

2010-05-19  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (intuit_kernel_bounds): Rewritten.

2010-05-06  Roland McGrath  <roland@redhat.com>

	* segment.c (insert): Clear inserted elements of DWFL->lookup_module.

	* libdwflP.h (DWFL_ERRORS): Add WRONG_ID_ELF.
	* dwfl_build_id_find_elf.c: Set MOD->main.valid when there is a build
	ID but we didn't find a file.
	* dwfl_module_getdwarf.c (__libdwfl_getelf): When that's set, check
	and refuse any fallback file-by-name if it lacks the matching ID.

	* dwfl_error.c (dwfl_errno): Add INTDEF.
	* libdwflP.h: Add INTDECL.

	* dwfl_module_getdwarf.c (open_elf): Do elf_end and clear FILE->elf in
	failure cases.

2010-05-04  Roland McGrath  <roland@redhat.com>

	* dwfl_segment_report_module.c: Use "[pie]" rather than "[dso]" for an
	ET_DYN that has a DT_DEBUG.

	* dwfl_segment_report_module.c: Fix jump-start of NDX-finding loop.

	* segment.c (insert): Fix moving of values following insertion.
	(reify_segments): Fix up MOD->segment backpointer indices after
	later insertions in the main loop invalidate them.

	* link_map.c (dwfl_link_map_report): Detect bias of embedded phdrs and
	apply it to PT_DYNAMIC p_vaddr so we handle a PIE correctly.

	* core-file.c (dwfl_core_file_report): Return any nonzero count of
	modules reported, even if link_map grovelling failed and only sniffing
	found anything.

2010-04-26  Roland McGrath  <roland@redhat.com>

	* relocate.c (relocate_section): Treat R_*_NONE reloc as no reloc.
	Works around probably-wrong ld -r behavior for case of a DWARF address
	constant that refers to a discarded SHF_ALLOC section.

2010-04-14  Roland McGrath  <roland@redhat.com>

	* link_map.c (report_r_debug): Limit iterations on the l_next chain to
	an upper bound on sane possible number of elements.

2010-03-11  Roland McGrath  <roland@redhat.com>

	* link_map.c (auxv_format_probe): Fix scanning loop, so we really scan
	the second half for 32-bit matches.

2010-03-10  Roland McGrath  <roland@redhat.com>

	* core-file.c (dwfl_core_file_report): Punt EHDR argument.
	* argp-std.c (parse_opt): Update caller.
	* libdwfl.h: Declare dwfl_core_file_report.
	* libdwflP.h: Don't.

2010-02-17  Roland McGrath  <roland@redhat.com>

	* dwfl_segment_report_module.c (addr_segndx): Take new flag argument.
	If set, find the first index not below ADDR.
	(dwfl_segment_report_module): Update callers.
	Pass true when calculating return value.

2010-02-15  Roland McGrath  <roland@redhat.com>

	* Makefile.am: Use config/eu.am for common stuff.

	* find-debuginfo.c (find_debuginfo_in_path): Fix uninitialized
	variable in failure path.

2010-02-02  Mark Wielaard  <mjw@redhat.com>

	* dwfl_module_dwarf_cfi.c (dwfl_module_dwarf_cfi): Always set bias.
	* dwfl_module_eh_cfi.c (dwfl_module_eh_cfi): Likewise

2010-01-07  Roland McGrath  <roland@redhat.com>

	* core-file.c (dwfl_core_file_report): Use elf_getphdrnum.
	* dwfl_module_build_id.c (__libdwfl_find_build_id): Likewise.
	* dwfl_module_getdwarf.c (open_elf, find_dynsym): Likewise.
	* dwfl_report_elf.c (__libdwfl_report_elf): Likewise.

2010-01-06  Roland McGrath  <roland@redhat.com>

	* relocate.c (relocate_getsym): For SHN_COMMON, zero st_value.
	(relocate_section): Let unresolved SHN_COMMON symbol stay 0.

2009-11-16  Roland McGrath  <roland@redhat.com>

	* relocate.c (relocate_section): Skip SHT_NOBITS or empty target scn.

2009-11-12  Petr Machata  <pmachata@redhat.com>

	* core-file.c (dwfl_elf_phdr_memory_callback): Only load ahead if
	the chunk is both offset-contiguous and vaddr-contiguous.

2009-11-05  Roland McGrath  <roland@redhat.com>

	* link_map.c (report_r_debug): Skip entries with l_ld==0.
	Use dwfl_addrmodule for l_ld lookup, don't bail on lookup failure.

2009-09-04  Roland McGrath  <roland@redhat.com>

	* image-header.c (__libdw_image_header): Fix tranposed comparison.

2009-08-27  Roland McGrath  <roland@redhat.com>

	* image-header.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwflP.h: Declare __libdw_image_header.
	* open.c (decompress): Don't consume ELF on failure.
	(what_kind): New function, broken out of ...
	(__libdw_open_file): ... here.  Call it.
	If it fails, try __libdw_image_header and then try what_kind again.

	* gzip.c (unzip): Reuse *WHOLE as first INPUT_BUFFER,
	leave it behind for next decompressor.
	* open.c (decompress): Free BUFFER on failure.

2009-08-26  Roland McGrath  <roland@redhat.com>

	* gzip.c (find_zImage_payload): New function, broken out of ...
	(mapped_zImage): ... here.  Call it.
	(find_zImage_payload) [LZMA]: Match LZMA-compressed kernels with
	stupid method of just trying the decoder.

	* open.c [USE_LZMA]: Try __libdw_unlzma.
	* libdwflP.h: Declare it.
	(DWFL_ERRORS): Add DWFL_E_LZMA.
	* gzip.c [LZMA]: Implement liblzma version for XZ file format.
	* lzma.c: New file.
	* Makefile.am [LZMA] (libdwfl_a_SOURCES): Add it.

	* gzip.c (mapped_zImage): Limit scan to 32kb.
	Make this unconditional, support bzip2 kernel images too.
	(unzip): Use direct inflate method for non-mmap case too.
	Only zlib uses the stream method.

2009-08-09  Roland McGrath  <roland@redhat.com>

	* dwfl_module_build_id.c: Use new macros for versioned definitions.

2009-07-08  Roland McGrath  <roland@redhat.com>

	* dwfl_module_dwarf_cfi.c: New file.
	* dwfl_module_eh_cfi.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add them.
	* libdwflP.h (struct Dwfl_Module): New members `dwarf_cfi', `eh_cfi.
	Add INTDECL for dwfl_module_eh_cfi, dwfl_module_dwarf_cfi.

2009-07-08  Roland McGrath  <roland@redhat.com>

	* libdwflP.h (struct Dwfl_Module): Reorder members to pack better.

2009-06-18  Mark Wielaard  <mjw@redhat.com>

	* dwfl_report_elf.c (__libdwfl_report_elf): Return NULL on overlap.

2009-06-13  Ulrich Drepper  <drepper@redhat.com>

	* derelocate.c: Don't use deprecated libelf functions.
	* dwfl_module_getdwarf.c: Likewise.
	* relocate.c: Likewise.

2009-04-23  Ulrich Drepper  <drepper@redhat.com>

	* dwfl_module_build_id.c: Define versioned symbols only if SHARED is
	defined.  Otherwise just define the latest version.

2009-04-22  Roland McGrath  <roland@redhat.com>

	* relocate.c (resolve_symbol): Apply correct bias to st_value found in
	a non-ET_REL module.

	* dwfl_module_build_id.c (__libdwfl_find_build_id): Fix last change to
	adjust properly for non-ET_REL.

2009-04-21  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getsym.c: Apply non-ET_REL bias only if SHF_ALLOC.

	* relocate.c (__libdwfl_relocate_value): Assert that MOD is ET_REL.
	* derelocate.c (cache_sections): Call __libdwfl_relocate_value only
	for ET_REL.
	* dwfl_module_build_id.c (__libdwfl_find_build_id): Likewise.

2009-04-20  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getdwarf.c (__libdwfl_getelf): Add internal_function.

2009-04-19  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getdwarf.c (find_file): Renamed to ...
	(__libdwfl_getelf): ... this.  Make it global.
	(find_symtab, find_dw): Update callers.
	(dwfl_module_getelf): Functions moved ...
	* dwfl_module_getelf.c: ... here, new file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwflP.h: Declare __libdwfl_getelf.

2009-04-14  Roland McGrath  <roland@redhat.com>

	* dwfl_segment_report_module.c: Handle DT_STRTAB value being either
	absolute (already adjusted in place) or needing load bias adjustment.

	* core-file.c (dwfl_elf_phdr_memory_callback): Fix return value for
	gelf_getphdr failure.  Fix file size limit checks.

	* dwfl_segment_report_module.c: Fix underflow in DYNSTRSZ check.

2009-04-08  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getsym.c: Don't adjust for bias again after
	__libdwfl_relocate_value.

	* relocate.c (__libdwfl_relocate_value): Don't adjust a value from
	a non-SHF_ALLOC section.
	(relocate_getsym): Test st_shndx for SHN_* values, not *SHNDX.
	* dwfl_module_getsym.c (dwfl_module_getsym): Likewise.

2009-03-09  Roland McGrath  <roland@redhat.com>

	* dwfl_module_build_id.c (__libdwfl_find_build_id): Move SHSTRNDX
	variable to outer scope, so we cache it for the loop.

	* relocate.c (__libdwfl_relocate_value): Add MOD->main.bias to sh_addr.

2009-02-12  Roland McGrath  <roland@redhat.com>

	* dwfl_module_build_id.c (__libdwfl_find_build_id): Use
	__libdwfl_relocate_value to find correct sh_addr value.

2009-02-10  Roland McGrath  <roland@redhat.com>

	* dwfl_report_elf.c (__libdwfl_report_elf): Take new arg SANITY.
	If false, don't fail for NO_PHDR.
	(dwfl_report_elf): Update caller.
	* libdwflP.h: Update decl.
	* offline.c (process_elf): Call it with false, so we don't refuse
	dubiously-formed objects here.

	* link_map.c (consider_executable): Don't assert dwfl_addrsegment
	finds our module.  We shouldn't crash when we confuse some guesses.

2009-02-10  Ulrich Drepper  <drepper@redhat.com>

	* open.c (decompress): Avoid crash with empty input file.

2009-01-27  Roland McGrath  <roland@redhat.com>

	* dwfl_report_elf.c (__libdwfl_report_elf): Ignore trailing PT_LOAD
	with zero vaddr and memsz.

2009-01-22  Roland McGrath  <roland@redhat.com>

	* open.c (decompress): Move BUFFER, SIZE decls outside #if.

	* dwfl_segment_report_module.c (addr_segndx): Remove bogus adjustments
	after address-matching loop.

	* segment.c (lookup): Fix fencepost in checking for HINT match.

2009-01-14  Roland McGrath  <roland@redhat.com>

	* gzip.c [!BZLIB] (mapped_zImage): New function.
	(unzip) [!BZLIB]: Grok Linux kernel zImage format.

2009-01-10  Ulrich Drepper  <drepper@redhat.com>

	* dwfl_error.c: Always use __thread.  Remove all !USE_TLS code.

2009-01-08  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_report_offline):
	Skip subdirectory named "source".
	(dwfl_linux_kernel_find_elf): Likewise.

2009-01-06  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (check_suffix): New function.
	Match ".ko", ".ko.gz", and ".ko.bz2" suffixes.
	(dwfl_linux_kernel_report_offline): Use it.
	(dwfl_linux_kernel_find_elf): Likewise.

2009-01-05  Roland McGrath  <roland@redhat.com>

	* argp-std.c (parse_opt): Use __libdw_open_file for core file.
	* dwfl_build_id_find_debuginfo.c: Use it to open the file.
	* dwfl_build_id_find_elf.c: Likewise.
	* dwfl_module_getdwarf.c (open_elf): Likewise.
	* dwfl_report_elf.c: Likewise.
	* find-debuginfo.c (validate): Likewise.
	* offline.c (__libdwfl_report_offline): Likewise.

	* libdwflP.h: Declare __libdw_open_file.
	* open.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.

	* gzip.c: New file.
	* Makefile.am [ZLIB] (libdwfl_a_SOURCES): Add it.
	* bzip2.c: New file.
	* Makefile.am [BZLIB] (libdwfl_a_SOURCES): Add it.
	* libdwflP.h: Declare __libdw_gunzip, __libdw_bunzip2.

2008-12-16  Roland McGrath  <roland@redhat.com>

	* dwfl_module_build_id.c (dwfl_module_build_id): Define with alias and
	symver magic to bind to ELFUTILS_0.138.
	(_BUG_COMPAT_dwfl_module_build_id): New function, bug compatible
	wrapper for ELFUTILS_0.130 version set.

2008-12-18  Roland McGrath  <roland@redhat.com>

	* derelocate.c (dwfl_module_relocate_address): Fix last fix: ET_DYN
	addresses are taken as relative to MOD->low_addr.

2008-12-15  Roland McGrath  <roland@redhat.com>

	* derelocate.c (dwfl_module_relocate_address): Apply main.bias, not
	debug.bias.

2008-12-11  Roland McGrath  <roland@redhat.com>

	* offline.c (process_archive): Don't call elf_end and close if
	returning NULL.  Check first elf_begin call and set error code
	specially for empty archive.
	Fixes RHBZ#465878.

2008-12-02  Roland McGrath  <roland@redhat.com>

	* dwfl_getmodules.c (dwfl_getmodules): Typo fix in last change.

2008-11-26  Roland McGrath  <roland@redhat.com>

	* dwfl_getmodules.c (dwfl_getmodules): Encode iteration style in
	return value, and interpret encoded OFFSET argument.

2008-10-07  Roland McGrath  <roland@redhat.com>

	* dwfl_module_build_id.c (check_notes): Fix typo in vaddr calculation.

2008-09-29  Roland McGrath  <roland@redhat.com>

	* segment.c (insert): Must realloc DWFL->lookup_module here too.
	(dwfl_report_segment): Clear DWFL->lookup_module before insert calls.

2008-08-28  Roland McGrath  <roland@redhat.com>

	* segment.c (reify_segments): Fix last change.

2008-08-27  Roland McGrath  <roland@redhat.com>

	* linux-proc-maps.c (read_proc_memory): Return 0 for EINVAL or EPERM
	failure from pread64.

2008-08-26  Roland McGrath  <roland@redhat.com>

	* segment.c (reify_segments): Insert a trailing segment for a module
	end that is above the highest current segment.

2008-08-25  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getdwarf.c (open_elf): Extract elf_errno () for
	coded return value, not plain DWFL_E_LIBELF.  Return DWFL_E_BADELF
	if FILE->elf is not ELF_K_ELF.

	* dwfl_segment_report_module.c: Add a cast.

2008-08-21  Denys Vlasenko  <dvlasenk@redhat.com>

	* dwfl_module_addrsym.c (dwfl_module_addrsym): Improve logic
	which decides which symbol is "closest" to a given address.

2008-08-15  Roland McGrath  <roland@redhat.com>

	* argp-std.c (offline_callbacks): Use dwfl_build_id_find_elf.
	(options, parse_opt): Handle --core.

	* core-file.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwflP.h (dwfl_core_file_report): Declare it.

	* link_map.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwflP.h (dwfl_link_map_report): Declare it.

	* libdwflP.h (MIN, MAX): New macros.
	(Dwfl_Memory_Callback): New typedef.
	(Dwfl_Module_Callback): New typedef.
	(dwfl_segment_report_module): Declare it.
	* dwfl_segment_report_module.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.

	* derelocate.c (dwfl_module_address_section): Add INTDEF.
	* libdwflP.h: Add INTDECL.

	* segment.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_addrsegment, dwfl_report_segment.
	* libdwflP.h (struct Dwfl): New members lookup_elts, lookup_alloc,
	lookup_addr, lookup_module, lookup_segndx, replace removed members
	modules, nmodules.
	(struct Dwfl_Module): New member segment.
	* dwfl_end.c (dwfl_end): Free the new ones.  Iterate via modulelist
	to each free module.
	* dwfl_module.c (dwfl_report_begin_add): Do nothing.
	(dwfl_report_begin): Don't call it.  Truncate the segment table instead.
	(dwfl_report_module): Don't touch DWFL->nmodules.
	(dwfl_report_end): Don't touch DWFL->modules and DWFL->nmodules.
	(compare_modules): Function removed.
	* dwfl_getmodules.c: Rewritten.
	Add INTDEF.
	* libdwflP.h: Add INTDECLs.
	* dwfl_getdwarf.c: Rewritten to call dwfl_getmodules.
	* dwfl_addrmodule.c: Rewritten to just call dwfl_addrsegment.

2008-08-03  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c: Include <fts.h> before <config.h>.

2008-07-17  Roland McGrath  <roland@redhat.com>

	* dwfl_build_id_find_elf.c (__libdwfl_open_by_build_id): Set errno to
	zero if the failure was only ENOENT.

2008-06-03  Roland McGrath  <roland@redhat.com>

	* dwfl_module_addrsym.c (dwfl_module_addrsym): Exclude undefined
	symbols.

2008-05-22  Petr Machata  <pmachata@redhat.com>

	* dwfl_module_getdwarf.c (open_elf): Bias of ET_EXEC files is always 0.

2008-05-06  Roland McGrath  <roland@frob.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_report_offline): Use
	FTS_LOGICAL here too.
	(dwfl_linux_kernel_find_elf): Likewise.

2008-04-29  Roland McGrath  <roland@redhat.com>

	* find-debuginfo.c (dwfl_standard_find_debuginfo): Try path search
	based on canonicalize_file_name if it differs from the supplied name.

	* linux-kernel-modules.c (check_module_notes): Use FTS_LOGICAL so
	we accept symlinks.

2008-04-27  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (report_kernel): Fix crash when
	dwfl_report_elf fails.

2008-04-05  Roland McGrath  <roland@redhat.com>

	* linux-proc-maps.c (proc_maps_report): Don't leak LAST_FILE.

	* dwfl_module_getdwarf.c (find_file): Always free build_id_bits.
	Clear it after freeing.
	* dwfl_module_report_build_id.c (dwfl_module_report_build_id): Likewise.

2008-03-26  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getdwarf.c (load_symtab): Don't return success for
	SHT_DYNSYM, just set *SYMSCN like the comment says.

	* dwfl_end.c (dwfl_end): Iterate on modulelist chain, not modules array.

	* argp-std.c (parse_opt): On failure, call dwfl_end before argp_failure.

2008-03-19  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getsrc.c: Adjust address for module bias before search.

2008-03-01  Roland McGrath  <roland@redhat.com>

	* libdwflP.h (__libdwfl_seterrno): Remove parameter name from
	prototype to avoid older compiler's complaint about reuse of the name.
	(__libdwfl_canon_error): Likewise.

2008-02-19  Roland McGrath  <roland@redhat.com>

	* relocate.c (relocate_section): Check for an unhandled relocation
	type before resolving a reloc's symbol.  Lift DWFL_E_BADRELTYPE ->
	DWFL_E_UNKNOWN_MACHINE check out of loops.

	* dwfl_module_getdwarf.c (load_dw): Skip relocation if
	DEBUGFILE->relocated is already set.

2008-01-26  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getdwarf.c (open_elf): Open FILE->name if it's non-null.

	* dwfl_build_id_find_elf.c (__libdwfl_open_by_build_id): Don't clear
	incoming *FILE_NAME at the start.

2008-01-08  Roland McGrath  <roland@redhat.com>

	* Makefile.am (euinclude): Variable removed.
	(pkginclude_HEADERS): Set this instead of euinclude_HEADERS.

2007-10-23  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (report_kernel_archive): Reorder the kernel
	module to appear first.

2007-10-20  Roland McGrath  <roland@redhat.com>

	* offline.c (process_archive_member): Take FD argument, pass it down
	to process_file.  Return Elf_Cmd, not bool.
	Call elf_next here, always before elf_end.
	(process_archive): Update caller.  Don't close FD here unless there
	are no member refs.

	* dwfl_module.c (free_file): Close fd only when elf_end returns zero.

	* libdwflP.h (struct dwfl_file): New bool member `relocated'.
	* dwfl_module_getdwarf.c (dwfl_module_getelf): For ET_REL, apply
	partial relocation to one or both files.
	(dwfl_module_getdwarf): For ET_REL, make sure extra sections'
	relocations have been applied to the debug file if dwfl_module_getelf
	has been used before.

	* relocate.c (resolve_symbol): New function.
	(relocate_section): Call it.

	* relocate.c (relocate_getsym): Handle null MOD->symfile.
	(relocate_section): Take new bool arg, PARTIAL.  If true,
	no error for BADRELTYPE/RELUNDEF, instead just skip them
	and leave only those skipped relocs behind the reloc section.
	(__libdwfl_relocate_section): Take new arg, pass it down.
	(__libdwfl_relocate): Take new bool arg, DEBUG.  If false,
	do partial relocation on all sections.
	* dwfl_module_getdwarf.c (load_dw): Update caller.
	* libdwflP.h: Update decls.
	* derelocate.c (dwfl_module_address_section): Pass new argument
	to __libdwfl_relocate_section, true.

	* derelocate.c (cache_sections): Don't cache reloc sections when
	section_address callback is null.

2007-10-19  Roland McGrath  <roland@redhat.com>

	* relocate.c (relocate_section): Fix fencepost error in r_offset check.

	* derelocate.c (struct dwfl_relocation): Add member `relocs'.
	(struct secref): Likewise.
	(cache_sections): Cache the relocation section referring to each
	section we cache, if any.
	(dwfl_module_address_section): Use __libdwfl_relocate_section as
	necessary.

	* relocate.c (struct reloc_symtab_cache): New type.
	(relocate_getsym): Use it instead of four arguments.
	(__libdwfl_relocate): Update caller.
	(relocate_section): New function, broken out of ...
	(__libdwfl_relocate): ... here.
	(__libdwfl_relocate_section): New function.
	* libdwflP.h: Declare it.

2007-10-17  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getsym.c (dwfl_module_getsym): Apply MOD->symfile->bias
	to relocated st_value.

	* dwfl_report_elf.c (__libdwfl_report_elf): Align initial BASE for
	ET_REL to 0x100.

2007-10-16  Roland McGrath  <roland@redhat.com>

	* dwfl_report_elf.c (__libdwfl_report_elf): Readjust BASE when a later
	section has larger alignment requirements not met by the original BASE,
	rather than padding more between sections.

	* dwfl_report_elf.c (__libdwfl_report_elf): Fix bias calculation.

	* dwfl_module_build_id.c (__libdwfl_find_build_id): Apply module bias
	to sh_addr value.

	* dwfl_report_elf.c (__libdwfl_report_elf): Don't be confused by BASE
	at zero in ET_REL case.  Adjust BASE to necessary alignment.

	* dwfl_module_build_id.c (check_notes): Take -1, not 0, as stub value
	for DATA_VADDR.
	(__libdwfl_find_build_id): Update caller.

	* relocate.c (__libdwfl_relocate_value): Don't use sh_offset.
	* dwfl_report_elf.c (__libdwfl_report_elf): Likewise.
	* offline.c (dwfl_offline_section_address): Bail early if there is
	separate debug file.

	* relocate.c (__libdwfl_relocate): Don't return DWFL_E_NO_DWARF.

2007-10-09  Roland McGrath  <roland@redhat.com>

	* dwfl_report_elf.c (__libdwfl_report_elf): Clear SHDR->sh_offset when
	caching SHDR->sh_addr = 0.
	* offline.c (dwfl_offline_section_address): Never called for sh_addr
	really at 0, don't check for it.  Use MOD->debug directly, not symfile.

	* dwfl_module_getdwarf.c (load_symtab): Return success properly when
	we've found SHT_SYMTAB.

	* relocate.c (relocate_getsym): New function.
	(__libdwfl_relocate): Use it.
	(__libdwfl_relocate_value): Take new Elf * argument.  Make SYMSHSTRNDX
	be a pointer instead of value; cache getshstrndx result there.
	* libdwflP.h: Update decl.
	* derelocate.c (cache_sections): Update caller.
	Always work on the main file, not the symfile.
	(dwfl_module_address_section): Likewise.
	* dwfl_module_getsym.c (dwfl_module_getsym): Update caller.

2007-10-07  Roland McGrath  <roland@redhat.com>

	* offline.c (process_archive): Initialize MOD.

	* linux-kernel-modules.c (get_release): New function, broken out of ...
	(report_kernel): ... here.  Call it.
	(try_kernel_name): Take new arg TRY_DEBUG, only try ".debug" if set.
	(find_kernel_elf): Update caller.
	(report_kernel_archive): New function.
	(dwfl_linux_kernel_report_offline): Call it.

	* offline.c (process_file): Take new arg PREDICATE, pass it down.
	(process_archive): Likewise.
	(process_archive_member): Likewise.  When nonnull, let the predicate
	decide whether to use this member.
	(__libdwfl_report_offline): New function, broken out of ...
	(dwfl_report_offline): ... here.  Call it.
	* libdwflP.h: Declare it.

	* offline.c (process_archive, process_archive_member): New functions.
	(process_elf, process_file): New functions, broken out of ...
	(dwfl_report_offline): ... here.  Call process_file, which recurses on
	ELF_K_AR files.

	* dwfl_report_elf.c (__libdwfl_report_elf): New, broken out of ...
	(dwfl_report_elf): ... here.  Call it.
	* libdwflP.h: Declare it.

2007-10-06  Roland McGrath  <roland@redhat.com>

	* derelocate.c (dwfl_module_relocations): Don't call
	dwfl_module_getdwarf.

	* derelocate.c (find_section): Use __libdwfl_seterrno, not
	__libdw_seterrno.

	* relocate.c (__libdwfl_relocate_value): Abuse sh_offset, not
	SHF_ALLOC, to cache sh_addr resolved to 0.

	* dwfl_report_elf.c (dwfl_report_elf): When an ET_REL file has sh_addr
	values nonzero already, just use its existing layout.

	* relocate.c (__libdwfl_relocate): Clear size of reloc section in its
	in-core shdr after applying it.

2007-10-04  Ulrich Drepper  <drepper@redhat.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_report_kernel): Fake
	initialization of notes variable.

2007-10-04  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (intuit_kernel_bounds): Take new arg NOTES,
	fill in with vaddr of "__start_notes" symbol if found.
	(check_notes): New function.
	(check_kernel_notes): New function.
	(dwfl_linux_kernel_report_kernel): Call it.
	(check_module_notes): New function.
	(dwfl_linux_kernel_report_modules): Call it.

	* linux-kernel-modules.c (dwfl_linux_kernel_find_elf):
	Try dwfl_build_id_find_elf first.

	* linux-kernel-modules.c (report_kernel): Don't leak FD if !REPORT.
	Set kernel module e_type to ET_DYN.

2007-10-03  Roland McGrath  <roland@redhat.com>

	* find-debuginfo.c (validate): New function, broken out of ...
	(find_debuginfo_in_path): ... here.  New function, broken out of ...
	(dwfl_standard_find_debuginfo): ... here.  Call it, after trying
	dwfl_build_id_find_debuginfo first.

	* dwfl_build_id_find_elf.c: New file.
	* dwfl_build_id_find_debuginfo.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add them.
	* libdwfl.h: Declare them.
	* libdwflP.h: Add INTDECLs.

	* dwfl_module_build_id.c: New file.
	* dwfl_module_report_build_id.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add them.
	* libdwfl.h: Declare them.
	* libdwflP.h (struct Dwfl_Module): New members build_id_bits,
	build_id_len, build_id_vaddr.  Declare __libdwfl_find_build_id.
	* dwfl_module.c (__libdwfl_module_free): Free MOD->build_id_bits.

	* dwfl_module_getdwarf.c (find_offsets): New function.
	(find_dynsym): New function, calls that.
	(find_symtab): Call it.

2007-09-11  Roland McGrath  <roland@redhat.com>

	* dwfl_module_addrsym.c: Prefer a later global symbol at the same
	address if its st_size is smaller.

2007-08-13  Roland McGrath  <roland@redhat.com>

	* dwfl_module_addrsym.c: Add dead initializer for stupid compiler.

2007-08-12  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_report_offline): Don't use
	FTS_LOGICAL.

	* elf-from-memory.c (elf_from_remote_memory): Don't reset LOADBASE on
	a second phdr if it happens to match EHDR_VMA exactly.

2007-08-08  Roland McGrath  <roland@redhat.com>

	* dwfl_module_addrsym.c: Don't use STT_SECTION, STT_FILE symbols and
	those with no names.  Rewrite best symbol algorithm not to assume a
	sorted table and to be smarter handling sizeless symbols.

2007-07-16  Roland McGrath  <roland@redhat.com>

	* dwfl_module.c (dwfl_report_module): Increment DWFL->nmodules when
	reviving an existing module.

2007-06-08  Roland McGrath  <roland@redhat.com>

	* libdwflP.h: Fix #ifndef for config.h to use PACKAGE_NAME.

2007-05-17  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_report_offline): Look at
	whole /lib/modules/VERSION tree, not just /lib/modules/VERSION/kernel.
	(dwfl_linux_kernel_find_elf): Likewise.

	* linux-kernel-modules.c (dwfl_linux_kernel_report_modules): Use
	getline and sscanf instead of fscanf.

2007-05-08  Roland McGrath  <roland@redhat.com>

	* offline.c (dwfl_offline_section_address): Don't assume section
	numbers match between stripped and debuginfo files.  Instead, assume
	only that the ordering among SHF_ALLOC sections matches.

	* linux-kernel-modules.c (report_kernel): Change RELEASE argument to
	pointer to string.
	(dwfl_linux_kernel_report_offline): Update caller.
	(dwfl_linux_kernel_report_kernel): Likewise.

2007-04-23  Roland McGrath  <roland@redhat.com>

	* argp-std.c (options): Fix group title string.

	* argp-std.c (parse_opt): Handle ARGP_KEY_ERROR, free the Dwfl.
	Update via STATE->input every time we set STATE->hook, not only at
	ARGP_KEY_SUCCESS.

	* dwfl_module.c (free_file): Free FILE->name.

2007-04-16  Roland McGrath  <roland@redhat.com>

	* derelocate.c (cache_sections): Apply bias to sh_addr.
	(compare_secrefs): Fix address comparison to avoid signed overflow.
	(find_section): New function, broken out of ...
	(dwfl_module_relocate_address): ... here, call it.
	(check_module): New function, broken out of ...
	(dwfl_module_relocate_address): ... here, call it.
	(dwfl_module_address_section): New function.
	* libdwfl.h: Declare it.

2007-03-26  Roland McGrath  <roland@redhat.com>

	* dwfl_module.c (__libdwfl_module_free): Free MOD itself.

2007-03-18  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getdwarf.c (find_debuglink): New function, broken out of
	(find_debuginfo): ... here.  Call it.
	Don't return error for libelf errors finding .gnu_debuglink section.

2007-03-12  Roland McGrath  <roland@redhat.com>

	* dwfl_module.c (dwfl_report_begin_add): New function broken out of ...
	(dwfl_report_begin): ... here.  Call it.
	* libdwfl.h: Declare it.
	* libdwflP.h: Add INTDECL.

	* elf-from-memory.c (elf_from_remote_memory): Fix 32/64 typo.

	* offline.c: Comment typo fix.

2007-03-04  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (KERNEL_MODNAME): New macro for "kernel".
	(find_kernel_elf): New function, broken out of ...
	(report_kernel): ... here.  Call it.
	(dwfl_linux_kernel_find_elf): Use it for module named KERNEL_MODNAME.
	(intuit_kernel_bounds): New function, grovel /proc/kallsyms to guess
	virtual address bounds of kernel from symbols rounded to page size.
	(dwfl_linux_kernel_report_kernel): Use that if it works, before
	resorting to report_kernel.

	* dwfl_module_getdwarf.c (open_elf): Set MOD->e_type to ET_DYN for an
	ET_EXEC file with nonzero bias.

	* dwfl_module_addrname.c (dwfl_module_addrname): Just call
	dwfl_module_addrsym.  Guts moved to ...
	* dwfl_module_addrsym.c: ... here; new file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_module_addrsym.
	* libdwflP.h: Add INTDECL.

2007-03-03  Roland McGrath  <roland@redhat.com>

	* dwfl_module.c (free_file): New function, broken out of ...
	(__libdwfl_module_free): ... here.  In it, close fd after elf_end.

	* dwfl_module_getdwarf.c (open_elf): Close fd and reset to -1
	on libelf failure.

2007-03-02  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c: Fix bogus error test for asprintf call.

2007-02-02  Roland McGrath  <roland@redhat.com>

	* dwfl_addrmodule.c (dwfl_addrmodule): Match a module's high boundary
	address exactly if it's no other module's low boundary.

	* dwfl_module_addrname.c (dwfl_module_addrname): If no symbol's value
	and size cover the address, select the closest symbol with st_size==0
	that lies in the same section.

2007-01-29  Roland McGrath  <roland@redhat.com>

	* dwfl_version.c (dwfl_version): Return PACKAGE_VERSION,
	not PACKAGE_STRING.

2007-01-20  Roland McGrath  <roland@redhat.com>

	* relocate.c (__libdwfl_relocate_value): Treat section_address of -1
	as omitted, not 0.
	* libdwfl.h (Dwfl_Callbacks): Update comment.
	* derelocate.c (cache_sections): Don't ignore sh_addr == 0 sections.
	* linux-kernel-modules.c (dwfl_linux_kernel_module_section_address):
	For ignored missing section, use -1 instead of 0.
	* offline.c (dwfl_offline_section_address): Expect a call for 0.

2007-01-19  Roland McGrath  <roland@redhat.com>

	* argp-std.c (parse_opt): For -e, reset DWFL->offline_next_address to
	zero so a lone -e foo.so is shown without address bias.

2007-01-10  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (report_kernel): Check asprintf return value
	directly instead of via side effect, to silence warn_unused_result.
	(dwfl_linux_kernel_report_offline): Likewise.
	(dwfl_linux_kernel_find_elf): Likewise.
	(dwfl_linux_kernel_module_section_address): Likewise.
	* find-debuginfo.c (try_open): Likewise.
	* linux-proc-maps.c (find_sysinfo_ehdr): Likewise.
	(dwfl_linux_proc_report): Likewise.

	* libdwfl.h (dwfl_begin): Require nonnull argument.

2006-12-27  Roland McGrath  <roland@redhat.com>

	* dwfl_module.c (compare_modules): Fix address comparison to avoid
	signed overflow.  Patch by Frank Ch. Eigler <fche@redhat.com>.

2006-10-30  Roland McGrath  <roland@redhat.com>

	* dwfl_module.c (dwfl_report_module): Comment typo fix.

2006-09-05  Roland McGrath  <roland@redhat.com>

	* derelocate.c (cache_sections): Use alloca instead of variable-sized
	auto array, in function already using alloca.

2006-08-14  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (try_kernel_name): If the call to
	dwfl_standard_find_debuginfo produces no results, try it again
	with NULL as DEBUGLINK_FILE to try *FNAME with .debug suffix.

	* find-debuginfo.c (DEFAULT_DEBUGINFO_PATH): Macro moved ...
	* libdwflP.h: ... to here.
	* linux-kernel-modules.c (try_kernel_name): Skip manual open if it
	repeats the first thing dwfl_standard_find_debuginfo will try.

	* linux-kernel-modules.c (MODULE_SECT_NAME_LEN): New macro.
	(dwfl_linux_kernel_module_section_address): If a /sys file is missing
	and the section name is >= MODULE_SECT_NAME_LEN, try truncating the
	section name.

2006-07-12  Ulrich Drepper  <drepper@redhat.com>

	* cu.c: Adjust for internal_function_def removal.
	* dwfl_error.c: Likewise.
	* dwfl_module.c: Likewise.
	* dwfl_module_getdwarf.c: Likewise.
	* lines.c: Likewise.
	* relocate.c: Likewise.

2006-07-11  Ulrich Drepper  <drepper@redhat.com>

	* dwfl_module.c (compare_modules): Don't return GElf_Sxword value,
	it can overflow the return value type.
	Patch by Tim Moore <timoore@redhat.com>.

2006-06-28  Roland McGrath  <roland@redhat.com>

	* libdwfl.h: Cosmetic changes.

	* dwfl_line_comp_dir.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_line_comp_dir.

	* dwfl_lineinfo.c (dwfl_lineinfo): Remove stray extern in defn.

	* dwfl_linecu.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_linecu.

	* libdwflP.h (dwfl_linecu_inline): Function renamed from dwfl_linecu.
	(dwfl_linecu): Define as macro.

	* relocate.c (__libdwfl_relocate): Use dwfl_module_getsym.

	* dwfl_module_getdwarf.c (dwfl_module_getsymtab): New function.
	(dwfl_module_addrname): Function moved ...
	* dwfl_module_addrname.c: ... here, new file.
	* dwfl_module_getsym.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add them.
	* libdwfl.h: Declare dwfl_module_getsymtab, dwfl_module_getsym.
	* libdwflP.h: Add INTDECLs.

2006-06-27  Roland McGrath  <roland@redhat.com>

	* dwfl_module.c (dwfl_report_end): Whitespace fix.

2006-06-13  Roland McGrath  <roland@redhat.com>

	* elf-from-memory.c (elf_from_remote_memory): Fix 32/64 typo.
	Use __libdwfl_seterrno for elf_memory failure.

2006-05-22  Roland McGrath  <roland@redhat.com>

	* dwfl_module_return_value_location.c
	(dwfl_module_return_value_location): Use __libdwfl_module_getebl.

2006-05-27  Ulrich Drepper  <drepper@redhat.com>

	* libdwfl.h: Add extern "C".

2006-05-22  Ulrich Drepper  <drepper@redhat.com>

	* cu.c (addrarange): Handle files without aranges information.

2006-05-16  Ulrich Drepper  <drepper@redhat.com>

	* dwfl_addrmodule.c (dwfl_addrmodule): Also return NULL of
	->modules is NULL.

2006-02-26  Roland McGrath  <roland@redhat.com>

	* dwfl_version.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_version.

	* offline.c (dwfl_report_offline): Account for dwfl_report_elf having
	aligned up from DWFL->offline_next_address when checking for overlap.

2005-12-22  Roland McGrath  <roland@redhat.com>

	* argp-std.c (parse_opt): Call dwfl_end in failure cases.

	* linux-proc-maps.c (proc_maps_report): New function, broken out of ...
	(dwfl_linux_proc_report): ... here.  Call it.
	(dwfl_linux_proc_maps_report): New function.
	* libdwfl.h: Declare it.
	* libdwflP.h: Add INTDECL.
	* argp-std.c (options, parse_opt): Grok -M/--linux-process-map.

	* dwfl_nextcu.c (dwfl_nextcu): Don't fail when dwfl_module_getdwarf
	failed with DWFL_E_NO_DWARF.

2005-11-26  Roland McGrath  <roland@redhat.com>

	* dwfl_end.c (dwfl_end): Free the DWFL itself.

2005-11-25  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getdwarf.c (__libdwfl_module_getebl): New function.
	(load_dw): Use it.
	* dwfl_module_register_names.c (dwfl_module_register_names): Likewise.
	* libdwflP.h: Declare it.

	* dwfl_module_register_names.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_module_register_names.

2005-11-21  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_module_section_address):
	Don't leak malloc'd file name.
	If a /sys/.../sections file is missing and starts with ".init",
	try the variant with "_init" too; catches PPC64 kernel braindamage.

2005-11-15  Roland McGrath  <roland@redhat.com>

	* libdwfl.h: Comment fixes.

	* dwfl_module_return_value_location.c: Add unlikely for error case.

2005-11-13  Roland McGrath  <roland@redhat.com>

	* dwfl_return_value_location.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_module_return_value_location.
	* libdwflP.h (DWFL_ERRORS): Add DWFL_E_WEIRD_TYPE.

2005-10-20  Roland McGrath  <roland@redhat.com>

	* libdwflP.h (DWFL_ERRORS): New error UNKNOWN_MACHINE.
	* relocate.c (__libdwfl_relocate): Return DWFL_E_UNKNOWN_MACHINE
	instead of DWFL_E_BADRELTYPE if ebl_get_elfmachine yields EM_NONE.

2005-10-01  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (report_kernel): Return ENOENT if we fail
	with errno 0.

2005-09-19  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_report_modules): Use
	PRIx64 instead of PRIi64, lest addresses with high bits set overflow
	the signed integer reading; they will just have to be in hexadecimal.
	(dwfl_linux_kernel_module_section_address): Likewise.

2005-08-28  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am (%.os): Use COMPILE.os.
	(COMPILE.os): Filter out gconv options.

2005-08-25  Roland McGrath  <roland@redhat.com>

	* cu.c (__libdwfl_nextcu): Return success when dwarf_nextcu hits end.
	* dwfl_nextcu.c (dwfl_nextcu): Skip modules with no dwarf info.

2005-08-24  Roland McGrath  <roland@redhat.com>

	* dwfl_lineinfo.c (dwfl_lineinfo): Add bias, don't subtract it.

	* argp-std.c [_MUDFLAP] (__libdwfl_argp_mudflap_options): New function,
	magic initializer to set -heur-stack-bound option.

2005-08-22  Roland McGrath  <roland@redhat.com>

	* dwfl_validate_address.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_validate_address.

	* derelocate.c (dwfl_module_relocate_address): Add INTDEF.
	* libdwflP.h: Add INTDECL.

	* dwfl_module_getdwarf.c (find_symtab): Use elf_getdata instead of
	elf_rawdata for symbol-related sections.

	* offline.c (dwfl_report_offline): Move offline_next_address outside
	module's range, in case it's an ET_EXEC using fixed segment locations.
	* libdwfl.h: Update comment.

	* dwfl_report_elf.c (dwfl_report_elf): Align BASE to first segment's
	required alignment.

2005-08-20  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (report_kernel): Take new argument PREDICATE,
	function to choose whether to report.
	(dwfl_linux_kernel_report_offline): Likewise.
	* libdwfl.h: Update decl.
	* argp-std.c (parse_opt): Update caller.

	* dwfl_getsrclines.c: New file.
	* dwfl_onesrcline.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add them.
	* libdwfl.h: Declare dwfl_getsrclines, dwfl_onesrcline.

	* linux-kernel-modules.c (dwfl_linux_kernel_find_elf): Don't leak
	MODULESDIR[0].  Call fts_close on failure.

	* dwfl_module_getdwarf.c (load_dw): Take dwfl_file * instead of Elf *.
	Close ET_REL file descriptors after relocation.
	(find_dw): Update caller.
	* offline.c (dwfl_report_offline): Get the file into memory and close
	the file descriptor.

	* dwfl_module_getdwarf.c (find_debuginfo): Do nothing when
	MOD->debug.elf is already set.

	* find-debuginfo.c (try_open): Use TEMP_FAILURE_RETRY.
	(dwfl_standard_find_debuginfo): Fail on errors not ENOENT or ENOTDIR.

	* argp-std.c (options, parse_opt): Grok -K/--offline-kernel, use
	dwfl_linux_kernel_report_offline with offline_callbacks.

	* linux-kernel-modules.c (report_kernel): New function, broken out of
	...
	(dwfl_linux_kernel_report_kernel): ... here.  Use it.
	(dwfl_linux_kernel_report_offline): New function.
	* libdwfl.h: Declare it.
	* libdwflP.h: Add INTDECL.

2005-08-19  Roland McGrath  <roland@redhat.com>

	Use standard debuginfo search path to look for vmlinux.
	* find-debuginfo.c (dwfl_standard_find_debuginfo): Don't check CRC if
	passed zero.
	* linux-kernel-modules.c (try_kernel_name): New function, broken out
	of ...
	(dwfl_linux_kernel_report_kernel): ... here.  Use it.

	* argp-std.c (offline_callbacks): New variable.
	(parse_opt): Use it for -e.  Allow multiple -e options.

	* offline.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_offline_section_address, dwfl_report_offline.
	* libdwflP.h: Add INTDECLs.
	(OFFLINE_REDZONE): New macro.
	(struct Dwfl): New member `offline_next_address'.
	* dwfl_begin.c (dwfl_begin): Initialize it.
	* dwfl_module.c (dwfl_report_begin): Likewise.

	* dwfl_report_elf.c (dwfl_report_elf): Accept all types.  When ET_REL,
	do a nominal absolute section layout starting at BASE.
	* libdwfl.h: Update comment.

2005-08-18  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getsrc_file.c (dwfl_module_getsrc_file): Do
	dwfl_module_getdwarf if necessary.

	* dwfl_report_elf.c (dwfl_report_elf): Permit ET_REL with BASE==0.
	* libdwfl.h: Update comment.

	* derelocate.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.

	* libdwflP.h (struct Dwfl_Module): isrel -> e_type.
	* dwfl_report_elf.c (dwfl_report_elf): Initialize it.
	* dwfl_module_getdwarf.c (open_elf): Update initialization.
	(load_dw, dwfl_module_addrname): Update uses.
	* relocate.c (__libdwfl_relocate): Likewise.

2005-08-04  Roland McGrath  <roland@redhat.com>

	* libdwfl.h (Dwfl_Callbacks.section_address): Take additional
	arguments SHNDX, SHDR.
	(dwfl_linux_kernel_module_section_address): Update prototype.
	* relocate.c (__libdwfl_relocate_value): Update caller.
	* linux-kernel-modules.c (dwfl_linux_kernel_module_section_address):
	Take the new arguments.

2005-08-10  Roland McGrath  <roland@redhat.com>

	* relocate.c (__libdwfl_relocate): Take argument DEBUGFILE,
	use it instead of MOD->debug.file.
	* libdwflP.h: Update decl.
	* dwfl_module_getdwarf.c (load_dw): Update caller.
	Fixes bug #165598.

2005-08-09  Roland McGrath  <roland@redhat.com>

	* libdwflP.h: Include ../libdw/libdwP.h for its INTDECLs.
	* cu.c: Use INTUSE on dwarf_* calls.
	* dwfl_error.c: Likewise.
	* dwfl_module.c: Likewise.
	* dwfl_module_getdwarf.c: Likewise.
	* dwfl_module_getsrc_file.c: Likewise.
	* lines.c: Likewise.

2005-08-07  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_find_elf): When module
	names contain '_' or '-', look for files named either "foo-bar.ko"
	or "foo_bar.ko".

2005-07-29  Roland McGrath  <roland@redhat.com>

	* loc2c.c: File removed.
	* loc2c.h: File removed.
	* loc2c-runtime.h: File removed.
	* test2.c: File removed.
	* Makefile.am (EXTRA_DIST): Variable removed.
	(noinst_HEADERS): Remove loc2c.h from here.

2005-07-28  Ulrich Drepper  <drepper@redhat.com>

	* libdwfl.h: Add a few missing extern for function prototypes.

	* libdwfl_crc32.c: New file.
	* libdwfl_crc32_file.c: New file.
	* libdwflP.h: Declare the new functions.
	* Makefile.am (libdwfl_a_SOURCES): Add libdwfl_crc32.c and
	libdwfl_crc32_file.c.
	* libdwfl/find-debuginfo.c (check_crc): Use __libdwfl_crc32_file
	instead of crc32_file.

2005-07-28  Roland McGrath  <roland@redhat.com>

	* ptest.c: Moved to ../tests/dwflmodtest.c.

	* Makefile.am (noinst_PROGRAMS): Variable removed.
	(libdwfl_so_SOURCES, libdwfl_LIBS, libdwfl_so_LDADD): Likewise.
	(EXTRA_DIST, ptest_LDADD, test2_LDADD): Likewise.
	(libdwfl): Don't use libdwfl.so any more.
	(libdwfl.so, install, uninstall): Targets removed.
	(test2_SOURCES): Define EXTRA_DIST instead of this.
	* libdwfl.map: File removed.

	* libdwfl.h: Use "" for libdw.h #include.

2005-07-27  Roland McGrath  <roland@redhat.com>

	* libdwfl.map: Add dwfl_getmodules.

2005-07-23  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am: Fix rules to allow building with mudflap.

2005-07-21  Roland McGrath  <roland@redhat.com>

	* Makefile.am (noinst_HEADERS): Add loc2c.c.

	* test2.c (main): Check sscanf result to quiet warning.

2005-07-20  Roland McGrath  <roland@redhat.com>

	* libdwfl-branch merged, creating this direcotry.
