2022-04-24  Mark Wielaard  <mark@klomp.org>

	* elf_update.c (write_file): Check HAVE_MREMAP.

2022-04-01  Mark Wielaard  <mark@klomp.org>

	* libelfP.h (struct Elf_Data_Chunk): Add an int64_t offset field.
	* elf_getdata_rawchunk.c (elf_getdata_rawchunk): Check whether the
	requested chunk, offset, size and type, was already handed out.
	Set new Elf_Data_Chunk offset field.

2022-03-29  Mark Wielaard  <mark@klomp.org>

	* gelf_xlate.c (START): Define and use sz variable.
	(END): Use sz variable to decide whether to do a memmove.

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

	* elf.h: Update from glibc.

2022-03-22  Mark Wielaard  <mark@klomp.org>

	* elf_getdata.c (__libelf_type_aligns): ELF_T_GNUHASH has different
	alignment for ELFCLASS32 and ELFCLASS64.

2022-03-20  Mark Wielaard  <mark@klomp.org>

	* version_xlate.h (elf_cvt_Verdef): Make sure aux_offset and
	def_offset don't overflow.
	(elf_cvt_Verneed): Make sure aux_offset and need_offset don't
	overflow.

2022-03-18  Mark Wielaard  <mark@klomp.org>

	* version_xlate.h (elf_cvt_Verdef): Check alignment of def_offset
	and aux_offset.
	(elf_cvt_Verneed): Check alignment of need_offset and aux_offset.

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

	* elf_begin.c (read_long_names): Check ar_size starts with a digit.

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

	* elf_begin.c (get_shnum): Take offset into account for Shdr
	alignment check.

2021-12-19  Mark Wielaard  <mark@klomp.org>

	* elf_begin.c (file_read_elf): Cast ehdr to uintptr_t before e_shoff
	alignment check. Only set shdr state when scncnt is larger than zero.

2021-12-16  Mark Wielaard  <mark@klomp.org>

	* libelfP.h (NOTE_ALIGN4): And with negative unsigned long.
	(NOTE_ALIGN8): Likewise.

2021-12-15  Mark Wielaard  <mark@klomp.org>

	* elf_begin.c (get_shnum): Use offsetof to get field of unaligned
	struct.

2021-09-06  Dmitry V. Levin  <ldv@altlinux.org>

	* common.h (allocate_elf): Remove cast of calloc return value.
	* elf_newdata.c (elf_newdata): Likewise.
	* elf_getscn.c (elf_getscn): Remove casts of calloc return values.
	* elf_newscn.c (elf_newscn): Likewise.
	* elf32_updatefile.c (__elfw2): Remove casts of malloc return values.
	* elf_getdata.c (convert_data): Likewise.
	(__libelf_set_rawdata_wrlock): Remove cast of malloc return value.
	* elf_begin.c (read_long_names): Remove cast of malloc return value.
	* elf_readall.c (__libelf_readall): Likewise.
	* elf_getarsym.c (elf_getarsym): Remove casts of malloc and realloc
	return values.

2021-07-19  Mark Wielaard  <mark@klomp.org>

	* elf_strptr.c (validate_str): Check last char is zero first before
	calling memrchr on the whole block.

2021-06-09  Andrei Homescu  <ah@immunant.com>

	* elf_getdata.c: Fix d_align for sections where alignment is larger
	than offset.

2020-12-12  Mark Wielaard  <mark@klomp.org>

	* elf.h: Update from glibc.

2020-12-16  Dmitry V. Levin  <ldv@altlinux.org>

	* libelfP.h (_): Remove.

2020-12-15  Mark Wielaard  <mark@klomp.org>

	* elf_begin.c (get_shnum): Make sure the full Ehdr is available.

2020-12-12  Dmitry V. Levin  <ldv@altlinux.org>

	* common.h: Fix spelling typo in comment.
	* gelf.h: Likewise.
	* libelf.h: Likewise.
	* libelfP.h: Likewise.
	* elf32_checksum.c (elfw2): Likewise.
	* elf_begin.c (dup_elf, write_file): Likewise.
	* elf_compress.c (__libelf_compress): Likewise.
	* elf_compress_gnu.c (elf_compress_gnu): Likewise.

2020-12-11  Dmitry V. Levin  <ldv@altlinux.org>

	* Makefile.am (GCC_INCLUDE): Remove.

2020-12-09  Dmitry V. Levin  <ldv@altlinux.org>

	* Makefile.am (noinst_PROGRAMS): Rename to noinst_DATA.
	(libelf_so_SOURCES): Remove.
	(CLEANFILES): Add libelf.so.

2020-11-30  Dmitry V. Levin  <ldv@altlinux.org>

	* Makefile.am (libelf.so$(EXEEXT)): Drop $(EXEEXT) suffix.

2020-11-06  Mark Wielaard  <mark@klomp.org>

	* elf-knowledge.h (SH_ENTSIZE_HASH): Update comment.

2020-11-01  Mark Wielaard  <mark@klomp.org>

	* elf_strptr.c (elf_strptr): Check shdr is not NULL.

2020-11-01  Mark Wielaard  <mark@klomp.org>

	* elf_getphdrnum.c (__elf_getphdrnum_rdlock): Set *dst to zero on
	error.

2020-11-01  Mark Wielaard  <mark@klomp.org>

	* libelfP.h (__libelf_data_type): Take an GElf_Ehdr instead of an
	Elf handle.
	* elf_getdata.c (__libelf_data_type): Likewise. And check ehdr
	directly instead of fetching a new one.
	(__libelf_set_rawdata_wrlock): Fetch Ehdr, report an error when that
	fails, otherwise call __libelf_data_type.

2020-10-28  Mark Wielaard  <mark@klomp.org>

	* elf.h: Update from glibc.

2020-08-28  Mark Wielaard  <mark@klomp.org>

	* elf.h: Update from glibc.

2020-08-19  Mark Wielaard  <mark@klomp.org>

	* elf32_updatenull.c (updatenull_wrlock): Fixup the sh_addralign
	of an SHF_COMPRESSED section if necessary.

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

	* elf.h: Update from glibc.

2020-05-08  Mark Wielaard  <mark@klomp.org>

	* elf_strptr.c (elf_strptr): Check shdr is not NULL.

2020-05-08  Mark Wielaard  <mark@klomp.org>

	* elf_getdata.c (__libelf_set_rawdata_wrlock): Check
	__gelf_getehdr_rdlock return value.

2020-04-25  Mark Wielaard  <mark@klomp.org>

	* elf_compress.c (__libelf_compress): Remove free (out_buf).

2020-03-18  Omar Sandoval  <osandov@fb.com>

	* elf_getphdrnum.c (__elf_getphdrnum_rdlock): Call
	__elf{32,64}_getshdr_rdlock if the shdr is not cached.

2019-03-20  Matthias Maennich  <maennich@google.com>

	* elf_compress.c (__libelf_compress): Always call deflate_cleanup
	in failure path. Call deflateEnd only once.
	(__libelf_decompress): Call inflateEnd only once.

2019-06-18  Mark Wielaard  <mark@klomp.org>

	* common.h (allocate_elf): Use int64_t instead of off_t for offset.
	* elf32_newphdr.c (newphdr): Document why Elf32/64_Word is correct.
	* elf32_updatefile.c (fill): Use int64_t instead of off_t for pos.
	(updatefile): Define last_offset, shdr_offset and scn_start as
	int64_t instead of off_t.
	* elf32_updatenull.c: Define Elf32_SizeWord and Elf64_SizeWord.
	(updatenull_wrlock): Return int64_t instead of off_t. Define size,
	sh_entsize, sh_align and sh_size as SizeWords. Define offset as
	int64_t.  Cast data->d_off to SizeWord instead of GElf_Word. Drop
	size GElf_Word cast. Cast offset to SizeWord instead of GElf_Word
	when comparing with sh_size.
	* elf_begin.c (get_shnum): Define offset as int64_t instead of
	off_t. Document why use GElf_Word is correct.
	(file_read_elf): Define offset as int64_t instead of off_t.
	(__libelf_read_mmaped_file): Likewise.
	(read_unmmaped_file): Likewise.
	(read_file): Likewise.
	* elf_getaroff.c (elf_getaroff): Return int64_t.
	* elf_getbase.c (elf_getbase): Likewise.
	* elf_getdata_rawchunk.c (elf_getdata_rawchunk): Define offset as
	int64_t instead of off_t.
	* elf_update.c (write_file): Return int64_t instead of off_t,
	define size as int64_t instead of off_t.
	(elf_update): Likewise.
	* libelfP.h (struct Elf): Define start_offset, sizestr_offset and
	offset as int64_t.
	(__libelf_read_mmaped_file): Define offset as int64_t.
	(__elf32_updatenull_wrlock): Return int64_t.
	(__elf64_updatenull_wrlock): Return int64_t.

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

	* elf32_updatenull.c (updatenull_wrlock): Mark shdr_flags dirty if
	either offset or size changed.

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

	* gelf_getnote.c (gelf_getnote): Check n_namesz doesn't overflow
	offset.

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

	* note_xlate.h (elf_cvt_note): Indicate we only translated the note
	header if we ran out of data by updating len, src and dest.

