]> git.pld-linux.org Git - packages/elfutils.git/commitdiff
- updated to 0.153. auto/th/elfutils-0_153-1
authorPaweł Sikora <pluto@pld-linux.org>
Sun, 6 May 2012 08:36:10 +0000 (08:36 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
  disabled -Werror (some unused-but-set-variable failures).
  disabled pl.po patch (present in upstream).

Changed files:
    elfutils-portability.patch -> 1.20
    elfutils-robustify.patch -> 1.15
    elfutils.spec -> 1.101

elfutils-portability.patch
elfutils-robustify.patch
elfutils.spec

index cfe857f8e7de70bab6edb57515ca62e542d4f282..ec78059ba0639bf2301a22d230d65b9ab828566c 100644 (file)
@@ -1,6 +1,6 @@
 --- elfutils/backends/ChangeLog
 +++ elfutils/backends/ChangeLog
 --- elfutils/backends/ChangeLog
 +++ elfutils/backends/ChangeLog
-@@ -111,6 +111,10 @@
+@@ -121,6 +121,10 @@
        * ppc_attrs.c (ppc_check_object_attribute): Handle tag
        GNU_Power_ABI_Struct_Return.
  
        * ppc_attrs.c (ppc_check_object_attribute): Handle tag
        GNU_Power_ABI_Struct_Return.
  
@@ -11,7 +11,7 @@
  2008-10-04  Ulrich Drepper  <drepper@redhat.com>
  
        * i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and
  2008-10-04  Ulrich Drepper  <drepper@redhat.com>
  
        * i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and
-@@ -438,6 +442,11 @@
+@@ -448,6 +452,11 @@
        * sparc_init.c: Likewise.
        * x86_64_init.c: Likewise.
  
        * sparc_init.c: Likewise.
        * x86_64_init.c: Likewise.
  
@@ -23,7 +23,7 @@
  2005-11-19  Roland McGrath  <roland@redhat.com>
  
        * ppc64_reloc.def: REL30 -> ADDR30.
  2005-11-19  Roland McGrath  <roland@redhat.com>
  
        * ppc64_reloc.def: REL30 -> ADDR30.
-@@ -460,6 +469,9 @@
+@@ -470,6 +479,9 @@
        * Makefile.am (uninstall): Don't try to remove $(pkgincludedir).
        (CLEANFILES): Add libebl_$(m).so.
  
        * Makefile.am (uninstall): Don't try to remove $(pkgincludedir).
        (CLEANFILES): Add libebl_$(m).so.
  
                -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \
                -Wl,--version-script,$(@:.so=.map) \
 -              -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) $(libmudflap)
                -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \
                -Wl,--version-script,$(@:.so=.map) \
 -              -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) $(libmudflap)
++              -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) $(libmudflap)
+       $(textrel_check)
+ libebl_i386.so: $(cpu_i386)
+--- elfutils/backends/Makefile.in
++++ elfutils/backends/Makefile.in
+@@ -38,7 +38,8 @@ build_triplet = @build@
+ host_triplet = @host@
+ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in $(top_srcdir)/config/eu.am ChangeLog
+-@MUDFLAP_TRUE@am__append_1 = -fmudflap
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@MUDFLAP_TRUE@am__append_2 = -fmudflap
+ subdir = backends
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+@@ -165,6 +166,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -194,6 +196,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -256,10 +259,9 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
+       -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \
+       -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw
+ AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+-      $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
+       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
+-      $(am__append_1)
++      $(am__append_1) $(am__append_2)
+ @MUDFLAP_FALSE@libmudflap = 
+ @MUDFLAP_TRUE@libmudflap = -lmudflap
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\
+@@ -698,7 +700,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) \
+-              -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) $(libmudflap)
 +              -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) $(libmudflap)
        $(textrel_check)
  
  libebl_i386.so: $(cpu_i386)
 --- elfutils/ChangeLog
 +++ elfutils/ChangeLog
 +              -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) $(libmudflap)
        $(textrel_check)
  
  libebl_i386.so: $(cpu_i386)
 --- elfutils/ChangeLog
 +++ elfutils/ChangeLog
-@@ -7,6 +7,10 @@
+@@ -14,6 +14,9 @@
+ 2011-10-08  Mike Frysinger  <vapier@gentoo.org>
++      * configure.ac (--disable-werror): Handle it, controlling BUILD_WERROR
++      automake option.
++
+       * configure.ac: Fix use of AC_ARG_ENABLE to handle $enableval correctly.
+ 2011-10-02  Ulrich Drepper  <drepper@gmail.com>
+@@ -35,6 +38,10 @@
  
        * configure.ac (LOCALEDIR, DATADIRNAME): Removed.
  
  
        * configure.ac (LOCALEDIR, DATADIRNAME): Removed.
  
  2009-09-21  Ulrich Drepper  <drepper@redhat.com>
  
        * configure.ac: Update for more modern autoconf.
  2009-09-21  Ulrich Drepper  <drepper@redhat.com>
  
        * configure.ac: Update for more modern autoconf.
-@@ -15,6 +19,10 @@
+@@ -43,6 +50,10 @@
  
        * configure.ac (zip_LIBS): Check for liblzma too.
  
  
        * configure.ac (zip_LIBS): Check for liblzma too.
  
  2009-04-19  Roland McGrath  <roland@redhat.com>
  
        * configure.ac (eu_version): Round down here, not in version.h macros.
  2009-04-19  Roland McGrath  <roland@redhat.com>
  
        * configure.ac (eu_version): Round down here, not in version.h macros.
-@@ -26,6 +34,8 @@
+@@ -54,6 +65,8 @@
  
  2009-01-23  Roland McGrath  <roland@redhat.com>
  
  
  2009-01-23  Roland McGrath  <roland@redhat.com>
  
        * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3.
  
        * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of
        * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3.
  
        * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of
-@@ -106,6 +116,10 @@
+@@ -134,6 +147,10 @@
        * configure.ac: Add dummy automake conditional to get dependencies
        for non-generic linker right.  See src/Makefile.am.
  
        * configure.ac: Add dummy automake conditional to get dependencies
        for non-generic linker right.  See src/Makefile.am.
  
  2005-11-18  Roland McGrath  <roland@redhat.com>
  
        * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable.
  2005-11-18  Roland McGrath  <roland@redhat.com>
  
        * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable.
-@@ -153,6 +167,17 @@
+@@ -181,6 +198,17 @@
        * Makefile.am (all_SUBDIRS): Add libdwfl.
        * configure.ac: Write libdwfl/Makefile.
  
        * Makefile.am (all_SUBDIRS): Add libdwfl.
        * configure.ac: Write libdwfl/Makefile.
  
  2005-05-19  Roland McGrath  <roland@redhat.com>
  
        * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros.
  2005-05-19  Roland McGrath  <roland@redhat.com>
  
        * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros.
+--- elfutils/config/ChangeLog
++++ elfutils/config/ChangeLog
+@@ -6,6 +6,10 @@
+       * known-dwarf.awk: Use gawk.
++2011-10-08  Mike Frysinger  <vapier@gentoo.org>
++
++      * eu.am [BUILD_WERROR]: Conditionalize -Werror use on this.
++
+ 2010-07-02  Ulrich Drepper  <drepper@redhat.com>
+       * elfutils.spec.in: Add more BuildRequires.
 --- elfutils/config/eu.am
 +++ elfutils/config/eu.am
 --- elfutils/config/eu.am
 +++ elfutils/config/eu.am
-@@ -25,11 +25,14 @@
+@@ -1,6 +1,6 @@
+ ## Common automake fragments for elfutils subdirectory makefiles.
+ ##
+-## 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>.
  ##
  
  ## <http://www.openinventionnetwork.com>.
  ##
  
  DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"'
  INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
  AM_CFLAGS = -std=gnu99 -Wall -Wshadow \
  DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"'
  INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
  AM_CFLAGS = -std=gnu99 -Wall -Wshadow \
-           $(if $($(*F)_no_Werror),,-Werror) \
+-          $(if $($(*F)_no_Werror),,-Werror) \
 -          $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
 +          $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \
            $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \
            $($(*F)_CFLAGS)
  
 -          $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
 +          $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \
            $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \
            $($(*F)_CFLAGS)
  
