diff --git a/elfutils-0.129-elflint-ppc-got.patch b/elfutils-0.129-elflint-ppc-got.patch deleted file mode 100644 index 167b3be..0000000 --- a/elfutils-0.129-elflint-ppc-got.patch +++ /dev/null @@ -1,29 +0,0 @@ -2007-08-20 Roland McGrath - - * ppc_symbol.c (ppc_check_special_symbol): For _GLOBAL_OFFSET_TABLE_ - when DT_PPC_GOT is not found, anywhere in the section is valid. - ---- backends/ppc_symbol.c 20b22bb299c460c0e41145b39d6908f0f6e69948 -+++ backends/ppc_symbol.c 1b3c198586c4cdb6a1200b00378358fa8a26a47a -@@ -1,5 +1,5 @@ - /* PPC specific symbolic name handling. -- Copyright (C) 2004, 2005 Red Hat, Inc. -+ Copyright (C) 2004, 2005, 2007 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper , 2004. - -@@ -122,10 +122,13 @@ ppc_check_special_symbol (Elf *elf, GElf - - if (strcmp (name, "_GLOBAL_OFFSET_TABLE_") == 0) - { -+ /* In -msecure-plt mode, DT_PPC_GOT is present and must match. */ - GElf_Addr gotaddr; - if (find_dyn_got (elf, ehdr, &gotaddr)) - return sym->st_value == gotaddr; -- return sym->st_value == destshdr->sh_addr + 4; -+ -+ /* In -mbss-plt mode, any place in the section is valid. */ -+ return true; - } - - const char *sname = elf_strptr (elf, ehdr->e_shstrndx, destshdr->sh_name); diff --git a/elfutils-portability.patch b/elfutils-portability.patch index d8cdd9a..54de64d 100644 --- a/elfutils-portability.patch +++ b/elfutils-portability.patch @@ -1,6 +1,6 @@ --- elfutils/backends/ChangeLog +++ elfutils/backends/ChangeLog -@@ -157,6 +157,11 @@ +@@ -229,6 +229,11 @@ * sparc_init.c: Likewise. * x86_64_init.c: Likewise. @@ -12,7 +12,7 @@ 2005-11-19 Roland McGrath * ppc64_reloc.def: REL30 -> ADDR30. -@@ -179,6 +184,9 @@ +@@ -251,6 +256,9 @@ * Makefile.am (uninstall): Don't try to remove $(pkgincludedir). (CLEANFILES): Add libebl_$(m).so. @@ -51,7 +51,7 @@ libebl_%.map: Makefile --- elfutils/backends/Makefile.in +++ elfutils/backends/Makefile.in -@@ -147,6 +147,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -152,6 +152,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -59,7 +59,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -176,6 +177,7 @@ SHELL = @SHELL@ +@@ -181,6 +182,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -67,7 +67,7 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ YACC = @YACC@ -@@ -231,9 +233,9 @@ target_alias = @target_alias@ +@@ -236,9 +238,9 @@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @MUDFLAP_FALSE@AM_CFLAGS = -fpic -Wall -Wshadow -Werror -Wunused \ @@ -79,7 +79,7 @@ INCLUDES = -I$(srcdir) -I$(top_srcdir)/libebl \ -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw \ -I$(top_srcdir)/lib -I.. -@@ -605,7 +607,7 @@ uninstall-am: +@@ -626,7 +628,7 @@ uninstall-am: libebl_%.so: libebl_%_pic.a libebl_%.map $(libelf) $(libdw) $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \ -Wl,--version-script,$(word 2,$^) \ @@ -479,7 +479,7 @@ libcpu_i386_a_SOURCES = i386_dis.c --- elfutils/libdw/ChangeLog +++ elfutils/libdw/ChangeLog -@@ -386,6 +386,11 @@ +@@ -406,6 +406,11 @@ 2005-05-31 Roland McGrath @@ -543,7 +543,7 @@ $(COMPILE))) --- elfutils/libdwfl/ChangeLog +++ elfutils/libdwfl/ChangeLog -@@ -531,6 +531,11 @@ +@@ -647,6 +647,11 @@ 2005-07-21 Roland McGrath @@ -574,7 +574,7 @@ VERSION = 1 --- elfutils/libdwfl/Makefile.in +++ elfutils/libdwfl/Makefile.in -@@ -124,6 +124,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -128,6 +128,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -582,7 +582,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -153,6 +154,7 @@ SHELL = @SHELL@ +@@ -157,6 +158,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -590,7 +590,7 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ YACC = @YACC@ -@@ -208,9 +210,9 @@ target_alias = @target_alias@ +@@ -212,9 +214,9 @@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @MUDFLAP_FALSE@AM_CFLAGS = -Wall -Werror -Wshadow -Wunused -Wformat=2 \ @@ -604,7 +604,7 @@ --- elfutils/libebl/ChangeLog +++ elfutils/libebl/ChangeLog -@@ -476,6 +476,11 @@ +@@ -501,6 +501,11 @@ * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency tracking works right. @@ -665,7 +665,7 @@ --- elfutils/libelf/ChangeLog +++ elfutils/libelf/ChangeLog -@@ -234,6 +234,11 @@ +@@ -295,6 +295,11 @@ 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. @@ -730,7 +730,7 @@ @MUDFLAP_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1) @MUDFLAP_TRUE@am_libelf_pic_a_OBJECTS = subdir = libelf -@@ -167,6 +167,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -168,6 +168,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -738,7 +738,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -196,6 +197,7 @@ SHELL = @SHELL@ +@@ -197,6 +198,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -746,7 +746,7 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ YACC = @YACC@ -@@ -251,10 +253,10 @@ target_alias = @target_alias@ +@@ -252,10 +254,10 @@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @MUDFLAP_FALSE@AM_CFLAGS = $(am__append_1) -Wall -Wshadow -Werror \ @@ -797,7 +797,15 @@ YACC = @YACC@ --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -220,6 +220,10 @@ +@@ -1,3 +1,7 @@ ++2007-10-16 Roland McGrath ++ ++ * Makefile.am (readelf_no_Werror): New variable. ++ + 2007-10-15 Roland McGrath + + * make-debug-archive.in: New file. +@@ -437,6 +441,10 @@ * elflint.c (valid_e_machine): Add EM_ALPHA. Reported by Christian Aichinger . @@ -808,7 +816,7 @@ 2006-08-08 Ulrich Drepper * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. -@@ -296,6 +300,10 @@ +@@ -513,6 +521,10 @@ * Makefile.am: Add hacks to create dependency files for non-generic linker. @@ -819,7 +827,7 @@ 2006-06-12 Ulrich Drepper * ldgeneric.c (ld_generic_generate_sections): Don't create .interp -@@ -644,6 +652,11 @@ +@@ -861,6 +873,11 @@ * readelf.c (print_debug_loc_section): Fix indentation for larger address size. @@ -865,9 +873,19 @@ $(if $($(*F)_no_Wformat),,-Wformat=2) $(CFLAGS_$(*F)) INCLUDES = -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ +@@ -108,6 +109,9 @@ strings_no_Wformat = yes + # XXX While the file is not finished, don't warn about this + ldgeneric_no_Wunused = yes + ++# Buggy old compilers. ++readelf_no_Werror = yes ++ + readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl + nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl + size_LDADD = $(libelf) $(libeu) $(libmudflap) --- elfutils/src/Makefile.in +++ elfutils/src/Makefile.in -@@ -197,6 +197,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -200,6 +200,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -875,7 +893,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -226,6 +227,7 @@ SHELL = @SHELL@ +@@ -229,6 +230,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -883,7 +901,7 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ YACC = @YACC@ -d -@@ -283,13 +285,13 @@ top_srcdir = @top_srcdir@ +@@ -286,13 +288,13 @@ top_srcdir = @top_srcdir@ @MUDFLAP_FALSE@AM_CFLAGS = -Wall -Wshadow -std=gnu99 \ @MUDFLAP_FALSE@ $(native_ld_cflags) $(if \ @MUDFLAP_FALSE@ $($(*F)_no_Werror),,-Werror) $(if \ @@ -899,6 +917,16 @@ @MUDFLAP_TRUE@ $($(*F)_no_Wformat),,-Wformat=2) $(CFLAGS_$(*F)) INCLUDES = -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ -I$(srcdir)/../libdw -I$(srcdir)/../libdwfl \ +@@ -334,6 +336,9 @@ size_no_Wformat = yes + strings_no_Wformat = yes + # XXX While the file is not finished, don't warn about this + ldgeneric_no_Wunused = yes ++ ++# Buggy old compilers. ++readelf_no_Werror = yes + readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl + nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl + size_LDADD = $(libelf) $(libeu) $(libmudflap) --- elfutils/src/strings.c +++ elfutils/src/strings.c @@ -51,6 +51,10 @@ @@ -980,7 +1008,7 @@ cannot set access and modification date of '%s'"), fname); --- elfutils/tests/ChangeLog +++ elfutils/tests/ChangeLog -@@ -549,6 +549,11 @@ +@@ -585,6 +585,11 @@ * Makefile.am (TESTS): Add run-elflint-test.sh. (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2. @@ -1012,7 +1040,7 @@ endif --- elfutils/tests/Makefile.in +++ elfutils/tests/Makefile.in -@@ -322,6 +322,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -323,6 +323,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -1020,7 +1048,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -351,6 +352,7 @@ SHELL = @SHELL@ +@@ -352,6 +353,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -1028,7 +1056,7 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ YACC = @YACC@ -@@ -405,10 +407,10 @@ sysconfdir = @sysconfdir@ +@@ -406,10 +408,10 @@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ diff --git a/elfutils-robustify.patch b/elfutils-robustify.patch index 0b8356d..ddeebce 100644 --- a/elfutils-robustify.patch +++ b/elfutils-robustify.patch @@ -65,9 +65,9 @@ src/ (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic, check_symtab_shndx, check_hash, check_versym): Robustify. ---- elfutils-0.127/src/readelf.c.robustify -+++ elfutils-0.127/src/readelf.c -@@ -958,6 +958,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G +--- elfutils-0.130/src/readelf.c.robustify ++++ elfutils-0.130/src/readelf.c +@@ -1053,6 +1053,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G Elf32_Word *grpref = (Elf32_Word *) data->d_buf; GElf_Sym sym_mem; @@ -76,7 +76,7 @@ src/ printf ((grpref[0] & GRP_COMDAT) ? ngettext ("\ \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n", -@@ -970,8 +972,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G +@@ -1065,8 +1067,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G data->d_size / sizeof (Elf32_Word) - 1), elf_ndxscn (scn), elf_strptr (ebl->elf, shstrndx, shdr->sh_name), @@ -87,7 +87,7 @@ src/ ?: gettext (""), data->d_size / sizeof (Elf32_Word) - 1); -@@ -1122,7 +1124,8 @@ static void +@@ -1217,7 +1219,8 @@ static void handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) { int class = gelf_getclass (ebl->elf); @@ -97,7 +97,7 @@ src/ Elf_Data *data; size_t cnt; size_t shstrndx; -@@ -1137,6 +1140,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, +@@ -1232,6 +1235,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -109,7 +109,7 @@ src/ printf (ngettext ("\ \nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -1146,9 +1154,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, +@@ -1241,9 +1249,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (int) shdr->sh_link, @@ -120,7 +120,7 @@ src/ fputs_unlocked (gettext (" Type Value\n"), stdout); for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) -@@ -1666,6 +1672,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G +@@ -1761,6 +1767,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -134,7 +134,7 @@ src/ /* Now we can compute the number of entries in the section. */ unsigned int nsyms = data->d_size / (class == ELFCLASS32 ? sizeof (Elf32_Sym) -@@ -1676,15 +1689,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G +@@ -1771,15 +1784,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G nsyms), (unsigned int) elf_ndxscn (scn), elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms); @@ -151,7 +151,7 @@ src/ fputs_unlocked (class == ELFCLASS32 ? gettext ("\ -@@ -1920,7 +1930,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, +@@ -2015,7 +2025,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -166,7 +166,7 @@ src/ printf (ngettext ("\ \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -1931,9 +1947,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, +@@ -2026,9 +2042,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -177,7 +177,7 @@ src/ unsigned int offset = 0; for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -1986,8 +2000,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G +@@ -2081,8 +2095,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -193,7 +193,7 @@ src/ printf (ngettext ("\ \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -1999,9 +2019,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G +@@ -2094,9 +2114,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -204,7 +204,7 @@ src/ unsigned int offset = 0; for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -2263,8 +2281,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G +@@ -2358,8 +2376,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G filename = NULL; } @@ -220,7 +220,7 @@ src/ printf (ngettext ("\ \nVersion symbols section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'", "\ -@@ -2276,9 +2300,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G +@@ -2371,9 +2395,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -231,7 +231,7 @@ src/ /* Now we can finally look at the actual contents of this section. */ for (unsigned int cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) -@@ -2330,7 +2352,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, +@@ -2425,7 +2447,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt) ++counts[lengths[cnt]]; @@ -250,7 +250,7 @@ src/ printf (ngettext ("\ \nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2343,9 +2375,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, +@@ -2438,9 +2470,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -261,7 +261,7 @@ src/ if (extrastr != NULL) fputs (extrastr, stdout); -@@ -3655,6 +3685,16 @@ print_debug_aranges_section (Ebl *ebl __ +@@ -3834,6 +3864,16 @@ print_debug_aranges_section (Dwfl_Module return; } @@ -546,9 +546,9 @@ src/ size_t hidx = elf_hash (name) % nbucket; if (bucket[hidx] == 0) ---- elfutils-0.127/src/elflint.c.robustify -+++ elfutils-0.127/src/elflint.c -@@ -123,6 +123,9 @@ static uint32_t shstrndx; +--- elfutils-0.130/src/elflint.c.robustify ++++ elfutils-0.130/src/elflint.c +@@ -126,6 +126,9 @@ static uint32_t shstrndx; /* Array to count references in section groups. */ static int *scnref; @@ -558,7 +558,7 @@ src/ int main (int argc, char *argv[]) -@@ -312,10 +315,19 @@ section_name (Ebl *ebl, int idx) +@@ -315,10 +318,19 @@ section_name (Ebl *ebl, int idx) { GElf_Shdr shdr_mem; GElf_Shdr *shdr; @@ -579,7 +579,7 @@ src/ } -@@ -337,10 +349,6 @@ static const int valid_e_machine[] = +@@ -340,10 +352,6 @@ static const int valid_e_machine[] = (sizeof (valid_e_machine) / sizeof (valid_e_machine[0])) @@ -590,7 +590,7 @@ src/ static void check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size) { -@@ -603,7 +611,8 @@ section [%2d] '%s': symbol table cannot +@@ -606,7 +614,8 @@ section [%2d] '%s': symbol table cannot } } @@ -600,7 +600,7 @@ src/ ERROR (gettext ("\ section [%2zu] '%s': entry size is does not match ElfXX_Sym\n"), cnt, section_name (ebl, cnt)); -@@ -641,7 +650,7 @@ section [%2d] '%s': XINDEX for zeroth en +@@ -644,7 +653,7 @@ section [%2d] '%s': XINDEX for zeroth en xndxscnidx, section_name (ebl, xndxscnidx)); } @@ -609,7 +609,7 @@ src/ { sym = gelf_getsymshndx (data, xndxdata, cnt, &sym_mem, &xndx); if (sym == NULL) -@@ -659,7 +668,8 @@ section [%2d] '%s': symbol %zu: invalid +@@ -662,7 +671,8 @@ section [%2d] '%s': symbol %zu: invalid else { name = elf_strptr (ebl->elf, shdr->sh_link, sym->st_name); @@ -619,7 +619,7 @@ src/ } if (sym->st_shndx == SHN_XINDEX) -@@ -981,9 +991,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e +@@ -992,9 +1002,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e { GElf_Shdr rcshdr_mem; const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem); @@ -633,7 +633,7 @@ src/ { /* Found the dynamic section. Look through it. */ Elf_Data *d = elf_getdata (scn, NULL); -@@ -993,7 +1005,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e +@@ -1004,7 +1016,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e { GElf_Dyn dyn_mem; GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem); @@ -644,7 +644,7 @@ src/ if (dyn->d_tag == DT_RELCOUNT) { -@@ -1007,7 +1021,9 @@ section [%2d] '%s': DT_RELCOUNT used for +@@ -1018,7 +1032,9 @@ section [%2d] '%s': DT_RELCOUNT used for /* Does the number specified number of relative relocations exceed the total number of relocations? */ @@ -655,7 +655,7 @@ src/ ERROR (gettext ("\ section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"), idx, section_name (ebl, idx), -@@ -1167,7 +1183,8 @@ section [%2d] '%s': no relocations for m +@@ -1178,7 +1194,8 @@ section [%2d] '%s': no relocations for m } } @@ -665,7 +665,7 @@ src/ ERROR (gettext (reltype == ELF_T_RELA ? "\ section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\ section [%2d] '%s': section entry size does not match ElfXX_Rel\n"), -@@ -1389,7 +1406,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G +@@ -1401,7 +1418,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G Elf_Data *symdata = elf_getdata (symscn, NULL); enum load_state state = state_undecided; @@ -675,7 +675,7 @@ src/ { GElf_Rela rela_mem; GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem); -@@ -1439,7 +1457,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE +@@ -1451,7 +1469,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE Elf_Data *symdata = elf_getdata (symscn, NULL); enum load_state state = state_undecided; @@ -685,7 +685,7 @@ src/ { GElf_Rel rel_mem; GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem); -@@ -1543,7 +1562,8 @@ section [%2d] '%s': referenced as string +@@ -1555,7 +1574,8 @@ section [%2d] '%s': referenced as string shdr->sh_link, section_name (ebl, shdr->sh_link), idx, section_name (ebl, idx)); @@ -695,7 +695,7 @@ src/ ERROR (gettext ("\ section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"), idx, section_name (ebl, idx)); -@@ -1553,7 +1573,7 @@ section [%2d] '%s': section entry size d +@@ -1565,7 +1585,7 @@ section [%2d] '%s': section entry size d idx, section_name (ebl, idx)); bool non_null_warned = false; @@ -704,7 +704,7 @@ src/ { GElf_Dyn dyn_mem; GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem); -@@ -1834,6 +1854,8 @@ section [%2d] '%s': entry size does not +@@ -1846,6 +1866,8 @@ section [%2d] '%s': entry size does not idx, section_name (ebl, idx)); if (symshdr != NULL @@ -713,7 +713,7 @@ src/ && (shdr->sh_size / shdr->sh_entsize < symshdr->sh_size / symshdr->sh_entsize)) ERROR (gettext ("\ -@@ -1860,6 +1882,12 @@ section [%2d] '%s': extended section ind +@@ -1872,6 +1894,12 @@ section [%2d] '%s': extended section ind } Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL); @@ -726,7 +726,7 @@ src/ if (*((Elf32_Word *) data->d_buf) != 0) ERROR (gettext ("symbol 0 should have zero extended section index\n")); -@@ -1902,7 +1930,7 @@ section [%2d] '%s': hash table section i +@@ -1914,7 +1942,7 @@ section [%2d] '%s': hash table section i size_t maxidx = nchain; @@ -735,7 +735,7 @@ src/ { size_t symsize = symshdr->sh_size / symshdr->sh_entsize; -@@ -1913,18 +1941,28 @@ section [%2d] '%s': hash table section i +@@ -1925,18 +1953,28 @@ section [%2d] '%s': hash table section i maxidx = symsize; } @@ -766,7 +766,7 @@ src/ } -@@ -1954,18 +1992,28 @@ section [%2d] '%s': hash table section i +@@ -1966,18 +2004,28 @@ section [%2d] '%s': hash table section i maxidx = symsize; } @@ -798,7 +798,7 @@ src/ } -@@ -1990,7 +2038,7 @@ section [%2d] '%s': bitmask size not pow +@@ -2002,7 +2050,7 @@ section [%2d] '%s': bitmask size not pow if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)) { ERROR (gettext ("\ @@ -807,7 +807,7 @@ src/ idx, section_name (ebl, idx), (long int) shdr->sh_size, (long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))); return; -@@ -2644,8 +2692,9 @@ section [%2d] '%s' refers in sh_link to +@@ -2659,8 +2707,9 @@ section [%2d] '%s' refers in sh_link to /* The number of elements in the version symbol table must be the same as the number of symbols. */ @@ -819,15 +819,6 @@ src/ ERROR (gettext ("\ section [%2d] '%s' has different number of entries than symbol table [%2d] '%s'\n"), idx, section_name (ebl, idx), -@@ -3574,6 +3623,8 @@ phdr[%d]: no note entries defined for th - return; - - char *notemem = gelf_rawchunk (ebl->elf, phdr->p_offset, phdr->p_filesz); -+ if (notemem == NULL) -+ return; - - /* ELF64 files often use note section entries in the 32-bit format. - The p_align field is set to 8 in case the 64-bit format is used. --- elfutils-0.127/libelf/elf_begin.c.robustify +++ elfutils-0.127/libelf/elf_begin.c @@ -155,7 +155,8 @@ get_shnum (void *map_address, unsigned c diff --git a/elfutils.spec b/elfutils.spec index 54e5d04..ea9350d 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -1,5 +1,5 @@ -%define eu_version 0.129 -%define eu_release 2 +%define eu_version 0.130 +%define eu_release 1 %if %{?_with_compat:1}%{!?_with_compat:0} %define compat 1 @@ -35,8 +35,6 @@ Patch0: elfutils-strip-copy-symtab.patch Source2: testfile16.symtab.bz2 Source3: testfile16.symtab.debug.bz2 -Patch3: elfutils-0.129-elflint-ppc-got.patch - BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: bison >= 1.875 @@ -156,8 +154,6 @@ find . \( -name configure -o -name config.h.in \) -print | xargs touch %patch2 -p1 -%patch3 -p0 - %build # Remove -Wall from default flags. The makefiles enable enough warnings # themselves, and they use -Werror. Appending -Wall defeats the cases where @@ -221,6 +217,7 @@ rm -rf ${RPM_BUILD_ROOT} %{_bindir}/eu-strip #%{_bindir}/eu-ld %{_bindir}/eu-unstrip +%{_bindir}/eu-make-debug-archive %files libs %defattr(-,root,root) @@ -264,6 +261,22 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/libelf.a %changelog +* Tue Oct 16 2007 Roland McGrath - 0.130-1 +- Update to 0.130 + - eu-readelf -p option can take an argument like -x for one section + - eu-readelf --archive-index (or -c) + - eu-readelf -n improved output for core dumps + - eu-readelf: handle SHT_NOTE sections without requiring phdrs (#249467) + - eu-elflint: ditto + - eu-elflint: stricter checks on debug sections + - eu-unstrip: new options, --list (or -n), --relocate (or -R) + - libelf: new function elf_getdata_rawchunk, replaces gelf_rawchunk; + new functions gelf_getnote, gelf_getauxv, gelf_update_auxv + - libebl: backend improvements (#324031) + - libdwfl: build_id support, new functions for it + - libdwfl: dwfl_module_addrsym fixes (#268761, #268981) + - libdwfl offline archive support, new script eu-make-debug-archive + * Mon Aug 20 2007 Roland McGrath - 0.129-2 - Fix false-positive eu-elflint failure on ppc -mbss-plt binaries.