2019-04-01  Mao Han  <han_mao@c-sky.com>

	* elf.h: Update from glibc.

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

	* elf32_updatefile.c (updatemmap): Use posix_memalign instead of
	aligned_alloc.

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

	* elf32_updatefile.c (updatemmap): Free scns before returning
	allocation failure.

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

	* gelf_xlate.c (__elf_xfctstof): Remove alias.
	* libelfP.h (__elf_xfctstof): Remove definition.

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

	* elf32_fsize.c (local_strong_alias): Remove definition.
	(msize): Remove alias.
	* libelfP.h (__elf32_msize): Remove definition.
	(__elf64_msize): Likewise.

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

	* common.h (determine_kind): Only accept EV_CURRENT.
	* elf32_fsize.c (fsize): Just check version is EV_CURRENT.
	Use __libelf_type_size without version dimension.
	* elf32_updatefile.c (updatemmap): Define fctp from __elf_xfctstom
	without version dimension.
	(updatefile): Likewise.
	* elf32_updatenull.c (default_ehdr): Check e_version is EV_CURRENT.
	(updatenull_wrlock): Check d_version is EV_CURRENT.
	(elf32_xlatetof): Likewise. And get recsize without version
	dimension from __elf_xfctstom.
	(elf32_xlatetom): Likewise.
	* elf_begin.c (elf_begin): Check __libelf_version is EV_CURRENT.
	* elf_compress.c (__libelf_reset_rawdata): Set d_version to
	EV_CURRENT.
	* elf_getdata.c (shtype_map): Remove version dimension.
	(__libelf_type_aligns): Likewise.
	(__libelf_data_type): Use shtype_map without version dimension.
	(convert_data): Remove unused version argument. Get fp from
	__elf_xfctstom without version dimensions.
	(__libelf_set_data_list_rdlock): Call convert_data without version.
	* elf_getdata_rawchunk.c (elf_getdata_rawchunk): Call __elfcfctstom
	conversion function without version dimensions. Set d_version to
	EV_CURRENT.
	* elf_newdata.c (elf_newdata): Set d_version to EV_CURRENT.
	* elf_version.c (__libelf_version_initialized): Removed.
	(__libelf_version): Initialized to EV_NONE.
	(elf_version): Always return EV_CURRENT for EV_NONE version.
	Only accept (and return) EV_CURRENT as version.
	* gelf_fsize.c (__libelf_type_sizes): Remove version dimension.
	(gelf_fsize): Only accept EV_CURRENT as version.
	Use __libelf_type_sizes without version dimension.
	* gelf_xlate.c (__elf_xftstom): Remove version dimensions.
	* libelfP.h (__elf_xfctstom): Defined without version dimensions.
	(__elf_xfctstof): Likewise.
	(__libelf_type_sizes): Define without version dimension.
	(elf_typesize): Define using __libelf_type_sizes without version
	dimension.
	(__libelf_version_initialized): Remove definition.
	(__libelf_version): Add definition.
	(LIBELF_EV_IDX): Removed define.
	(__libelf_type_aligns): Remove version dimension.
	* nlist.c (nlist): Call elf_version unconditionally.

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

	* elf_compress.c (do_deflate_cleanup): Remove ei_data argument,
	check cdatap is not NULL before calling free.
	(deflate_cleanup): Add cdata as argument.
	(__libelf_compress): Also check whether the d_size is not zero
	before converting data. Call deflate_cleanup with an extra
	argument depending on whether there is converted data to free.
	Always allocate allocate at least one byte for buf_out.

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

	* elf_begin.c (read_long_names): Make sure ar_size is properly
	terminated. Sanity check len early if we can.

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

	* Makefile.am (INSTALL_ELFH): Add elf.h to include_HEADERS when
	defined, otherwise (the default) add elf.h to noinst_HEADERS.

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

	* note_xlate.h (elf_cvt_note): Check n_namesz and n_descsz don't
	overflow note_len into note header.

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

	* elf32_updatefile.c (updatemmap): Make sure to call convert
	function on a properly aligned destination.

2018-11-16  Mark Wielaard  <mark@klomp.org>

	* libebl.h (__elf32_msize): Mark with const attribute.
	(__elf64_msize): Likewise.

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

	* elf_getdata.c (__libelf_set_rawdata_wrlock): Explicitly set the
	alignment of SHF_COMPRESSED data to the alignment of ELF_T_CHDR.
	* elf_compress.c (elf_compress): After compression set sh_addralign
	to the alignment of ELF_T_CHDR.

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

	* elf_compress_gnu.c (elf_compress_gnu): Use elf_getdata.

2018-11-12  Mark Wielaard  <mark@klomp.org>

	* elf-knowledge.c (ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX): New define.
	(NT_GNU_BUILD_ATTRIBUTE_{OPEN,FUNC}): Likewise.
	(GNU_BUILD_ATTRIBUTE_TYPE_{NUMERIC,STRING,BOOL_TRUE,BOOL_FALSE}):
	Likewise.
	(GNU_BUILD_ATTRIBUTE_{VERSION,STACK_PROT,RELRO,STACK_SIZE,TOOL,ABI,
	PIC,SHORT_ENUM}): Likewise.

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

	* elf_compress.c (__libelf_reset_rawdata): Make rawdata change
	explicit by calling __libelf_set_data_list.
	* elf_getdata.c (convert_data): Don't convert if type is ELF_T_BYTE
	even if endianness is different.

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

	* libelf.h (Elf_Type): Add ELF_T_NHDR8.
	* libelfP.h (__libelf_data_type): Add align argument.
	(NOTE_ALIGN): Split into...
	(NOTE_ALIGN4): ... and ...
	(NOTE_ALIGN8): this.
	* elf32_xlatetom.c (xlatetom): Recognize both ELF_T_NHDR and
	ELF_T_NHDR8.
	* elf_compress.c (elf_compress): Pass zdata_align to
	__libelf_data_type.
	* elf_compress_gnu.c (elf_compress_gnu): Pass sh_addralign to
	__libelf_data_type.
	* elf_getdata.c (shtype_map): Add ELF_T_NHDR8.
	(__libelf_data_type): Take align as extra argument, use it to
	determine Elf_Type.
	(__libelf_set_rawdata_wrlock): Recognize ELF_T_NHDR8. Pass align to
	__libelf_data_type.
	* gelf_fsize.c (__libelf_type_sizes): Add ELF_T_NHDR8.
	* gelf_getnote.c (gelf_getnote): Use Elf_Type of Elf_Data to calculate
	padding.
	* gelf_xlate.c (__elf_xfctstom): Set ELF_T_NHDR to elf_cvt_note4,
	add ELF_T_NHDR8.
	* note_xlate.h (elf_cvt_note): Take nhdr8 argument and use it to
	determine padding.
	(elf_cvt_note4): New function.
	(elf_cvt_note8): Likewise.

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

	* elf32_updatefile.c (updatemmap): Use shnum, not ehdr->e_shnum.
	* elf_getscn.c (elf_getscn): Create section zero if it is requested,
	but doesn't exist yet.

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

	* elf32_updatefile.c (updatemmap): Use memmove, not memcpy.
	* elf_update.c (write_file): Try to mremap if file needs to be
	extended.

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

	* libelf.h (elf_compress_gnu): Add documentation about
	interaction between SHF_COMPRESED and elf_compress_gnu.
	* elf_compress_gnu.c (elf_compress_gnu): Return error if section
	sh_flags has SHF_COMPRESSED set.

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

	* libelf.h (elf_getshdrstrndx): Fix documentation.
	(elf_getshstrndx): Likewise.

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

	* libelfP.h (__libelf_type_align): Remove !ALLOW_UNALIGNED guard.
	* elf_getdata.c (__libelf_type_aligns): Likewise.
	(convert_data): Remove ALLOW_UNALIGNED check.
	* elf_getdata_rawchunk.c (elf_getdata_rawchunk): Likewise.

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

	* elf.h: Update from glibc.