++if BUILD_WERROR
++AM_CFLAGS += $(if $($(*F)_no_Werror),,-Werror)
++endif
++
+ if MUDFLAP
+ AM_CFLAGS += -fmudflap
+ libmudflap = -lmudflap
+--- elfutils/config/Makefile.in
++++ elfutils/config/Makefile.in
+@@ -76,6 +76,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -105,6 +106,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+--- elfutils/config.h.in
++++ elfutils/config.h.in
+@@ -3,6 +3,9 @@
+ /* Should ar and ranlib use -D behavior by default? */
+ #undef DEFAULT_AR_DETERMINISTIC
++/* Have __builtin_popcount. */
++#undef HAVE_BUILTIN_POPCOUNT
++
+ /* $libdir subdirectory containing libebl modules. */
+ #undef LIBEBL_SUBDIR
+@@ -61,4 +64,7 @@
+ /* Define for large files, on AIX-style hosts. */
+ #undef _LARGE_FILES
++/* Stubbed out if missing compiler support. */
++#undef __thread
++
+ #include <eu-config.h>
+--- elfutils/configure
++++ elfutils/configure
+@@ -598,6 +598,8 @@ ZLIB_TRUE
+ LIBEBL_SUBDIR
+ TESTS_RPATH_FALSE
+ TESTS_RPATH_TRUE
++BUILD_WERROR_FALSE
++BUILD_WERROR_TRUE
+ BUILD_STATIC_FALSE
+ BUILD_STATIC_TRUE
+ GCOV_FALSE
+@@ -612,6 +614,8 @@ NEVER_TRUE
+ base_cpu
+ NATIVE_LD_FALSE
+ NATIVE_LD_TRUE
++LD_AS_NEEDED
++WEXTRA
+ LEXLIB
+ LEX_OUTPUT_ROOT
+ LEX
+@@ -722,6 +726,7 @@ enable_mudflap
+ enable_debugpred
+ enable_gprof
+ enable_gcov
++enable_werror
+ enable_tests_rpath
+ enable_libebl_subdir
+ with_zlib
+@@ -1373,6 +1378,7 @@ Optional Features:
+                           prediction
+   --enable-gprof          build binaries with gprof support
+   --enable-gcov           build binaries with gcov support
++  --disable-werror        do not build with -Werror
+   --enable-tests-rpath    build $ORIGIN-using rpath into tests
+   --enable-libebl-subdir=DIR
+                           install libebl_CPU modules in $(libdir)/DIR
+@@ -3890,6 +3896,130 @@ if test "x$ac_cv_c99" != xyes; then :
+   as_fn_error $? "gcc with C99 support required" "$LINENO" 5
+ fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wextra option to $CC" >&5
++$as_echo_n "checking for -Wextra option to $CC... " >&6; }
++if ${ac_cv_cc_wextra+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  old_CFLAGS="$CFLAGS"
++CFLAGS="$CFLAGS -Wextra"
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++void foo (void) { }
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++  ac_cv_cc_wextra=yes
++else
++  ac_cv_cc_wextra=no
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++CFLAGS="$old_CFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_wextra" >&5
++$as_echo "$ac_cv_cc_wextra" >&6; }
++
++if test "x$ac_cv_cc_wextra" = xyes; then :
++  WEXTRA=-Wextra
++else
++  WEXTRA=-W
++fi
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fgnu89-inline option to $CC" >&5
++$as_echo_n "checking for -fgnu89-inline option to $CC... " >&6; }
++if ${ac_cv_cc_gnu89_inline+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  old_CFLAGS="$CFLAGS"
++CFLAGS="$CFLAGS -fgnu89-inline -Werror"
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++void foo (void)
++{
++  inline void bar (void) {}
++  bar ();
++}
++extern inline void baz (void) {}
++
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++  ac_cv_cc_gnu89_inline=yes
++else
++  ac_cv_cc_gnu89_inline=no
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++CFLAGS="$old_CFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_gnu89_inline" >&5
++$as_echo "$ac_cv_cc_gnu89_inline" >&6; }
++if test "x$ac_cv_cc_gnu89_inline" = xyes; then :
++  WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"
++fi
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --as-needed linker option" >&5
++$as_echo_n "checking for --as-needed linker option... " >&6; }
++if ${ac_cv_as_needed+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  cat > conftest.c <<EOF
++int main (void) { return 0; }
++EOF
++if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
++                          -fPIC -shared -o conftest.so conftest.c
++                          -Wl,--as-needed 1>&5'
++  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; }
++then
++  ac_cv_as_needed=yes
++else
++  ac_cv_as_needed=no
++fi
++rm -f conftest*
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_as_needed" >&5
++$as_echo "$ac_cv_as_needed" >&6; }
++if test "x$ac_cv_as_needed" = xyes; then :
++  LD_AS_NEEDED=-Wl,--as-needed
++else
++  LD_AS_NEEDED=
++fi
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_popcount" >&5
++$as_echo_n "checking for __builtin_popcount... " >&6; }
++if ${ac_cv_popcount+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++int
++main ()
++{
++exit (__builtin_popcount (127));
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_link "$LINENO"; then :
++  ac_cv_popcount=yes
++else
++  ac_cv_popcount=no
++fi
++rm -f core conftest.err conftest.$ac_objext \
++    conftest$ac_exeext conftest.$ac_ext
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_popcount" >&5
++$as_echo "$ac_cv_popcount" >&6; }
++if test "x$ac_cv_popcount" = xyes; then :
++
++$as_echo "#define HAVE_BUILTIN_POPCOUNT 1" >>confdefs.h
++
++fi
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __thread support" >&5
+ $as_echo_n "checking for __thread support... " >&6; }
+ if ${ac_cv_tls+:} false; then :
+@@ -3926,7 +4056,13 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5
+ $as_echo "$ac_cv_tls" >&6; }
+ if test "x$ac_cv_tls" != xyes; then :
+-  as_fn_error $? "__thread support required" "$LINENO" 5
++  if test "$use_locks" = yes; then :
++  as_fn_error $? "--enable-thread-safety requires __thread support" "$LINENO" 5
++else
++
++$as_echo "#define __thread /* empty: no multi-thread support */" >>confdefs.h
++
++fi
+ fi
+ # Check whether --enable-largefile was given.
+@@ -4275,6 +4411,22 @@ else
+ fi
++# Check whether --enable-werror was given.
++if test "${enable_werror+set}" = set; then :
++  enableval=$enable_werror; enable_werror=$enableval
++else
++  enable_werror=yes
++fi
++
++ if test "$enable_werror" = yes; then
++  BUILD_WERROR_TRUE=
++  BUILD_WERROR_FALSE='#'
++else
++  BUILD_WERROR_TRUE='#'
++  BUILD_WERROR_FALSE=
++fi
++
++
+ # Check whether --enable-tests-rpath was given.
+ if test "${enable_tests_rpath+set}" = set; then :
+   enableval=$enable_tests_rpath; tests_use_rpath=$enableval
+@@ -4995,7 +5147,7 @@ case "$eu_version" in
+ esac
+ # Round up to the next release API (x.y) version.
+-eu_version=$(( (eu_version + 999) / 1000 ))
++eu_version=`expr \( $eu_version + 999 \) / 1000`
+ cat >confcache <<\_ACEOF
+ # This file is a shell script that caches the results of configure
+@@ -5154,6 +5306,10 @@ if test -z "${BUILD_STATIC_TRUE}" && tes
+   as_fn_error $? "conditional \"BUILD_STATIC\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
++if test -z "${BUILD_WERROR_TRUE}" && test -z "${BUILD_WERROR_FALSE}"; then
++  as_fn_error $? "conditional \"BUILD_WERROR\" was never defined.
++Usually this means the macro was only invoked conditionally." "$LINENO" 5
++fi
+ if test -z "${TESTS_RPATH_TRUE}" && test -z "${TESTS_RPATH_FALSE}"; then
+   as_fn_error $? "conditional \"TESTS_RPATH\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
 --- elfutils/configure.ac
 +++ elfutils/configure.ac
 --- elfutils/configure.ac
 +++ elfutils/configure.ac
-@@ -73,6 +73,54 @@ CFLAGS="$old_CFLAGS"])
+@@ -81,6 +81,54 @@ CFLAGS="$old_CFLAGS"])
  AS_IF([test "x$ac_cv_c99" != xyes],
        AC_MSG_ERROR([gcc with C99 support required]))
  
  AS_IF([test "x$ac_cv_c99" != xyes],
        AC_MSG_ERROR([gcc with C99 support required]))
  
  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.
  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.
-@@ -88,7 +136,10 @@ static __thread int a; int foo (int b) {
+@@ -96,7 +144,10 @@ static __thread int a; int foo (int b) {
  CFLAGS="$save_CFLAGS"
  LDFLAGS="$save_LDFLAGS"])
  AS_IF([test "x$ac_cv_tls" != xyes],
  CFLAGS="$save_CFLAGS"
  LDFLAGS="$save_LDFLAGS"])
  AS_IF([test "x$ac_cv_tls" != xyes],
  
  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
  
  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
-@@ -251,7 +302,7 @@ AC_SUBST([eu_version])
- # 1.234<whatever> -> 1234<whatever>
- case "$PACKAGE_VERSION" in
--[[0-9]].*) eu_version="${PACKAGE_VERSION/./}" ;;
-+[[0-9]].*) eu_version=`echo "$PACKAGE_VERSION" | sed 's@\.@@'` ;;
- *)               AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;;
- esac
- case "$eu_version" in
-@@ -280,6 +331,6 @@ case "$eu_version" in
+@@ -184,6 +235,11 @@ AM_CONDITIONAL(GCOV, test "$use_gcov" =
+ AM_CONDITIONAL(BUILD_STATIC, [dnl
+ test "$use_mudflap" = yes -o "$use_gprof" = yes -o "$use_gcov" = yes])
++AC_ARG_ENABLE([werror],
++AS_HELP_STRING([--disable-werror],[do not build with -Werror]),
++             [enable_werror=$enableval], [enable_werror=yes])
++AM_CONDITIONAL(BUILD_WERROR, test "$enable_werror" = yes)
++
+ 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
  esac
  
  # Round up to the next release API (x.y) version.
  esac
  
  # Round up to the next release API (x.y) version.
--[eu_version=$[($eu_version + 999) / 1000]]
+-eu_version=$(( (eu_version + 999) / 1000 ))
 +eu_version=`expr \( $eu_version + 999 \) / 1000`
  
  AC_OUTPUT
 --- elfutils/lib/ChangeLog
 +++ elfutils/lib/ChangeLog
 +eu_version=`expr \( $eu_version + 999 \) / 1000`
  
  AC_OUTPUT
 --- elfutils/lib/ChangeLog
 +++ elfutils/lib/ChangeLog
-@@ -14,6 +14,9 @@
+@@ -35,6 +35,9 @@
  
  2009-01-23  Roland McGrath  <roland@redhat.com>
  
  
  2009-01-23  Roland McGrath  <roland@redhat.com>
  
        * eu-config.h: Add multiple inclusion protection.
  
  2009-01-17  Ulrich Drepper  <drepper@redhat.com>
        * eu-config.h: Add multiple inclusion protection.
  
  2009-01-17  Ulrich Drepper  <drepper@redhat.com>
-@@ -70,6 +73,11 @@
+@@ -91,6 +94,11 @@
        * Makefile.am (libeu_a_SOURCES): Add it.
        * system.h: Declare crc32_file.
  
        * Makefile.am (libeu_a_SOURCES): Add it.
        * system.h: Declare crc32_file.
  
  
  #ifdef SHARED
  # define OLD_VERSION(name, version) \
  
  #ifdef SHARED
  # define OLD_VERSION(name, version) \
+--- elfutils/lib/Makefile.in
++++ elfutils/lib/Makefile.in
+@@ -37,7 +37,8 @@ build_triplet = @build@
+ host_triplet = @host@
+ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in $(top_srcdir)/config/eu.am ChangeLog
+-@MUDFLAP_TRUE@am__append_1 = -fmudflap
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@MUDFLAP_TRUE@am__append_2 = -fmudflap
+ subdir = lib
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+@@ -100,6 +101,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -129,6 +131,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -190,10 +193,9 @@ zip_LIBS = @zip_LIBS@
+ INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \
+       -I$(srcdir)/../libelf
+ AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+-      $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
+       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
+-      $(am__append_1) -fpic
++      $(am__append_1) $(am__append_2) -fpic
+ @MUDFLAP_FALSE@libmudflap = 
+ @MUDFLAP_TRUE@libmudflap = -lmudflap
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\
 --- elfutils/libasm/ChangeLog
 +++ elfutils/libasm/ChangeLog
 --- elfutils/libasm/ChangeLog
 +++ elfutils/libasm/ChangeLog
-@@ -67,6 +67,11 @@
+@@ -71,6 +71,11 @@
        * asm_error.c: Add new error ASM_E_IOERROR.
        * libasmP.h: Add ASM_E_IOERROR definition.
  
        * asm_error.c: Add new error ASM_E_IOERROR.
        * libasmP.h: Add ASM_E_IOERROR definition.
  
  2005-02-15  Ulrich Drepper  <drepper@redhat.com>
  
        * Makefile.am (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
  2005-02-15  Ulrich Drepper  <drepper@redhat.com>
  
        * Makefile.am (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
+--- elfutils/libasm/Makefile.in
++++ elfutils/libasm/Makefile.in
+@@ -39,10 +39,11 @@ host_triplet = @host@
+ DIST_COMMON = $(noinst_HEADERS) $(pkginclude_HEADERS) \
+       $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(top_srcdir)/config/eu.am ChangeLog
+-@MUDFLAP_TRUE@am__append_1 = -fmudflap
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@MUDFLAP_TRUE@am__append_2 = -fmudflap
+ @MUDFLAP_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1)
+ @MUDFLAP_TRUE@am_libasm_pic_a_OBJECTS =
+-@MUDFLAP_FALSE@@USE_LOCKS_TRUE@am__append_2 = -lpthread
++@MUDFLAP_FALSE@@USE_LOCKS_TRUE@am__append_3 = -lpthread
+ subdir = libasm
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+@@ -147,6 +148,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -176,6 +178,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -238,10 +241,9 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
+       -I$(top_srcdir)/libelf -I$(top_srcdir)/libebl \
+       -I$(top_srcdir)/libdw
+ AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+-      $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
+       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
+-      $(am__append_1)
++      $(am__append_1) $(am__append_2)
+ @MUDFLAP_FALSE@libmudflap = 
+ @MUDFLAP_TRUE@libmudflap = -lmudflap
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\
+@@ -270,7 +272,7 @@ libasm_a_SOURCES = asm_begin.c asm_abort
+ @MUDFLAP_FALSE@libasm_pic_a_SOURCES = 
+ @MUDFLAP_FALSE@am_libasm_pic_a_OBJECTS = $(libasm_a_SOURCES:.c=.os)
+-@MUDFLAP_FALSE@libasm_so_LDLIBS = $(am__append_2)
++@MUDFLAP_FALSE@libasm_so_LDLIBS = $(am__append_3)
+ @MUDFLAP_FALSE@libasm_so_SOURCES = 
+ noinst_HEADERS = libasmP.h symbolhash.h
+ EXTRA_DIST = libasm.map
 --- elfutils/libcpu/ChangeLog
 +++ elfutils/libcpu/ChangeLog
 --- elfutils/libcpu/ChangeLog
 +++ elfutils/libcpu/ChangeLog
-@@ -15,6 +15,9 @@
+@@ -29,6 +29,9 @@
  
  2009-01-23  Roland McGrath  <roland@redhat.com>
  
  
  2009-01-23  Roland McGrath  <roland@redhat.com>
  
        * Makefile.am (i386_parse_CFLAGS): Use quotes around command
        substitution that can produce leading whitespace.
  
        * Makefile.am (i386_parse_CFLAGS): Use quotes around command
        substitution that can produce leading whitespace.
  
-@@ -344,6 +347,11 @@
+@@ -358,6 +361,11 @@
        * defs/i386.doc: New file.
        * defs/x86_64: New file.
  
        * defs/i386.doc: New file.
        * defs/x86_64: New file.
  
        * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
 --- elfutils/libcpu/i386_disasm.c
 +++ elfutils/libcpu/i386_disasm.c
        * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
 --- elfutils/libcpu/i386_disasm.c
 +++ elfutils/libcpu/i386_disasm.c
-@@ -791,6 +791,7 @@ i386_disasm (const uint8_t **startp, con
+@@ -819,6 +819,7 @@ i386_disasm (const uint8_t **startp, con
  
                        default:
                          assert (! "INVALID not handled");
  
                        default:
                          assert (! "INVALID not handled");
                        }
                    }
                  else
                        }
                    }
                  else
