From d10bca5799e2745c5fe813f6094f1c183e91325f Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 22 Jun 2012 14:58:36 +0200 Subject: [PATCH] Update to 0.154. --- .gitignore | 1 + ...ils-0.153-dwfl_segment_report_module.patch | 45 --- elfutils-portability.patch | 152 +++++----- elfutils-robustify.patch | 284 +++++++++--------- elfutils.spec | 24 +- sources | 2 +- 6 files changed, 242 insertions(+), 266 deletions(-) delete mode 100644 elfutils-0.153-dwfl_segment_report_module.patch diff --git a/.gitignore b/.gitignore index ab491e2..55bb3fc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /elfutils-0.152.tar.bz2 /elfutils-0.153.tar.bz2 +/elfutils-0.154.tar.bz2 diff --git a/elfutils-0.153-dwfl_segment_report_module.patch b/elfutils-0.153-dwfl_segment_report_module.patch deleted file mode 100644 index f893c4f..0000000 --- a/elfutils-0.153-dwfl_segment_report_module.patch +++ /dev/null @@ -1,45 +0,0 @@ -commit 210c2f03efbbaacc51f2641baa0947d9c316de12 -Author: Roland McGrath -Date: Wed Mar 28 10:22:35 2012 -0700 - - RHBZ#805447: Fix core file grokking for case of truncated .dynstr - -diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog -index 87a0555..86f6fba 100644 ---- a/libdwfl/ChangeLog -+++ b/libdwfl/ChangeLog -@@ -1,3 +1,10 @@ -+2012-03-28 Roland McGrath -+ -+ * dwfl_segment_report_module.c -+ (dwfl_segment_report_module: read_portion): Don't use existing buffer -+ when FILESZ is zero (string mode) and available portion doesn't hold -+ a terminated string. -+ - 2011-12-02 Roland McGrath - - * elf-from-memory.c (elf_from_remote_memory): Fix ELFCLASS64 case -diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c -index 012a0fd..5534180 100644 ---- a/libdwfl/dwfl_segment_report_module.c -+++ b/libdwfl/dwfl_segment_report_module.c -@@ -1,5 +1,5 @@ - /* Sniff out modules from ELF headers visible in memory segments. -- Copyright (C) 2008-2010 Red Hat, Inc. -+ Copyright (C) 2008-2012 Red Hat, Inc. - This file is part of Red Hat elfutils. - - Red Hat elfutils is free software; you can redistribute it and/or modify -@@ -155,7 +155,11 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, - inline bool read_portion (void **data, size_t *data_size, - GElf_Addr vaddr, size_t filesz) - { -- if (vaddr - start + filesz > buffer_available) -+ if (vaddr - start + filesz > buffer_available -+ /* If we're in string mode, then don't consider the buffer we have -+ sufficient unless it contains the terminator of the string. */ -+ || (filesz == 0 && memchr (vaddr - start + buffer, '\0', -+ buffer_available - (vaddr - start)) == NULL)) - { - *data = NULL; - *data_size = filesz; diff --git a/elfutils-portability.patch b/elfutils-portability.patch index ec78059..4d4cbcc 100644 --- a/elfutils-portability.patch +++ b/elfutils-portability.patch @@ -35,7 +35,7 @@ --- elfutils/backends/Makefile.am +++ elfutils/backends/Makefile.am -@@ -103,7 +103,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a +@@ -105,7 +105,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a $(LINK) -shared -o $(@:.map=.so) \ -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \ -Wl,--version-script,$(@:.so=.map) \ @@ -96,7 +96,16 @@ libebl_i386.so: $(cpu_i386) --- elfutils/ChangeLog +++ elfutils/ChangeLog -@@ -14,6 +14,9 @@ +@@ -4,6 +4,8 @@ + + 2012-01-24 Mark Wielaard + ++ * configure.ac: Wrap AC_COMPILE_IFELSE sources in AC_LANG_SOURCE. ++ + * COPYING: Fix address. Updated version from gnulib. + + 2012-01-23 Mark Wielaard +@@ -22,6 +24,9 @@ 2011-10-08 Mike Frysinger @@ -106,7 +115,7 @@ * configure.ac: Fix use of AC_ARG_ENABLE to handle $enableval correctly. 2011-10-02 Ulrich Drepper -@@ -35,6 +38,10 @@ +@@ -43,6 +48,10 @@ * configure.ac (LOCALEDIR, DATADIRNAME): Removed. @@ -117,7 +126,7 @@ 2009-09-21 Ulrich Drepper * configure.ac: Update for more modern autoconf. -@@ -43,6 +50,10 @@ +@@ -51,6 +60,10 @@ * configure.ac (zip_LIBS): Check for liblzma too. @@ -128,7 +137,7 @@ 2009-04-19 Roland McGrath * configure.ac (eu_version): Round down here, not in version.h macros. -@@ -54,6 +65,8 @@ +@@ -62,6 +75,8 @@ 2009-01-23 Roland McGrath @@ -137,7 +146,7 @@ * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3. * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of -@@ -134,6 +147,10 @@ +@@ -142,6 +157,10 @@ * configure.ac: Add dummy automake conditional to get dependencies for non-generic linker right. See src/Makefile.am. @@ -148,7 +157,7 @@ 2005-11-18 Roland McGrath * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable. -@@ -181,6 +198,17 @@ +@@ -189,6 +208,17 @@ * Makefile.am (all_SUBDIRS): Add libdwfl. * configure.ac: Write libdwfl/Makefile. @@ -168,7 +177,7 @@ * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros. --- elfutils/config/ChangeLog +++ elfutils/config/ChangeLog -@@ -6,6 +6,10 @@ +@@ -10,6 +10,10 @@ * known-dwarf.awk: Use gawk. @@ -186,11 +195,11 @@ ## -## Copyright (C) 2010 Red Hat, Inc. +## Copyright (C) 2010-2011 Red Hat, Inc. - ## This file is part of Red Hat elfutils. ## - ## Red Hat elfutils is free software; you can redistribute it and/or modify -@@ -25,14 +25,20 @@ - ## . + ## This file is part of elfutils. + ## +@@ -29,14 +29,20 @@ + ## not, see . ## +WEXTRA = @WEXTRA@ @@ -477,14 +486,14 @@ Usually this means the macro was only invoked conditionally." "$LINENO" 5 --- elfutils/configure.ac +++ elfutils/configure.ac -@@ -81,6 +81,54 @@ CFLAGS="$old_CFLAGS"]) +@@ -82,6 +82,54 @@ CFLAGS="$old_CFLAGS"]) AS_IF([test "x$ac_cv_c99" != xyes], AC_MSG_ERROR([gcc with C99 support required])) +AC_CACHE_CHECK([for -Wextra option to $CC], ac_cv_cc_wextra, [dnl +old_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Wextra" -+AC_COMPILE_IFELSE([void foo (void) { }], ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([void foo (void) { }])], + ac_cv_cc_wextra=yes, ac_cv_cc_wextra=no) +CFLAGS="$old_CFLAGS"]) +AC_SUBST(WEXTRA) @@ -493,14 +502,14 @@ +AC_CACHE_CHECK([for -fgnu89-inline option to $CC], ac_cv_cc_gnu89_inline, [dnl +old_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -fgnu89-inline -Werror" -+AC_COMPILE_IFELSE([ ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([ +void foo (void) +{ + inline void bar (void) {} + bar (); +} +extern inline void baz (void) {} -+], ac_cv_cc_gnu89_inline=yes, ac_cv_cc_gnu89_inline=no) ++])], ac_cv_cc_gnu89_inline=yes, ac_cv_cc_gnu89_inline=no) +CFLAGS="$old_CFLAGS"]) +AS_IF([test "x$ac_cv_cc_gnu89_inline" = xyes], + [WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"]) @@ -532,7 +541,7 @@ AC_CACHE_CHECK([for __thread support], ac_cv_tls, [dnl # Use the same flags that we use for our DSOs, so the test is representative. # Some old compiler/linker/libc combinations fail some ways and not others. -@@ -96,7 +144,10 @@ static __thread int a; int foo (int b) { +@@ -97,7 +145,10 @@ static __thread int a; int foo (int b) { CFLAGS="$save_CFLAGS" LDFLAGS="$save_LDFLAGS"]) AS_IF([test "x$ac_cv_tls" != xyes], @@ -544,7 +553,7 @@ dnl This test must come as early as possible after the compiler configuration dnl tests, because the choice of the file model can (in principle) affect -@@ -184,6 +235,11 @@ AM_CONDITIONAL(GCOV, test "$use_gcov" = +@@ -185,6 +236,11 @@ AM_CONDITIONAL(GCOV, test "$use_gcov" = AM_CONDITIONAL(BUILD_STATIC, [dnl test "$use_mudflap" = yes -o "$use_gprof" = yes -o "$use_gcov" = yes]) @@ -556,7 +565,7 @@ AC_ARG_ENABLE([tests-rpath], AS_HELP_STRING([--enable-tests-rpath],[build $ORIGIN-using rpath into tests]), [tests_use_rpath=$enableval], [tests_use_rpath=no]) -@@ -295,6 +351,6 @@ case "$eu_version" in +@@ -296,6 +352,6 @@ case "$eu_version" in esac # Round up to the next release API (x.y) version. @@ -590,7 +599,7 @@ * Makefile.am: Use -ffunction-sections for xmalloc.c. --- elfutils/lib/eu-config.h +++ elfutils/lib/eu-config.h -@@ -182,6 +182,17 @@ asm (".section predict_data, \"aw\"; .pr +@@ -162,6 +162,17 @@ asm (".section predict_data, \"aw\"; .pr /* This macro is used by the tests conditionalize for standalone building. */ #define ELFUTILS_HEADER(name) @@ -719,7 +728,7 @@ EXTRA_DIST = libasm.map --- elfutils/libcpu/ChangeLog +++ elfutils/libcpu/ChangeLog -@@ -29,6 +29,9 @@ +@@ -34,6 +34,9 @@ 2009-01-23 Roland McGrath @@ -729,7 +738,7 @@ * Makefile.am (i386_parse_CFLAGS): Use quotes around command substitution that can produce leading whitespace. -@@ -358,6 +361,11 @@ +@@ -363,6 +366,11 @@ * defs/i386.doc: New file. * defs/x86_64: New file. @@ -743,7 +752,7 @@ * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. --- elfutils/libcpu/i386_disasm.c +++ elfutils/libcpu/i386_disasm.c -@@ -819,6 +819,7 @@ i386_disasm (const uint8_t **startp, con +@@ -822,6 +822,7 @@ i386_disasm (const uint8_t **startp, con default: assert (! "INVALID not handled"); @@ -794,7 +803,7 @@ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\ --- elfutils/libdw/ChangeLog +++ elfutils/libdw/ChangeLog -@@ -6,6 +6,10 @@ +@@ -17,6 +17,10 @@ * Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk. @@ -805,7 +814,7 @@ 2011-07-14 Mark Wielaard * libdw.h (dwarf_offdie): Fix documentation to mention .debug_info. -@@ -365,6 +369,10 @@ +@@ -376,6 +380,10 @@ * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too. @@ -816,7 +825,7 @@ 2009-08-10 Roland McGrath * dwarf_getscopevar.c: Use dwarf_diename. -@@ -1133,6 +1141,11 @@ +@@ -1144,6 +1152,11 @@ 2005-05-31 Roland McGrath @@ -830,7 +839,7 @@ --- elfutils/libdw/dwarf_begin_elf.c +++ elfutils/libdw/dwarf_begin_elf.c -@@ -64,6 +64,14 @@ +@@ -43,6 +43,14 @@ #if USE_ZLIB # include # define crc32 loser_crc32 @@ -847,7 +856,7 @@ #endif --- elfutils/libdw/libdw.h +++ elfutils/libdw/libdw.h -@@ -852,7 +852,7 @@ extern Dwarf_OOM dwarf_new_oom_handler ( +@@ -831,7 +831,7 @@ extern Dwarf_OOM dwarf_new_oom_handler ( /* Inline optimizations. */ @@ -901,7 +910,7 @@ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\ --- elfutils/libdwfl/ChangeLog +++ elfutils/libdwfl/ChangeLog -@@ -1409,6 +1409,11 @@ +@@ -1416,6 +1416,11 @@ 2005-07-21 Roland McGrath @@ -1039,16 +1048,19 @@ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\ --- elfutils/libelf/ChangeLog +++ elfutils/libelf/ChangeLog -@@ -1,3 +1,8 @@ +@@ -7,6 +7,11 @@ + + * elf-knowledge.h (SECTION_STRIP_P): Remove < SHT_NUM check. + +2011-03-10 Roland McGrath + + * gnuhash_xlate.h (elf_cvt_gnuhash): Avoid post-increment in bswap_32 + argument, since some implementations are buggy macros. + - 2011-01-05 Jan Kratochvil + 2011-02-26 Mark Wielaard - * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Fix off64_t overflow -@@ -671,6 +676,11 @@ + * elf_end.c (elf_end): Call rwlock_unlock before rwlock_fini. +@@ -684,6 +689,11 @@ * elf.h: Update from glibc. @@ -1062,7 +1074,7 @@ * elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now. --- elfutils/libelf/common.h +++ elfutils/libelf/common.h -@@ -160,7 +160,7 @@ libelf_release_all (Elf *elf) +@@ -139,7 +139,7 @@ libelf_release_all (Elf *elf) (Var) = (sizeof (Var) == 1 \ ? (unsigned char) (Var) \ : (sizeof (Var) == 2 \ @@ -1071,7 +1083,7 @@ : (sizeof (Var) == 4 \ ? bswap_32 (Var) \ : bswap_64 (Var)))) -@@ -169,7 +169,7 @@ libelf_release_all (Elf *elf) +@@ -148,7 +148,7 @@ libelf_release_all (Elf *elf) (Dst) = (sizeof (Var) == 1 \ ? (unsigned char) (Var) \ : (sizeof (Var) == 2 \ @@ -1086,10 +1098,10 @@ /* Conversion functions for versioning information. - Copyright (C) 2006, 2007 Red Hat, Inc. + Copyright (C) 2006-2011 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2006. -@@ -89,7 +89,9 @@ elf_cvt_gnuhash (void *dest, const void +@@ -68,7 +68,9 @@ elf_cvt_gnuhash (void *dest, const void dest32 = (Elf32_Word *) &dest64[bitmask_words]; while (len >= 4) { @@ -1194,7 +1206,7 @@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ --- elfutils/src/addr2line.c +++ elfutils/src/addr2line.c -@@ -455,10 +455,10 @@ handle_address (const char *string, Dwfl +@@ -447,10 +447,10 @@ handle_address (const char *string, Dwfl bool parsed = false; int i, j; char *name = NULL; @@ -1209,7 +1221,7 @@ break; --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -490,8 +490,16 @@ +@@ -519,8 +519,16 @@ * readelf.c (attr_callback): Use print_block only when we don't use print_ops. @@ -1226,7 +1238,7 @@ * ar.c (do_oper_extract): Use pathconf instead of statfs. 2009-08-01 Ulrich Drepper -@@ -655,6 +663,8 @@ +@@ -684,6 +692,8 @@ * readelf.c (print_debug_frame_section): Use t instead of j formats for ptrdiff_t OFFSET. @@ -1235,7 +1247,7 @@ 2009-01-21 Ulrich Drepper * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section -@@ -838,6 +848,11 @@ +@@ -867,6 +877,11 @@ that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really is valid in RELRO. @@ -1247,7 +1259,7 @@ 2008-02-29 Roland McGrath * readelf.c (print_attributes): Add a cast. -@@ -1089,6 +1104,8 @@ +@@ -1118,6 +1133,8 @@ * readelf.c (hex_dump): Fix rounding error in whitespace calculation. @@ -1256,7 +1268,7 @@ 2007-10-15 Roland McGrath * make-debug-archive.in: New file. -@@ -1528,6 +1545,10 @@ +@@ -1557,6 +1574,10 @@ * elflint.c (valid_e_machine): Add EM_ALPHA. Reported by Christian Aichinger . @@ -1267,7 +1279,7 @@ 2006-08-08 Ulrich Drepper * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. -@@ -1604,6 +1625,10 @@ +@@ -1633,6 +1654,10 @@ * Makefile.am: Add hacks to create dependency files for non-generic linker. @@ -1278,7 +1290,7 @@ 2006-06-12 Ulrich Drepper * ldgeneric.c (ld_generic_generate_sections): Don't create .interp -@@ -1952,6 +1977,11 @@ +@@ -1981,6 +2006,11 @@ * readelf.c (print_debug_loc_section): Fix indentation for larger address size. @@ -1292,7 +1304,7 @@ * readelf.c (print_debug_line_section): Print section offset of each --- elfutils/src/findtextrel.c +++ elfutils/src/findtextrel.c -@@ -504,7 +504,11 @@ ptrcompare (const void *p1, const void * +@@ -496,7 +496,11 @@ ptrcompare (const void *p1, const void * static void @@ -1307,7 +1319,7 @@ { --- elfutils/src/ld.h +++ elfutils/src/ld.h -@@ -1122,6 +1122,7 @@ extern bool dynamically_linked_p (void); +@@ -1114,6 +1114,7 @@ extern bool dynamically_linked_p (void); /* Checked whether the symbol is undefined and referenced from a DSO. */ extern bool linked_from_dso_p (struct scninfo *scninfo, size_t symidx); @@ -1315,7 +1327,7 @@ #ifdef __GNUC_STDC_INLINE__ __attribute__ ((__gnu_inline__)) #endif -@@ -1139,5 +1140,6 @@ linked_from_dso_p (struct scninfo *scnin +@@ -1131,5 +1132,6 @@ linked_from_dso_p (struct scninfo *scnin return sym->defined && sym->in_dso; } @@ -1324,7 +1336,7 @@ #endif /* ld.h */ --- elfutils/src/Makefile.am +++ elfutils/src/Makefile.am -@@ -103,6 +103,9 @@ addr2line_no_Wformat = yes +@@ -95,6 +95,9 @@ addr2line_no_Wformat = yes # XXX While the file is not finished, don't warn about this ldgeneric_no_Wunused = yes @@ -1339,7 +1351,7 @@ @@ -40,7 +40,8 @@ host_triplet = @host@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/config/eu.am ChangeLog \ - ldlex.c ldscript.c ylwrap + ldlex.c ldscript.c -@MUDFLAP_TRUE@am__append_1 = -fmudflap +@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) +@MUDFLAP_TRUE@am__append_2 = -fmudflap @@ -1428,7 +1440,7 @@ findtextrel_LDADD = $(libdw) $(libelf) $(libmudflap) --- elfutils/src/readelf.c +++ elfutils/src/readelf.c -@@ -4434,10 +4434,11 @@ struct listptr +@@ -4429,10 +4429,11 @@ struct listptr #define listptr_offset_size(p) ((p)->dwarf64 ? 8 : 4) #define listptr_address_size(p) ((p)->addr64 ? 8 : 4) @@ -1442,7 +1454,7 @@ struct listptr *p1 = (void *) a; struct listptr *p2 = (void *) b; -@@ -4518,8 +4519,11 @@ static void +@@ -4513,8 +4514,11 @@ static void sort_listptr (struct listptr_table *table, const char *name) { if (table->n > 0) @@ -1467,7 +1479,7 @@ error (EXIT_FAILURE, 0, --- elfutils/src/strings.c +++ elfutils/src/strings.c -@@ -51,6 +51,10 @@ +@@ -43,6 +43,10 @@ #include @@ -1478,7 +1490,7 @@ /* Prototypes of local functions. */ static int read_fd (int fd, const char *fname, off64_t fdlen); -@@ -491,8 +495,13 @@ map_file (int fd, off64_t start_off, off +@@ -483,8 +487,13 @@ map_file (int fd, off64_t start_off, off fd, start_off); if (mem != MAP_FAILED) { @@ -1492,7 +1504,7 @@ break; } if (errno != EINVAL && errno != ENOMEM) -@@ -584,9 +593,11 @@ read_block (int fd, const char *fname, o +@@ -576,9 +585,11 @@ read_block (int fd, const char *fname, o elfmap_off = from & ~(ps - 1); elfmap_base = elfmap = map_file (fd, elfmap_off, fdlen, &elfmap_size); @@ -1506,7 +1518,7 @@ if (unlikely (elfmap == MAP_FAILED)) --- elfutils/src/strip.c +++ elfutils/src/strip.c -@@ -53,6 +53,12 @@ +@@ -45,6 +45,12 @@ #include #include @@ -1519,7 +1531,7 @@ typedef uint8_t GElf_Byte; /* Name and version of program. */ -@@ -326,8 +332,18 @@ process_file (const char *fname) +@@ -318,8 +324,18 @@ process_file (const char *fname) /* If we have to preserve the timestamp, we need it in the format utimes() understands. */ @@ -1538,7 +1550,7 @@ } /* Open the file. */ -@@ -2063,7 +2079,7 @@ while computing checksum for debug infor +@@ -2055,7 +2071,7 @@ while computing checksum for debug infor /* If requested, preserve the timestamp. */ if (tvp != NULL) { @@ -1547,7 +1559,7 @@ { error (0, errno, gettext ("\ cannot set access and modification date of '%s'"), -@@ -2120,7 +2136,7 @@ handle_ar (int fd, Elf *elf, const char +@@ -2112,7 +2128,7 @@ handle_ar (int fd, Elf *elf, const char if (tvp != NULL) { @@ -1558,7 +1570,7 @@ cannot set access and modification date of '%s'"), fname); --- elfutils/tests/ChangeLog +++ elfutils/tests/ChangeLog -@@ -279,6 +279,8 @@ +@@ -333,6 +333,8 @@ 2008-01-21 Roland McGrath @@ -1567,7 +1579,7 @@ * testfile45.S.bz2: Add tests for cltq, cqto. * testfile45.expect.bz2: Adjust. -@@ -987,6 +989,11 @@ +@@ -1041,6 +1043,11 @@ * Makefile.am (TESTS): Add run-elflint-test.sh. (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2. @@ -1581,7 +1593,7 @@ * get-files.c (main): Use correct format specifier. --- elfutils/tests/line2addr.c +++ elfutils/tests/line2addr.c -@@ -132,7 +132,7 @@ main (int argc, char *argv[]) +@@ -124,7 +124,7 @@ main (int argc, char *argv[]) { struct args a = { .arg = argv[cnt] }; @@ -1612,10 +1624,10 @@ noinst_PROGRAMS = arextract$(EXEEXT) arsymtest$(EXEEXT) \ newfile$(EXEEXT) saridx$(EXEEXT) scnnames$(EXEEXT) \ sectiondump$(EXEEXT) showptable$(EXEEXT) update1$(EXEEXT) \ -@@ -87,10 +88,10 @@ TESTS = run-arextract.sh run-arsymtest.s - run-prelink-addr-test.sh run-dwarf-getstring.sh \ - run-rerequest_tag.sh $(am__EXEEXT_1) $(am__EXEEXT_3) - # run-show-ciefde.sh +@@ -89,10 +90,10 @@ TESTS = run-arextract.sh run-arsymtest.s + run-rerequest_tag.sh run-typeiter.sh run-readelf-d.sh \ + run-unstrip-n.sh run-low_high_pc.sh $(am__EXEEXT_1) \ + $(am__EXEEXT_3) -@STANDALONE_FALSE@am__append_5 = msg_tst md5-sha1-test @STANDALONE_FALSE@am__append_6 = msg_tst md5-sha1-test -@HAVE_LIBASM_TRUE@am__append_7 = $(asm_TESTS) @@ -1625,7 +1637,7 @@ subdir = tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ -@@ -391,6 +392,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -403,6 +404,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -1633,7 +1645,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -420,6 +422,7 @@ SHELL = @SHELL@ +@@ -432,6 +434,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -1641,7 +1653,7 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -478,12 +481,11 @@ top_build_prefix = @top_build_prefix@ +@@ -490,12 +493,11 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ zip_LIBS = @zip_LIBS@ @@ -1657,7 +1669,7 @@ @MUDFLAP_FALSE@libmudflap = @MUDFLAP_TRUE@libmudflap = -lmudflap COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\ -@@ -493,7 +495,7 @@ CLEANFILES = *.gcno *.gcda +@@ -505,7 +507,7 @@ CLEANFILES = *.gcno *.gcda textrel_check = if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi @MUDFLAP_FALSE@BUILD_RPATH = \$$ORIGIN/../libasm:\$$ORIGIN/../libdw:\$$ORIGIN/../backends:\$$ORIGIN/../libelf @MUDFLAP_TRUE@BUILD_RPATH = \$$ORIGIN/../backends diff --git a/elfutils-robustify.patch b/elfutils-robustify.patch index d4ecbf0..7e23d14 100644 --- a/elfutils-robustify.patch +++ b/elfutils-robustify.patch @@ -1,6 +1,6 @@ --- elfutils/libdwfl/ChangeLog +++ elfutils/libdwfl/ChangeLog -@@ -41,6 +41,11 @@ +@@ -48,6 +48,11 @@ * dwfl_module_getdwarf.c (open_elf): Clear errno before CBFAIL. Reported by Kurt Roeckx . @@ -18,10 +18,10 @@ /* Relocate debug information. - Copyright (C) 2005-2010 Red Hat, Inc. + Copyright (C) 2005-2011 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. - Red Hat elfutils is free software; you can redistribute it and/or modify -@@ -478,7 +478,10 @@ relocate_section (Dwfl_Module *mod, Elf + This file is free software; you can redistribute it and/or modify +@@ -457,7 +457,10 @@ relocate_section (Dwfl_Module *mod, Elf } } @@ -33,7 +33,7 @@ size_t complete = 0; if (shdr->sh_type == SHT_REL) for (size_t relidx = 0; !result && relidx < nrels; ++relidx) -@@ -580,7 +583,7 @@ relocate_section (Dwfl_Module *mod, Elf +@@ -559,7 +562,7 @@ relocate_section (Dwfl_Module *mod, Elf nrels = next; } @@ -44,7 +44,7 @@ --- elfutils/libelf/ChangeLog +++ elfutils/libelf/ChangeLog -@@ -663,10 +663,53 @@ +@@ -676,10 +676,53 @@ 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. @@ -100,7 +100,7 @@ * elf.h: Update from glibc. --- elfutils/libelf/elf32_getphdr.c +++ elfutils/libelf/elf32_getphdr.c -@@ -114,6 +114,16 @@ __elfw2(LIBELFBITS,getphdr_wrlock) (elf) +@@ -93,6 +93,16 @@ __elfw2(LIBELFBITS,getphdr_wrlock) (elf) if (elf->map_address != NULL) { @@ -123,10 +123,10 @@ /* Return section header. - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2007, 2009 Red Hat, Inc. + Copyright (C) 1998-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 1998. -@@ -81,7 +81,8 @@ load_shdr_wrlock (Elf_Scn *scn) +@@ -60,7 +60,8 @@ load_shdr_wrlock (Elf_Scn *scn) goto out; size_t shnum; @@ -136,7 +136,7 @@ goto out; size_t size = shnum * sizeof (ElfW2(LIBELFBITS,Shdr)); -@@ -98,6 +99,16 @@ load_shdr_wrlock (Elf_Scn *scn) +@@ -77,6 +78,16 @@ load_shdr_wrlock (Elf_Scn *scn) if (elf->map_address != NULL) { @@ -155,7 +155,7 @@ /* All the data is already mapped. If we could use it --- elfutils/libelf/elf32_newphdr.c +++ elfutils/libelf/elf32_newphdr.c -@@ -135,6 +135,12 @@ elfw2(LIBELFBITS,newphdr) (elf, count) +@@ -114,6 +114,12 @@ elfw2(LIBELFBITS,newphdr) (elf, count) || count == PN_XNUM || elf->state.ELFW(elf,LIBELFBITS).phdr == NULL) { @@ -170,7 +170,7 @@ result = (ElfW2(LIBELFBITS,Phdr) *) --- elfutils/libelf/elf32_updatefile.c +++ elfutils/libelf/elf32_updatefile.c -@@ -223,6 +223,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf +@@ -202,6 +202,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf /* Write all the sections. Well, only those which are modified. */ if (shnum > 0) { @@ -180,7 +180,7 @@ Elf_ScnList *list = &elf->state.ELFW(elf,LIBELFBITS).scns; Elf_Scn **scns = (Elf_Scn **) alloca (shnum * sizeof (Elf_Scn *)); char *const shdr_start = ((char *) elf->map_address + elf->start_offset -@@ -645,6 +648,10 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf +@@ -624,6 +627,10 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf /* Write all the sections. Well, only those which are modified. */ if (shnum > 0) { @@ -193,7 +193,7 @@ xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR]; --- elfutils/libelf/elf_begin.c +++ elfutils/libelf/elf_begin.c -@@ -165,7 +165,8 @@ get_shnum (void *map_address, unsigned c +@@ -144,7 +144,8 @@ get_shnum (void *map_address, unsigned c if (unlikely (result == 0) && ehdr.e32->e_shoff != 0) { @@ -203,7 +203,7 @@ /* Cannot read the first section header. */ return 0; -@@ -213,7 +214,8 @@ get_shnum (void *map_address, unsigned c +@@ -192,7 +193,8 @@ get_shnum (void *map_address, unsigned c if (unlikely (result == 0) && ehdr.e64->e_shoff != 0) { @@ -213,7 +213,7 @@ /* Cannot read the first section header. */ return 0; -@@ -285,6 +287,15 @@ file_read_elf (int fildes, void *map_add +@@ -264,6 +266,15 @@ file_read_elf (int fildes, void *map_add /* Could not determine the number of sections. */ return NULL; @@ -229,7 +229,7 @@ /* We can now allocate the memory. Even if there are no section headers, we allocate space for a zeroth section in case we need it later. */ const size_t scnmax = (scncnt ?: (cmd == ELF_C_RDWR || cmd == ELF_C_RDWR_MMAP) -@@ -324,6 +335,16 @@ file_read_elf (int fildes, void *map_add +@@ -303,6 +314,16 @@ file_read_elf (int fildes, void *map_add { /* We can use the mmapped memory. */ elf->state.elf32.ehdr = ehdr; @@ -246,7 +246,7 @@ elf->state.elf32.shdr = (Elf32_Shdr *) ((char *) ehdr + ehdr->e_shoff); -@@ -410,6 +431,11 @@ file_read_elf (int fildes, void *map_add +@@ -389,6 +410,11 @@ file_read_elf (int fildes, void *map_add { /* We can use the mmapped memory. */ elf->state.elf64.ehdr = ehdr; @@ -260,7 +260,7 @@ --- elfutils/libelf/elf_getarsym.c +++ elfutils/libelf/elf_getarsym.c -@@ -179,6 +179,9 @@ elf_getarsym (elf, ptr) +@@ -158,6 +158,9 @@ elf_getarsym (elf, ptr) size_t index_size = atol (tmpbuf); if (SARMAG + sizeof (struct ar_hdr) + index_size > elf->maximum_size @@ -272,7 +272,7 @@ /* This index table cannot be right since it does not fit into --- elfutils/libelf/elf_getshdrstrndx.c +++ elfutils/libelf/elf_getshdrstrndx.c -@@ -125,10 +125,25 @@ elf_getshdrstrndx (elf, dst) +@@ -104,10 +104,25 @@ elf_getshdrstrndx (elf, dst) if (elf->map_address != NULL && elf->state.elf32.ehdr->e_ident[EI_DATA] == MY_ELFDATA && (ALLOW_UNALIGNED @@ -301,7 +301,7 @@ else { /* We avoid reading in all the section headers. Just read -@@ -163,10 +178,25 @@ elf_getshdrstrndx (elf, dst) +@@ -142,10 +157,25 @@ elf_getshdrstrndx (elf, dst) if (elf->map_address != NULL && elf->state.elf64.ehdr->e_ident[EI_DATA] == MY_ELFDATA && (ALLOW_UNALIGNED @@ -332,7 +332,7 @@ /* We avoid reading in all the section headers. Just read --- elfutils/libelf/elf_newscn.c +++ elfutils/libelf/elf_newscn.c -@@ -104,10 +104,18 @@ elf_newscn (elf) +@@ -83,10 +83,18 @@ elf_newscn (elf) else { /* We must allocate a new element. */ @@ -358,10 +358,10 @@ /* Get information from dynamic table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -93,7 +93,7 @@ gelf_getdyn (data, ndx, dst) +@@ -72,7 +72,7 @@ gelf_getdyn (data, ndx, dst) table entries has to be adopted. The user better has provided a buffer where we can store the information. While copying the data we are converting the format. */ @@ -370,7 +370,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -114,7 +114,7 @@ gelf_getdyn (data, ndx, dst) +@@ -93,7 +93,7 @@ gelf_getdyn (data, ndx, dst) /* The data is already in the correct form. Just make sure the index is OK. */ @@ -385,10 +385,10 @@ /* Get library from table at the given index. - Copyright (C) 2004 Red Hat, Inc. + Copyright (C) 2004-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2004. -@@ -86,7 +86,7 @@ gelf_getlib (data, ndx, dst) +@@ -65,7 +65,7 @@ gelf_getlib (data, ndx, dst) /* The data is already in the correct form. Just make sure the index is OK. */ GElf_Lib *result = NULL; @@ -403,10 +403,10 @@ /* Get move structure at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -83,7 +83,7 @@ gelf_getmove (data, ndx, dst) +@@ -62,7 +62,7 @@ gelf_getmove (data, ndx, dst) /* The data is already in the correct form. Just make sure the index is OK. */ @@ -421,10 +421,10 @@ /* Get RELA relocation information at given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -71,12 +71,6 @@ gelf_getrela (data, ndx, dst) +@@ -50,12 +50,6 @@ gelf_getrela (data, ndx, dst) if (data_scn == NULL) return NULL; @@ -437,7 +437,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_RELA)) { __libelf_seterrno (ELF_E_INVALID_HANDLE); -@@ -93,7 +87,7 @@ gelf_getrela (data, ndx, dst) +@@ -72,7 +66,7 @@ gelf_getrela (data, ndx, dst) if (scn->elf->class == ELFCLASS32) { /* We have to convert the data. */ @@ -446,7 +446,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); result = NULL; -@@ -114,7 +108,7 @@ gelf_getrela (data, ndx, dst) +@@ -93,7 +87,7 @@ gelf_getrela (data, ndx, dst) { /* Simply copy the data after we made sure we are actually getting correct data. */ @@ -461,10 +461,10 @@ /* Get REL relocation information at given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -71,12 +71,6 @@ gelf_getrel (data, ndx, dst) +@@ -50,12 +50,6 @@ gelf_getrel (data, ndx, dst) if (data_scn == NULL) return NULL; @@ -477,7 +477,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_REL)) { __libelf_seterrno (ELF_E_INVALID_HANDLE); -@@ -93,7 +87,7 @@ gelf_getrel (data, ndx, dst) +@@ -72,7 +66,7 @@ gelf_getrel (data, ndx, dst) if (scn->elf->class == ELFCLASS32) { /* We have to convert the data. */ @@ -486,7 +486,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); result = NULL; -@@ -113,7 +107,7 @@ gelf_getrel (data, ndx, dst) +@@ -92,7 +86,7 @@ gelf_getrel (data, ndx, dst) { /* Simply copy the data after we made sure we are actually getting correct data. */ @@ -501,10 +501,10 @@ /* Get symbol information from symbol table at the given index. - Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 1999-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 1999. -@@ -90,7 +90,7 @@ gelf_getsym (data, ndx, dst) +@@ -69,7 +69,7 @@ gelf_getsym (data, ndx, dst) table entries has to be adopted. The user better has provided a buffer where we can store the information. While copying the data we are converting the format. */ @@ -513,7 +513,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -119,7 +119,7 @@ gelf_getsym (data, ndx, dst) +@@ -98,7 +98,7 @@ gelf_getsym (data, ndx, dst) /* The data is already in the correct form. Just make sure the index is OK. */ @@ -528,10 +528,10 @@ /* Get additional symbol information from symbol table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -84,7 +84,7 @@ gelf_getsyminfo (data, ndx, dst) +@@ -63,7 +63,7 @@ gelf_getsyminfo (data, ndx, dst) /* The data is already in the correct form. Just make sure the index is OK. */ @@ -547,10 +547,10 @@ at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -90,7 +90,7 @@ gelf_getsymshndx (symdata, shndxdata, nd +@@ -69,7 +69,7 @@ gelf_getsymshndx (symdata, shndxdata, nd section index table. */ if (likely (shndxdata_scn != NULL)) { @@ -559,7 +559,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -110,7 +110,7 @@ gelf_getsymshndx (symdata, shndxdata, nd +@@ -89,7 +89,7 @@ gelf_getsymshndx (symdata, shndxdata, nd table entries has to be adopted. The user better has provided a buffer where we can store the information. While copying the data we are converting the format. */ @@ -568,7 +568,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -139,7 +139,7 @@ gelf_getsymshndx (symdata, shndxdata, nd +@@ -118,7 +118,7 @@ gelf_getsymshndx (symdata, shndxdata, nd /* The data is already in the correct form. Just make sure the index is OK. */ @@ -583,10 +583,10 @@ /* Get symbol version information at the given index. - Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 1999-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 1999. -@@ -92,7 +92,7 @@ gelf_getversym (data, ndx, dst) +@@ -71,7 +71,7 @@ gelf_getversym (data, ndx, dst) /* The data is already in the correct form. Just make sure the index is OK. */ @@ -601,10 +601,10 @@ /* Update information in dynamic table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -71,12 +71,6 @@ gelf_update_dyn (data, ndx, src) +@@ -50,12 +50,6 @@ gelf_update_dyn (data, ndx, src) if (data == NULL) return 0; @@ -617,7 +617,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_DYN)) { /* The type of the data better should match. */ -@@ -102,7 +96,7 @@ gelf_update_dyn (data, ndx, src) +@@ -81,7 +75,7 @@ gelf_update_dyn (data, ndx, src) } /* Check whether we have to resize the data buffer. */ @@ -626,7 +626,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -116,7 +110,7 @@ gelf_update_dyn (data, ndx, src) +@@ -95,7 +89,7 @@ gelf_update_dyn (data, ndx, src) else { /* Check whether we have to resize the data buffer. */ @@ -641,10 +641,10 @@ /* Update library in table at the given index. - Copyright (C) 2004 Red Hat, Inc. + Copyright (C) 2004-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2004. -@@ -68,12 +68,6 @@ gelf_update_lib (data, ndx, src) +@@ -47,12 +47,6 @@ gelf_update_lib (data, ndx, src) if (data == NULL) return 0; @@ -657,7 +657,7 @@ Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data; if (unlikely (data_scn->d.d_type != ELF_T_LIB)) { -@@ -87,7 +81,7 @@ gelf_update_lib (data, ndx, src) +@@ -66,7 +60,7 @@ gelf_update_lib (data, ndx, src) /* Check whether we have to resize the data buffer. */ int result = 0; @@ -672,10 +672,10 @@ /* Update move structure at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -75,8 +75,7 @@ gelf_update_move (data, ndx, src) +@@ -54,8 +54,7 @@ gelf_update_move (data, ndx, src) assert (sizeof (GElf_Move) == sizeof (Elf64_Move)); /* Check whether we have to resize the data buffer. */ @@ -691,10 +691,10 @@ /* Update RELA relocation information at given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -68,12 +68,6 @@ gelf_update_rela (Elf_Data *dst, int ndx +@@ -47,12 +47,6 @@ gelf_update_rela (Elf_Data *dst, int ndx if (dst == NULL) return 0; @@ -707,7 +707,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_RELA)) { /* The type of the data better should match. */ -@@ -101,7 +95,7 @@ gelf_update_rela (Elf_Data *dst, int ndx +@@ -80,7 +74,7 @@ gelf_update_rela (Elf_Data *dst, int ndx } /* Check whether we have to resize the data buffer. */ @@ -716,7 +716,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -117,7 +111,7 @@ gelf_update_rela (Elf_Data *dst, int ndx +@@ -96,7 +90,7 @@ gelf_update_rela (Elf_Data *dst, int ndx else { /* Check whether we have to resize the data buffer. */ @@ -731,10 +731,10 @@ /* Update REL relocation information at given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -68,12 +68,6 @@ gelf_update_rel (Elf_Data *dst, int ndx, +@@ -47,12 +47,6 @@ gelf_update_rel (Elf_Data *dst, int ndx, if (dst == NULL) return 0; @@ -747,7 +747,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_REL)) { /* The type of the data better should match. */ -@@ -99,7 +93,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, +@@ -78,7 +72,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, } /* Check whether we have to resize the data buffer. */ @@ -756,7 +756,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -114,7 +108,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, +@@ -93,7 +87,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, else { /* Check whether we have to resize the data buffer. */ @@ -771,10 +771,10 @@ /* Update symbol information in symbol table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -72,12 +72,6 @@ gelf_update_sym (data, ndx, src) +@@ -51,12 +51,6 @@ gelf_update_sym (data, ndx, src) if (data == NULL) return 0; @@ -787,7 +787,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_SYM)) { /* The type of the data better should match. */ -@@ -102,7 +96,7 @@ gelf_update_sym (data, ndx, src) +@@ -81,7 +75,7 @@ gelf_update_sym (data, ndx, src) } /* Check whether we have to resize the data buffer. */ @@ -796,7 +796,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -125,7 +119,7 @@ gelf_update_sym (data, ndx, src) +@@ -104,7 +98,7 @@ gelf_update_sym (data, ndx, src) else { /* Check whether we have to resize the data buffer. */ @@ -811,10 +811,10 @@ /* Update additional symbol information in symbol table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -72,12 +72,6 @@ gelf_update_syminfo (data, ndx, src) +@@ -51,12 +51,6 @@ gelf_update_syminfo (data, ndx, src) if (data == NULL) return 0; @@ -827,7 +827,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_SYMINFO)) { /* The type of the data better should match. */ -@@ -93,7 +87,7 @@ gelf_update_syminfo (data, ndx, src) +@@ -72,7 +66,7 @@ gelf_update_syminfo (data, ndx, src) rwlock_wrlock (scn->elf->lock); /* Check whether we have to resize the data buffer. */ @@ -843,10 +843,10 @@ given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -77,12 +77,6 @@ gelf_update_symshndx (symdata, shndxdata +@@ -56,12 +56,6 @@ gelf_update_symshndx (symdata, shndxdata if (symdata == NULL) return 0; @@ -859,7 +859,7 @@ if (unlikely (symdata_scn->d.d_type != ELF_T_SYM)) { /* The type of the data better should match. */ -@@ -128,7 +122,7 @@ gelf_update_symshndx (symdata, shndxdata +@@ -107,7 +101,7 @@ gelf_update_symshndx (symdata, shndxdata } /* Check whether we have to resize the data buffer. */ @@ -868,7 +868,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -151,7 +145,7 @@ gelf_update_symshndx (symdata, shndxdata +@@ -130,7 +124,7 @@ gelf_update_symshndx (symdata, shndxdata else { /* Check whether we have to resize the data buffer. */ @@ -883,10 +883,10 @@ /* Update symbol version information. - Copyright (C) 2001, 2002 Red Hat, Inc. + Copyright (C) 2001-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2001. -@@ -75,8 +75,7 @@ gelf_update_versym (data, ndx, src) +@@ -54,8 +54,7 @@ gelf_update_versym (data, ndx, src) assert (sizeof (GElf_Versym) == sizeof (Elf64_Versym)); /* Check whether we have to resize the data buffer. */ @@ -898,7 +898,7 @@ return 0; --- elfutils/libelf/libelfP.h +++ elfutils/libelf/libelfP.h -@@ -608,4 +608,8 @@ extern uint32_t __libelf_crc32 (uint32_t +@@ -587,4 +587,8 @@ extern uint32_t __libelf_crc32 (uint32_t /* Align offset to 4 bytes as needed for note name and descriptor data. */ #define NOTE_ALIGN(n) (((n) + 3) & -4U) @@ -909,7 +909,7 @@ #endif /* libelfP.h */ --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -228,6 +228,12 @@ +@@ -257,6 +257,12 @@ * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature. @@ -922,7 +922,7 @@ 2011-02-11 Roland McGrath * elfcmp.c (verbose): New variable. -@@ -1940,6 +1946,16 @@ +@@ -1969,6 +1975,16 @@ object symbols or symbols with unknown type. (check_rel): Likewise. @@ -939,7 +939,7 @@ 2005-06-08 Roland McGrath * readelf.c (print_ops): Add consts. -@@ -1985,6 +2001,19 @@ +@@ -2014,6 +2030,19 @@ * readelf.c (dwarf_tag_string): Add new tags. @@ -961,7 +961,7 @@ * strip.c (handle_elf): Don't translate hash and versym data formats, --- elfutils/src/elflint.c +++ elfutils/src/elflint.c -@@ -131,6 +131,10 @@ static uint32_t shstrndx; +@@ -123,6 +123,10 @@ static uint32_t shstrndx; /* Array to count references in section groups. */ static int *scnref; @@ -972,7 +972,7 @@ int main (int argc, char *argv[]) -@@ -319,10 +323,19 @@ section_name (Ebl *ebl, int idx) +@@ -311,10 +315,19 @@ section_name (Ebl *ebl, int idx) { GElf_Shdr shdr_mem; GElf_Shdr *shdr; @@ -993,7 +993,7 @@ } -@@ -344,11 +357,6 @@ static const int valid_e_machine[] = +@@ -336,11 +349,6 @@ static const int valid_e_machine[] = (sizeof (valid_e_machine) / sizeof (valid_e_machine[0])) @@ -1005,7 +1005,7 @@ static void check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size) { -@@ -632,7 +640,8 @@ section [%2d] '%s': symbol table cannot +@@ -624,7 +632,8 @@ section [%2d] '%s': symbol table cannot } } @@ -1015,7 +1015,7 @@ ERROR (gettext ("\ section [%2u] '%s': entry size is does not match ElfXX_Sym\n"), idx, section_name (ebl, idx)); -@@ -670,7 +679,7 @@ section [%2d] '%s': XINDEX for zeroth en +@@ -662,7 +671,7 @@ section [%2d] '%s': XINDEX for zeroth en xndxscnidx, section_name (ebl, xndxscnidx)); } @@ -1024,7 +1024,7 @@ { sym = gelf_getsymshndx (data, xndxdata, cnt, &sym_mem, &xndx); if (sym == NULL) -@@ -690,7 +699,8 @@ section [%2d] '%s': symbol %zu: invalid +@@ -682,7 +691,8 @@ section [%2d] '%s': symbol %zu: invalid else { name = elf_strptr (ebl->elf, shdr->sh_link, sym->st_name); @@ -1034,7 +1034,7 @@ } if (sym->st_shndx == SHN_XINDEX) -@@ -1039,9 +1049,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e +@@ -1031,9 +1041,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e { GElf_Shdr rcshdr_mem; const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem); @@ -1048,7 +1048,7 @@ { /* Found the dynamic section. Look through it. */ Elf_Data *d = elf_getdata (scn, NULL); -@@ -1051,7 +1063,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e +@@ -1043,7 +1055,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e { GElf_Dyn dyn_mem; GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem); @@ -1059,7 +1059,7 @@ if (dyn->d_tag == DT_RELCOUNT) { -@@ -1065,7 +1079,9 @@ section [%2d] '%s': DT_RELCOUNT used for +@@ -1057,7 +1071,9 @@ section [%2d] '%s': DT_RELCOUNT used for /* Does the number specified number of relative relocations exceed the total number of relocations? */ @@ -1070,7 +1070,7 @@ ERROR (gettext ("\ section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"), idx, section_name (ebl, idx), -@@ -1225,7 +1241,8 @@ section [%2d] '%s': no relocations for m +@@ -1217,7 +1233,8 @@ section [%2d] '%s': no relocations for m } } @@ -1080,7 +1080,7 @@ 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"), -@@ -1448,7 +1465,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G +@@ -1440,7 +1457,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G Elf_Data *symdata = elf_getdata (symscn, NULL); enum load_state state = state_undecided; @@ -1090,7 +1090,7 @@ { GElf_Rela rela_mem; GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem); -@@ -1498,7 +1516,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE +@@ -1490,7 +1508,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE Elf_Data *symdata = elf_getdata (symscn, NULL); enum load_state state = state_undecided; @@ -1100,7 +1100,7 @@ { GElf_Rel rel_mem; GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem); -@@ -1597,7 +1616,8 @@ section [%2d] '%s': referenced as string +@@ -1589,7 +1608,8 @@ section [%2d] '%s': referenced as string shdr->sh_link, section_name (ebl, shdr->sh_link), idx, section_name (ebl, idx)); @@ -1110,7 +1110,7 @@ ERROR (gettext ("\ section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"), idx, section_name (ebl, idx)); -@@ -1607,7 +1627,7 @@ section [%2d] '%s': section entry size d +@@ -1599,7 +1619,7 @@ section [%2d] '%s': section entry size d idx, section_name (ebl, idx)); bool non_null_warned = false; @@ -1119,7 +1119,7 @@ { GElf_Dyn dyn_mem; GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem); -@@ -1879,6 +1899,8 @@ section [%2d] '%s': entry size does not +@@ -1871,6 +1891,8 @@ section [%2d] '%s': entry size does not idx, section_name (ebl, idx)); if (symshdr != NULL @@ -1128,7 +1128,7 @@ && (shdr->sh_size / shdr->sh_entsize < symshdr->sh_size / symshdr->sh_entsize)) ERROR (gettext ("\ -@@ -1905,6 +1927,12 @@ section [%2d] '%s': extended section ind +@@ -1897,6 +1919,12 @@ section [%2d] '%s': extended section ind } Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL); @@ -1141,7 +1141,7 @@ if (*((Elf32_Word *) data->d_buf) != 0) ERROR (gettext ("symbol 0 should have zero extended section index\n")); -@@ -1947,7 +1975,7 @@ section [%2d] '%s': hash table section i +@@ -1939,7 +1967,7 @@ section [%2d] '%s': hash table section i size_t maxidx = nchain; @@ -1150,7 +1150,7 @@ { size_t symsize = symshdr->sh_size / symshdr->sh_entsize; -@@ -1958,18 +1986,28 @@ section [%2d] '%s': hash table section i +@@ -1950,18 +1978,28 @@ section [%2d] '%s': hash table section i maxidx = symsize; } @@ -1181,7 +1181,7 @@ } -@@ -1999,18 +2037,28 @@ section [%2d] '%s': hash table section i +@@ -1991,18 +2029,28 @@ section [%2d] '%s': hash table section i maxidx = symsize; } @@ -1213,7 +1213,7 @@ } -@@ -2035,7 +2083,7 @@ section [%2d] '%s': bitmask size not pow +@@ -2027,7 +2075,7 @@ section [%2d] '%s': bitmask size not pow if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)) { ERROR (gettext ("\ @@ -1222,7 +1222,7 @@ idx, section_name (ebl, idx), (long int) shdr->sh_size, (long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))); return; -@@ -2707,8 +2755,9 @@ section [%2d] '%s' refers in sh_link to +@@ -2699,8 +2747,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. */ @@ -1236,7 +1236,7 @@ idx, section_name (ebl, idx), --- elfutils/src/readelf.c +++ elfutils/src/readelf.c -@@ -1191,6 +1191,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G +@@ -1183,6 +1183,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G Elf32_Word *grpref = (Elf32_Word *) data->d_buf; GElf_Sym sym_mem; @@ -1245,7 +1245,7 @@ printf ((grpref[0] & GRP_COMDAT) ? ngettext ("\ \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n", -@@ -1203,8 +1205,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G +@@ -1195,8 +1197,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), @@ -1256,7 +1256,7 @@ ?: gettext (""), data->d_size / sizeof (Elf32_Word) - 1); -@@ -1355,10 +1357,12 @@ static void +@@ -1347,10 +1349,12 @@ static void handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) { int class = gelf_getclass (ebl->elf); @@ -1270,7 +1270,7 @@ /* Get the data of the section. */ data = elf_getdata (scn, NULL); -@@ -1370,21 +1374,26 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, +@@ -1362,21 +1366,26 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1303,7 +1303,7 @@ { GElf_Dyn dynmem; GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dynmem); -@@ -1533,7 +1542,8 @@ static void +@@ -1525,7 +1534,8 @@ static void handle_relocs_rel (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr) { int class = gelf_getclass (ebl->elf); @@ -1313,7 +1313,7 @@ /* Get the data of the section. */ Elf_Data *data = elf_getdata (scn, NULL); -@@ -1719,7 +1729,8 @@ static void +@@ -1711,7 +1721,8 @@ static void handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr) { int class = gelf_getclass (ebl->elf); @@ -1323,7 +1323,7 @@ /* Get the data of the section. */ Elf_Data *data = elf_getdata (scn, NULL); -@@ -1966,6 +1977,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G +@@ -1958,6 +1969,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1337,7 +1337,7 @@ /* Now we can compute the number of entries in the section. */ unsigned int nsyms = data->d_size / (class == ELFCLASS32 ? sizeof (Elf32_Sym) -@@ -1976,15 +1994,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G +@@ -1968,15 +1986,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G nsyms), (unsigned int) elf_ndxscn (scn), elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms); @@ -1354,7 +1354,7 @@ fputs_unlocked (class == ELFCLASS32 ? gettext ("\ -@@ -2220,7 +2235,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, +@@ -2212,7 +2227,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1369,7 +1369,7 @@ printf (ngettext ("\ \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2231,9 +2252,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, +@@ -2223,9 +2244,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1380,7 +1380,7 @@ unsigned int offset = 0; for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -2286,8 +2305,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G +@@ -2278,8 +2297,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1396,7 +1396,7 @@ printf (ngettext ("\ \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2299,9 +2324,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G +@@ -2291,9 +2316,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1407,7 +1407,7 @@ unsigned int offset = 0; for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -2563,25 +2586,30 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G +@@ -2555,25 +2578,30 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G filename = NULL; } @@ -1445,7 +1445,7 @@ { if (cnt % 2 == 0) printf ("\n %4d:", cnt); -@@ -2630,7 +2658,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, +@@ -2622,7 +2650,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt) ++counts[lengths[cnt]]; @@ -1464,7 +1464,7 @@ 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", "\ -@@ -2643,9 +2681,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, +@@ -2635,9 +2673,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1475,7 +1475,7 @@ if (extrastr != NULL) fputs (extrastr, stdout); -@@ -2905,7 +2941,8 @@ print_liblist (Ebl *ebl) +@@ -2897,7 +2933,8 @@ print_liblist (Ebl *ebl) if (shdr != NULL && shdr->sh_type == SHT_GNU_LIBLIST) { @@ -1485,7 +1485,7 @@ printf (ngettext ("\ \nLibrary list section [%2zu] '%s' at offset %#0" PRIx64 " contains %d entry:\n", "\ -@@ -4646,6 +4683,16 @@ print_debug_aranges_section (Dwfl_Module +@@ -4644,6 +4681,16 @@ print_debug_aranges_section (Dwfl_Module return; } @@ -1504,7 +1504,7 @@ "\ --- elfutils/src/strip.c +++ elfutils/src/strip.c -@@ -572,6 +572,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -564,6 +564,11 @@ handle_elf (int fd, Elf *elf, const char goto fail_close; } @@ -1516,7 +1516,7 @@ /* Storage for section information. We leave room for two more entries since we unconditionally create a section header string table. Maybe some weird tool created an ELF file without one. -@@ -593,7 +598,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -585,7 +590,7 @@ handle_elf (int fd, Elf *elf, const char { /* This should always be true (i.e., there should not be any holes in the numbering). */ @@ -1525,7 +1525,7 @@ shdr_info[cnt].scn = scn; -@@ -606,6 +611,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -598,6 +603,7 @@ handle_elf (int fd, Elf *elf, const char shdr_info[cnt].shdr.sh_name); if (shdr_info[cnt].name == NULL) { @@ -1533,7 +1533,7 @@ error (0, 0, gettext ("illformed file '%s'"), fname); goto fail_close; } -@@ -615,6 +621,8 @@ handle_elf (int fd, Elf *elf, const char +@@ -607,6 +613,8 @@ handle_elf (int fd, Elf *elf, const char /* Remember the shdr.sh_link value. */ shdr_info[cnt].old_sh_link = shdr_info[cnt].shdr.sh_link; @@ -1542,7 +1542,7 @@ /* Sections in files other than relocatable object files which are not loaded can be freely moved by us. In relocatable -@@ -627,7 +635,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -619,7 +627,7 @@ handle_elf (int fd, Elf *elf, const char appropriate reference. */ if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX)) { @@ -1551,7 +1551,7 @@ shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt; } else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP)) -@@ -644,7 +652,12 @@ handle_elf (int fd, Elf *elf, const char +@@ -636,7 +644,12 @@ handle_elf (int fd, Elf *elf, const char for (inner = 1; inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word); ++inner) @@ -1564,7 +1564,7 @@ if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0)) /* If the section group contains only one element and this -@@ -655,7 +668,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -647,7 +660,7 @@ handle_elf (int fd, Elf *elf, const char } else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym)) { @@ -1573,7 +1573,7 @@ shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt; } -@@ -663,7 +676,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -655,7 +668,7 @@ handle_elf (int fd, Elf *elf, const char discarded right away. */ if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0) { @@ -1582,7 +1582,7 @@ if (shdr_info[shdr_info[cnt].group_idx].idx == 0) { -@@ -739,10 +752,14 @@ handle_elf (int fd, Elf *elf, const char +@@ -731,10 +744,14 @@ handle_elf (int fd, Elf *elf, const char { /* If a relocation section is marked as being removed make sure the section it is relocating is removed, too. */ @@ -1600,7 +1600,7 @@ /* If a group section is marked as being removed make sure all the sections it contains are being removed, too. */ -@@ -786,7 +803,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -778,7 +795,7 @@ handle_elf (int fd, Elf *elf, const char if (shdr_info[cnt].symtab_idx != 0 && shdr_info[shdr_info[cnt].symtab_idx].data == NULL) { @@ -1609,7 +1609,7 @@ shdr_info[shdr_info[cnt].symtab_idx].data = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, -@@ -826,6 +843,9 @@ handle_elf (int fd, Elf *elf, const char +@@ -818,6 +835,9 @@ handle_elf (int fd, Elf *elf, const char else if (scnidx == SHN_XINDEX) scnidx = xndx; @@ -1619,7 +1619,7 @@ if (shdr_info[scnidx].idx == 0) /* This symbol table has a real symbol in a discarded section. So preserve the -@@ -856,12 +876,16 @@ handle_elf (int fd, Elf *elf, const char +@@ -848,12 +868,16 @@ handle_elf (int fd, Elf *elf, const char } /* Handle references through sh_info. */ @@ -1638,7 +1638,7 @@ /* Mark the section as investigated. */ shdr_info[cnt].idx = 2; -@@ -1002,7 +1026,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -994,7 +1018,7 @@ handle_elf (int fd, Elf *elf, const char error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"), elf_errmsg (-1)); @@ -1647,7 +1647,7 @@ /* Add this name to the section header string table. */ shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0); -@@ -1039,7 +1063,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1031,7 +1055,7 @@ handle_elf (int fd, Elf *elf, const char error (EXIT_FAILURE, 0, gettext ("while create section header section: %s"), elf_errmsg (-1)); @@ -1656,7 +1656,7 @@ shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn); if (shdr_info[cnt].data == NULL) -@@ -1095,7 +1119,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1087,7 +1111,7 @@ handle_elf (int fd, Elf *elf, const char error (EXIT_FAILURE, 0, gettext ("while create section header section: %s"), elf_errmsg (-1)); @@ -1665,7 +1665,7 @@ /* Finalize the string table and fill in the correct indices in the section headers. */ -@@ -1185,20 +1209,20 @@ handle_elf (int fd, Elf *elf, const char +@@ -1177,20 +1201,20 @@ handle_elf (int fd, Elf *elf, const char shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, NULL); @@ -1689,7 +1689,7 @@ >= shdr_info[cnt].data->d_size / elsize); } -@@ -1253,7 +1277,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1245,7 +1269,7 @@ handle_elf (int fd, Elf *elf, const char sec = shdr_info[sym->st_shndx].idx; else { @@ -1698,7 +1698,7 @@ sec = shdr_info[xshndx].idx; } -@@ -1274,7 +1298,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1266,7 +1290,7 @@ handle_elf (int fd, Elf *elf, const char nxshndx = sec; } @@ -1707,7 +1707,7 @@ if ((inner != destidx || nshndx != sym->st_shndx || (shndxdata != NULL && nxshndx != xshndx)) -@@ -1301,9 +1325,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -1293,9 +1317,11 @@ handle_elf (int fd, Elf *elf, const char { size_t sidx = (sym->st_shndx != SHN_XINDEX ? sym->st_shndx : xshndx); @@ -1722,7 +1722,7 @@ } } -@@ -1491,11 +1517,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -1483,11 +1509,11 @@ handle_elf (int fd, Elf *elf, const char { GElf_Sym sym_mem; GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem); @@ -1736,7 +1736,7 @@ size_t hidx = elf_hash (name) % nbucket; if (bucket[hidx] == 0) -@@ -1514,8 +1540,8 @@ handle_elf (int fd, Elf *elf, const char +@@ -1506,8 +1532,8 @@ handle_elf (int fd, Elf *elf, const char else { /* Alpha and S390 64-bit use 64-bit SHT_HASH entries. */ @@ -1747,7 +1747,7 @@ Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf; -@@ -1545,11 +1571,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -1537,11 +1563,11 @@ handle_elf (int fd, Elf *elf, const char { GElf_Sym sym_mem; GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem); diff --git a/elfutils.spec b/elfutils.spec index 76e3da8..c02ac6e 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -1,10 +1,10 @@ Name: elfutils Summary: A collection of utilities and DSOs to handle compiled objects -Version: 0.153 -%global baserelease 2 +Version: 0.154 +%global baserelease 1 URL: https://fedorahosted.org/elfutils/ %global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/ -License: GPLv2 with exceptions +License: GPLv3+ and (GPLv2+ or LGPLv3+) Group: Development/Tools %if %{?_with_compat:1}%{!?_with_compat:0} @@ -46,8 +46,6 @@ Source: %{?source_url}%{name}-%{version}.tar.bz2 Patch1: %{?source_url}elfutils-robustify.patch Patch2: %{?source_url}elfutils-portability.patch -Patch3: elfutils-0.153-dwfl_segment_report_module.patch - %if !%{compat} Release: %{baserelease}%{?dist} %else @@ -96,6 +94,7 @@ symbols), readelf (to see the raw ELF file structures), and elflint %package libs Summary: Libraries to handle compiled objects Group: Development/Tools +License: GPLv2+ or LGPLv3+ %if 0%{!?_isa:1} Provides: elfutils-libs%{depsuffix} = %{version}-%{release} %endif @@ -110,6 +109,7 @@ other programs using these libraries. %package devel Summary: Development libraries to handle compiled objects Group: Development/Tools +License: GPLv2+ or LGPLv3+ %if 0%{!?_isa:1} Provides: elfutils-devel%{depsuffix} = %{version}-%{release} %endif @@ -129,6 +129,7 @@ assembler interface. %package devel-static Summary: Static archives to handle compiled objects Group: Development/Tools +License: GPLv2+ or LGPLv3+ %if 0%{!?_isa:1} Provides: elfutils-devel-static%{depsuffix} = %{version}-%{release} %endif @@ -142,6 +143,7 @@ with the code to handle compiled objects. %package libelf Summary: Library to read and write ELF files Group: Development/Tools +License: GPLv2+ or LGPLv3+ %if 0%{!?_isa:1} Provides: elfutils-libelf%{depsuffix} = %{version}-%{release} %endif @@ -156,6 +158,7 @@ elfutils package use it also to generate new ELF files. %package libelf-devel Summary: Development support for libelf Group: Development/Tools +License: GPLv2+ or LGPLv3+ %if 0%{!?_isa:1} Provides: elfutils-libelf-devel%{depsuffix} = %{version}-%{release} %endif @@ -174,6 +177,7 @@ different sections of an ELF file. %package libelf-devel-static Summary: Static archive of libelf Group: Development/Tools +License: GPLv2+ or LGPLv3+ %if 0%{!?_isa:1} Provides: elfutils-libelf-devel-static%{depsuffix} = %{version}-%{release} %endif @@ -207,8 +211,6 @@ sed -i.scanf-m -e 's/%m/%a/g' src/addr2line.c tests/line2addr.c find . -name \*.sh ! -perm -0100 -print | xargs chmod +x -%patch3 -p1 -b .dwfl_segment_report_module - %build # Remove -Wall from default flags. The makefiles enable enough warnings # themselves, and they use -Werror. Appending -Wall defeats the cases where @@ -260,7 +262,7 @@ rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,root) -%doc COPYING README TODO +%doc COPYING COPYING-GPLV2 COPYING-LGPLV3 README TODO CONTRIBUTING %{_bindir}/eu-addr2line %{_bindir}/eu-ar %{_bindir}/eu-elfcmp @@ -322,6 +324,12 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/libelf.a %changelog +* Fri Jun 22 2012 Mark Wielaard - 0.154-1 +- Update to 0.154 + - elflint doesn't recognize SHF_INFO_LINK on relocation sections (#807823) + - Update license to GPLv3+ and (GPLv2+ or LGPLv3+) + - Remove elfutils-0.153-dwfl_segment_report_module.patch + * Mon Apr 02 2012 Mark Wielaard - 0.153-2 - Fix for eu-unstrip emits garbage for librt.so.1 (#805447) diff --git a/sources b/sources index e93e478..519c11d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -289a146182bc29f0236eaa15d8ebdf98 elfutils-0.153.tar.bz2 +e5b26ceaee67db40e742f13052087354 elfutils-0.154.tar.bz2