2018-04-19  Andreas Schwab  <schwab@suse.de>

	* elf.h: Update from glibc.

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

	* elf.h: Update from glibc.

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

	* elf32_updatenull.c (updatenull_wrlock): Use FALLTHROUGH macro
	instead of comment.
	* elf_begin.c (read_unmmaped_file): Likewise.
	(elf_begin): Likewise.
	* elf_cntl.c (elf_cntl): Likewise.

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

	* elf_begin.c (file_read_elf): Skip sanity checking e_shoff if scncnt
	is zero, we won't use it then.

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

	* libelfP.h: Add ELF_E_INVALID_ELF to error values enum.
	* elf_error.c (ELF_E_INVALID_ELF_IDX): New define. Use it as value
	for ELF_E_INVALID_ELF in msgidx.
	* elf_getshdrstrndx.c (elf_getshdrstrndx): Distinquish between pread
	failing and not having enough data.
	* elf_begin.c (get_shnum): Likewise. Explicitly set libelf errno on
	too large value.
	(file_read_elf): Make sure to always set libelf errno when returning
	NULL. Distinquish between i/o file and elf data errors.

2017-08-18  Ulf Hermann  <ulf.hermann@qt.io>

	* gelf_xlate.c: Use attribute_packed.

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

	* libelfP.h: Use attribute_hidden.

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

	* Makefile.am: Use fpic_CFLAGS and dso_LDFLAGS.

2017-08-15  Mark Wielaard  <mark@klomp.org>

	* elf.h: Update from glibc. Add new powerpc note descriptors.