+--- elfutils/libcpu/Makefile.in
++++ elfutils/libcpu/Makefile.in
+@@ -39,7 +39,8 @@ host_triplet = @host@
+ DIST_COMMON = $(am__noinst_HEADERS_DIST) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in $(top_srcdir)/config/eu.am ChangeLog \
+       i386_lex.c i386_parse.c
+-@MUDFLAP_TRUE@am__append_1 = -fmudflap
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@MUDFLAP_TRUE@am__append_2 = -fmudflap
+ @MAINTAINER_MODE_TRUE@noinst_PROGRAMS = i386_gendis$(EXEEXT)
+ subdir = libcpu
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+@@ -117,6 +118,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = lex.$(<F:lex.l=)
+@@ -146,6 +148,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -208,10 +211,9 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
+       -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
+       -I$(srcdir)/../libdw -I$(srcdir)/../libasm
+ AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+-      $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
+       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
+-      $(am__append_1) -fpic -fdollars-in-identifiers
++      $(am__append_1) $(am__append_2) -fpic -fdollars-in-identifiers
+ @MUDFLAP_FALSE@libmudflap = 
+ @MUDFLAP_TRUE@libmudflap = -lmudflap
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\
 --- elfutils/libdw/ChangeLog
 +++ elfutils/libdw/ChangeLog
 --- elfutils/libdw/ChangeLog
 +++ elfutils/libdw/ChangeLog
-@@ -308,6 +308,10 @@
+@@ -6,6 +6,10 @@
+       * Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk.
++2011-07-20  Mark Wielaard  <mjw@redhat.com>
++
++      * dwarf_begin_elf.c: Add fallback for be64toh if not defined.
++
+ 2011-07-14  Mark Wielaard  <mjw@redhat.com>
+       * libdw.h (dwarf_offdie): Fix documentation to mention .debug_info.
+@@ -365,6 +369,10 @@
  
        * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
  
  
        * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
  
  2009-08-10  Roland McGrath  <roland@redhat.com>
  
        * dwarf_getscopevar.c: Use dwarf_diename.
  2009-08-10  Roland McGrath  <roland@redhat.com>
  
        * dwarf_getscopevar.c: Use dwarf_diename.
-@@ -1076,6 +1080,11 @@
+@@ -1133,6 +1141,11 @@
  
  2005-05-31  Roland McGrath  <roland@redhat.com>
  
  
  2005-05-31  Roland McGrath  <roland@redhat.com>
  
        * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
        formref offset.
  
        * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
        formref offset.
  
+--- elfutils/libdw/dwarf_begin_elf.c
++++ elfutils/libdw/dwarf_begin_elf.c
+@@ -64,6 +64,14 @@
+ #if USE_ZLIB
+ # include <endian.h>
+ # define crc32                loser_crc32
++# ifndef be64toh
++#  include <byteswap.h>
++#  if __BYTE_ORDER == __LITTLE_ENDIAN
++#   define be64toh(x) bswap_64 (x)
++#  else
++#   define be64toh(x) (x)
++#  endif
++# endif
+ # include <zlib.h>
+ # undef crc32
+ #endif
 --- elfutils/libdw/libdw.h
 +++ elfutils/libdw/libdw.h
 @@ -852,7 +852,7 @@ extern Dwarf_OOM dwarf_new_oom_handler (
 --- elfutils/libdw/libdw.h
 +++ elfutils/libdw/libdw.h
 @@ -852,7 +852,7 @@ extern Dwarf_OOM dwarf_new_oom_handler (
  /* Return attribute code of given attribute.  */
  __libdw_extern_inline unsigned int
  dwarf_whatattr (Dwarf_Attribute *attr)
  /* Return attribute code of given attribute.  */
  __libdw_extern_inline unsigned int
  dwarf_whatattr (Dwarf_Attribute *attr)
+--- elfutils/libdw/Makefile.in
++++ elfutils/libdw/Makefile.in
+@@ -39,8 +39,9 @@ host_triplet = @host@
+ DIST_COMMON = $(include_HEADERS) $(noinst_HEADERS) \
+       $(pkginclude_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in $(top_srcdir)/config/eu.am ChangeLog
+-@MUDFLAP_TRUE@am__append_1 = -fmudflap
+-@BUILD_STATIC_TRUE@am__append_2 = -fpic
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@MUDFLAP_TRUE@am__append_2 = -fmudflap
++@BUILD_STATIC_TRUE@am__append_3 = -fpic
+ @MUDFLAP_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1)
+ @MUDFLAP_TRUE@am_libdw_pic_a_OBJECTS =
+ subdir = libdw
+@@ -192,6 +193,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -221,6 +223,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -282,10 +285,9 @@ zip_LIBS = @zip_LIBS@
+ INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \
+       -I$(srcdir)/../libelf
+ AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+-      $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
+       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
+-      $(am__append_1) $(am__append_2)
++      $(am__append_1) $(am__append_2) $(am__append_3)
+ @MUDFLAP_FALSE@libmudflap = 
+ @MUDFLAP_TRUE@libmudflap = -lmudflap
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\
 --- elfutils/libdwfl/ChangeLog
 +++ elfutils/libdwfl/ChangeLog
 --- elfutils/libdwfl/ChangeLog
 +++ elfutils/libdwfl/ChangeLog
-@@ -1350,6 +1350,11 @@
+@@ -1409,6 +1409,11 @@
  
  2005-07-21  Roland McGrath  <roland@redhat.com>
  
  
  2005-07-21  Roland McGrath  <roland@redhat.com>
  
        * Makefile.am (noinst_HEADERS): Add loc2c.c.
  
        * test2.c (main): Check sscanf result to quiet warning.
        * Makefile.am (noinst_HEADERS): Add loc2c.c.
  
        * test2.c (main): Check sscanf result to quiet warning.
+--- elfutils/libdwfl/Makefile.in
++++ elfutils/libdwfl/Makefile.in
+@@ -38,11 +38,12 @@ host_triplet = @host@
+ DIST_COMMON = $(noinst_HEADERS) $(pkginclude_HEADERS) \
+       $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(top_srcdir)/config/eu.am ChangeLog
+-@MUDFLAP_TRUE@am__append_1 = -fmudflap
+-@MUDFLAP_FALSE@am__append_2 = libdwfl_pic.a
+-@ZLIB_TRUE@am__append_3 = gzip.c
+-@BZLIB_TRUE@am__append_4 = bzip2.c
+-@LZMA_TRUE@am__append_5 = lzma.c
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@MUDFLAP_TRUE@am__append_2 = -fmudflap
++@MUDFLAP_FALSE@am__append_3 = libdwfl_pic.a
++@ZLIB_TRUE@am__append_4 = gzip.c
++@BZLIB_TRUE@am__append_5 = bzip2.c
++@LZMA_TRUE@am__append_6 = lzma.c
+ @MUDFLAP_TRUE@am_libdwfl_pic_a_OBJECTS =
+ subdir = libdwfl
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+@@ -182,6 +183,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -211,6 +213,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -273,10 +276,9 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
+       -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
+       -I$(srcdir)/../libdw
+ AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+-      $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
+       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
+-      $(am__append_1)
++      $(am__append_1) $(am__append_2)
+ @MUDFLAP_FALSE@libmudflap = 
+ @MUDFLAP_TRUE@libmudflap = -lmudflap
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\
+@@ -284,7 +286,7 @@ COMPILE.os = $(filter-out -fprofile-arcs
+ CLEANFILES = *.gcno *.gcda $(am_libdwfl_pic_a_OBJECTS)
+ textrel_check = if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
+-noinst_LIBRARIES = libdwfl.a $(am__append_2)
++noinst_LIBRARIES = libdwfl.a $(am__append_3)
+ pkginclude_HEADERS = libdwfl.h
+ libdwfl_a_SOURCES = dwfl_begin.c dwfl_end.c dwfl_error.c \
+       dwfl_version.c dwfl_module.c dwfl_report_elf.c relocate.c \
+@@ -305,8 +307,8 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_en
+       dwfl_module_getsym.c dwfl_module_addrname.c \
+       dwfl_module_addrsym.c dwfl_module_return_value_location.c \
+       dwfl_module_register_names.c dwfl_segment_report_module.c \
+-      link_map.c core-file.c open.c image-header.c $(am__append_3) \
+-      $(am__append_4) $(am__append_5)
++      link_map.c core-file.c open.c image-header.c $(am__append_4) \
++      $(am__append_5) $(am__append_6)
+ @MUDFLAP_FALSE@libdwfl = $(libdw)
+ @MUDFLAP_TRUE@libdwfl = libdwfl.a $(libdw) $(libebl) $(libelf) $(libeu)
+ @MUDFLAP_FALSE@libdw = ../libdw/libdw.so
 --- elfutils/libebl/ChangeLog
 +++ elfutils/libebl/ChangeLog
 --- elfutils/libebl/ChangeLog
 +++ elfutils/libebl/ChangeLog
-@@ -628,6 +628,11 @@
+@@ -650,6 +650,11 @@
        * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency
        tracking works right.
  
        * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency
        tracking works right.
  
  2005-05-21  Ulrich Drepper  <drepper@redhat.com>
  
        * libebl_x86_64.map: Add x86_64_core_note.
  2005-05-21  Ulrich Drepper  <drepper@redhat.com>
  
        * libebl_x86_64.map: Add x86_64_core_note.
+--- elfutils/libebl/Makefile.in
++++ elfutils/libebl/Makefile.in
+@@ -38,7 +38,8 @@ host_triplet = @host@
+ DIST_COMMON = $(noinst_HEADERS) $(pkginclude_HEADERS) \
+       $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(top_srcdir)/config/eu.am ChangeLog
+-@MUDFLAP_TRUE@am__append_1 = -fmudflap
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@MUDFLAP_TRUE@am__append_2 = -fmudflap
+ subdir = libebl
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+@@ -144,6 +145,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -173,6 +175,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -235,10 +238,9 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
+       -I$(srcdir)/../libelf -I$(srcdir)/../libdw \
+       -I$(srcdir)/../libasm
+ AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+-      $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
+       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
+-      $(am__append_1) -fpic
++      $(am__append_1) $(am__append_2) -fpic
+ @MUDFLAP_FALSE@libmudflap = 
+ @MUDFLAP_TRUE@libmudflap = -lmudflap
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\
 --- elfutils/libelf/ChangeLog
 +++ elfutils/libelf/ChangeLog
 --- elfutils/libelf/ChangeLog
 +++ elfutils/libelf/ChangeLog
-@@ -671,6 +671,11 @@
+@@ -1,3 +1,8 @@
++2011-03-10  Roland McGrath  <roland@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@redhat.com>
+       * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Fix off64_t overflow
+@@ -671,6 +676,11 @@
  
        * elf.h: Update from glibc.
  
  
        * elf.h: Update from glibc.
  
              : (sizeof (Var) == 4                                            \
                 ? bswap_32 (Var)                                             \
                 : bswap_64 (Var))))
              : (sizeof (Var) == 4                                            \
                 ? bswap_32 (Var)                                             \
                 : bswap_64 (Var))))
