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.