2017-07-19  Gustavo Romero <gromero@linux.vnet.ibm.com>

	* elf.h: Add known type in notes segment descriptor for HTM SPRs.

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

	* Makefile.am: Add libelf_so_DEPS, which include libeu.a,
	libelf_so_LIBS.
	(libelf_so_LDLIBS): Add $(libelf_so_DEPS).
	(libelf.so$(EXEEXT): Use $(libelf_so_LIBS), require libelf.map
	from the right directory.

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

	* libelfP.h: Don't include config.h.

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

	* elf_begin.c: Use F_GETFD rather than F_GETFL.

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

	* libelf.h: Define macros for various function attributes and use
	them.

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

	* elf_update.c: Set ELF_F_MMAPPED flag if we mmap from elf_update.

2017-04-19  Mark Wielaard  <mark@klomp.org>

	* elf_getarsym.c (elf_getarsym): Initialize n to zero.

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

	* elf32_updatefile.c (updatemmap): Always update last_positition.
	(updatefile): Likewise.

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

	* elf_compress.c (__libelf_decompress): Check insane compression
	ratios before trying to allocate output buffer.

2016-10-11  Akihiko Odaki  <akihiko.odaki.4i@stu.hosei.ac.jp>
	    Mark Wielaard  <mjw@redhat.com>

	* gelf.h (gelf_newehdr): Change return type to void *.
	(gelf_newphdr): Likewise.
	* gelf_newehdr.c (gelf_newehdr): Likewise.
	* gelf_newphdr.c (gelf_newphdr): Likewise.

2016-10-21  Mark Wielaard  <mjw@redhat.com>

	* elf_getdata.c (__libelf_set_rawdata_wrlock): Sanity check
	offset and size before trying to malloc and read data.

2016-10-26  Mark Wielaard  <mjw@redhat.com>

	* elf_begin.c (read_file): Always set maxsize when parent == NULL.

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

	* elf_getarsym.c (elf_getarsym): Open code rawmemchr when not
	available.
	* elf_strptr.c: Include stdbool.h.
	(validate_str): New function.
	(elf_strptr): Use validate_str instead of memrchr.

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

	* elf32_updatefile.c: Remove sys/param.h include.
	* elf32_updatenull.c: Likewise. Add system.h include.
	* elf_begin.c: Remove sys/param.h.
	* elf_compress: Likewise. Add system.h include.
	(MAX): Remove definition.

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

	* elf_compress.c (__libelf_reset_rawdata): Check scn->flags and
	free rawdata_base when malloced. Set ELF_F_MALLOCED for scn->flags.
	* elf_end.c (elf_end): Check scn->flags and free rawdata_base if
	malloced.
	* libelfP.h (struct Elf_Scn): Document flags ELF_F_MALLOCED usage.

2016-07-06  Mark Wielaard  <mjw@redhat.com>

	* elf-knowledge.h (SH_FLAGS_COMBINE): Removed.
	(SH_FLAGS_IMPORTANT): Likewise.

2016-07-06  Mark Wielaard  <mjw@redhat.com>

	* elf32_updatenull.c (updatenull_wrlock): Ignore e_type when
	updating phdrs.
	* elf_getphdrnum.c (__elf_getphdrnum_chk_rdlock): Only do sanity
	checking if phdrs haven't been read in yet.

2016-06-24  John Ogness  <john.ogness@linutronix.de>

	* elf32_updatenull.c (updatenull_wrlock): Find first section.
	* elf_nextscn.c (elf_nextscn): When scn is NULL start from 0th
	section.

2016-06-28  Richard Henderson  <rth@redhat.com>

	* elf.h: Update from glibc.  Add lots of new EM_* definitions.

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

	* elf_compress.c (__libelf_compress): Free out_buf if deflateInit
	fails.

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

	* elf32_updatefile.c (updatemmap): Free scns when out of memory.

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

	* elf.h: Update from glibc. Add new i386 and x86_64 relocations.

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

	* elf.h: Update from glibc. Add NT_ARM_SYSTEM_CALL.

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

	* elf_getdata.c (__libelf_set_rawdata_wrlock): Don't adjust align
	for SHT_NOBITS sections.

2016-01-22  Chih-Hung Hsieh <chh@google.com>

	* elf_compress.c (__libelf_compress): Move nested function
	'do_deflate_cleanup' to file scope to compile with clang.
	* elf_strptr.c (elf_strptr): Move nested function 'get_zdata'
	to file scope to compile with clang.

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

	* libelf.h: Check SHF_COMPRESSED is defined. If not define it and the
	associated ELF compression types/defines.

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

	* elf_compress.c (__libelf_decompress_elf): New function, extracted
	from...
	(elf_compress): here. Check zdata_base use __libelf_decompress_elf.
	* elf_strptr.c (elf_strptr): If SHF_COMPRESSED check, uncompress and
	use zdata.
	* libelfP.h (struct Elf_Scn): Add zdata_size and zdata_align.
	(__libelf_decompress_elf): New internal function definition.

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

	* Makefile.am (libelf_a_SOURCES): Add elf_compress.c and
	elf_compress_gnu.c.
	* elf_compress.c: New file.
	* elf_compress_gnu.c: Likewise.
	* elf_begin.c (file_read_elf): Make a writable copy of the shdrs
	for ELF_C_READ_MMAP.
	* elf_end.c (elf_end): Free zdata_base.
	* elf_error.c: Add ELF_E_ALREADY_COMPRESSED,
	ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and
	ELF_E_DECOMPRESS_ERROR.
	* elf_data.c (__libelf_data_type): New internal function extracted
	from convert_data.
	(convert_data): Handle SHF_COMPRESSED.
	* elf32_updatenull.c (updatenull_wrlock): Check sh_entsize against
	uncompressed section data size if SHF_COMPRESSED.
	* elf32_getshdr.c (load_shdr_wrlock): Adjust assert to account for
	ELF_C_READ_MMAP.
	* libelf.h: Define elf_compress and elf_compress_gnu.
	* libelf.map (ELFUTILS_1.7): Add elf_compress and elf_compress_gnu.
	* libelfP.h: Add ELF_E_ALREADY_COMPRESSED,
	ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and
	ELF_E_DECOMPRESS_ERROR. Define __libelf_data_type.
	(__libelf_compress): New internal function definition.
	(__libelf_decompress): Likewise.
	(__libelf_reset_rawdata): Likewise.
	(__libelf_data_type): Likewise.
	(struct Elf_Scn): Add zdata_base.

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

	* Makefile.am (libelf_a_SOURCES): Add elf32_getchdr.c,
	elf64_getchdr.c and gelf_getchdr.c.
	(noinst_HEADERS): Add chdr_xlate.h.
	* abstract.h: Define Chdr32 and Chdr64.
	* chdr_xlate.h: New file.
	* elf32_getchdr.c: New file.
	* elf64_getchdr.c: New file.
	* elf_error.c: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE
	and ELF_E_INVALID_SECTION_FLAGS.
	* elf_getdata.c (__libelf_set_rawdata_wrlock): Set d_type to
	ELF_T_CHDR for SHF_COMPRESSED sections.
	* exttypes.h: Add Chdr32 and Chdr64.
	* gelf.h (GElf_Chdr): New typedef.
	(gelf_getchdr): New function definition.
	* gelf_fsize.c (__libelf_type_sizes): Add ELF_T_CHDR.
	* gelf_getchdr.c: New file.
	* gelf_xlate.c (__elf_xfctstom): Add ELF_T_CHDR cvt_chdr.
	* gelf_xlate.h: Add Chdr.
	* libelf.h (Elf_Type): Add ELF_T_CHDR.
	(elf32_getchdr): New function definition.
	(elf64_getchdr): Likewise.
	* libelf.map (ELFUTILS_1.7): New sections add elf32_getchdr,
	elf64_getchdr and gelf_getchdr.
	* libelfP.h: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE
	and ELF_E_INVALID_SECTION_FLAGS.

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

	* Makefile.am (libelf_so_LDLIBS): Add -lz.

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

	* elf.h: Update from glibc. Add section compression constants and
	structures.

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

	* elf_begin.c (get_shnum): Elf64_Shdr.sh_size is an Elf64_Xword.
	Fix the size argument to pread_retry.

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

	* elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Move nested
	function 'fill_mmap' to file scope.
	* elf_begin.c (elf_begin): Move nested function 'lock_dup_elf'
	to file scope.

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

	* libelf.h: Replace loff_t with int64_t throughout.

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

	* elf_update.c (write_file): Only use posix_fallocate when using
	mmap. Only report failure when errno is ENOSPC.

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

	* libelfP.h (struct Elf): Replace off64_t with off_t.
	* elf_getdata_rawchunk.c (elf_getdata_rawchunk): Likewise.

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

	* elf_getarsym.c (elf_getarsym): Do not use
	union of variable length arrays.

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

	* Makefile.am (libelf.so): Add AM_V_CCLD and AM_V_at silencers.

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

	* Makefile.am (AM_CFLAGS): Use -fPIC instead of -fpic to avoid
	relocation overflows in some platforms.

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

	* elf32_updatenull.c (default_ehdr): Set e_version when EV_NONE.
	(updatenull_wrlock): Always set e_shentsize.

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

	* elf32_getehdr.c (getehdr_wrlock): Mark as internal_function.
	* elf32_getshdr.c (getshdr_rdlock): Likewise.
	(getshdr_wrlock): Likewise.
	* elf_error.c (__libelf_seterrno): Likewise.
	* elf_getphdrnum.c (__elf_getphdrnum_rdlock): Likewise.
	(__elf_getphdrnum_chk_rdlock): Likewise.
	* elf_getshdrnum.c (__elf_getphdrnum_rdlock): Likewise.
	(__elf_getphdrnum_chk_rdlock): Likewise.
	* elf_getshdrnum.c (__elf_getshdrnum_rdlock): Likewise.
	* elf_readall.c (__libelf_readall): Likewise.
	* gelf_getehdr.c (__gelf_getehdr_rdlock): Likewise.

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

	* *.c: Remove old-style function definitions.

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

	* dl-hash.h: Update from glibc.

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

	* elf32_updatefile.c (updatefile): Always free shdr_data and scns
	when allocated on failure paths.

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

	* nlist.c (nlist): Check symscn shdr exists before use.

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

	* elf_update.c (write_file): Always also use ftruncate before
	posix_fallocate to make sure file has the right size.

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

	* elf_getdata.c (__libelf_type_aligns): Add entries for ELF_T_EHDR,
	ELF_T_OFF, ELF_T_PHDR, ELF_T_SHDR, ELF_T_SWORD, ELF_T_XWORD,
	ELF_T_SXWORD, ELF_T_GNUHASH, ELF_T_AUXV.
	* elf_getdata_rawchunk.c (elf_getdata_rawchunk): Check alignment
	of rawdata against requested type.

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

	* elf_getdata.c (convert_data): Make sure source data is properly
	aligned for type before calling actual conversion function.

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

	* elf_begin.c (get_shnum): Check alignment of Shdr, not Ehdr before
	direct access.

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

	* elf_begin.c (file_read_elf): Split checks for ehdr and shdr
	alignment, drop phdr alignment check.

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

	* elf32_getshdr.c (load_shdr_wrlock): Allocate shdrs with malloc,
	not alloca and free after conversion when a copy needs to be made.

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

	* elf32_getphdr.c (getphdr_wrlock): Allocate phdrs with malloc, not
	alloca and free after conversion when a copy needs to be made.

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

	* elf_getarsym.c (elf_getarsym): Allocate temporary file_date with
	malloc, not alloca also in !ALLOW_UNALIGNED case.

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

	* gelf_xlate.c (elf_cvt_Byte): Only call memmove with non-zero size.

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

	* elf32_updatefile.c (updatemmap): Only call mempcpy and update
	last_position when d_size is non-zero.

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

	* elf32_updatefile.c (updatefile): Allocate shdr_data and scns
	with malloc, not alloca. Free after writing section headers.

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

	* elf32_updatefile.c (updatemmap): Allocate temporary shdr storage
	with malloc, not alloca. Free after writing section header.

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

	* elf_getarsym.c (elf_getarsym): Allocate temporary file_date with
	malloc, not alloca. Call free after out.

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

	* elf_update.c (write_file): Use posix_fallocate instead of
	ftruncate to extend file if necessary.

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

	* elf32_updatenull.c (default_ehdr): If e_phnum is zero then set
	e_phoff also to zero.

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

	* elf32_updatenull.c (updatenull_wrlock): Check that sh_addralign
	is a powerof2.
	* elf_getdata.c (__libelf_set_rawdata_wrlock): Clamp large d_aligns
	to the elf image offset.

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

	* elf32_newphdr.c (newphdr): Call __libelf_seterrno with
	ELF_E_INVALID_INDEX before failing. Check whether section zero shdr
	actually exists if we need to put extended phnum in section zero.

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

	* nlist.c (nlist): Call gelf_fsize with EV_CURRENT.

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

	* version_xlate.h (elf_cvt_Verdef): Use memmove to copy src to dest.
	(elf_cvt_Verneed): Likewise.

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

	* elf.h: Update from glibc.

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

	* elf32_updatenull.c (updatenull_wrlock): Don't extend size with
	SHT_NOBITS sh_offset.

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

	* libelfP.h (__libelf_set_data_list_rdlock): Make internal_function.

2015-02-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* elf32_updatenull.c (__elfw2(LIBELFBITS,updatenull_wrlock)): Consider
	sh_addralign 0 as 1.

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

	* elf_strptr (elf_strptr): Make sure returned string is NUL
	terminated.

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

	* elf_strptr.c (elf_strptr): Check data_list_rear == NULL instead
	of rawdata_base != NULL before using rawdata directly.

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

	* libelfP.h (__elf_strptr_internal): New function declaration.
	* elf_getdata.c (__libelf_set_data_list_rdlock): New internal
	function extracted from...
	(__elf_getdata_rdlock): ... here.
	* elf_newdata.c (elf_newdata): Check scn->rawdata_base and update
	datalist if necessary.

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

	* elf_strptr.c (elf_strptr): Call __elf[32|64]_getshdr_rdlock if
	necessary.

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

	* elf_getphdrnum.c (__elf_getphdrnum_chk_rdlock): New function.
	(elf_getphdrnum): Call __elf_getphdrnum_chk_rdlock.
	* gelf_getphdr (gelf_getphdr): Call __elf_getphdrnum_chk_rdlock
	and always check ndx against phnum.
	* libelfP.h (__elf_getphdrnum_chk_rdlock): New internal function.

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

	* elf_begin.c (__libelf_next_arhdr_wrlock): ar_size cannot be
	negative. Include start_offset in maxsize.

2014-12-28  Alexander Cherepanov  <cherepan@mccme.ru>

	* elf_begin.c (read_long_names): Don't miss '/' right after
	another '/'. Fixes a dir traversal vuln in ar extraction.

2014-12-18  Ulrich Drepper  <drepper@gmail.com>

	* Makefile.am: Suppress output of textrel_check command.

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

	* elf_begin.c (read_long_names): Make sure long_names len fits
	in mapped ELF file.

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

	* elf_getarsym.c (elf_getarsym): Check index_size doesn't overflow.

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

	* elf_begin.c (read_long_names): Clear any garbage left in the
	name table.

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

	* elf_begin.c (file_read_elf): Correct ELF64 section offset check.

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

	* elf_begin.c (read_long_names): Check for offset overflow.
	(__libelf_next_arhdr_wrlock): Likewise. Sanity check the ar_size.
	Don't allow it to go beyond end of file.

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

	* elf_getarsym.c (elf_getarsym): Make sure n * w doesn't overflow.

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

	* Makefile.am (libelf.so): Use textrel_check.

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

	* elf_getdata_rawchunk.c (elf_getdata_rawchunk): Change signed
	overflow check to unsigned.

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

	* note_xlate.h (elf_cvt_note): Copy over any leftover data if
	src != dest. The data is probably part of truncated name/desc.

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

	* elf_getphdrnum.c (elf_getphdrnum): Sanity check the
	__elf_getphdrnum_rdlock result.

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

	* version_xlate.h (elf_cvt_Verdef): Check for overflow.
	(elf_cvt_Verneed): Likewise.

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

	* elf-knowledge.h (SECTION_STRIP_P): Check name is not NULL.

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

	* elf_getshdrstrndx.c: Check there are section headers before
	handling SHN_XINDEX.

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

	* elf32_getphdr.c (getphdr_wrlock): Check e_phoff isn't zero.
	Check for too many pheaders.
	* elf_getphdrnum.c (__elf_getphdrnum_rdlock): Check section zero
	actually exists before handling PN_XNUM.

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

	* gelf_getnote.c (gelf_getnote): Check padding overflow.

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

	* elf_getdata.c (__libelf_set_rawdata_wrlock): Declare offset, size
	and align as Elf64_Off and Elf64_Xword not size_t.

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

	* gelf_getnote.c (gelf_getnote): Check offset overflow.

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

	* elf_getdata.c (__libelf_set_rawdata_wrlock): Fix unsigned overflow
	check.

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

	* elf_begin.c (__libelf_next_arhdr_wrlock): Use mempcpy not __mempcpy.

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

	* elf_begin.c (file_read_elf): Correct sh_size check.
	* elf_getdata.c (__libelf_set_rawdata_wrlock): Check for unsigned
	overflow.

2014-09-10  Petr Machata  <pmachata@redhat.com>

	* elf_begin (read_unmmaped_file): Call __libelf_seterrno if the
	file is unreadable.

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

	* elf.h: Update from glibc.

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

	* Makefile.am: Remove !MUDFLAP conditions.
	* elf_begin.c (read_file): Don't clear use_mmap when _MUDFLAP is
	defined.
	* elf_update.c (write_file): Remove _MUDFLAP condition.

2014-01-17  Jakub Jelinek  <jakub@redhat.com>
	    Roland McGrath  <roland@redhat.com>

	* libelfP.h (INVALID_NDX): Define.
	* gelf_getdyn.c (gelf_getdyn): Use it.  Remove ndx < 0 test if any.
	* gelf_getlib.c (gelf_getlib): Likewise.
	* gelf_getmove.c (gelf_getmove): Likewise.
	* gelf_getrel.c (gelf_getrel): Likewise.
	* gelf_getrela.c (gelf_getrela): Likewise.
	* gelf_getsym.c (gelf_getsym): Likewise.
	* gelf_getsyminfo.c (gelf_getsyminfo): Likewise.
	* gelf_getsymshndx.c (gelf_getsymshndx): Likewise.
	* gelf_getversym.c (gelf_getversym): Likewise.
	* gelf_update_dyn.c (gelf_update_dyn): Likewise.
	* gelf_update_lib.c (gelf_update_lib): Likewise.
	* gelf_update_move.c (gelf_update_move): Likewise.
	* gelf_update_rel.c (gelf_update_rel): Likewise.
	* gelf_update_rela.c (gelf_update_rela): Likewise.
	* gelf_update_sym.c (gelf_update_sym): Likewise.
	* gelf_update_syminfo.c (gelf_update_syminfo): Likewise.
	* gelf_update_symshndx.c (gelf_update_symshndx): Likewise.
	* gelf_update_versym.c (gelf_update_versym): Likewise.

2014-01-17  Jakub Jelinek  <jakub@redhat.com>

	* elf32_getphdr.c (elfw2(LIBELFBITS,getphdr)): Check if program header
	table fits into object's bounds.
	* elf_getshdrstrndx.c (elf_getshstrndx): Add elf->start_offset to
	elf->map_address.  Check if first section header fits into object's
	bounds.
	* elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)):
	Check if section header table fits into object's bounds.
	* elf_begin.c (get_shnum): Ensure section headers fits into
	object's bounds.
	(file_read_elf): Make sure scncnt is small enough to allocate both
	ElfXX_Shdr and Elf_Scn array.  Make sure section and program header
	tables fit into object's bounds.  Avoid memory leak on failure.
	* elf_newscn.c (elf_newscn): Check for overflow.
	* elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Likewise.
	(__elfw2(LIBELFBITS,updatefile)): Likewise.
	* elf32_newphdr.c (elfw2(LIBELFBITS,newphdr)): Likewise.
	* elf_getarsym.c (elf_getarsym): Likewise.

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

	* elf32_updatefile.c (elfXX_updatemmap): Only memcpy ehdr when not
	already directly mmapped.

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

	* elf32_updatefile.c (elfXX_updatefile): Copy all section headers
	if elf->flags dirty.