+--- elfutils/libelf/gnuhash_xlate.h
++++ elfutils/libelf/gnuhash_xlate.h
+@@ -1,5 +1,5 @@
+ /* 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.
+    Written by Ulrich Drepper <drepper@redhat.com>, 2006.
+@@ -89,7 +89,9 @@ elf_cvt_gnuhash (void *dest, const void
+   dest32 = (Elf32_Word *) &dest64[bitmask_words];
+   while (len >= 4)
+     {
+-      *dest32++ = bswap_32 (*src32++);
++      *dest32 = bswap_32 (*src32);
++      ++dest32;
++      ++src32;
+       len -= 4;
+     }
+ }
+--- elfutils/libelf/Makefile.in
++++ elfutils/libelf/Makefile.in
+@@ -39,11 +39,12 @@ host_triplet = @host@
+ DIST_COMMON = $(include_HEADERS) $(noinst_HEADERS) \
+       $(pkginclude_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in $(top_srcdir)/config/eu.am ChangeLog
+-@MUDFLAP_TRUE@am__append_1 = -fmudflap
+-@BUILD_STATIC_TRUE@am__append_2 = -fpic
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@MUDFLAP_TRUE@am__append_2 = -fmudflap
++@BUILD_STATIC_TRUE@am__append_3 = -fpic
+ @MUDFLAP_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1)
+ @MUDFLAP_TRUE@am_libelf_pic_a_OBJECTS =
+-@MUDFLAP_FALSE@@USE_LOCKS_TRUE@am__append_3 = -lpthread
++@MUDFLAP_FALSE@@USE_LOCKS_TRUE@am__append_4 = -lpthread
+ subdir = libelf
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+@@ -189,6 +190,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -218,6 +220,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -278,10 +281,9 @@ top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
+ INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
+ AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+-      $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
+       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
+-      $(am__append_1) $(am__append_2)
++      $(am__append_1) $(am__append_2) $(am__append_3)
+ @MUDFLAP_FALSE@libmudflap = 
+ @MUDFLAP_TRUE@libmudflap = -lmudflap
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\
+@@ -346,7 +348,7 @@ libelf_a_SOURCES = elf_version.c elf_has
+ @MUDFLAP_FALSE@libelf_pic_a_SOURCES = 
+ @MUDFLAP_FALSE@am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os)
+-@MUDFLAP_FALSE@libelf_so_LDLIBS = $(am__append_3)
++@MUDFLAP_FALSE@libelf_so_LDLIBS = $(am__append_4)
+ @MUDFLAP_FALSE@libelf_so_SOURCES = 
+ noinst_HEADERS = elf.h abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \
+                version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h
+--- elfutils/m4/Makefile.in
++++ elfutils/m4/Makefile.in
+@@ -75,6 +75,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -104,6 +105,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+--- elfutils/Makefile.in
++++ elfutils/Makefile.in
+@@ -155,6 +155,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -184,6 +185,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 --- elfutils/src/addr2line.c
 +++ elfutils/src/addr2line.c
 @@ -455,10 +455,10 @@ handle_address (const char *string, Dwfl
 --- elfutils/src/addr2line.c
 +++ elfutils/src/addr2line.c
 @@ -455,10 +455,10 @@ handle_address (const char *string, Dwfl
          break;
 --- elfutils/src/ChangeLog
 +++ elfutils/src/ChangeLog
          break;
 --- elfutils/src/ChangeLog
 +++ elfutils/src/ChangeLog
-@@ -236,8 +236,16 @@
+@@ -490,8 +490,16 @@
        * readelf.c (attr_callback): Use print_block only when we don't use
        print_ops.
  
        * readelf.c (attr_callback): Use print_block only when we don't use
        print_ops.
  
        * ar.c (do_oper_extract): Use pathconf instead of statfs.
  
  2009-08-01  Ulrich Drepper  <drepper@redhat.com>
        * ar.c (do_oper_extract): Use pathconf instead of statfs.
  
  2009-08-01  Ulrich Drepper  <drepper@redhat.com>
-@@ -401,6 +409,8 @@
+@@ -655,6 +663,8 @@
        * readelf.c (print_debug_frame_section): Use t instead of j formats
        for ptrdiff_t OFFSET.
  
        * readelf.c (print_debug_frame_section): Use t instead of j formats
        for ptrdiff_t OFFSET.
  
  2009-01-21  Ulrich Drepper  <drepper@redhat.com>
  
        * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
  2009-01-21  Ulrich Drepper  <drepper@redhat.com>
  
        * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
-@@ -584,6 +594,11 @@
+@@ -838,6 +848,11 @@
        that matches its PT_LOAD's p_flags &~ PF_W.  On sparc, PF_X really
        is valid in RELRO.
  
        that matches its PT_LOAD's p_flags &~ PF_W.  On sparc, PF_X really
        is valid in RELRO.
  
  2008-02-29  Roland McGrath  <roland@redhat.com>
  
        * readelf.c (print_attributes): Add a cast.
  2008-02-29  Roland McGrath  <roland@redhat.com>
  
        * readelf.c (print_attributes): Add a cast.
-@@ -835,6 +850,8 @@
+@@ -1089,6 +1104,8 @@
  
        * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
  
  
        * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
  
  2007-10-15  Roland McGrath  <roland@redhat.com>
  
        * make-debug-archive.in: New file.
  2007-10-15  Roland McGrath  <roland@redhat.com>
  
        * make-debug-archive.in: New file.
-@@ -1274,6 +1291,10 @@
+@@ -1528,6 +1545,10 @@
        * elflint.c (valid_e_machine): Add EM_ALPHA.
        Reported by Christian Aichinger <Greek0@gmx.net>.
  
        * elflint.c (valid_e_machine): Add EM_ALPHA.
        Reported by Christian Aichinger <Greek0@gmx.net>.
  
  2006-08-08  Ulrich Drepper  <drepper@redhat.com>
  
        * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
  2006-08-08  Ulrich Drepper  <drepper@redhat.com>
  
        * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
-@@ -1350,6 +1371,10 @@
+@@ -1604,6 +1625,10 @@
        * Makefile.am: Add hacks to create dependency files for non-generic
        linker.
  
        * Makefile.am: Add hacks to create dependency files for non-generic
        linker.
  
  2006-06-12  Ulrich Drepper  <drepper@redhat.com>
  
        * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
  2006-06-12  Ulrich Drepper  <drepper@redhat.com>
  
        * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
-@@ -1698,6 +1723,11 @@
+@@ -1952,6 +1977,11 @@
        * readelf.c (print_debug_loc_section): Fix indentation for larger
        address size.
  
        * readelf.c (print_debug_loc_section): Fix indentation for larger
        address size.
  
  #endif        /* ld.h */
 --- elfutils/src/Makefile.am
 +++ elfutils/src/Makefile.am
  #endif        /* ld.h */
 --- elfutils/src/Makefile.am
 +++ elfutils/src/Makefile.am
-@@ -99,6 +99,9 @@ addr2line_no_Wformat = yes
+@@ -103,6 +103,9 @@ addr2line_no_Wformat = yes
  # XXX While the file is not finished, don't warn about this
  ldgeneric_no_Wunused = yes
  
  # XXX While the file is not finished, don't warn about this
  ldgeneric_no_Wunused = yes
  
 +readelf_no_Werror = yes
 +
  readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
 +readelf_no_Werror = yes
 +
  readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
- nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
+ nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl \
+          $(demanglelib)
+--- elfutils/src/Makefile.in
++++ elfutils/src/Makefile.in
+@@ -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
+-@MUDFLAP_TRUE@am__append_1 = -fmudflap
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@MUDFLAP_TRUE@am__append_2 = -fmudflap
+ bin_PROGRAMS = readelf$(EXEEXT) nm$(EXEEXT) size$(EXEEXT) \
+       strip$(EXEEXT) ld$(EXEEXT) elflint$(EXEEXT) \
+       findtextrel$(EXEEXT) addr2line$(EXEEXT) elfcmp$(EXEEXT) \
+@@ -49,9 +50,9 @@ bin_PROGRAMS = readelf$(EXEEXT) nm$(EXEE
+ @NATIVE_LD_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1)
+ # We never build this library but we need to get the dependency files
+ # of all the linker backends that might be used in a non-generic linker.
+-@NEVER_TRUE@am__append_2 = libdummy.a
++@NEVER_TRUE@am__append_3 = libdummy.a
+ # -ldl is always needed for libebl.
+-@NATIVE_LD_TRUE@am__append_3 = libld_elf.a
++@NATIVE_LD_TRUE@am__append_4 = libld_elf.a
+ @NATIVE_LD_TRUE@am_libld_elf_i386_pic_a_OBJECTS =
+ subdir = src
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+@@ -115,7 +116,7 @@ am_ld_OBJECTS = ld.$(OBJEXT) ldgeneric.$
+       versionhash.$(OBJEXT)
+ ld_OBJECTS = $(am_ld_OBJECTS)
+ ld_DEPENDENCIES = $(libebl) $(libelf) $(libeu) $(am__DEPENDENCIES_1) \
+-      $(am__append_3)
++      $(am__append_4)
+ ld_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ld_LDFLAGS) $(LDFLAGS) -o \
+       $@
+ am_libld_elf_i386_so_OBJECTS =
+@@ -229,6 +230,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -258,6 +260,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -321,10 +324,9 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
+       -I$(srcdir)/../libdw -I$(srcdir)/../libdwfl \
+       -I$(srcdir)/../libasm
+ AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+-      $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
+       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
+-      $(am__append_1)
++      $(am__append_1) $(am__append_2)
+ @MUDFLAP_FALSE@libmudflap = 
+ @MUDFLAP_TRUE@libmudflap = -lmudflap
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\
+@@ -340,8 +342,8 @@ AM_LFLAGS = -Pld -olex.yy.c
+ native_ld = @native_ld@
+ ld_dsos = libld_elf_i386_pic.a
+ @NATIVE_LD_FALSE@noinst_LIBRARIES = libld_elf.a libar.a $(ld_dsos) \
+-@NATIVE_LD_FALSE@     $(am__append_2)
+-@NATIVE_LD_TRUE@noinst_LIBRARIES = libld_elf.a libar.a $(am__append_2)
++@NATIVE_LD_FALSE@     $(am__append_3)
++@NATIVE_LD_TRUE@noinst_LIBRARIES = libld_elf.a libar.a $(am__append_3)
+ @NATIVE_LD_TRUE@native_ld_cflags = -DBASE_ELF_NAME=elf_$(base_cpu)
+ @NEVER_TRUE@libdummy_a_SOURCES = i386_ld.c
+ ld_SOURCES = ld.c ldgeneric.c ldlex.l ldscript.y symbolhash.c sectionhash.c \
+@@ -370,6 +372,9 @@ strings_no_Wformat = yes
+ addr2line_no_Wformat = yes
+ # XXX While the file is not finished, don't warn about this
+ ldgeneric_no_Wunused = yes
++
++# Buggy old compilers.
++readelf_no_Werror = yes
+ readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
+ nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl \
+          $(demanglelib)
+@@ -377,7 +382,7 @@ nm_LDADD = $(libdw) $(libebl) $(libelf)
  size_LDADD = $(libelf) $(libeu) $(libmudflap)
  size_LDADD = $(libelf) $(libeu) $(libmudflap)
+ strip_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
+ ld_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl \
+-      $(am__append_3)
++      $(am__append_4)
+ ld_LDFLAGS = -rdynamic
+ elflint_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
+ findtextrel_LDADD = $(libdw) $(libelf) $(libmudflap)
 --- elfutils/src/readelf.c
 +++ elfutils/src/readelf.c
 --- elfutils/src/readelf.c
 +++ elfutils/src/readelf.c
-@@ -4274,10 +4274,11 @@ struct listptr
+@@ -4434,10 +4434,11 @@ struct listptr
  #define listptr_offset_size(p)        ((p)->dwarf64 ? 8 : 4)
  #define listptr_address_size(p)       ((p)->addr64 ? 8 : 4)
  
  #define listptr_offset_size(p)        ((p)->dwarf64 ? 8 : 4)
  #define listptr_address_size(p)       ((p)->addr64 ? 8 : 4)
  
    struct listptr *p1 = (void *) a;
    struct listptr *p2 = (void *) b;
  
    struct listptr *p1 = (void *) a;
    struct listptr *p2 = (void *) b;
  
-@@ -4357,8 +4358,11 @@ static void
+@@ -4518,8 +4519,11 @@ static void
  sort_listptr (struct listptr_table *table, const char *name)
  {
    if (table->n > 0)
  sort_listptr (struct listptr_table *table, const char *name)
  {
    if (table->n > 0)
  }
  
  static bool
  }
  
  static bool
-@@ -8098,7 +8102,7 @@ dump_archive_index (Elf *elf, const char
+@@ -8478,7 +8482,7 @@ dump_archive_index (Elf *elf, const char
          if (unlikely (elf_rand (elf, as_off) == 0)
              || unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf))
                           == NULL))
          if (unlikely (elf_rand (elf, as_off) == 0)
              || unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf))
                           == NULL))
 +# define FUTIMES(fd, fname, tvp) utimes (fname, tvp)
 +#endif
 +
 +# define FUTIMES(fd, fname, tvp) utimes (fname, tvp)
 +#endif
 +
+ typedef uint8_t GElf_Byte;
  
  /* Name and version of program.  */
  
  /* Name and version of program.  */
- static void print_version (FILE *stream, struct argp_state *state);
-@@ -311,8 +317,18 @@ process_file (const char *fname)
+@@ -326,8 +332,18 @@ process_file (const char *fname)
  
        /* If we have to preserve the timestamp, we need it in the
         format utimes() understands.  */
  
        /* If we have to preserve the timestamp, we need it in the
         format utimes() understands.  */
      }
  
    /* Open the file.  */
      }
  
    /* Open the file.  */
