+2006-11-02 Roland McGrath <roland@redhat.com>
+
+ * Makefile.am (EXTRA_DIST): Add EXCEPTION file.
+
2006-08-29 Roland McGrath <roland@redhat.com>
* configure.ac: Use AM_MAINTAINER_MODE.
all_SUBDIRS = libebl libdwfl libdw libcpu libasm backends src po tests
SUBDIRS = $(mini_SUBDIRS) $(all_SUBDIRS)
-EXTRA_DIST = elfutils.spec GPG-KEY NOTES
+EXTRA_DIST = elfutils.spec GPG-KEY NOTES EXCEPTION
# Make sure the test install uses lib64 when $LIB will yield lib64.
# Make sure the test build uses the same compiler, which on e.g. ppc64
+2006-12-17 Roland McGrath <roland@redhat.com>
+
+ * dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base
+ address when the CU is missing attributes due to buggy GCC.
+
2006-08-29 Roland McGrath <roland@redhat.com>
* Makefile.am (CLEANFILES): Add libdw.so.$(VERSION).
/* Return location expression list.
- Copyright (C) 2000, 2001, 2002, 2004, 2005 Red Hat, Inc.
+ Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2000.
&base) != 0)
{
if (INTUSE(dwarf_errno) () == 0)
- goto invalid;
- return -1;
+ /* The compiler provided no base address when it should
+ have. Buggy GCC does this when it used absolute
+ addresses in the location list and no DW_AT_ranges. */
+ base = 0;
+ else
+ return -1;
}
}
+2006-10-30 Roland McGrath <roland@redhat.com>
+
+ * dwfl_module.c (dwfl_report_module): Comment typo fix.
+
2006-09-05 Roland McGrath <roland@redhat.com>
* derelocate.c (cache_sections): Use alloca instead of variable-sized
}
INTDEF (dwfl_report_begin)
-/* Report that a module called NAME pans addresses [START, END).
+/* Report that a module called NAME spans addresses [START, END).
Returns the module handle, either existing or newly allocated,
or returns a null pointer for an allocation error. */
Dwfl_Module *
+2006-10-13 Roland McGrath <roland@redhat.com>
+
+ * elf32_updatenull.c: Look for phdr if e_phnum nonzero, regardless of
+ e_type. Diagnose ELF_E_INVALID_PHDR only for ET_REL, and not
+ if ELF_F_PERMISSIVE.
+ * 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
off_t size = elf_typesize (LIBELFBITS, ELF_T_EHDR, 1);
/* Set the program header position. */
- if (elf->state.ELFW(elf,LIBELFBITS).phdr == NULL
- && (ehdr->e_type == ET_EXEC || ehdr->e_type == ET_DYN))
+ if (elf->state.ELFW(elf,LIBELFBITS).phdr == NULL && ehdr->e_phnum != 0)
(void) INTUSE(elfw2(LIBELFBITS,getphdr)) (elf);
if (elf->state.ELFW(elf,LIBELFBITS).phdr != NULL)
{
/* Only executables or shared objects have a program header. */
- if (ehdr->e_type != ET_EXEC && unlikely (ehdr->e_type != ET_DYN))
+ if (unlikely (ehdr->e_type == ET_REL)
+ && (elf->flags & ELF_F_PERMISSIVE) == 0)
{
__libelf_seterrno (ELF_E_INVALID_PHDR);
return -1;
/* Error handling in libelf.
- Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005 Red Hat, Inc.
+ Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 1998.
#define ELF_E_INVALID_PHDR_IDX \
(ELF_E_GROUP_NOT_REL_IDX \
+ sizeof "only relocatable files can contain section groups")
- N_("program header only allowed in executables and shared objects")
+ N_("program header not allowed in relocatable files")
"\0"
#define ELF_E_NO_PHDR_IDX \
(ELF_E_INVALID_PHDR_IDX \
- + sizeof "program header only allowed in executables and shared objects")
+ + sizeof "program header not allowed in relocatable files")
N_("file has no program header")
"\0"
#define ELF_E_INVALID_OFFSET_IDX \
two hash tables have different content (module expected omission
of undefined symbols).
+2006-10-31 Roland McGrath <roland@redhat.com>
+
+ * elflint.c (check_program_header): Don't complain about
+ p_filesz > p_memsz if p_memsz is zero and p_type is not PT_LOAD.
+
+2006-09-19 Jakub Jelinek <jakub@redhat.com>
+
+ * strip.c (process_file): Disallow -f on archives.
+
+2006-10-09 Roland McGrath <roland@redhat.com>
+
+ * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
+
2006-08-29 Roland McGrath <roland@redhat.com>
* Makefile.am (MAINTAINERCLEANFILES): New variable.
libld_elf_i386_so_SOURCES =
libld_elf_i386.so: libld_elf_i386_pic.a libld_elf_i386.map
- $(CC) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- $(libelf) $(libeu) \
- -Wl,--version-script,$(srcdir)/libld_elf_i386.map
+ $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
+ $(libelf) $(libeu) \
+ -Wl,--version-script,$(srcdir)/libld_elf_i386.map
$(textrel_check)
endif
program header offset in ELF header and PHDR entry do not match"));
}
- if (phdr->p_filesz > phdr->p_memsz)
+ if (phdr->p_filesz > phdr->p_memsz
+ && (phdr->p_memsz != 0 || phdr->p_type == PT_LOAD))
ERROR (gettext ("\
program header entry %d: file size greater than memory size\n"),
cnt);
case ELF_K_AR:
/* It is not possible to strip the content of an archive direct
the output to a specific file. */
- if (unlikely (output_fname != NULL))
+ if (unlikely (output_fname != NULL || debug_fname != NULL))
{
- error (0, 0, gettext ("%s: cannot use -o when stripping archive"),
+ error (0, 0, gettext ("%s: cannot use -o or -f when stripping archive"),
fname);
result = 1;
}
+2006-12-17 Roland McGrath <roland@redhat.com>
+
+ * msg_tst.c (libelf_msgs): Fix ELF_E_INVALID_PHDR msg.
+
2006-09-05 Roland McGrath <roland@redhat.com>
* run-strings-test.sh: Export LC_ALL=C for the test.
-/* Copyright (C) 2002, 2005 Red Hat, Inc.
+/* Copyright (C) 2002, 2005, 2006 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2002.
{ ELF_E_GROUP_NOT_REL,
"only relocatable files can contain section groups" },
{ ELF_E_INVALID_PHDR,
- "program header only allowed in executables and shared objects" },
+ "program header not allowed in relocatable files" },
{ ELF_E_NO_PHDR, "file has no program header" },
{ ELF_E_INVALID_OFFSET, "invalid offset" }
};