2013-11-01  Michael Forney  <mforney@mforney.org>

	* Makefile.am: Use READELF.

2013-10-01  Petr Machata  <pmachata@redhat.com>

	* elf.h: Update from glibc.

2013-06-17  Petr Machata  <pmachata@redhat.com>

	* elf.h: Update from glibc.

2013-08-28  Namhyung Kim  <namhyung@gmail.com>

	* gelf.h (gelf_fsize): Fix typo in comment.

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

	* gelf_getauxv.c (gelf_getauxv): Add missing whitespace.

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

	* gelf_getauxv.c (gelf_getauxv): Remove unnecessary casts to char *.

2013-08-25  Kurt Roeckx  <kurt@roeckx.be>

	* gelf_getauxv.c (gelf_getauxv): Use memcpy instead of pointer
	dereference to avoid alignment problems.

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

	* elf_getarsym.c (elf_getarsym): Copy FILE_DATA into stack space if it
	would be unaligned and !ALLOW_UNALIGNED.

	* elf_getarsym.c (read_number_entries): Use memcpy instead of pointer
	dereference so as not to assume the field is naturally aligned.

2012-09-17  Petr Machata  <pmachata@redhat.com>

	* elf.h: Update from glibc.

2012-08-16  Roland McGrath  <roland@hack.frob.com>

	* elf.h: Update from glibc.

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

	* elf32_checksum.c (ebl_debugscn_p): Removed unused define and
	confusing outdated comment.

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

	* elf_getarsym (read_number_entries): New function.
	(elf_getarsym): Handle 64-bit symbol table, stored in special
	entry named "/SYM64/".
	* elf_begin.c (__libelf_next_arhdr_wrlock): Don't reject archive
	because it contains 64-bit symbol table.

2012-07-19  Mark Wielaard  <mjw@redhat.com>

	* elf32_getshdr.c (load_shdr_wrlock): Add elf->flags & ELF_F_MALLOCED
	to asserts.

2012-07-17  Petr Machata  <pmachata@redhat.com>

	* elf32_xlatetom.c (elfw2(LIBELFBITS, xlatetom)): Do not check for
	integer number of records in case of ELF_T_NHDR.

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

	* elf32_offscn.c: Do not match SHT_NOBITS sections at OFFSET unless
	there are no nonempty sections at that offset.

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

	* elf-knowledge.h (SECTION_STRIP_P): Remove < SHT_NUM check.

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

	* elf_end.c (elf_end): Call rwlock_unlock before rwlock_fini.

2011-01-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* elf_getdata_rawchunk.c (elf_getdata_rawchunk): Fix off64_t overflow
	when MAXIMUM_SIZE == ~0.

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

	* gelf_fsize.c (__libelf_type_sizes): Add entries for ELF_T_LIB
	and ELF_T_GNUHASH.
	Reported by Mark Hatle <mark.hatle@windriver.com>.

	* exttypes.h: Add cases for ElfNN_Lib.
	Reported by Mark Hatle <mark.hatle@windriver.com>.

2010-06-14  Ulrich Drepper  <drepper@redhat.com>

	* gelf_update_shdr.c: Implicitly set ELF_F_DIRTY bit.
	* gelf_update_phdr.c: Likewise.
	* gelf_update_ehdr.c: Likewise.

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

	* elf32_getphdr.c: Check for e_phoff/size outside the file bounds.
	* elf_begin.c (file_read_elf): Don't set .phdr here.

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

	* elf.h: Update from glibc.

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

	* elf_error.c (ELF_E_FD_MISMATCH_IDX): Avoid nonobvious abbreviation
	in error message.