-@@ -1809,7 +1825,7 @@ while computing checksum for debug infor
+@@ -2063,7 +2079,7 @@ while computing checksum for debug infor
    /* If requested, preserve the timestamp.  */
    if (tvp != NULL)
      {
    /* If requested, preserve the timestamp.  */
    if (tvp != NULL)
      {
        {
          error (0, errno, gettext ("\
  cannot set access and modification date of '%s'"),
        {
          error (0, errno, gettext ("\
  cannot set access and modification date of '%s'"),
-@@ -1866,7 +1882,7 @@ handle_ar (int fd, Elf *elf, const char 
+@@ -2120,7 +2136,7 @@ handle_ar (int fd, Elf *elf, const char
  
    if (tvp != NULL)
      {
  
    if (tvp != NULL)
      {
  cannot set access and modification date of '%s'"), fname);
 --- elfutils/tests/ChangeLog
 +++ elfutils/tests/ChangeLog
  cannot set access and modification date of '%s'"), fname);
 --- elfutils/tests/ChangeLog
 +++ elfutils/tests/ChangeLog
-@@ -197,6 +197,8 @@
+@@ -279,6 +279,8 @@
  
  2008-01-21  Roland McGrath  <roland@redhat.com>
  
  
  2008-01-21  Roland McGrath  <roland@redhat.com>
  
        * testfile45.S.bz2: Add tests for cltq, cqto.
        * testfile45.expect.bz2: Adjust.
  
        * testfile45.S.bz2: Add tests for cltq, cqto.
        * testfile45.expect.bz2: Adjust.
  
-@@ -905,6 +907,11 @@
+@@ -987,6 +989,11 @@
        * Makefile.am (TESTS): Add run-elflint-test.sh.
        (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2.
  
        * Makefile.am (TESTS): Add run-elflint-test.sh.
        (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2.
  
        {
        default:
        case 0:
        {
        default:
        case 0:
+--- elfutils/tests/Makefile.in
++++ elfutils/tests/Makefile.in
+@@ -36,14 +36,15 @@ build_triplet = @build@
+ host_triplet = @host@
+ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(top_srcdir)/config/eu.am ChangeLog
+-@MUDFLAP_TRUE@am__append_1 = -fmudflap
+-@STANDALONE_FALSE@am__append_2 = -I$(top_srcdir)/libasm -I$(top_srcdir)/libdw \
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@MUDFLAP_TRUE@am__append_2 = -fmudflap
++@STANDALONE_FALSE@am__append_3 = -I$(top_srcdir)/libasm -I$(top_srcdir)/libdw \
+ @STANDALONE_FALSE@        -I$(top_srcdir)/libdwfl \
+ @STANDALONE_FALSE@        -I$(top_srcdir)/libebl -I$(top_srcdir)/libelf \
+ @STANDALONE_FALSE@        -I$(top_srcdir)/lib -I..
+-@STANDALONE_FALSE@am__append_3 = -Wl,-rpath-link,../libasm:../libdw:../libelf
+-@TESTS_RPATH_TRUE@am__append_4 = -Wl,-rpath,$(BUILD_RPATH)
++@STANDALONE_FALSE@am__append_4 = -Wl,-rpath-link,../libasm:../libdw:../libelf
++@TESTS_RPATH_TRUE@am__append_5 = -Wl,-rpath,$(BUILD_RPATH)
+ 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
+-@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)
++@STANDALONE_FALSE@am__append_7 = msg_tst md5-sha1-test
+ @HAVE_LIBASM_TRUE@am__append_8 = $(asm_TESTS)
++@HAVE_LIBASM_TRUE@am__append_9 = $(asm_TESTS)
+ 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@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -420,6 +422,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -478,12 +481,11 @@ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
+-INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_2)
++INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_3)
+ AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+-      $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
+       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
+-      $(am__append_1)
++      $(am__append_1) $(am__append_2)
+ @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
+ 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
+-AM_LDFLAGS = $(am__append_3) $(am__append_4)
++AM_LDFLAGS = $(am__append_4) $(am__append_5)
+ @TESTS_RPATH_FALSE@tests_rpath = no
+ @TESTS_RPATH_TRUE@tests_rpath = yes
+ asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \
index 19764cbbe8e4434a0980ce8093ecaf84dd185f32..d4ecbf010c86eb6289e3efe6d2c574dd33f96ed6 100644 (file)
@@ -1,3 +1,47 @@
+--- elfutils/libdwfl/ChangeLog
++++ elfutils/libdwfl/ChangeLog
+@@ -41,6 +41,11 @@
+       * dwfl_module_getdwarf.c (open_elf): Clear errno before CBFAIL.
+       Reported by Kurt Roeckx <kurt@roeckx.be>.
++2011-03-23  Petr Machata  <pmachata@redhat.com>
++
++      * relocate.c (relocate_section): Use gelf_fsize instead of relying
++      on shdr->sh_entsize.
++
+ 2011-02-11  Roland McGrath  <roland@redhat.com>
+       * linux-kernel-modules.c (try_kernel_name): Try .gz, .bz2, .xz
+--- elfutils/libdwfl/relocate.c
++++ elfutils/libdwfl/relocate.c
+@@ -1,5 +1,5 @@
+ /* 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.
+    Red Hat elfutils is free software; you can redistribute it and/or modify
+@@ -478,7 +478,10 @@ relocate_section (Dwfl_Module *mod, Elf
+       }
+   }
+-  size_t nrels = shdr->sh_size / shdr->sh_entsize;
++  size_t sh_entsize
++    = gelf_fsize (relocated, shdr->sh_type == SHT_REL ? ELF_T_REL : ELF_T_RELA,
++                1, EV_CURRENT);
++  size_t nrels = shdr->sh_size / sh_entsize;
+   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
+         nrels = next;
+       }
+-      shdr->sh_size = reldata->d_size = nrels * shdr->sh_entsize;
++      shdr->sh_size = reldata->d_size = nrels * sh_entsize;
+       gelf_update_shdr (scn, shdr);
+     }
 --- elfutils/libelf/ChangeLog
 +++ elfutils/libelf/ChangeLog
 @@ -663,10 +663,53 @@
 --- elfutils/libelf/ChangeLog
 +++ elfutils/libelf/ChangeLog
 @@ -663,10 +663,53 @@
  #endif  /* libelfP.h */
 --- elfutils/src/ChangeLog
 +++ elfutils/src/ChangeLog
  #endif  /* libelfP.h */
 --- elfutils/src/ChangeLog
 +++ elfutils/src/ChangeLog
-@@ -1686,6 +1686,16 @@
+@@ -228,6 +228,12 @@
+       * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature.
++2011-03-23  Petr Machata  <pmachata@redhat.com>
++
++      * readelf.c (handle_dynamic, handle_relocs_rel)
++      (handle_relocs_rela, handle_versym, print_liblist):
++      Use gelf_fsize instead of relying on shdr->sh_entsize.
++
+ 2011-02-11  Roland McGrath  <roland@redhat.com>
+       * elfcmp.c (verbose): New variable.
+@@ -1940,6 +1946,16 @@
        object symbols or symbols with unknown type.
        (check_rel): Likewise.
  
        object symbols or symbols with unknown type.
        (check_rel): Likewise.
  
  2005-06-08  Roland McGrath  <roland@redhat.com>
  
        * readelf.c (print_ops): Add consts.
  2005-06-08  Roland McGrath  <roland@redhat.com>
  
        * readelf.c (print_ops): Add consts.
-@@ -1731,6 +1741,19 @@
+@@ -1985,6 +2001,19 @@
  
        * readelf.c (dwarf_tag_string): Add new tags.
  
  
        * readelf.c (dwarf_tag_string): Add new tags.
  
  static void
  check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size)
  {
  static void
  check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size)
  {
-@@ -632,7 +640,8 @@ section [%2d] '%s': symbol table cannot 
+@@ -632,7 +640,8 @@ section [%2d] '%s': symbol table cannot
          }
        }
  
          }
        }
  
      {
        sym = gelf_getsymshndx (data, xndxdata, cnt, &sym_mem, &xndx);
        if (sym == NULL)
      {
        sym = gelf_getsymshndx (data, xndxdata, cnt, &sym_mem, &xndx);
        if (sym == NULL)
-@@ -690,7 +699,8 @@ section [%2d] '%s': symbol %zu: invalid 
+@@ -690,7 +699,8 @@ section [%2d] '%s': symbol %zu: invalid
        else
        {
          name = elf_strptr (ebl->elf, shdr->sh_link, sym->st_name);
        else
        {
          name = elf_strptr (ebl->elf, shdr->sh_link, sym->st_name);
        }
  
        if (sym->st_shndx == SHN_XINDEX)
        }
  
        if (sym->st_shndx == SHN_XINDEX)
-@@ -1038,9 +1048,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
+@@ -1039,9 +1049,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
      {
        GElf_Shdr rcshdr_mem;
        const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem);
      {
        GElf_Shdr rcshdr_mem;
        const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem);
        {
          /* Found the dynamic section.  Look through it.  */
          Elf_Data *d = elf_getdata (scn, NULL);
        {
          /* Found the dynamic section.  Look through it.  */
          Elf_Data *d = elf_getdata (scn, NULL);
-@@ -1050,7 +1062,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
+@@ -1051,7 +1063,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
            {
              GElf_Dyn dyn_mem;
              GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem);
            {
              GElf_Dyn dyn_mem;
              GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem);
  
              if (dyn->d_tag == DT_RELCOUNT)
                {
  
              if (dyn->d_tag == DT_RELCOUNT)
                {
-@@ -1064,7 +1078,9 @@ section [%2d] '%s': DT_RELCOUNT used for
+@@ -1065,7 +1079,9 @@ section [%2d] '%s': DT_RELCOUNT used for
                      /* Does the number specified number of relative
                         relocations exceed the total number of
                         relocations?  */
                      /* Does the number specified number of relative
                         relocations exceed the total number of
                         relocations?  */
                        ERROR (gettext ("\
  section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"),
                               idx, section_name (ebl, idx),
                        ERROR (gettext ("\
  section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"),
                               idx, section_name (ebl, idx),
-@@ -1224,7 +1240,8 @@ section [%2d] '%s': no relocations for m
+@@ -1225,7 +1241,8 @@ section [%2d] '%s': no relocations for m
        }
      }
  
        }
      }
  
      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"),
      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"),
-@@ -1447,7 +1464,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G
+@@ -1448,7 +1465,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G
    Elf_Data *symdata = elf_getdata (symscn, NULL);
    enum load_state state = state_undecided;
  
    Elf_Data *symdata = elf_getdata (symscn, NULL);
    enum load_state state = state_undecided;
  
      {
        GElf_Rela rela_mem;
        GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem);
      {
        GElf_Rela rela_mem;
        GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem);
-@@ -1497,7 +1515,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE
+@@ -1498,7 +1516,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE
    Elf_Data *symdata = elf_getdata (symscn, NULL);
    enum load_state state = state_undecided;
  
    Elf_Data *symdata = elf_getdata (symscn, NULL);
    enum load_state state = state_undecided;
  
      {
        GElf_Rel rel_mem;
        GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem);
      {
        GElf_Rel rel_mem;
        GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem);
-@@ -1600,7 +1619,8 @@ section [%2d] '%s': referenced as string
+@@ -1597,7 +1616,8 @@ section [%2d] '%s': referenced as string
           shdr->sh_link, section_name (ebl, shdr->sh_link),
           idx, section_name (ebl, idx));
  
           shdr->sh_link, section_name (ebl, shdr->sh_link),
           idx, section_name (ebl, idx));
  
      ERROR (gettext ("\
  section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"),
           idx, section_name (ebl, idx));
      ERROR (gettext ("\
  section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"),
           idx, section_name (ebl, idx));
-@@ -1610,7 +1630,7 @@ section [%2d] '%s': section entry size d
+@@ -1607,7 +1627,7 @@ section [%2d] '%s': section entry size d
           idx, section_name (ebl, idx));
  
    bool non_null_warned = false;
           idx, section_name (ebl, idx));
  
    bool non_null_warned = false;
      {
        GElf_Dyn dyn_mem;
        GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem);
      {
        GElf_Dyn dyn_mem;
        GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem);
-@@ -1891,6 +1911,8 @@ section [%2d] '%s': entry size does not 
+@@ -1879,6 +1899,8 @@ section [%2d] '%s': entry size does not
           idx, section_name (ebl, idx));
  
    if (symshdr != NULL
           idx, section_name (ebl, idx));
  
    if (symshdr != NULL
        && (shdr->sh_size / shdr->sh_entsize
          < symshdr->sh_size / symshdr->sh_entsize))
      ERROR (gettext ("\
        && (shdr->sh_size / shdr->sh_entsize
          < symshdr->sh_size / symshdr->sh_entsize))
      ERROR (gettext ("\
-@@ -1917,6 +1939,12 @@ section [%2d] '%s': extended section ind
+@@ -1905,6 +1927,12 @@ section [%2d] '%s': extended section ind
      }
  
    Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL);
      }
  
    Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL);
  
    if (*((Elf32_Word *) data->d_buf) != 0)
      ERROR (gettext ("symbol 0 should have zero extended section index\n"));
  
    if (*((Elf32_Word *) data->d_buf) != 0)
      ERROR (gettext ("symbol 0 should have zero extended section index\n"));
-@@ -1959,7 +1987,7 @@ section [%2d] '%s': hash table section i
+@@ -1947,7 +1975,7 @@ section [%2d] '%s': hash table section i
  
    size_t maxidx = nchain;
  
  
    size_t maxidx = nchain;
  
      {
        size_t symsize = symshdr->sh_size / symshdr->sh_entsize;
  
      {
        size_t symsize = symshdr->sh_size / symshdr->sh_entsize;
  
-@@ -1970,18 +1998,28 @@ section [%2d] '%s': hash table section i
+@@ -1958,18 +1986,28 @@ section [%2d] '%s': hash table section i
        maxidx = symsize;
      }
  
        maxidx = symsize;
      }
  
  }
  
  
  }
  
  
-@@ -2011,18 +2049,28 @@ section [%2d] '%s': hash table section i
+@@ -1999,18 +2037,28 @@ section [%2d] '%s': hash table section i
        maxidx = symsize;
      }
  
        maxidx = symsize;
      }
  
  }
  
  
  }
  
  
-@@ -2047,7 +2095,7 @@ section [%2d] '%s': bitmask size not pow
+@@ -2035,7 +2083,7 @@ section [%2d] '%s': bitmask size not pow
    if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))
      {
        ERROR (gettext ("\
    if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))
      {
        ERROR (gettext ("\
             idx, section_name (ebl, idx), (long int) shdr->sh_size,
             (long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)));
        return;
             idx, section_name (ebl, idx), (long int) shdr->sh_size,
             (long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)));
        return;
-@@ -2719,8 +2767,9 @@ section [%2d] '%s' refers in sh_link to 
+@@ -2707,8 +2755,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.  */
  
    /* The number of elements in the version symbol table must be the
       same as the number of symbols.  */
           idx, section_name (ebl, idx),
 --- elfutils/src/readelf.c
 +++ elfutils/src/readelf.c
           idx, section_name (ebl, idx),
 --- elfutils/src/readelf.c
 +++ elfutils/src/readelf.c
-@@ -1178,6 +1178,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
+@@ -1191,6 +1191,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
    Elf32_Word *grpref = (Elf32_Word *) data->d_buf;
  
    GElf_Sym sym_mem;
    Elf32_Word *grpref = (Elf32_Word *) data->d_buf;
  
    GElf_Sym sym_mem;
    printf ((grpref[0] & GRP_COMDAT)
          ? ngettext ("\
  \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n",
    printf ((grpref[0] & GRP_COMDAT)
          ? ngettext ("\
  \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n",
-@@ -1190,8 +1192,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
+@@ -1203,8 +1205,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),
                      data->d_size / sizeof (Elf32_Word) - 1),
          elf_ndxscn (scn),
          elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
          ?: gettext ("<INVALID SYMBOL>"),
          data->d_size / sizeof (Elf32_Word) - 1);
  
          ?: gettext ("<INVALID SYMBOL>"),
          data->d_size / sizeof (Elf32_Word) - 1);
  
-@@ -1342,7 +1344,8 @@ static void
+@@ -1355,10 +1357,12 @@ static void
  handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
  {
    int class = gelf_getclass (ebl->elf);
  handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
  {
    int class = gelf_getclass (ebl->elf);
    Elf_Data *data;
    size_t cnt;
    size_t shstrndx;
    Elf_Data *data;
    size_t cnt;
    size_t shstrndx;
-@@ -1357,6 +1360,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, 
++  size_t sh_entsize;
+   /* Get the data of the section.  */
+   data = elf_getdata (scn, NULL);
+@@ -1370,21 +1374,26 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn,
      error (EXIT_FAILURE, 0,
           gettext ("cannot get section header string table index"));
  
      error (EXIT_FAILURE, 0,
           gettext ("cannot get section header string table index"));
  
++  sh_entsize = gelf_fsize (ebl->elf, ELF_T_DYN, 1, EV_CURRENT);
++
 +  glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem);
 +  if (glink == NULL)
 +    error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
 +  glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem);
 +  if (glink == NULL)
 +    error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
    printf (ngettext ("\
  \nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
                    "\
    printf (ngettext ("\
  \nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
                    "\
-@@ -1366,9 +1374,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, 
+ \nDynamic segment contains %lu entries:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
+-                  shdr->sh_size / shdr->sh_entsize),
+-        (unsigned long int) (shdr->sh_size / shdr->sh_entsize),
++                  shdr->sh_size / sh_entsize),
++        (unsigned long int) (shdr->sh_size / sh_entsize),
          class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
          shdr->sh_offset,
          (int) shdr->sh_link,
          class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
          shdr->sh_offset,
          (int) shdr->sh_link,
 +        elf_strptr (ebl->elf, shstrndx, glink->sh_name));
    fputs_unlocked (gettext ("  Type              Value\n"), stdout);
  
 +        elf_strptr (ebl->elf, shstrndx, glink->sh_name));
    fputs_unlocked (gettext ("  Type              Value\n"), stdout);
  
