[elfutils] Update to 0.154.

Mark Wielaard mjw at fedoraproject.org
Fri Jun 22 20:40:02 UTC 2012


commit d10bca5799e2745c5fe813f6094f1c183e91325f
Author: Mark Wielaard <mjw at redhat.com>
Date:   Fri Jun 22 14:58:36 2012 +0200

    Update to 0.154.

 .gitignore                                      |    1 +
 elfutils-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(-)
---
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-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  <mjw at redhat.com>
+ 
++	* configure.ac: Wrap AC_COMPILE_IFELSE sources in AC_LANG_SOURCE.
++
+ 	* COPYING: Fix address. Updated version from gnulib.
+ 
+ 2012-01-23  Mark Wielaard  <mjw at redhat.com>
+@@ -22,6 +24,9 @@
  
  2011-10-08  Mike Frysinger  <vapier at gentoo.org>
  
@@ -106,7 +115,7 @@
  	* configure.ac: Fix use of AC_ARG_ENABLE to handle $enableval correctly.
  
  2011-10-02  Ulrich Drepper  <drepper at gmail.com>
-@@ -35,6 +38,10 @@
+@@ -43,6 +48,10 @@
  
  	* configure.ac (LOCALEDIR, DATADIRNAME): Removed.
  
@@ -117,7 +126,7 @@
  2009-09-21  Ulrich Drepper  <drepper at redhat.com>
  
  	* 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  <roland at redhat.com>
  
  	* 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  <roland at redhat.com>
  
@@ -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  <roland at redhat.com>
  
  	* 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 @@
- ## <http://www.openinventionnetwork.com>.
+ ## This file is part of elfutils.
+ ##
+@@ -29,14 +29,20 @@
+ ## not, see <http://www.gnu.org/licenses/>.
  ##
  
 +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) <lib##name.h>
  
@@ -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  <roland at redhat.com>
  
@@ -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  <mjw at redhat.com>
  
  	* 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  <roland at redhat.com>
  
  	* dwarf_getscopevar.c: Use dwarf_diename.
-@@ -1133,6 +1141,11 @@
+@@ -1144,6 +1152,11 @@
  
  2005-05-31  Roland McGrath  <roland at redhat.com>
  
@@ -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 <endian.h>
  # 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  <roland at redhat.com>
  
@@ -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  <roland at redhat.com>
 +
 +	* gnuhash_xlate.h (elf_cvt_gnuhash): Avoid post-increment in bswap_32
 +	argument, since some implementations are buggy macros.
 +
- 2011-01-05  Jan Kratochvil  <jan.kratochvil at redhat.com>
+ 2011-02-26  Mark Wielaard  <mjw at redhat.com>
  
- 	* 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 <drepper at redhat.com>, 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  <drepper at redhat.com>
-@@ -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  <drepper at redhat.com>
  
  	* 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  <roland at redhat.com>
  
  	* 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  <roland at redhat.com>
  
  	* 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 <Greek0 at gmx.net>.
  
@@ -1267,7 +1279,7 @@
  2006-08-08  Ulrich Drepper  <drepper at redhat.com>
  
  	* 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  <drepper at redhat.com>
  
  	* 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
 - at MUDFLAP_TRUE@am__append_1 = -fmudflap
 + at BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
 + at 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 <system.h>
  
@@ -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 <libebl.h>
  #include <system.h>
  
@@ -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  <roland at redhat.com>
  
@@ -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)
 - at STANDALONE_FALSE@am__append_5 = msg_tst md5-sha1-test
  @STANDALONE_FALSE at am__append_6 = msg_tst md5-sha1-test
 - at 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 at libmudflap = 
  @MUDFLAP_TRUE at 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 at BUILD_RPATH = \$$ORIGIN/../libasm:\$$ORIGIN/../libdw:\$$ORIGIN/../backends:\$$ORIGIN/../libelf
  @MUDFLAP_TRUE at 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 <kurt at roeckx.be>.
  
@@ -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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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 <drepper at redhat.com>, 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  <roland at redhat.com>
  
  	* 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  <roland at redhat.com>
  
  	* 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 ("<INVALID SYMBOL>"),
  	  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 <mjw at redhat.com> - 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 <mark at klomp.org> - 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


More information about the scm-commits mailing list