2010-04-01  Petr Machata  <pmachata@redhat.com>

	* elf_getdata.c (__elf_getdata_rdlock): Initialize data.s for data
	that do not need a conversion.

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

	* elf.h: Update from glibc.

2010-03-04  Ulrich Drepper  <drepper@redhat.com>

	* elf.h: Update from glibc.

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

	* elf_begin.c (file_read_elf): Leave section rawdata_base and
	data_base pointers null when [sh_offset,sh_size) points outside
	the mapped file.

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

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

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

	* elf32_getphdr.c: Use __elf_getphdrnum_rdlock.
	* gelf_getphdr.c: Likewise.
	* gelf_update_phdr.c: Likewise.
	* elf32_updatefile.c (__elf32_updatemmap, __elf32_updatefile): Likewise.
	* elf32_updatenull.c (__elf32_updatenull_wrlock): Likewise.
	* elf32_newphdr.c: Clear section 0's sh_info when resetting e_phnum.
	If COUNT is too large, use store PN_XNUM instead and set sh_info.
	* elf_begin.c (file_read_elf): Always allocate space we can use later
	for section 0 if doing RDWR.

	* elf_getphdrnum.c: New file.
	* Makefile.am (libelf_a_SOURCES): Add it.
	* libelf.h: Declare elf_getphdrnum.
	* libelfP.h: Declare __elf_getphdrnum_rdlock.
	* libelf.map (ELFUTILS_1.6): New set, add elf_getphdrnum.

	* elf.h: Update from glibc.

2009-10-23  Lubomir Rintel  <lkundrak@v3.sk>

	* elf32_updatefile.c (fill_mmap): When starting past shdr_end, start
	filling from section start, not shdr_end.

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

	* elf_readall.c (__libelf_readall): Fetch file size if not yet known.

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

	* elf_next.c (elf_next): Mark the archive header as unusable when
	there is no next ar element.

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

	* Makefile.am (libelf.so): Use -Wl,-z,defs not -defs.

2009-07-26  Ulrich Drepper  <drepper@redhat.com>

	* elf.h: Update from glibc.

2009-07-21  Ulrich Drepper  <drepper@redhat.com>

	* elf32_updatefile.c (__elfXX_updatemmap): Fix handling of gaps between
	sections.  Patch by Lubomir Rintel <lkundrak@v3.sk>.

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

	* libelfP.h (struct Elf): Remove unused ar.has_index field.
	Reorder various members for optimal packing.

2009-07-08  Ulrich Drepper  <drepper@redhat.com>

	* elf.h: Update from glibc.

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

	* Makefile.am (libelf_a_SOURCES): Replace elf_getshnum.c and
	elf_getshstrndx.c with elf_getshdrnum.c and elf_getshdrstrndx.c.
	* elf_getshnum.c: Renamed to...
	* elf_getshdrnum.c: ...this.  Rename function and add old name as
	alias.  Likewise for internal functions with derived names.
	* elf_getshstrndx.c: Renamed to...
	* elf_getshdrstrndx.c: ...this.  Rename function and add old name as
	alias.  Likewise for internal functions with derived names.
	* libelf.h: Add prototypes for new names.  Make old names as
	deprecated.
	* libelfP.h: Rename internal function prototypes.
	* libelf.map: Export for names.
	* elf32_checksum.c: Don't use deprecated functions.
	* elf32_getshdr.c: Likewise.

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

	* elf.h: Update from glibc.

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

	* elf.h: Update from glibc.

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

	* elf.h: Update from glibc.

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

	* elf32_updatefile.c (updatefile): For the zeroth section we still
	have to copy the section header.

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

	* elf_strptr.c: Add comment re possible problem.

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

	* elf32_updatenull.c (updatenull_wrlock): Fix comment of
	ELF_F_LAYOUT behaviour re section header table.

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

	* elf32_updatefile.c (__elfXX_updatemmap): Fill the gap between
	sections even if only the section at the start of the gap has been
	changed.
	(__elfXX_updatefile): Likewise.

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

	* elf32_updatefile.c (__elfXX_updatemmap): Skip most of the loop to
	handle sections for NOBITS sections.
	(elfXX_updatefile): Likewise.

	* elf32_updatefile.c (__elfXX_updatemmap): When skipping non-NOBITS
	sections we haven't loaded, update last_position based on scn_start,
	not based on old value.  Don't run the loop for the dummy section 0.
	(elfXX_updatefile): Don't run the loop for the dummy section 0.

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

	* libelfP.h (_): We only have one translation domain, elfutils.

	* Makefile.am: Use USE_LOCKS instead of USE_TLS.
	* elf_error.c: Always use __thread.  Remove all !USE_TLS code.

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

	* note_xlate.h (elf_cvt_note): Don't examine a size too small to
	container a note header.

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

	* elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Handle
	placement offset going backwards, for out-of-order or overlapping
	(bogus) sh_offset layouts.  It's a dumb use, but should not crash.
	(__elfw2(LIBELFBITS,updatefile)): Likewise.
	Fixes RHBZ#476136.

	* libelf.h (Elf_Data): Whitespace fix.

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

	* elf_getarhdr.c (elf_getarhdr): Fix missing rename in last change.

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

	* elf_rawfile.c (elf_rawfile): Lock around elf-> references.

2008-10-21  Petr Machata  <pmachata@redhat.com>

	* libelfP.h: Rename getehdr_rdlock to getehdr_wrlock.
	* elf32_getehdr.c (getehdr_rdlock): Move the code to new function
	getehdr_impl and make it a wrapper.  Rename to getehdr_wrlock.
	(getehdr_impl): Guard elf->class init with wrlock.
	(getehdr): Also make it a wrapper of getehdr_impl.
	* elf32_updatenull.c (updatenull_wrlock): Call getehdr_wrlock.

2008-10-20  Petr Machata  <pmachata@redhat.com>

	* elf_getdata_rawchunk.c (elf_getdata_rawchunk): Lock around the
	code that reads mutable elf state.  Relock to write lock to chain
	the new chunk on the elf rawchunks list.

2008-10-20  Petr Machata  <pmachata@redhat.com>

	* elf32_checksum.c (checksum): Place a lock around the code that
	processes data.  Make it wrlock if the code needs to xlate the
	data before processing.

2008-10-16  Petr Machata  <pmachata@redhat.com>

	* elf_begin.c
	(__libelf_next_arhdr): Rename to __libelf_next_arhdr_wrlock.
	(dup_elf): Adjust the call.
	(elf_begin): New local function lock_dup_elf.  Relocks the elf if
	necessary before calling dup.  Call this instead of dup_elf.
	* elf_getarhdr.c
	(elf_getarhdr): Lock before calling __libelf_next_arhdr_wrlock.
	* elf_next.c (elf_next): Likewise.
	* elf_rand.c (elf_rand): Likewise.

2008-10-14  Petr Machata  <pmachata@redhat.com>

	* elf_getdata.c (__elf_getdata_rdlock): Lock before converting.

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

	* elf.h: Update from glibc.

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

	* elf_getarhdr.c (elf_getarhdr): Return NULL when passed NULL.

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

	* elf_begin.c (get_shnum): Avoid misaligned reads for matching endian.

	* libelfP.h [!ALLOW_UNALIGNED] (__libelf_type_align): Fix CLASS index.

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

	* Makefile.am (libelf_so_LDLIBS): New variable.
	(libelf.so): Use it in the link.

2008-08-21  Petr Machata  <pmachata@redhat.com>

	* elf_getdata.c, libelfP.h
	(__elf_getdata_internal): Rename to __elf_getdata_rdlock.
	(__libelf_set_rawdata_wrlock): New function.
	(__libelf_set_rawdata): Make it a wrapper that calls *_wrlock.
	* elf32_updatenull.c, libelfP.h
	(__elfNN_updatenull): Rename to __elfNN_updatenull_wrlock.

2008-08-21  Petr Machata  <pmachata@redhat.com>

	* elf32_getphdr.c, libelfP.h
	(__elfNN_getphdr_internal): Drop.  Move __elfNN_getphdr_internal
	code to __elfNN_getphdr_wrlock.
	(__elfNN_getphdr_rdlock, __elfNN_getphdr_wrlock): New functions.
	(__elfNN_getphdr_rdlock, __elfNN_getphdr_wrlock): Make these
	wrappers of getphdr_impl.