-   for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
-@@ -1951,6 +1957,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
+-  for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
++  for (cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt)
+     {
+       GElf_Dyn dynmem;
+       GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dynmem);
+@@ -1533,7 +1542,8 @@ static void
+ handle_relocs_rel (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
+ {
+   int class = gelf_getclass (ebl->elf);
+-  int nentries = shdr->sh_size / shdr->sh_entsize;
++  size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_REL, 1, EV_CURRENT);
++  int nentries = shdr->sh_size / sh_entsize;
+   /* Get the data of the section.  */
+   Elf_Data *data = elf_getdata (scn, NULL);
+@@ -1719,7 +1729,8 @@ static void
+ handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
+ {
+   int class = gelf_getclass (ebl->elf);
+-  int nentries = shdr->sh_size / shdr->sh_entsize;
++  size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_RELA, 1, EV_CURRENT);
++  int nentries = shdr->sh_size / sh_entsize;
+   /* 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
      error (EXIT_FAILURE, 0,
           gettext ("cannot get section header string table index"));
  
      error (EXIT_FAILURE, 0,
           gettext ("cannot get section header string table index"));
  
    /* Now we can compute the number of entries in the section.  */
    unsigned int nsyms = data->d_size / (class == ELFCLASS32
                                       ? sizeof (Elf32_Sym)
    /* Now we can compute the number of entries in the section.  */
    unsigned int nsyms = data->d_size / (class == ELFCLASS32
                                       ? sizeof (Elf32_Sym)
-@@ -1961,15 +1974,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
+@@ -1976,15 +1994,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
                    nsyms),
          (unsigned int) elf_ndxscn (scn),
          elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms);
                    nsyms),
          (unsigned int) elf_ndxscn (scn),
          elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms);
  
    fputs_unlocked (class == ELFCLASS32
                  ? gettext ("\
  
    fputs_unlocked (class == ELFCLASS32
                  ? gettext ("\
-@@ -2205,7 +2215,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, 
+@@ -2220,7 +2235,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn,
      error (EXIT_FAILURE, 0,
           gettext ("cannot get section header string table index"));
  
      error (EXIT_FAILURE, 0,
           gettext ("cannot get section header string table index"));
  
    printf (ngettext ("\
  \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
                    "\
    printf (ngettext ("\
  \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
                    "\
-@@ -2216,9 +2232,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, 
+@@ -2231,9 +2252,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn,
          class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
          shdr->sh_offset,
          (unsigned int) shdr->sh_link,
          class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
          shdr->sh_offset,
          (unsigned int) shdr->sh_link,
  
    unsigned int offset = 0;
    for (int cnt = shdr->sh_info; --cnt >= 0; )
  
    unsigned int offset = 0;
    for (int cnt = shdr->sh_info; --cnt >= 0; )
-@@ -2271,8 +2285,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
+@@ -2286,8 +2305,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
      error (EXIT_FAILURE, 0,
           gettext ("cannot get section header string table index"));
  
      error (EXIT_FAILURE, 0,
           gettext ("cannot get section header string table index"));
  
    printf (ngettext ("\
  \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
                    "\
    printf (ngettext ("\
  \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
                    "\
-@@ -2284,9 +2304,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
+@@ -2299,9 +2324,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
          class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
          shdr->sh_offset,
          (unsigned int) shdr->sh_link,
          class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
          shdr->sh_offset,
          (unsigned int) shdr->sh_link,
  
    unsigned int offset = 0;
    for (int cnt = shdr->sh_info; --cnt >= 0; )
  
    unsigned int offset = 0;
    for (int cnt = shdr->sh_info; --cnt >= 0; )
-@@ -2548,8 +2566,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G
+@@ -2563,25 +2586,30 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G
        filename = NULL;
      }
  
 +  GElf_Shdr glink_mem;
 +  GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
 +                                 &glink_mem);
        filename = NULL;
      }
  
 +  GElf_Shdr glink_mem;
 +  GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
 +                                 &glink_mem);
++  size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_HALF, 1, EV_CURRENT);
 +  if (glink == NULL)
 +    error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
 +         elf_ndxscn (scn));
 +  if (glink == NULL)
 +    error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
 +         elf_ndxscn (scn));
    printf (ngettext ("\
  \nVersion symbols section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'",
                    "\
    printf (ngettext ("\
  \nVersion symbols section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'",
                    "\
-@@ -2561,9 +2585,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G
+ \nVersion symbols section [%2u] '%s' contains %d entries:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'",
+-                  shdr->sh_size / shdr->sh_entsize),
++                  shdr->sh_size / sh_entsize),
+         (unsigned int) elf_ndxscn (scn),
+         elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
+-        (int) (shdr->sh_size / shdr->sh_entsize),
++        (int) (shdr->sh_size / sh_entsize),
          class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
          shdr->sh_offset,
          (unsigned int) shdr->sh_link,
          class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
          shdr->sh_offset,
          (unsigned int) shdr->sh_link,
 +        elf_strptr (ebl->elf, shstrndx, glink->sh_name));
  
    /* Now we can finally look at the actual contents of this section.  */
 +        elf_strptr (ebl->elf, shstrndx, glink->sh_name));
  
    /* Now we can finally look at the actual contents of this section.  */
-   for (unsigned int cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
-@@ -2615,7 +2637,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
+-  for (unsigned int cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
++  for (unsigned int cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt)
+     {
+       if (cnt % 2 == 0)
+       printf ("\n %4d:", cnt);
+@@ -2630,7 +2658,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
    for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt)
      ++counts[lengths[cnt]];
  
    for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt)
      ++counts[lengths[cnt]];
  
    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",
                    "\
    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",
                    "\
-@@ -2628,9 +2660,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
+@@ -2643,9 +2681,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
          shdr->sh_addr,
          shdr->sh_offset,
          (unsigned int) shdr->sh_link,
          shdr->sh_addr,
          shdr->sh_offset,
          (unsigned int) shdr->sh_link,
  
    if (extrastr != NULL)
      fputs (extrastr, stdout);
  
    if (extrastr != NULL)
      fputs (extrastr, stdout);
-@@ -4486,6 +4516,16 @@ print_debug_aranges_section (Dwfl_Module
+@@ -2905,7 +2941,8 @@ print_liblist (Ebl *ebl)
+       if (shdr != NULL && shdr->sh_type == SHT_GNU_LIBLIST)
+       {
+-        int nentries = shdr->sh_size / shdr->sh_entsize;
++        size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_LIB, 1, EV_CURRENT);
++        int nentries = shdr->sh_size / sh_entsize;
+         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
        return;
      }
  
        return;
      }
  
                    "\
 --- elfutils/src/strip.c
 +++ elfutils/src/strip.c
                    "\
 --- elfutils/src/strip.c
 +++ elfutils/src/strip.c
-@@ -555,6 +555,11 @@ handle_elf (int fd, Elf *elf, const char
+@@ -572,6 +572,11 @@ handle_elf (int fd, Elf *elf, const char
        goto fail_close;
      }
  
        goto fail_close;
      }
  
    /* 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.
    /* 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.
-@@ -576,7 +581,7 @@ handle_elf (int fd, Elf *elf, const char
+@@ -593,7 +598,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).  */
      {
        /* This should always be true (i.e., there should not be any
         holes in the numbering).  */
  
        shdr_info[cnt].scn = scn;
  
  
        shdr_info[cnt].scn = scn;
  
-@@ -589,6 +594,7 @@ handle_elf (int fd, Elf *elf, const char
+@@ -606,6 +611,7 @@ handle_elf (int fd, Elf *elf, const char
                                        shdr_info[cnt].shdr.sh_name);
        if (shdr_info[cnt].name == NULL)
        {
                                        shdr_info[cnt].shdr.sh_name);
        if (shdr_info[cnt].name == NULL)
        {
          error (0, 0, gettext ("illformed file '%s'"), fname);
          goto fail_close;
        }
          error (0, 0, gettext ("illformed file '%s'"), fname);
          goto fail_close;
        }
-@@ -598,6 +604,8 @@ handle_elf (int fd, Elf *elf, const char
+@@ -615,6 +621,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;
  
        /* Remember the shdr.sh_link value.  */
        shdr_info[cnt].old_sh_link = shdr_info[cnt].shdr.sh_link;
  
        /* Sections in files other than relocatable object files which
         are not loaded can be freely moved by us.  In relocatable
  
        /* Sections in files other than relocatable object files which
         are not loaded can be freely moved by us.  In relocatable
-@@ -610,7 +618,7 @@ handle_elf (int fd, Elf *elf, const char
+@@ -627,7 +635,7 @@ handle_elf (int fd, Elf *elf, const char
         appropriate reference.  */
        if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX))
        {
         appropriate reference.  */
        if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX))
        {
          shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt;
        }
        else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP))
          shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt;
        }
        else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP))
