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.