2008-08-21  Petr Machata  <pmachata@redhat.com>

	* elf32_getehdr.c, libelfP.h
	(__elfNN_getehdr_internal): Rename to __elfNN_getehdr_rdlock.
	* gelf_getehdr, libelfP.h:
	(__gelf_getehdr_internal): Rename to __gelf_getehdr_rdlock.

2008-08-21  Petr Machata  <pmachata@redhat.com>

	* elf32_getshdr.c
	(__elfNN_getshdr_internal): Drop.
	(load_shdr_wrlock, scn_valid): New functions, contain bits of
	behaviour from __elfNN_getshdr_internal.
	(__elfNN_getshdr_rdlock, __elfNN_getshdr_wrlock): Replacements for
	dropped _internal functions above.
	* elf_getshnum.c
	(__elf_getshnum_internal): Rename to __elf_getshnum_rdlock.

2008-08-04  Petr Machata  <pmachata@redhat.com>

	* libelfP.h (RWLOCK_RDLOCK, RWLOCK_WRLOCK, RWLOCK_UNLOCK): New macros.

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

	* elf.h: Update from glibc.

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

	* elf32_offscn.c: Make sure shdrs have been read in.

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

	* elf.h: Update from glibc.

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

	* elf.h: Update from glibc.

2008-01-31  Ulrich Drepper  <drepper@redhat.com>

	* elf_strptr.c (elf_strptr): Don't fail if the ELF file is currently
	under construction and no raw data can be read from disk.

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

	* elf.h: Update from glibc.

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

	* elf_begin.c (__libelf_next_arhdr): Rewrite conversions using a macro.
	Fixes various pastos in wrong type in sizeof, wrong string parsed.

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

	* elf_getaroff.c: Calculate from start_offset, instead of using
	parent's state.ar.offset field.

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

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

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

	* common.h: Add __attribute__ ((unused)) to static functions.