-@@ -627,7 +635,12 @@ handle_elf (int fd, Elf *elf, const char
+@@ -644,7 +652,12 @@ handle_elf (int fd, Elf *elf, const char
          for (inner = 1;
               inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word);
               ++inner)
          for (inner = 1;
               inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word);
               ++inner)
  
          if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0))
            /* If the section group contains only one element and this
  
          if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0))
            /* If the section group contains only one element and this
-@@ -638,7 +651,7 @@ handle_elf (int fd, Elf *elf, const char
+@@ -655,7 +668,7 @@ handle_elf (int fd, Elf *elf, const char
        }
        else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym))
        {
        }
        else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym))
        {
          shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt;
        }
  
          shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt;
        }
  
-@@ -646,7 +659,7 @@ handle_elf (int fd, Elf *elf, const char
+@@ -663,7 +676,7 @@ handle_elf (int fd, Elf *elf, const char
         discarded right away.  */
        if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0)
        {
         discarded right away.  */
        if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0)
        {
  
          if (shdr_info[shdr_info[cnt].group_idx].idx == 0)
            {
  
          if (shdr_info[shdr_info[cnt].group_idx].idx == 0)
            {
-@@ -722,11 +735,15 @@ handle_elf (int fd, Elf *elf, const char
+@@ -739,10 +752,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.  */
            {
              /* If a relocation section is marked as being removed make
                 sure the section it is relocating is removed, too.  */
 +            if (shdr_info[cnt].shdr.sh_type == SHT_REL
                   || shdr_info[cnt].shdr.sh_type == SHT_RELA)
 -                && shdr_info[shdr_info[cnt].shdr.sh_info].idx != 0)
 +            if (shdr_info[cnt].shdr.sh_type == SHT_REL
                   || shdr_info[cnt].shdr.sh_type == SHT_RELA)
 -                && shdr_info[shdr_info[cnt].shdr.sh_info].idx != 0)
+-              shdr_info[cnt].idx = 1;
 +              {
 +                if (shdr_info[cnt].shdr.sh_info >= shnum)
 +                  goto illformed;
 +                else if (shdr_info[shdr_info[cnt].shdr.sh_info].idx != 0)
 +              {
 +                if (shdr_info[cnt].shdr.sh_info >= shnum)
 +                  goto illformed;
 +                else if (shdr_info[shdr_info[cnt].shdr.sh_info].idx != 0)
-               shdr_info[cnt].idx = 1;
-           }
-+          }
++                  shdr_info[cnt].idx = 1;
++              }
  
  
-         if (shdr_info[cnt].idx == 1)
-           {
-@@ -753,7 +770,7 @@ handle_elf (int fd, Elf *elf, const char
+             /* 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
                  if (shdr_info[cnt].symtab_idx != 0
                      && shdr_info[shdr_info[cnt].symtab_idx].data == NULL)
                    {
                  if (shdr_info[cnt].symtab_idx != 0
                      && shdr_info[shdr_info[cnt].symtab_idx].data == NULL)
                    {
  
                      shdr_info[shdr_info[cnt].symtab_idx].data
                        = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
  
                      shdr_info[shdr_info[cnt].symtab_idx].data
                        = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
-@@ -793,6 +810,9 @@ handle_elf (int fd, Elf *elf, const char
+@@ -826,6 +843,9 @@ handle_elf (int fd, Elf *elf, const char
                      else if (scnidx == SHN_XINDEX)
                        scnidx = xndx;
  
                      else if (scnidx == SHN_XINDEX)
                        scnidx = xndx;
  
                      if (shdr_info[scnidx].idx == 0)
                        /* This symbol table has a real symbol in
                           a discarded section.  So preserve the
                      if (shdr_info[scnidx].idx == 0)
                        /* This symbol table has a real symbol in
                           a discarded section.  So preserve the
-@@ -823,12 +843,16 @@ handle_elf (int fd, Elf *elf, const char
+@@ -856,12 +876,16 @@ handle_elf (int fd, Elf *elf, const char
                }
  
              /* Handle references through sh_info.  */
                }
  
              /* Handle references through sh_info.  */
  
              /* Mark the section as investigated.  */
              shdr_info[cnt].idx = 2;
  
              /* Mark the section as investigated.  */
              shdr_info[cnt].idx = 2;
-@@ -967,7 +991,7 @@ handle_elf (int fd, Elf *elf, const char
+@@ -1002,7 +1026,7 @@ handle_elf (int fd, Elf *elf, const char
          error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"),
                 elf_errmsg (-1));
  
          error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"),
                 elf_errmsg (-1));
  
  
        /* Add this name to the section header string table.  */
        shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0);
  
        /* Add this name to the section header string table.  */
        shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0);
-@@ -1004,7 +1028,7 @@ handle_elf (int fd, Elf *elf, const char
+@@ -1039,7 +1063,7 @@ handle_elf (int fd, Elf *elf, const char
        error (EXIT_FAILURE, 0,
               gettext ("while create section header section: %s"),
               elf_errmsg (-1));
        error (EXIT_FAILURE, 0,
               gettext ("while create section header section: %s"),
               elf_errmsg (-1));
  
        shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn);
        if (shdr_info[cnt].data == NULL)
  
        shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn);
        if (shdr_info[cnt].data == NULL)
-@@ -1060,7 +1084,7 @@ handle_elf (int fd, Elf *elf, const char
+@@ -1095,7 +1119,7 @@ handle_elf (int fd, Elf *elf, const char
      error (EXIT_FAILURE, 0,
           gettext ("while create section header section: %s"),
           elf_errmsg (-1));
      error (EXIT_FAILURE, 0,
           gettext ("while create section header section: %s"),
           elf_errmsg (-1));
  
    /* Finalize the string table and fill in the correct indices in the
       section headers.  */
  
    /* Finalize the string table and fill in the correct indices in the
       section headers.  */
-@@ -1150,20 +1174,20 @@ handle_elf (int fd, Elf *elf, const char
+@@ -1185,20 +1209,20 @@ handle_elf (int fd, Elf *elf, const char
                    shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
                                             NULL);
  
                    shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
                                             NULL);
  
                            >= shdr_info[cnt].data->d_size / elsize);
                  }
  
                            >= shdr_info[cnt].data->d_size / elsize);
                  }
  
-@@ -1218,7 +1242,7 @@ handle_elf (int fd, Elf *elf, const char
+@@ -1253,7 +1277,7 @@ handle_elf (int fd, Elf *elf, const char
                      sec = shdr_info[sym->st_shndx].idx;
                    else
                      {
                      sec = shdr_info[sym->st_shndx].idx;
                    else
                      {
  
                        sec = shdr_info[xshndx].idx;
                      }
  
                        sec = shdr_info[xshndx].idx;
                      }
-@@ -1239,7 +1263,7 @@ handle_elf (int fd, Elf *elf, const char
+@@ -1274,7 +1298,7 @@ handle_elf (int fd, Elf *elf, const char
                            nxshndx = sec;
                          }
  
                            nxshndx = sec;
                          }
  
  
                        if ((inner != destidx || nshndx != sym->st_shndx
                             || (shndxdata != NULL && nxshndx != xshndx))
  
                        if ((inner != destidx || nshndx != sym->st_shndx
                             || (shndxdata != NULL && nxshndx != xshndx))
-@@ -1263,7 +1287,7 @@ handle_elf (int fd, Elf *elf, const char
-                            || shdr_info[cnt].debug_data == NULL)
-                     /* This is a section symbol for a section which has
-                        been removed.  */
--                    assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION);
-+                    elf_assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION);
+@@ -1301,9 +1325,11 @@ handle_elf (int fd, Elf *elf, const char
+                     {
+                       size_t sidx = (sym->st_shndx != SHN_XINDEX
+                                       ? sym->st_shndx : xshndx);
+-                      assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION
+-                              || (shdr_info[sidx].shdr.sh_type == SHT_GROUP
+-                                  && shdr_info[sidx].shdr.sh_info == inner));
++                      elf_assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION
++                                  || ((shdr_info[sidx].shdr.sh_type
++                                       == SHT_GROUP)
++                                      && (shdr_info[sidx].shdr.sh_info
++                                          == inner)));
+                     }
                  }
  
                  }
  
-               if (destidx != inner)
-@@ -1450,11 +1474,11 @@ handle_elf (int fd, Elf *elf, const char
+@@ -1491,11 +1517,11 @@ handle_elf (int fd, Elf *elf, const char
                  {
                    GElf_Sym sym_mem;
                    GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);
                  {
                    GElf_Sym sym_mem;
                    GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);
                    size_t hidx = elf_hash (name) % nbucket;
  
                    if (bucket[hidx] == 0)
                    size_t hidx = elf_hash (name) % nbucket;
  
                    if (bucket[hidx] == 0)
-@@ -1473,7 +1497,7 @@ handle_elf (int fd, Elf *elf, const char
+@@ -1514,8 +1540,8 @@ handle_elf (int fd, Elf *elf, const char
            else
              {
                /* Alpha and S390 64-bit use 64-bit SHT_HASH entries.  */
 -              assert (shdr_info[cnt].shdr.sh_entsize
            else
              {
                /* Alpha and S390 64-bit use 64-bit SHT_HASH entries.  */
 -              assert (shdr_info[cnt].shdr.sh_entsize
+-                      == sizeof (Elf64_Xword));
 +              elf_assert (shdr_info[cnt].shdr.sh_entsize
 +              elf_assert (shdr_info[cnt].shdr.sh_entsize
-                       == sizeof (Elf64_Xword));
++                            == sizeof (Elf64_Xword));
  
                Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf;
  
                Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf;
-@@ -1504,11 +1528,11 @@ handle_elf (int fd, Elf *elf, const char
+@@ -1545,11 +1571,11 @@ handle_elf (int fd, Elf *elf, const char
                  {
                    GElf_Sym sym_mem;
                    GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);
                  {
                    GElf_Sym sym_mem;
                    GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);
index 92334a4305ac336cc67f00db4bbeeaf4b0bd296f..a018b46cd9723641e4063f50639b8f718806b339 100644 (file)
@@ -5,12 +5,12 @@
 Summary:       A collection of utilities and DSOs to handle compiled objects
 Summary(pl.UTF-8):     Zestaw narzędzi i bibliotek do obsługi skompilowanych obiektów
 Name:          elfutils
 Summary:       A collection of utilities and DSOs to handle compiled objects
 Summary(pl.UTF-8):     Zestaw narzędzi i bibliotek do obsługi skompilowanych obiektów
 Name:          elfutils
-Version:       0.151
+Version:       0.153
 Release:       1
 License:       GPL v2 with OSL linking exception
 Group:         Development/Tools
 Source0:       https://fedorahosted.org/releases/e/l/elfutils/%{version}/%{name}-%{version}.tar.bz2
 Release:       1
 License:       GPL v2 with OSL linking exception
 Group:         Development/Tools
 Source0:       https://fedorahosted.org/releases/e/l/elfutils/%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5: 9bc04e409a5510ba379afc3f853a59ae
+# Source0-md5: 289a146182bc29f0236eaa15d8ebdf98
 Patch0:                %{name}-pl.po.patch
 Patch1:                %{name}-debian-manpages.patch
 Patch2:                %{name}-portability.patch
 Patch0:                %{name}-pl.po.patch
 Patch1:                %{name}-debian-manpages.patch
 Patch2:                %{name}-portability.patch
@@ -134,7 +134,7 @@ programowalny interfejs asemblera.
 
 %prep
 %setup -q
 
 %prep
 %setup -q
-%patch0 -p1
+#patch0 -p1
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
@@ -159,6 +159,7 @@ programowalny interfejs asemblera.
 %{__autoconf}
 %{__automake}
 %configure \
 %{__autoconf}
 %{__automake}
 %configure \
+       --disable-werror \
        --program-prefix=%{programprefix}
 
 # make check depends on test-nlist not stripped
        --program-prefix=%{programprefix}
 
 # make check depends on test-nlist not stripped
This page took 0.311917 seconds and 4 git commands to generate.