2007-12-20  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am (libelf_a_SOURCES): Add elf_scnshndx.
	* libelfP.h (struct Elf_Scn): Add shndx_index field.
	Declare __elf_scnshndx_internal.
	* elf32_getshdr.c: Record location of extended section header.
	* elf_begin.c (file_read_elf): Likewise.
	* elf_scnshndx.c: New file.
	* libelf.h: Declare elf_scnshndx.
	* libelf.map: Add elf_scnshndx to version ELFUTILS_1.4.

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

	* libelf.h: Replace off64_t with loff_t throughout.
	Only that type name is unconditionally defined by <sys/types.h>

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

	* libelf.h (Elf_Data): Comment fix.

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

	* elf.h: Update from glibc.

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

	* elf_begin.c (__libelf_next_arhdr): Fix fencepost error and wrong
	member access in terminating name with no trailing /.  Trim trailing
	spaces when there is no /.

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

	* elf_end.c (elf_end): Don't free ELF->state.ar.ar_sym when it's -1l.

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

	* libelf.h (Elf_Data): Use off64_t for d_off.
	(Elf_Arhdr): Use off64_t for ar_size.
	(elf_update, elf_getbase, elf_getaroff): Return off64_t.

	* gelf_rawchunk.c: File removed.
	* gelf_freechunk.c: File removed.
	* Makefile.am (libelf_a_SOURCES): Remove them.
	* libelf.map (ELFUTILS_1.0): Remove exports.
	* gelf.h: Remove decls.

	* elf_getdata_rawchunk.c: New file.
	* Makefile.am (libelf_a_SOURCES): Add it.
	* libelf.map (ELFUTILS_1.3): Add elf_getdata_rawchunk.
	* libelf.h: Declare it.
	* libelfP.h (Elf_Data_Chunk): New type.
	(struct Elf.elf): New member `rawchunks'.
	* elf_end.c (elf_end): Free recorded rawchunk buffers.

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

	* gelf_getnote.c: New file.
	* Makefile.am (libelf_a_SOURCES): Add it.
	* gelf.h: Declare gelf_getnote.
	* libelf.map (ELFUTILS_1.3): Add gelf_getnote.

	* libelfP.h (NOTE_ALIGN): New macro.
	* note_xlate.h: New file.
	* Makefile.am (noinst_HEADERS): Add it.
	* gelf_xlate.c: Include it.
	(__elf_xfctstom): Use elf_cvt_note.
	* elf_getdata.c (shtype_map, __libelf_type_align): Handle SHT_NOTE.
	(__libelf_set_rawdata): Likewise.

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

	* gelf_update_auxv.c: New file.
	* gelf_getauxv.c: New file.
	* Makefile.am (libelf_a_SOURCES): Add them.
	* gelf.h: Declare gelf_getauxv, gelf_update_auxv.
	* libelf.map (ELFUTILS_1.3): New set, inherits fom ELFUTILS_1.2.
	Export gelf_getauxv, gelf_update_auxv.

	* libelf.h (Elf_Type): Add ELF_T_AUXV.
	* abstract.h: Add auxv_t entries.
	* exttypes.h: Likewise.
	* gelf_xlate.h: Likewise.
	* gelf_xlate.c (__elf_xfctstom): Add ELF_T_AUXV entries.
	* gelf_fsize.c (__libelf_type_sizes): Likewise.

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

	* elf32_updatefile.c (compare_sections): Sort secondarily on sh_size,
	and only tertiarily on index.

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

	* elf.h: Update from glibc.

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

	* elf.h: Update from glibc.

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

	* elf_begin.c (get_shnum): Fix test for e_shoff being out of bounds.
	Return zero when the section headers do not fit within MAXSIZE.

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

	* libelfP.h (LIBELF_EV_IDX): New macro.
	(__libelf_type_align): New macro.
	[! ALLOW_UNALIGNED]: Declare __libc_type_aligns array.
	* elf_getdata.c (shtype_map): Convert to just Elf_Type[][].
	(convert_data, __libelf_set_rawdata): Use that, __libelf_type_align,
	and __libelf_type_sizes, in place of old table.
	(__libc_type_aligns): New const variable.

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

	* Makefile (libelf.so): Build with -z relro.

	* elf_begin.c (read_file): When using ELF_C_READ_MMAP use MAP_PRIVATE.

2007-01-30  Ulrich Drepper  <drepper@redhat.com>

	* nlist.c: Close file descriptor before returning.

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

	* gnuhash_xlate.h (elf_cvt_gnuhash): Fix fence-post error so we
	convert the final word.

	* elf32_getshdr.c: Don't byteswap shdr fields when EI_DATA matches
	MY_ELFDATA on !ALLOW_UNALIGNED machines.

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

	* gelf_rawchunk.c (gelf_rawchunk): Clear RESULT pointer after freeing
	it on read error.

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

	* elf32_updatenull.c: Look for and accept phdr also for ET_CORE.
	* elf_error.c (msgstr): Change ELF_E_INVALID_PHDR string.

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

	* elf32_getphdr.c: Don't byteswap phdr fields when EI_DATA matches
	MY_ELFDATA on !ALLOW_UNALIGNED machines.
	Reported by Christian Aichinger <Greek0@gmx.net>.

	* Makefile.am (CLEANFILES): Add libelf.so.$(VERSION).

2006-08-08  Ulrich Drepper  <drepper@redhat.com>

	* elf.h (DT_VALNUM): Update.
	(DT_ADDRNUM): Likewise.

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

	* elf32_updatefile.c: Adjust for internal_function_def removal.
	* elf32_updatenull.c: Likewise.
	* elf_begin.c: Likewise.
	* elf_getdata.c: Likewise.

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

	* libelf.h: Define ELF_T_GNUHASH.
	* elf_getdata.c (TYPEIDX): Handle SHT_GNU_HASH.
	(shtype_map): Add SHT_GNU_HASH entries.
	* gelf_xlate.c (__elf_xfctstom): Add ELF_T_GNUHASH entries.
	* gnuhash_xlate.h: New file.
	* Makefile.am (noinst_HEADERS): Add gnuhash_xlate.h.

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

	* elf_gnu_hash.c: New file.
	* libelf.h: Declare elf_gnu_hash.
	* Makefile.am (libelf_a_SOURCES): Add elf_gnu_hash.
	* libelf.map: Add elf_gnu_map for version ELFUTILS_1.2.

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

	* libelf.h (elf_getarsym): Fix comment typo.
	Rename second parameter to be more explanatory.
	(elf_getident, elf_rawhide): Likewise.

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

	* elf32_updatefile.c (updatemmap): Preserve section content if
	copying would overwrite them.
	Fix msync paramters.

2006-04-04  Roland McGrath  <roland@redhat.com>

	* elf32_updatefile.c (updatemmap): Handle other-endian case.

2006-04-04  Ulrich Drepper  <drepper@redhat.com>

	* elf32_updatefile.c (updatemmap): Cleanups.  Remove shdr_dest
	variable.  Before writing sections, make a copy of the section
	header data if necessary.  Don't write section header while
	writing the section constent, it might overwrite some sections.
	Restore the pointer afterwards.
	* elf32_updatenull.c (updatenull): If the offset of a section in a
	file changed make sure we read the section so that it'll be written
	out.

	* elf_update.c: Remove debug message.

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

	* gelf_xlate.c [! ALLOW_UNALIGNED] (union unaligned): New type.
	(FETCH, STORE): New macros.
	(INLINE3): Use those to do alignment-friendly conversion.

	* elf32_getshdr.c: Include map_address and start_offset in alignment
	calculations.
	* elf32_getphdr.c: Likewise.

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

	* elf.h: Update from glibc.

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

	* elf.h: Update from glibc.

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

	* elf.h: Update from glibc.

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

	* elf_update.c (write_file): Stat the file and fchmod it after update
	if its mode had S_ISUID or S_ISGID bits set.

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

	* elf32_getphdr.c: Include <system.h>.  Use pread_retry instead of
	pread.  And branch prediction where useful.
	* elf_begin.c: Likewise.
	* elf_getdata.c: Likewise.
	* elf_getshstrndx.c: Likewise.
	* elf_readall.c: Likewise.
	* gelf_rawchunk.c: Likewise.
	* elf32_updatefile.c: Include <system.h>.  Use pread_retry instead of
	pread.  And branch prediction where useful.
	* elf_getarsym.c: Don't define pread_retry here.

	* Makefile.am: Use $(LINK) not $(CC) when creating DSO.
	(%.os): Use COMPILE.os.
	(COMPILE.os): Filter out gconv options.

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

	* elf_begin.c (file_read_elf): Avoid reading ELF header from file
	again.  Instead accept additional parameter which points to it if we
	don't use mmap.
	(get_shnum): Use passed in e_ident value as source of ELF header.

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

	* elf_begin.c (__libelf_next_arhdr): Use TEMP_FAILURE_RETRY.

	* Makefile (libelf_a_SOURCES): Add elf_getaroff.c.
	* libelf.map: Export elf_getaroff.
	* libelf.h: Declare elf_getaroff.
	* elf_getaroff.c: New file.

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

	* elf_begin.c (get_shnum): Optimize memory handling.  Always read from
	mapped file if available.  Fix access to 64-bit sh_size.  Recognize
	overflow.
	(file_read_elf): Likewise.

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

	* elf32_offscn.c: Do not match empty sections at OFFSET unless
	there are no nonempty sections at that offset.

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

	* elf.h: Update from glibc.

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

	* Makefile.am (AM_CFLAGS): Add -fpic when BUILD_STATIC.

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

	* libelf.map: Move elf32_offscn, elf64_offscn, and gelf_offscn in
	new version ELFUTILS_1.1.1.

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

	* elf_error.c: Add handling of ELF_E_INVALID_OFFSET.
	* elf32_offscn.c: New file.
	* elf64_offscn.c: New file.
	* gelf_offscn.c: New file.
	* Makefile.am (libelf_a_SOURCES): Add elf32_offscn.c, elf64_offscn.c,
	and gelf_offscn.c.
	* libelf.sym: Export new symbols.

2005-07-23  Ulrich Drepper  <drepper@redhat.com>

	* elf-knowledge.h (SECTION_STRIP_P): Don't handle removal of debug
	sections here anymore.
	* elf32_checksum.c: Adjust for change in SECTION_STRIP_P interface.

	* elf_update.c (elf_update): Get write lock, not read lock.

	* elf32_updatenull.c (updatenull): Get section headers if necessary
	and possible.

2005-07-22  Ulrich Drepper  <drepper@redhat.com>

	* elf32_updatenull.c (updatenull): If program header hasn't been loaded
	yet, try to do it now.
	Don't unnecessarily update overflow of section count in zeroth section
	sh_size field.
	If section content hasn't been read yet, do it before looking for the
	block size.  If no section data present, infer size of section header.

2005-05-11  Ulrich Drepper  <drepper@redhat.com>

	* elf.h: Update again.

2005-05-09  Ulrich Drepper  <drepper@redhat.com>

	* elf.h: Update from glibc.

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

	* elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now.
	* elf_update.c (write_file) [_MUDFLAP]: Likewise.

2005-03-29  Ulrich Drepper  <drepper@redhat.com>

	* elf32_checksum.c: Use INTUSE and INTDEF to avoid PLTs.
	* elf_end.c: Likewise.
	* elf_getdata.c: Likewise.
	* gelf_getehdr.c: Likewise.
	* nlist.c: Likewise.
	* libelfP.h: Add declarations of internal functions.

2005-02-15  Ulrich Drepper  <drepper@redhat.com>

	* common.h (CONVERT): Make sure all values are unsigned.
	(CONVERT_TO): Likewise.

	* Makefile.am (AM_CFLAGS): Add -Wformat=2.
	Fix rule to build libelf.so.

2005-02-06  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am: Cleanup AM_CFLAGS handling.  Add -Wunused -Wextra.
	Remove lint handling.
	* elf32_getphdr.c: Minor cleanups.
	* elf32_getshdr.c: Likewise.
	* elf32_updatefile.c: Likewise.
	* elf32_updatenull.c: Likewise.
	* elf_begin.c: Likewise.
	* elf_error.c: Likewise.
	* elf_getarsym.c: Likewise.
	* elf_getdata.c: Likewise.
	* elf_update.c: Likewise.
	* gelf_xlate.c: Likewise.

2005-02-05  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am: Check for text relocations in constructed DSO.

	* Makefile.am [MUDFLAP] (AM_CFLAGS): Add -Werror -fpic -fmudflap.

2005-02-04  Ulrich Drepper  <drepper@redhat.com>

	* gelf_getehdr.c (gelf_getehdr): Slight optimization.

	* elf32_checksum.c (checksum): Do not look at NOBITS sections.

	* gelf.h: Add gelf_checksum prototype.

2004-09-25  Ulrich Drepper  <drepper@redhat.com>

	* elf32_checksum.c: Make compile with gcc 4.0.
	* elf32_updatefile.c: Likewise.
	* elf32_updatenull.c: Likewise.
	* elf_begin.c: Likewise.
	* elf_error.c: Likewise.
	* elf_getdata.c: Likewise.
	* elf_getident.c: Likewise.

2004-04-01  Ulrich Drepper  <drepper@redhat.com>

	* elf.h: Update from glibc.

2004-01-23  Ulrich Drepper  <drepper@redhat.com>

	* elf_update.c: Fix locking.
	* elf_clone.c: Likewise.

	* libelf.h: Define ELF_T_LIB.
	* gelf_getlib.c: New file.
	* gelf_update_lib.c: New file.
	* gelf.h: Declare the new functions.  Define GElf_Lib.
	* abstract.h: Define Lib, Lib32, Lib64.
	* gelf_xlate.c (__elf_xfctstom): Add ELF_T_LIB entry.
	* gelf_xlate.h: Add entry for ElfXX_Lib.
	* elf_getdata.c: Recognize SHT_GNU_LIBLIST as a known section type.
	* libelf.map: Add new symbols to ELFUTILS_1.1.
	* Makefile.am (libelf_a_SOURCES): Add gelf_getlib.c and
	gelf_update_lib.c.

2004-01-17  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am: Support building with mudflap.

	* gelf_xlate.c (INLINE3): Avoid using cast as lvalue.
	* dl-hash.h (_dl_elf_hash): Likewise.

2004-01-05  Ulrich Drepper  <drepper@redhat.com>

	* elf-knowledge.h: New file.  From libelf subdir.
	* Makefile.am (euincludedir): Define.
	(euinclude_HEADERS): Add elf-knowledge.h.

2003-09-24  Ulrich Drepper  <drepper@redhat.com>

	* elf.h: Define some PT_IA_64_HP_* constants.

2003-09-23  Jakub Jelinek  <jakub@redhat.com>

	* libelfP.h (struct Elf): Move state.elf64.sizestr_offset after
	state.elf64.scnincr to match state.elf{,32}.

2003-08-12  Ulrich Drepper  <drepper@redhat.com>

	* elf32_updatefile.c (__updatemmap): When writing back file where
	some sections have not been read in, count their sizes based on
	the section header.

2003-08-11  Ulrich Drepper  <drepper@redhat.com>

	* Moved to CVS archive.
