rpms/elfutils/F-10 elfutils-0.139.tar.bz2.sig, NONE, 1.1 .cvsignore, 1.45, 1.46 Makefile, 1.29, 1.30 elfutils-portability.patch, 1.39, 1.40 elfutils-robustify.patch, 1.12, 1.13 elfutils.spec, 1.110, 1.111 sources, 1.49, 1.50 upstream-key.gpg, 1.1, 1.2 elfutils-0.138.tar.bz2.sig, 1.1, NONE

Roland McGrath roland at fedoraproject.org
Sat Jan 24 01:22:40 UTC 2009


Author: roland

Update of /cvs/pkgs/rpms/elfutils/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv5465/F-10

Modified Files:
	.cvsignore Makefile elfutils-portability.patch 
	elfutils-robustify.patch elfutils.spec sources 
	upstream-key.gpg 
Added Files:
	elfutils-0.139.tar.bz2.sig 
Removed Files:
	elfutils-0.138.tar.bz2.sig 
Log Message:
Update to 0.139


--- NEW FILE elfutils-0.139.tar.bz2.sig ---
ˆ?
~»Ö% Í
J•Zve—ƒ½ÌH+

Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/elfutils/F-10/.cvsignore,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- .cvsignore	31 Dec 2008 22:12:42 -0000	1.45
+++ .cvsignore	24 Jan 2009 01:22:09 -0000	1.46
@@ -1 +1 @@
-elfutils-0.138.tar.bz2
+elfutils-0.139.tar.bz2


Index: Makefile
===================================================================
RCS file: /cvs/pkgs/rpms/elfutils/F-10/Makefile,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- Makefile	31 Dec 2008 22:12:42 -0000	1.29
+++ Makefile	24 Jan 2009 01:22:09 -0000	1.30
@@ -3,6 +3,8 @@
 NAME := elfutils
 SPECFILE = elfutils.spec
 
+all:
+
 UPSTREAM_CHECKS := sig
 UPSTREAM_FILES = $(NAME)-$(VERSION).tar.bz2
 upstream:;
@@ -28,20 +30,19 @@
 CURL += -k
 endif
 
+patches := $(patsubst %,elfutils-%.patch,robustify portability)
+all: $(patches)
+
 branch-portability = portable
+branch-master = elfutils-$(VERSION)
 
-elfutils-base = elfutils-$(VERSION)
-elfutils-base = master
+elfutils-%/configure: .git/refs/heads/* Makefile
+	@rm -rf $(@D)
+	git archive --prefix=$(@D)/ $(firstword $(branch-$*) $*) | tar xf -
+	cd $(@D) && autoreconf -i && rm -rf autom4te.cache
 
-elfutils-%.patch: elfutils-$(VERSION).tar.bz2 Makefile
-	@rm -rf elfutils-master elfutils-$*
-	git archive --prefix=elfutils-master/ $(elfutils-base) \
-	| tar xf -
-	git archive --prefix=elfutils-$*/ $(firstword $(branch-$*) $*) \
-	| tar xf -
-	cd elfutils-master; autoreconf -i; rm -rf autom4te.cache
-	cd elfutils-$*; autoreconf -i; rm -rf autom4te.cache
-	diff -Nrpu elfutils-master elfutils-$* | \
+elfutils-%.patch: elfutils-master/configure elfutils-%/configure
+	diff --exclude='.gitignore' -Nrpu $(^D) | \
 	filterdiff --remove-timestamps --strip=1 --addprefix=elfutils/ > $@.new
 	mv $@.new $@
 
@@ -52,7 +53,7 @@
 portable-r = 0.$(subst $(DIST),,$(RELEASE))
 portable-vr = $(VERSION)-$(portable-r)
 portable.srpm = elfutils-$(portable-vr).src.rpm
-$(portable.srpm): elfutils-portable.spec elfutils-portability.patch \
+$(portable.srpm): elfutils-portable.spec $(patches) \
 		  elfutils-$(VERSION).tar.bz2
 	$(RPM_WITH_DIRS) --nodeps -bs $<
 

elfutils-portability.patch:

Index: elfutils-portability.patch
===================================================================
RCS file: /cvs/pkgs/rpms/elfutils/F-10/elfutils-portability.patch,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- elfutils-portability.patch	31 Dec 2008 22:12:42 -0000	1.39
+++ elfutils-portability.patch	24 Jan 2009 01:22:09 -0000	1.40
@@ -1,6 +1,14 @@
 --- elfutils/backends/ChangeLog
 +++ elfutils/backends/ChangeLog
-@@ -325,6 +325,11 @@
+@@ -1,3 +1,7 @@
++2009-01-23  Roland McGrath  <roland at redhat.com>
++
++	* Makefile.am (libebl_%.so): Use $(LD_AS_NEEDED).
++
+ 2008-10-04  Ulrich Drepper  <drepper at redhat.com>
+ 
+ 	* i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and
+@@ -325,6 +329,11 @@
  	* sparc_init.c: Likewise.
  	* x86_64_init.c: Likewise.
  
@@ -12,7 +20,7 @@
  2005-11-19  Roland McGrath  <roland at redhat.com>
  
  	* ppc64_reloc.def: REL30 -> ADDR30.
-@@ -347,6 +352,9 @@
+@@ -347,6 +356,9 @@
  	* Makefile.am (uninstall): Don't try to remove $(pkgincludedir).
  	(CLEANFILES): Add libebl_$(m).so.
  
@@ -24,6 +32,14 @@
  
 --- elfutils/backends/Makefile.am
 +++ elfutils/backends/Makefile.am
+@@ -1,6 +1,6 @@
+ ## Process this file with automake to create Makefile.in
+ ##
+-## Copyright (C) 2000-2006, 2007, 2008 Red Hat, Inc.
++## Copyright (C) 2000-2006, 2007, 2008, 2009 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,12 +25,14 @@
  ## <http://www.openinventionnetwork.com>.
  ##
@@ -48,9 +64,18 @@
  i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c \
  	    i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c
  cpu_i386 = ../libcpu/libcpu_i386.a
+@@ -114,7 +115,7 @@ libebl_%.so: libebl_%_pic.a libebl_%.map
+ 	$(LINK) -shared -o $@ -Wl,--whole-archive,$<\
+ 		$(cpu_$(@:libebl_%.so=%)) -Wl,--no-whole-archive \
+ 		-Wl,--version-script,$(word 2,$^) \
+-		-Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) $(libmudflap)
++		-Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) $(libmudflap)
+ 	$(textrel_check)
+ 
+ # XXX Should not be needed...
 --- elfutils/backends/Makefile.in
 +++ elfutils/backends/Makefile.in
-@@ -155,6 +155,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -156,6 +156,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  LDFLAGS = @LDFLAGS@
@@ -58,7 +83,7 @@
  LEX = @LEX@
  LEXLIB = @LEXLIB@
  LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -184,6 +185,7 @@ SHELL = @SHELL@
+@@ -185,6 +186,7 @@ SHELL = @SHELL@
  STRIP = @STRIP@
  USE_NLS = @USE_NLS@
  VERSION = @VERSION@
@@ -66,9 +91,9 @@
  XGETTEXT = @XGETTEXT@
  XGETTEXT_015 = @XGETTEXT_015@
  YACC = @YACC@
-@@ -241,9 +243,9 @@ top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
+@@ -243,9 +245,9 @@ top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
  @MUDFLAP_FALSE at AM_CFLAGS = -fpic -Wall -Wshadow -Werror -Wunused \
 - at MUDFLAP_FALSE@	-Wextra -Wformat=2 -std=gnu99
 + at MUDFLAP_FALSE@	$(WEXTRA) -Wformat=2 -std=gnu99
@@ -78,9 +103,31 @@
  INCLUDES = -I$(srcdir) -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \
  	   -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw \
  	   -I$(top_srcdir)/lib -I..
+@@ -641,7 +643,7 @@ libebl_%.so: libebl_%_pic.a libebl_%.map
+ 	$(LINK) -shared -o $@ -Wl,--whole-archive,$<\
+ 		$(cpu_$(@:libebl_%.so=%)) -Wl,--no-whole-archive \
+ 		-Wl,--version-script,$(word 2,$^) \
+-		-Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) $(libmudflap)
++		-Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) $(libmudflap)
+ 	$(textrel_check)
+ 
+ # XXX Should not be needed...
 --- elfutils/ChangeLog
 +++ elfutils/ChangeLog
-@@ -54,6 +54,10 @@
+@@ -1,3 +1,12 @@
++2009-01-23  Roland McGrath  <roland at redhat.com>
++
++	* configure.ac: Check for __builtin_popcount.
++
++	* configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3.
++
++	* configure.ac (__thread check): Use AC_LINK_IFELSE, in case of
++	building with compiler support but no working runtime support.
++
+ 2009-01-22  Ulrich Drepper  <drepper at redhat.com>
+ 
+ 	* Makefile.am (rpm): The tarball is now bzip2-compressed.
+@@ -73,6 +82,10 @@
  	* configure.ac: Add dummy automake conditional to get dependencies
  	for non-generic linker right.  See src/Makefile.am.
  
@@ -91,7 +138,7 @@
  2005-11-18  Roland McGrath  <roland at redhat.com>
  
  	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable.
-@@ -101,6 +105,17 @@
+@@ -120,6 +133,17 @@
  	* Makefile.am (all_SUBDIRS): Add libdwfl.
  	* configure.ac: Write libdwfl/Makefile.
  
@@ -111,7 +158,7 @@
  	* configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros.
 --- elfutils/config/Makefile.in
 +++ elfutils/config/Makefile.in
-@@ -72,6 +72,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -73,6 +73,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  LDFLAGS = @LDFLAGS@
@@ -119,7 +166,7 @@
  LEX = @LEX@
  LEXLIB = @LEXLIB@
  LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -101,6 +102,7 @@ SHELL = @SHELL@
+@@ -102,6 +103,7 @@ SHELL = @SHELL@
  STRIP = @STRIP@
  USE_NLS = @USE_NLS@
  VERSION = @VERSION@
@@ -127,9 +174,28 @@
  XGETTEXT = @XGETTEXT@
  XGETTEXT_015 = @XGETTEXT_015@
  YACC = @YACC@
+--- elfutils/config.h.in
++++ elfutils/config.h.in
+@@ -1,5 +1,8 @@
+ /* config.h.in.  Generated from configure.ac by autoheader.  */
+ 
++/* Have __builtin_popcount. */
++#undef HAVE_BUILTIN_POPCOUNT
++
+ /* $libdir subdirectory containing libebl modules. */
+ #undef LIBEBL_SUBDIR
+ 
+@@ -52,4 +55,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
-@@ -637,6 +637,8 @@ NATIVE_LD_FALSE
+@@ -642,6 +642,8 @@ NATIVE_LD_FALSE
  NATIVE_LD_TRUE
  DATADIRNAME
  LOCALEDIR
@@ -138,38 +204,31 @@
  LEXLIB
  LEX_OUTPUT_ROOT
  LEX
-@@ -4028,6 +4030,89 @@ $as_echo "$as_me: error: gcc with C99 su
+@@ -4041,13 +4043,15 @@ $as_echo "$as_me: error: gcc with C99 su
  fi
  
  
+-{ $as_echo "$as_me:$LINENO: checking for gcc with TLS support" >&5
+-$as_echo_n "checking for gcc with TLS support... " >&6; }
+-if test "${ac_cv_tls+set}" = set; then
 +{ $as_echo "$as_me:$LINENO: checking for -Wextra option to $CC" >&5
 +$as_echo_n "checking for -Wextra option to $CC... " >&6; }
 +if test "${ac_cv_cc_wextra+set}" = set; then
-+  $as_echo_n "(cached) " >&6
-+else
+   $as_echo_n "(cached) " >&6
+ else
+-  cat >conftest.$ac_ext <<_ACEOF
+-__thread int a; int foo (int b) { return a + b; }
 +  old_CFLAGS="$CFLAGS"
 +CFLAGS="$CFLAGS -Wextra"
 +cat >conftest.$ac_ext <<_ACEOF
 +void foo (void) { }
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+  *) ac_try_echo=$ac_try;;
-+esac
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-+  (eval "$ac_compile") 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } && {
-+	 test -z "$ac_c_werror_flag" ||
-+	 test ! -s conftest.err
-+       } && test -s conftest.$ac_objext; then
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+@@ -4067,6 +4071,172 @@ $as_echo "$ac_try_echo") >&5
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
 +  ac_cv_cc_wextra=yes
 +else
 +  $as_echo "$as_me: failed program was:" >&5
@@ -224,16 +283,226 @@
 +
 +
 +
++{ $as_echo "$as_me:$LINENO: checking for __builtin_popcount" >&5
++$as_echo_n "checking for __builtin_popcount... " >&6; }
++if test "${ac_cv_popcount+set}" = set; then
++  $as_echo_n "(cached) " >&6
++else
++  cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++
++int
++main ()
++{
++exit (__builtin_popcount (127));
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (ac_try="$ac_link"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++$as_echo "$ac_try_echo") >&5
++  (eval "$ac_link") 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } && {
++	 test -z "$ac_c_werror_flag" ||
++	 test ! -s conftest.err
++       } && test -s conftest$ac_exeext && {
++	 test "$cross_compiling" = yes ||
++	 $as_test_x conftest$ac_exeext
++       }; then
++  ac_cv_popcount=yes
++else
++  $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
 +
- LOCALEDIR=$datadir
++	ac_cv_popcount=no
++fi
++
++rm -rf conftest.dSYM
++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
++      conftest$ac_exeext conftest.$ac_ext
++fi
++{ $as_echo "$as_me:$LINENO: result: $ac_cv_popcount" >&5
++$as_echo "$ac_cv_popcount" >&6; }
++if test "x$ac_cv_popcount" = xyes; then
++
++cat >>confdefs.h <<\_ACEOF
++#define HAVE_BUILTIN_POPCOUNT 1
++_ACEOF
++
++fi
++
++
++{ $as_echo "$as_me:$LINENO: checking for __thread support" >&5
++$as_echo_n "checking for __thread support... " >&6; }
++if test "${ac_cv_tls+set}" = set; then
++  $as_echo_n "(cached) " >&6
++else
++  # 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.
++save_CFLAGS="$CFLAGS"
++save_LDFLAGS="$LDFLAGS"
++CFLAGS="-fpic $CFLAGS"
++LDFLAGS="-shared -Wl,-z,defs,-z,relro $LDFLAGS"
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#undef __thread
++static __thread int a; int foo (int b) { return a + b; }
++int
++main ()
++{
++exit (foo (0));
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (ac_try="$ac_link"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++$as_echo "$ac_try_echo") >&5
++  (eval "$ac_link") 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } && {
++	 test -z "$ac_c_werror_flag" ||
++	 test ! -s conftest.err
++       } && test -s conftest$ac_exeext && {
++	 test "$cross_compiling" = yes ||
++	 $as_test_x conftest$ac_exeext
++       }; then
+   ac_cv_tls=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+@@ -4075,14 +4245,27 @@ sed 's/^/| /' conftest.$ac_ext >&5
+ 	ac_cv_tls=no
+ fi
  
- cat >>confdefs.h <<_ACEOF
+-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++rm -rf conftest.dSYM
++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
++      conftest$ac_exeext conftest.$ac_ext
++CFLAGS="$save_CFLAGS"
++LDFLAGS="$save_LDFLAGS"
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_tls" >&5
+ $as_echo "$ac_cv_tls" >&6; }
+ if test "x$ac_cv_tls" != xyes; then
+-  { { $as_echo "$as_me:$LINENO: error: gcc with TLS support required" >&5
+-$as_echo "$as_me: error: gcc with TLS support required" >&2;}
++  if test "$use_locks" = yes; then
++  { { $as_echo "$as_me:$LINENO: error: --enable-thread-safety requires __thread support" >&5
++$as_echo "$as_me: error: --enable-thread-safety requires __thread support" >&2;}
+    { (exit 1); exit 1; }; }
++else
++
++cat >>confdefs.h <<\_ACEOF
++#define __thread /* empty: no multi-thread support */
++_ACEOF
++
++fi
++
+ fi
+ 
+ 
+@@ -4673,9 +4856,9 @@ if test "${with_zlib+set}" = set; then
+ fi
+ 
+ if test $with_zlib != no; then
+-  { $as_echo "$as_me:$LINENO: checking for library containing gzdopen" >&5
+-$as_echo_n "checking for library containing gzdopen... " >&6; }
+-if test "${ac_cv_search_gzdopen+set}" = set; then
++  { $as_echo "$as_me:$LINENO: checking for library containing gzdirect" >&5
++$as_echo_n "checking for library containing gzdirect... " >&6; }
++if test "${ac_cv_search_gzdirect+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_func_search_save_LIBS=$LIBS
+@@ -4692,11 +4875,11 @@ cat >>conftest.$ac_ext <<_ACEOF
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+-char gzdopen ();
++char gzdirect ();
+ int
+ main ()
+ {
+-return gzdopen ();
++return gzdirect ();
+   ;
+   return 0;
+ }
+@@ -4729,7 +4912,7 @@ $as_echo "$ac_try_echo") >&5
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+-  ac_cv_search_gzdopen=$ac_res
++  ac_cv_search_gzdirect=$ac_res
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+@@ -4740,21 +4923,21 @@ fi
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext
+-  if test "${ac_cv_search_gzdopen+set}" = set; then
++  if test "${ac_cv_search_gzdirect+set}" = set; then
+   break
+ fi
+ done
+-if test "${ac_cv_search_gzdopen+set}" = set; then
++if test "${ac_cv_search_gzdirect+set}" = set; then
+   :
+ else
+-  ac_cv_search_gzdopen=no
++  ac_cv_search_gzdirect=no
+ fi
+ rm conftest.$ac_ext
+ LIBS=$ac_func_search_save_LIBS
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_gzdopen" >&5
+-$as_echo "$ac_cv_search_gzdopen" >&6; }
+-ac_res=$ac_cv_search_gzdopen
++{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_gzdirect" >&5
++$as_echo "$ac_cv_search_gzdirect" >&6; }
++ac_res=$ac_cv_search_gzdirect
+ if test "$ac_res" != no; then
+   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+   with_zlib=yes
 --- elfutils/configure.ac
 +++ elfutils/configure.ac
-@@ -74,6 +74,34 @@ CFLAGS="$old_CFLAGS"])
+@@ -74,12 +74,58 @@ CFLAGS="$old_CFLAGS"])
  AS_IF([test "x$ac_cv_c99" != xyes],
        AC_MSG_ERROR([gcc with C99 support required]))
  
+-AC_CACHE_CHECK([for gcc with TLS support], ac_cv_tls, [dnl
+-AC_COMPILE_IFELSE([dnl
+-__thread int a; int foo (int b) { return a + b; }],
+-		  ac_cv_tls=yes, ac_cv_tls=no)])
 +AC_CACHE_CHECK([for -Wextra option to $CC], ac_cv_cc_wextra, [dnl
 +old_CFLAGS="$CFLAGS"
 +CFLAGS="$CFLAGS -Wextra"
@@ -261,13 +530,58 @@
 +      [LD_AS_NEEDED=-Wl,--as-needed], [LD_AS_NEEDED=])
 +AC_SUBST(LD_AS_NEEDED)
 +
-+
++AC_CACHE_CHECK([for __builtin_popcount], ac_cv_popcount, [dnl
++AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[exit (__builtin_popcount (127));]])],
++	       ac_cv_popcount=yes, ac_cv_popcount=no)])
++AS_IF([test "x$ac_cv_popcount" = xyes],
++      [AC_DEFINE([HAVE_BUILTIN_POPCOUNT], [1], [Have __builtin_popcount.])])
++
++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.
++save_CFLAGS="$CFLAGS"
++save_LDFLAGS="$LDFLAGS"
++CFLAGS="-fpic $CFLAGS"
++LDFLAGS="-shared -Wl,-z,defs,-z,relro $LDFLAGS"
++AC_LINK_IFELSE([dnl
++AC_LANG_PROGRAM([[#undef __thread
++static __thread int a; int foo (int b) { return a + b; }]],
++		[[exit (foo (0));]])],
++	       ac_cv_tls=yes, ac_cv_tls=no)
++CFLAGS="$save_CFLAGS"
++LDFLAGS="$save_LDFLAGS"])
+ AS_IF([test "x$ac_cv_tls" != xyes],
+-      AC_MSG_ERROR([gcc with TLS support required]))
++      [AS_IF([test "$use_locks" = yes],
++	     [AC_MSG_ERROR([--enable-thread-safety requires __thread support])],
++	     [AC_DEFINE([__thread], [/* empty: no multi-thread support */],
++			[Stubbed out if missing compiler support.])])])
+ 
  LOCALEDIR=$datadir
  AC_SUBST(LOCALEDIR)
- AC_DEFINE_UNQUOTED(LOCALEDIR, "$LOCALEDIR")
+@@ -193,7 +239,7 @@ dnl Test for zlib and bzlib, gives ZLIB/
+ dnl conditional and config.h USE_ZLIB/USE_BZLIB #define.
+ save_LIBS="$LIBS"
+ LIBS=
+-eu_ZIPLIB(z,Z,z,gzdopen,gzip)
++eu_ZIPLIB(z,Z,z,gzdirect,gzip)
+ eu_ZIPLIB(bz,BZ,bz2,BZ2_bzdopen,bzip2)
+ zip_LIBS="$LIBS"
+ LIBS="$save_LIBS"
 --- elfutils/lib/ChangeLog
 +++ elfutils/lib/ChangeLog
-@@ -41,6 +41,11 @@
+@@ -1,3 +1,10 @@
++2009-01-23  Roland McGrath  <roland at redhat.com>
++
++	* eu-config.h [! HAVE_BUILTIN_POPCOUNT]
++	(__builtin_popcount): New inline function.
++
++	* eu-config.h: Add multiple inclusion protection.
++
+ 2009-01-17  Ulrich Drepper  <drepper at redhat.com>
+ 
+ 	* system.h (ARGP_PROGRAM_VERSION_HOOK_DEF): Define.
+@@ -52,6 +59,11 @@
  	* Makefile.am (libeu_a_SOURCES): Add it.
  	* system.h: Declare crc32_file.
  
@@ -279,6 +593,36 @@
  2005-04-30  Ulrich Drepper  <drepper at redhat.com>
  
  	* Makefile.am: Use -ffunction-sections for xmalloc.c.
+--- elfutils/lib/eu-config.h
++++ elfutils/lib/eu-config.h
+@@ -46,6 +46,9 @@
+    Network licensing program, please visit www.openinventionnetwork.com
+    <http://www.openinventionnetwork.com>.  */
+ 
++#ifndef EU_CONFIG_H
++#define EU_CONFIG_H	1
++
+ #ifdef USE_LOCKS
+ # include <pthread.h>
+ # include <assert.h>
+@@ -178,3 +181,17 @@ asm (".section predict_data, \"aw\"; .pr
+ 
+ /* This macro is used by the tests conditionalize for standalone building.  */
+ #define ELFUTILS_HEADER(name) <lib##name.h>
++
++#ifndef HAVE_BUILTIN_POPCOUNT
++# define __builtin_popcount hakmem_popcount
++static inline unsigned int __attribute__ ((unused))
++hakmem_popcount (unsigned int x)
++{
++  /* HAKMEM 169 */
++  unsigned int n = x - ((x >> 1) & 033333333333) - ((x >> 2) & 011111111111);
++  return ((n + (n >> 3)) & 030707070707) % 63;
++}
++#endif	/* HAVE_BUILTIN_POPCOUNT */
++
++
++#endif	/* eu-config.h */
 --- elfutils/lib/Makefile.am
 +++ elfutils/lib/Makefile.am
 @@ -25,12 +25,13 @@
@@ -298,7 +642,7 @@
  noinst_LIBRARIES = libeu.a
 --- elfutils/lib/Makefile.in
 +++ elfutils/lib/Makefile.in
-@@ -93,6 +93,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -94,6 +94,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  LDFLAGS = @LDFLAGS@
@@ -306,7 +650,7 @@
  LEX = @LEX@
  LEXLIB = @LEXLIB@
  LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -122,6 +123,7 @@ SHELL = @SHELL@
+@@ -123,6 +124,7 @@ SHELL = @SHELL@
  STRIP = @STRIP@
  USE_NLS = @USE_NLS@
  VERSION = @VERSION@
@@ -314,9 +658,9 @@
  XGETTEXT = @XGETTEXT@
  XGETTEXT_015 = @XGETTEXT_015@
  YACC = @YACC@
-@@ -179,9 +181,9 @@ top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
+@@ -181,9 +183,9 @@ top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
  @MUDFLAP_FALSE at AM_CFLAGS = -fpic -Wall -Wshadow -Werror -Wunused \
 - at MUDFLAP_FALSE@	-Wextra $($(*F)_CFLAGS)
 + at MUDFLAP_FALSE@	$(WEXTRA) $($(*F)_CFLAGS)
@@ -328,7 +672,7 @@
  libeu_a_SOURCES = xstrndup.c xmalloc.c next_prime.c \
 --- elfutils/libasm/ChangeLog
 +++ elfutils/libasm/ChangeLog
-@@ -58,6 +58,11 @@
+@@ -63,6 +63,11 @@
  	* asm_error.c: Add new error ASM_E_IOERROR.
  	* libasmP.h: Add ASM_E_IOERROR definition.
  
@@ -359,7 +703,7 @@
  	   -I$(top_srcdir)/lib
 --- elfutils/libasm/Makefile.in
 +++ elfutils/libasm/Makefile.in
-@@ -127,6 +127,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -128,6 +128,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  LDFLAGS = @LDFLAGS@
@@ -367,7 +711,7 @@
  LEX = @LEX@
  LEXLIB = @LEXLIB@
  LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -156,6 +157,7 @@ SHELL = @SHELL@
+@@ -157,6 +158,7 @@ SHELL = @SHELL@
  STRIP = @STRIP@
  USE_NLS = @USE_NLS@
  VERSION = 1
@@ -375,9 +719,9 @@
  XGETTEXT = @XGETTEXT@
  XGETTEXT_015 = @XGETTEXT_015@
  YACC = @YACC@
-@@ -213,9 +215,9 @@ top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
+@@ -215,9 +217,9 @@ top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
  @MUDFLAP_FALSE at AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Werror -Wunused \
 - at MUDFLAP_FALSE@	-Wextra -Wformat=2
 + at MUDFLAP_FALSE@	$(WEXTRA) -Wformat=2
@@ -389,7 +733,19 @@
  	   -I$(top_srcdir)/lib
 --- elfutils/libcpu/ChangeLog
 +++ elfutils/libcpu/ChangeLog
-@@ -307,6 +307,11 @@
+@@ -1,3 +1,11 @@
++2009-01-23  Roland McGrath  <roland at redhat.com>
++
++	* i386_disasm.c (i386_disasm): Add abort after assert-constant for old
++	compilers that don't realize it's noreturn.
++
++	* Makefile.am (i386_parse_CFLAGS): Use quotes around command
++	substitution that can produce leading whitespace.
++
+ 2009-01-01  Ulrich Drepper  <drepper at redhat.com>
+ 
+ 	* i386_parse.y (instrtable_out): Optimize match_data table by not
+@@ -324,6 +332,11 @@
  	* defs/i386.doc: New file.
  	* defs/x86_64: New file.
  
@@ -401,8 +757,26 @@
  2005-02-15  Ulrich Drepper  <drepper at redhat.com>
  
  	* 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
+ 
+ 			default:
+ 			  assert (! "INVALID not handled");
++			  abort ();
+ 			}
+ 		    }
+ 		  else
 --- elfutils/libcpu/Makefile.am
 +++ elfutils/libcpu/Makefile.am
+@@ -1,6 +1,6 @@
+ ## Process this file with automake to create Makefile.in
+ ##
+-## Copyright (C) 2002, 2004, 2005, 2007, 2008 Red Hat, Inc.
++## Copyright (C) 2002, 2004, 2005, 2007, 2008, 2009 Red Hat, Inc.
+ ## This file is part of Red Hat elfutils.
+ ##
+ ## Red Hat elfutils is free software; you can redistribute it and/or modify
 @@ -30,7 +30,8 @@ AM_CFLAGS = -fmudflap
  else
  AM_CFLAGS =
@@ -413,9 +787,18 @@
  	     $($(*F)_CFLAGS) \
  	     $(if $($(*F)_no_Werror),,-Werror)
  INCLUDES = -I$(srcdir) -I$(srcdir)/../lib -I$(srcdir)/../libelf \
+@@ -70,7 +71,7 @@ libeu = ../lib/libeu.a
+ 
+ i386_lex_CFLAGS = -Wno-unused-label -Wno-unused-function -Wno-sign-compare
+ i386_parse.o: i386_parse.c i386.mnemonics
+-i386_parse_CFLAGS = -DNMNES=$$(wc -l < i386.mnemonics)
++i386_parse_CFLAGS = -DNMNES="`wc -l < i386.mnemonics`"
+ i386_lex.o: i386_parse.h
+ i386_gendis_LDADD = $(libeu) -lm $(libmudflap)
+ 
 --- elfutils/libcpu/Makefile.in
 +++ elfutils/libcpu/Makefile.in
-@@ -109,6 +109,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -110,6 +110,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  LDFLAGS = @LDFLAGS@
@@ -423,7 +806,7 @@
  LEX = @LEX@
  LEXLIB = @LEXLIB@
  LEX_OUTPUT_ROOT = lex.$(<F:lex.l=)
-@@ -138,6 +139,7 @@ SHELL = @SHELL@
+@@ -139,6 +140,7 @@ SHELL = @SHELL@
  STRIP = @STRIP@
  USE_NLS = @USE_NLS@
  VERSION = @VERSION@
@@ -431,10 +814,10 @@
  XGETTEXT = @XGETTEXT@
  XGETTEXT_015 = @XGETTEXT_015@
  YACC = @YACC@
-@@ -194,10 +196,10 @@ target_alias = @target_alias@
- top_build_prefix = @top_build_prefix@
+@@ -196,10 +198,10 @@ top_build_prefix = @top_build_prefix@
  top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
 - at MUDFLAP_FALSE@AM_CFLAGS = -Wall -Wshadow -Wunused -Wextra -std=gnu99 \
 - at MUDFLAP_FALSE@	-fpic $($(*F)_CFLAGS) $(if \
 + at MUDFLAP_FALSE@AM_CFLAGS = -Wall -Wshadow -Wunused $(WEXTRA) \
@@ -445,9 +828,27 @@
  @MUDFLAP_TRUE@	-std=gnu99 -fpic $($(*F)_CFLAGS) $(if \
  @MUDFLAP_TRUE@	$($(*F)_no_Werror),,-Werror)
  INCLUDES = -I$(srcdir) -I$(srcdir)/../lib -I$(srcdir)/../libelf \
+@@ -215,7 +217,7 @@ i386_gendis_SOURCES = i386_gendis.c i386
+ i386_lex_no_Werror = yes
+ libeu = ../lib/libeu.a
+ i386_lex_CFLAGS = -Wno-unused-label -Wno-unused-function -Wno-sign-compare
+-i386_parse_CFLAGS = -DNMNES=$$(wc -l < i386.mnemonics)
++i386_parse_CFLAGS = -DNMNES="`wc -l < i386.mnemonics`"
+ i386_gendis_LDADD = $(libeu) -lm $(libmudflap)
+ noinst_HEADERS = memory-access.h i386_parse.h i386_data.h
+ EXTRA_DIST = defs/i386
 --- elfutils/libdw/ChangeLog
 +++ elfutils/libdw/ChangeLog
-@@ -495,6 +495,11 @@
+@@ -1,3 +1,8 @@
++2009-01-23  Roland McGrath  <roland at redhat.com>
++
++	* Makefile.am ($(srcdir)/known-dwarf.h): Target renamed back.
++	Put these rules under if MAINTAINER_MODE.
++
+ 2009-01-22  Roland McGrath  <roland at redhat.com>
+ 
+ 	* dwarf.h: Add DW_OP_GNU_encoded_addr.
+@@ -542,6 +547,11 @@
  
  2005-05-31  Roland McGrath  <roland at redhat.com>
  
@@ -478,9 +879,26 @@
  INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../libelf -I.. -I$(srcdir)/../lib
  VERSION = 1
  
+@@ -85,11 +86,13 @@ libdw_a_SOURCES = dwarf_begin.c dwarf_be
+ 		  libdw_visit_scopes.c \
+ 		  dwarf_entry_breakpoints.c
+ 
+-BUILT_SOURCES = known-dwarf.h
+-CLEANFILES = known-dwarf.h
+-known-dwarf.h: $(top_srcdir)/config/known-dwarf.awk $(srcdir)/dwarf.h
++if MAINTAINER_MODE
++BUILT_SOURCES = $(srcdir)/known-dwarf.h
++MAINTAINERCLEANFILES = $(srcdir)/known-dwarf.h
++$(srcdir)/known-dwarf.h: $(top_srcdir)/config/known-dwarf.awk $(srcdir)/dwarf.h
+ 	$(AWK) -f $^ > $@.new
+ 	mv -f $@.new $@
++endif
+ 
+ if !MUDFLAP
+ libdw_pic_a_SOURCES =
 --- elfutils/libdw/Makefile.in
 +++ elfutils/libdw/Makefile.in
-@@ -164,6 +164,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -165,6 +165,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  LDFLAGS = @LDFLAGS@
@@ -488,7 +906,7 @@
  LEX = @LEX@
  LEXLIB = @LEXLIB@
  LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -193,6 +194,7 @@ SHELL = @SHELL@
+@@ -194,6 +195,7 @@ SHELL = @SHELL@
  STRIP = @STRIP@
  USE_NLS = @USE_NLS@
  VERSION = 1
@@ -496,9 +914,9 @@
  XGETTEXT = @XGETTEXT@
  XGETTEXT_015 = @XGETTEXT_015@
  YACC = @YACC@
-@@ -250,9 +252,10 @@ top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
+@@ -252,9 +254,10 @@ top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
  @MUDFLAP_FALSE at AM_CFLAGS = $(am__append_1) -Wall -Werror -Wshadow \
 - at MUDFLAP_FALSE@	-Wunused -Wformat=2 -Wextra -std=gnu99
 + at MUDFLAP_FALSE@	-Wunused -Wformat=2 $(WEXTRA) -std=gnu99
@@ -509,9 +927,49 @@
  INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../libelf -I.. -I$(srcdir)/../lib
  COMPILE.os = $(filter-out -fprofile-arcs, $(filter-out -ftest-coverage, \
  						       $(COMPILE)))
+@@ -299,8 +302,8 @@ libdw_a_SOURCES = dwarf_begin.c dwarf_be
+ 		  libdw_visit_scopes.c \
+ 		  dwarf_entry_breakpoints.c
+ 
+-BUILT_SOURCES = known-dwarf.h
+-CLEANFILES = known-dwarf.h
++ at MAINTAINER_MODE_TRUE@BUILT_SOURCES = $(srcdir)/known-dwarf.h
++ at MAINTAINER_MODE_TRUE@MAINTAINERCLEANFILES = $(srcdir)/known-dwarf.h
+ @MUDFLAP_FALSE at libdw_pic_a_SOURCES = 
+ @MUDFLAP_FALSE at am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os)
+ @MUDFLAP_FALSE at libdw_so_SOURCES = 
+@@ -635,7 +638,6 @@ mostlyclean-generic:
+ 	-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+ 
+ clean-generic:
+-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+ 
+ distclean-generic:
+ 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+@@ -644,6 +646,7 @@ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+ 	@echo "it deletes files that may require special tools to rebuild."
+ 	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
++	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+ clean: clean-am
+ 
+ clean-am: clean-generic clean-libLIBRARIES clean-noinstLIBRARIES \
+@@ -720,9 +723,9 @@ uninstall-am: uninstall-includeHEADERS u
+ 	ps ps-am tags uninstall uninstall-am uninstall-includeHEADERS \
+ 	uninstall-libLIBRARIES uninstall-pkgincludeHEADERS
+ 
+-known-dwarf.h: $(top_srcdir)/config/known-dwarf.awk $(srcdir)/dwarf.h
+-	$(AWK) -f $^ > $@.new
+-	mv -f $@.new $@
++ at MAINTAINER_MODE_TRUE@$(srcdir)/known-dwarf.h: $(top_srcdir)/config/known-dwarf.awk $(srcdir)/dwarf.h
++ at MAINTAINER_MODE_TRUE@	$(AWK) -f $^ > $@.new
++ at MAINTAINER_MODE_TRUE@	mv -f $@.new $@
+ @MUDFLAP_FALSE at libdw.so: $(srcdir)/libdw.map libdw_pic.a \
+ @MUDFLAP_FALSE@	  ../libdwfl/libdwfl_pic.a ../libebl/libebl.a \
+ @MUDFLAP_FALSE@	  ../libelf/libelf.so
 --- elfutils/libdwfl/ChangeLog
 +++ elfutils/libdwfl/ChangeLog
-@@ -936,6 +936,11 @@
+@@ -987,6 +987,11 @@
  
  2005-07-21  Roland McGrath  <roland at redhat.com>
  
@@ -542,7 +1000,7 @@
  VERSION = 1
 --- elfutils/libdwfl/Makefile.in
 +++ elfutils/libdwfl/Makefile.in
-@@ -131,6 +131,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -155,6 +155,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  LDFLAGS = @LDFLAGS@
@@ -550,7 +1008,7 @@
  LEX = @LEX@
  LEXLIB = @LEXLIB@
  LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -160,6 +161,7 @@ SHELL = @SHELL@
+@@ -184,6 +185,7 @@ SHELL = @SHELL@
  STRIP = @STRIP@
  USE_NLS = @USE_NLS@
  VERSION = 1
@@ -558,9 +1016,9 @@
  XGETTEXT = @XGETTEXT@
  XGETTEXT_015 = @XGETTEXT_015@
  YACC = @YACC@
-@@ -217,9 +219,9 @@ top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
+@@ -242,9 +244,9 @@ top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
  @MUDFLAP_FALSE at AM_CFLAGS = -Wall -Werror -Wshadow -Wunused -Wformat=2 \
 - at MUDFLAP_FALSE@	-Wextra -std=gnu99
 + at MUDFLAP_FALSE@	$(WEXTRA) -std=gnu99
@@ -603,7 +1061,7 @@
  INCLUDES = -I$(srcdir) -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw \
 --- elfutils/libebl/Makefile.in
 +++ elfutils/libebl/Makefile.in
-@@ -123,6 +123,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -124,6 +124,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  LDFLAGS = @LDFLAGS@
@@ -611,7 +1069,7 @@
  LEX = @LEX@
  LEXLIB = @LEXLIB@
  LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -152,6 +153,7 @@ SHELL = @SHELL@
+@@ -153,6 +154,7 @@ SHELL = @SHELL@
  STRIP = @STRIP@
  USE_NLS = @USE_NLS@
  VERSION = 1
@@ -619,9 +1077,9 @@
  XGETTEXT = @XGETTEXT@
  XGETTEXT_015 = @XGETTEXT_015@
  YACC = @YACC@
-@@ -209,9 +211,9 @@ top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
+@@ -211,9 +213,9 @@ top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
  @MUDFLAP_FALSE at AM_CFLAGS = -fpic -Wall -Wshadow -Werror -Wunused \
 - at MUDFLAP_FALSE@	-Wextra -Wformat=2 -std=gnu99
 + at MUDFLAP_FALSE@	$(WEXTRA) -Wformat=2 -std=gnu99
@@ -633,18 +1091,18 @@
  
 --- elfutils/libelf/ChangeLog
 +++ elfutils/libelf/ChangeLog
-@@ -477,6 +477,11 @@
- 	If section content hasn't been read yet, do it before looking for the
- 	block size.  If no section data present, infer size of section header.
+@@ -515,6 +515,11 @@
+ 
+ 	* elf.h: Update from glibc.
  
 +2005-05-31  Roland McGrath  <roland at redhat.com>
 +
 +	* Makefile.am (WEXTRA): New variable, substituted by configure.
 +	(AM_CFLAGS): Use it in place of -Wextra.
 +
- 2005-05-11  Ulrich Drepper  <drepper at redhat.com>
+ 2005-05-08  Roland McGrath  <roland at redhat.com>
  
- 	* elf.h: Update again.
+ 	* elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now.
 --- elfutils/libelf/common.h
 +++ elfutils/libelf/common.h
 @@ -160,7 +160,7 @@ libelf_release_all (Elf *elf)
@@ -686,7 +1144,7 @@
  GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include)
 --- elfutils/libelf/Makefile.in
 +++ elfutils/libelf/Makefile.in
-@@ -171,6 +171,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -172,6 +172,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  LDFLAGS = @LDFLAGS@
@@ -694,7 +1152,7 @@
  LEX = @LEX@
  LEXLIB = @LEXLIB@
  LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -200,6 +201,7 @@ SHELL = @SHELL@
+@@ -201,6 +202,7 @@ SHELL = @SHELL@
  STRIP = @STRIP@
  USE_NLS = @USE_NLS@
  VERSION = 1
@@ -702,9 +1160,9 @@
  XGETTEXT = @XGETTEXT@
  XGETTEXT_015 = @XGETTEXT_015@
  YACC = @YACC@
-@@ -257,10 +259,10 @@ top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
+@@ -259,10 +261,10 @@ top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
  @MUDFLAP_FALSE at AM_CFLAGS = $(am__append_1) -Wall -Wshadow -Werror \
 - at MUDFLAP_FALSE@	-Wunused -Wextra -Wformat=2 -std=gnu99 \
 + at MUDFLAP_FALSE@	-Wunused $(WEXTRA) -Wformat=2 -std=gnu99 \
@@ -717,7 +1175,7 @@
  GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include)
 --- elfutils/m4/Makefile.in
 +++ elfutils/m4/Makefile.in
-@@ -71,6 +71,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -72,6 +72,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  LDFLAGS = @LDFLAGS@
@@ -725,7 +1183,7 @@
  LEX = @LEX@
  LEXLIB = @LEXLIB@
  LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -100,6 +101,7 @@ SHELL = @SHELL@
+@@ -101,6 +102,7 @@ SHELL = @SHELL@
  STRIP = @STRIP@
  USE_NLS = @USE_NLS@
  VERSION = @VERSION@
@@ -735,7 +1193,7 @@
  YACC = @YACC@
 --- elfutils/Makefile.in
 +++ elfutils/Makefile.in
-@@ -109,6 +109,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -110,6 +110,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  LDFLAGS = @LDFLAGS@
@@ -743,7 +1201,7 @@
  LEX = @LEX@
  LEXLIB = @LEXLIB@
  LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -138,6 +139,7 @@ SHELL = @SHELL@
+@@ -139,6 +140,7 @@ SHELL = @SHELL@
  STRIP = @STRIP@
  USE_NLS = @USE_NLS@
  VERSION = @VERSION@
@@ -751,9 +1209,38 @@
  XGETTEXT = @XGETTEXT@
  XGETTEXT_015 = @XGETTEXT_015@
  YACC = @YACC@
+--- elfutils/src/addr2line.c
++++ elfutils/src/addr2line.c
+@@ -376,7 +376,7 @@ handle_address (const char *string, Dwfl
+       bool parsed = false;
+       int n;
+       char *name = NULL;
+-      if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &n) == 2
++      if (sscanf (string, "(%a[^)])%" PRIiMAX "%n", &name, &addr, &n) == 2
+ 	  && string[n] == '\0')
+ 	{
+ 	  /* It was (section)+offset.  This makes sense if there is
+@@ -417,7 +417,7 @@ handle_address (const char *string, Dwfl
+ 		}
+ 	    }
+ 	}
+-      else if (sscanf (string, "%m[^-+]%" PRIiMAX "%n", &name, &addr, &n) == 2
++      else if (sscanf (string, "%a[^-+]%" PRIiMAX "%n", &name, &addr, &n) == 2
+ 	       && string[n] == '\0')
+ 	{
+ 	  /* It was symbol+offset.  */
 --- elfutils/src/ChangeLog
 +++ elfutils/src/ChangeLog
-@@ -76,6 +76,11 @@
+@@ -12,6 +12,8 @@
+ 	* readelf.c (print_debug_frame_section): Use t instead of j formats
+ 	for ptrdiff_t OFFSET.
+ 
++	* addr2line.c (handle_address): Use %a instead of %m for compatibility.
++
+ 2009-01-21  Ulrich Drepper  <drepper at redhat.com>
+ 
+ 	* elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
+@@ -195,6 +197,11 @@
  	that matches its PT_LOAD's p_flags &~ PF_W.  On sparc, PF_X really
  	is valid in RELRO.
  
@@ -765,7 +1252,7 @@
  2008-02-29  Roland McGrath  <roland at redhat.com>
  
  	* readelf.c (print_attributes): Add a cast.
-@@ -327,6 +332,8 @@
+@@ -446,6 +453,8 @@
  
  	* readelf.c (hex_dump): Fix rounding error in whitespace calculation.
  
@@ -774,7 +1261,7 @@
  2007-10-15  Roland McGrath  <roland at redhat.com>
  
  	* make-debug-archive.in: New file.
-@@ -766,6 +773,10 @@
+@@ -885,6 +894,10 @@
  	* elflint.c (valid_e_machine): Add EM_ALPHA.
  	Reported by Christian Aichinger <Greek0 at gmx.net>.
  
@@ -785,7 +1272,7 @@
  2006-08-08  Ulrich Drepper  <drepper at redhat.com>
  
  	* elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
-@@ -842,6 +853,10 @@
+@@ -961,6 +974,10 @@
  	* Makefile.am: Add hacks to create dependency files for non-generic
  	linker.
  
@@ -796,7 +1283,7 @@
  2006-06-12  Ulrich Drepper  <drepper at redhat.com>
  
  	* ldgeneric.c (ld_generic_generate_sections): Don't create .interp
-@@ -1190,6 +1205,11 @@
+@@ -1309,6 +1326,11 @@
  	* readelf.c (print_debug_loc_section): Fix indentation for larger
  	address size.
  
@@ -810,7 +1297,7 @@
  	* readelf.c (print_debug_line_section): Print section offset of each
 --- elfutils/src/findtextrel.c
 +++ elfutils/src/findtextrel.c
-@@ -488,7 +488,11 @@ ptrcompare (const void *p1, const void *
+@@ -490,7 +490,11 @@ ptrcompare (const void *p1, const void *
  
  
  static void
@@ -839,10 +1326,10 @@
  	     $(if $($(*F)_no_Werror),,-Werror) \
 -	     $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
 +	     $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \
- 	     $(if $($(*F)_no_Wformat),,-Wformat=2) $(CFLAGS_$(*F))
+ 	     $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(CFLAGS_$(*F))
  
  INCLUDES = -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
-@@ -111,6 +112,9 @@ strings_no_Wformat = yes
+@@ -112,6 +113,9 @@ addr2line_no_Wformat = yes
  # XXX While the file is not finished, don't warn about this
  ldgeneric_no_Wunused = yes
  
@@ -854,7 +1341,7 @@
  size_LDADD = $(libelf) $(libeu) $(libmudflap)
 --- elfutils/src/Makefile.in
 +++ elfutils/src/Makefile.in
-@@ -201,6 +201,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -202,6 +202,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  LDFLAGS = @LDFLAGS@
@@ -862,7 +1349,7 @@
  LEX = @LEX@
  LEXLIB = @LEXLIB@
  LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -230,6 +231,7 @@ SHELL = @SHELL@
+@@ -231,6 +232,7 @@ SHELL = @SHELL@
  STRIP = @STRIP@
  USE_NLS = @USE_NLS@
  VERSION = @VERSION@
@@ -870,24 +1357,24 @@
  XGETTEXT = @XGETTEXT@
  XGETTEXT_015 = @XGETTEXT_015@
  YACC = @YACC@ -d
-@@ -289,13 +291,13 @@ top_srcdir = @top_srcdir@
+@@ -291,13 +293,13 @@ zip_LIBS = @zip_LIBS@
  @MUDFLAP_FALSE at AM_CFLAGS = -Wall -Wshadow -std=gnu99 \
  @MUDFLAP_FALSE@	$(native_ld_cflags) $(if \
  @MUDFLAP_FALSE@	$($(*F)_no_Werror),,-Werror) $(if \
 - at MUDFLAP_FALSE@	$($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
 + at MUDFLAP_FALSE@	$($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
- @MUDFLAP_FALSE@	$($(*F)_no_Wformat),,-Wformat=2) \
+ @MUDFLAP_FALSE@	$($(*F)_no_Wformat),-Wno-format,-Wformat=2) \
  @MUDFLAP_FALSE@	$(CFLAGS_$(*F))
  @MUDFLAP_TRUE at AM_CFLAGS = -fmudflap -Wall -Wshadow -std=gnu99 \
  @MUDFLAP_TRUE@	$(native_ld_cflags) $(if \
  @MUDFLAP_TRUE@	$($(*F)_no_Werror),,-Werror) $(if \
 - at MUDFLAP_TRUE@	$($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
 + at MUDFLAP_TRUE@	$($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
- @MUDFLAP_TRUE@	$($(*F)_no_Wformat),,-Wformat=2) $(CFLAGS_$(*F))
+ @MUDFLAP_TRUE@	$($(*F)_no_Wformat),-Wno-format,-Wformat=2) \
+ @MUDFLAP_TRUE@	$(CFLAGS_$(*F))
  INCLUDES = -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
- 	   -I$(srcdir)/../libdw -I$(srcdir)/../libdwfl \
-@@ -339,6 +341,9 @@ size_no_Wformat = yes
- strings_no_Wformat = yes
+@@ -343,6 +345,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
 +
@@ -898,7 +1385,7 @@
  size_LDADD = $(libelf) $(libeu) $(libmudflap)
 --- elfutils/src/readelf.c
 +++ elfutils/src/readelf.c
-@@ -6424,7 +6424,7 @@ dump_archive_index (Elf *elf, const char
+@@ -7385,7 +7385,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))
@@ -988,7 +1475,7 @@
  cannot set access and modification date of '%s'"), fname);
 --- elfutils/tests/ChangeLog
 +++ elfutils/tests/ChangeLog
-@@ -84,6 +84,8 @@
+@@ -95,6 +95,8 @@
  
  2008-01-21  Roland McGrath  <roland at redhat.com>
  
@@ -997,7 +1484,7 @@
  	* testfile45.S.bz2: Add tests for cltq, cqto.
  	* testfile45.expect.bz2: Adjust.
  
-@@ -792,6 +794,11 @@
+@@ -803,6 +805,11 @@
  	* Makefile.am (TESTS): Add run-elflint-test.sh.
  	(EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2.
  
@@ -1040,7 +1527,7 @@
  endif
 --- elfutils/tests/Makefile.in
 +++ elfutils/tests/Makefile.in
-@@ -341,6 +341,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -342,6 +342,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  LDFLAGS = @LDFLAGS@
@@ -1048,7 +1535,7 @@
  LEX = @LEX@
  LEXLIB = @LEXLIB@
  LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -370,6 +371,7 @@ SHELL = @SHELL@
+@@ -371,6 +372,7 @@ SHELL = @SHELL@
  STRIP = @STRIP@
  USE_NLS = @USE_NLS@
  VERSION = @VERSION@
@@ -1056,10 +1543,10 @@
  XGETTEXT = @XGETTEXT@
  XGETTEXT_015 = @XGETTEXT_015@
  YACC = @YACC@
-@@ -426,10 +428,10 @@ target_alias = @target_alias@
- top_build_prefix = @top_build_prefix@
+@@ -428,10 +430,10 @@ top_build_prefix = @top_build_prefix@
  top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
 - at MUDFLAP_FALSE@AM_CFLAGS = -Wall -Werror -Wextra -std=gnu99 \
 + at MUDFLAP_FALSE@AM_CFLAGS = -Wall -Werror $(WEXTRA) -std=gnu99 \
  @MUDFLAP_FALSE@	    $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2)

elfutils-robustify.patch:

Index: elfutils-robustify.patch
===================================================================
RCS file: /cvs/pkgs/rpms/elfutils/F-10/elfutils-robustify.patch,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- elfutils-robustify.patch	27 Aug 2008 08:19:15 -0000	1.12
+++ elfutils-robustify.patch	24 Jan 2009 01:22:09 -0000	1.13
@@ -1,72 +1,57 @@
-src/
-2005-06-09  Roland McGrath  <roland at redhat.com>
-
-	* readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link.
-	(handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise.
-	(handle_scngrp): Check for bogus sh_info.
-
-	* strip.c (handle_elf): Check for bogus values in sh_link, sh_info,
-	st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data.
-	Don't use assert on input values, instead bail with "illformed" error.
-
-2005-05-17  Jakub Jelinek  <jakub at redhat.com>
-
-libelf/
-	* elf32_getphdr.c (elfw2(LIBELFBITS,getphdr)): Check if program header
-	table fits into object's bounds.
-	* elf_getshstrndx.c (elf_getshstrndx): Add elf->start_offset to
-	elf->map_address.  Check if first section header fits into object's
-	bounds.
-	* elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)):
-	Check if section header table fits into object's bounds.
-	* elf_begin.c (get_shnum): Ensure section headers fits into
-	object's bounds.
-	(file_read_elf): Make sure scncnt is small enough to allocate both
-	ElfXX_Shdr and Elf_Scn array.  Make sure section and program header
-	tables fit into object's bounds.  Avoid memory leak on failure.
-
-src/
-	* elflint.c (check_hash): Don't check entries beyond end of section.
-	(check_note): Don't crash if gelf_rawchunk fails.
-	(section_name): Return <invalid> if gelf_getshdr returns NULL.
-
-2005-05-14  Jakub Jelinek  <jakub at redhat.com>
-
-libelf/
-	* libelfP.h (INVALID_NDX): Define.
-	* gelf_getdyn.c (gelf_getdyn): Use it.  Remove ndx < 0 test if any.
-	* gelf_getlib.c (gelf_getlib): Likewise.
-	* gelf_getmove.c (gelf_getmove): Likewise.
-	* gelf_getrel.c (gelf_getrel): Likewise.
-	* gelf_getrela.c (gelf_getrela): Likewise.
-	* gelf_getsym.c (gelf_getsym): Likewise.
-	* gelf_getsyminfo.c (gelf_getsyminfo): Likewise.
-	* gelf_getsymshndx.c (gelf_getsymshndx): Likewise.
-	* gelf_getversym.c (gelf_getversym): Likewise.
-	* gelf_update_dyn.c (gelf_update_dyn): Likewise.
-	* gelf_update_lib.c (gelf_update_lib): Likewise.
-	* gelf_update_move.c (gelf_update_move): Likewise.
-	* gelf_update_rel.c (gelf_update_rel): Likewise.
-	* gelf_update_rela.c (gelf_update_rela): Likewise.
-	* gelf_update_sym.c (gelf_update_sym): Likewise.
-	* gelf_update_syminfo.c (gelf_update_syminfo): Likewise.
-	* gelf_update_symshndx.c (gelf_update_symshndx): Likewise.
-	* gelf_update_versym.c (gelf_update_versym): Likewise.
-	* elf_newscn.c (elf_newscn): Check for overflow.
-	* elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Likewise.
-	(__elfw2(LIBELFBITS,updatefile)): Likewise.
-	* elf_begin.c (file_read_elf): Likewise.
-	* elf32_newphdr.c (elfw2(LIBELFBITS,newphdr)): Likewise.
-	* elf_getarsym.c (elf_getarsym): Likewise.
-	* elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)): Likewise.
-src/
-	* elflint.c (section_name): Return "<invalid>" instead of
-	crashing on invalid section name.
-	(check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic,
-	check_symtab_shndx, check_hash, check_versym): Robustify.
-
---- elfutils-0.136/libelf/elf32_getphdr.c.robustify
-+++ elfutils-0.136/libelf/elf32_getphdr.c
+--- elfutils/libelf/ChangeLog
++++ elfutils/libelf/ChangeLog
+@@ -507,6 +507,49 @@
+ 	If section content hasn't been read yet, do it before looking for the
+ 	block size.  If no section data present, infer size of section header.
+ 
++2005-05-17  Jakub Jelinek  <jakub at redhat.com>
++
++	* elf32_getphdr.c (elfw2(LIBELFBITS,getphdr)): Check if program header
++	table fits into object's bounds.
++	* elf_getshstrndx.c (elf_getshstrndx): Add elf->start_offset to
++	elf->map_address.  Check if first section header fits into object's
++	bounds.
++	* elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)):
++	Check if section header table fits into object's bounds.
++	* elf_begin.c (get_shnum): Ensure section headers fits into
++	object's bounds.
++	(file_read_elf): Make sure scncnt is small enough to allocate both
++	ElfXX_Shdr and Elf_Scn array.  Make sure section and program header
++	tables fit into object's bounds.  Avoid memory leak on failure.
++
++2005-05-14  Jakub Jelinek  <jakub at redhat.com>
++
++	* libelfP.h (INVALID_NDX): Define.
++	* gelf_getdyn.c (gelf_getdyn): Use it.  Remove ndx < 0 test if any.
++	* gelf_getlib.c (gelf_getlib): Likewise.
++	* gelf_getmove.c (gelf_getmove): Likewise.
++	* gelf_getrel.c (gelf_getrel): Likewise.
++	* gelf_getrela.c (gelf_getrela): Likewise.
++	* gelf_getsym.c (gelf_getsym): Likewise.
++	* gelf_getsyminfo.c (gelf_getsyminfo): Likewise.
++	* gelf_getsymshndx.c (gelf_getsymshndx): Likewise.
++	* gelf_getversym.c (gelf_getversym): Likewise.
++	* gelf_update_dyn.c (gelf_update_dyn): Likewise.
++	* gelf_update_lib.c (gelf_update_lib): Likewise.
++	* gelf_update_move.c (gelf_update_move): Likewise.
++	* gelf_update_rel.c (gelf_update_rel): Likewise.
++	* gelf_update_rela.c (gelf_update_rela): Likewise.
++	* gelf_update_sym.c (gelf_update_sym): Likewise.
++	* gelf_update_syminfo.c (gelf_update_syminfo): Likewise.
++	* gelf_update_symshndx.c (gelf_update_symshndx): Likewise.
++	* gelf_update_versym.c (gelf_update_versym): Likewise.
++	* elf_newscn.c (elf_newscn): Check for overflow.
++	* elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Likewise.
++	(__elfw2(LIBELFBITS,updatefile)): Likewise.
++	* elf_begin.c (file_read_elf): Likewise.
++	* elf32_newphdr.c (elfw2(LIBELFBITS,newphdr)): Likewise.
++	* elf_getarsym.c (elf_getarsym): Likewise.
++	* elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)): Likewise.
+ 2005-05-11  Ulrich Drepper  <drepper at redhat.com>
+ 
+ 	* elf.h: Update again.
+--- elfutils/libelf/elf32_getphdr.c
++++ elfutils/libelf/elf32_getphdr.c
 @@ -105,6 +105,16 @@ __elfw2(LIBELFBITS,getphdr_wrlock) (elf)
  
        if (elf->map_address != NULL)
@@ -84,8 +69,8 @@
  	  /* All the data is already mapped.  Use it.  */
  	  void *file_phdr = ((char *) elf->map_address
  			     + elf->start_offset + ehdr->e_phoff);
---- elfutils-0.136/libelf/elf32_getshdr.c.robustify
-+++ elfutils-0.136/libelf/elf32_getshdr.c
+--- elfutils/libelf/elf32_getshdr.c
++++ elfutils/libelf/elf32_getshdr.c
 @@ -1,5 +1,5 @@
  /* Return section header.
 -   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2007 Red Hat, Inc.
@@ -93,7 +78,7 @@
     This file is part of Red Hat elfutils.
     Written by Ulrich Drepper <drepper at redhat.com>, 1998.
  
-@@ -81,7 +81,8 @@ load_shdr_rwlock (Elf_Scn *scn)
+@@ -81,7 +81,8 @@ load_shdr_wrlock (Elf_Scn *scn)
      goto out;
  
    size_t shnum;
@@ -103,7 +88,7 @@
      goto out;
    size_t size = shnum * sizeof (ElfW2(LIBELFBITS,Shdr));
  
-@@ -98,6 +99,16 @@ load_shdr_rwlock (Elf_Scn *scn)
+@@ -98,6 +99,16 @@ load_shdr_wrlock (Elf_Scn *scn)
  
    if (elf->map_address != NULL)
      {
@@ -120,8 +105,8 @@
        ElfW2(LIBELFBITS,Shdr) *notcvt;
  
        /* All the data is already mapped.  If we could use it
---- elfutils-0.136/libelf/elf32_newphdr.c.robustify
-+++ elfutils-0.136/libelf/elf32_newphdr.c
+--- elfutils/libelf/elf32_newphdr.c
++++ elfutils/libelf/elf32_newphdr.c
 @@ -124,6 +124,12 @@ elfw2(LIBELFBITS,newphdr) (elf, count)
    else if (elf->state.ELFW(elf,LIBELFBITS).ehdr->e_phnum != count
  	   || elf->state.ELFW(elf,LIBELFBITS).phdr == NULL)
@@ -135,9 +120,9 @@
        /* Allocate a new program header with the appropriate number of
  	 elements.  */
        result = (ElfW2(LIBELFBITS,Phdr) *)
---- elfutils-0.136/libelf/elf32_updatefile.c.robustify
-+++ elfutils-0.136/libelf/elf32_updatefile.c
-@@ -212,6 +212,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf
+--- elfutils/libelf/elf32_updatefile.c
++++ elfutils/libelf/elf32_updatefile.c
+@@ -220,6 +220,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf
    /* Write all the sections.  Well, only those which are modified.  */
    if (shnum > 0)
      {
@@ -147,7 +132,7 @@
        Elf_ScnList *list = &elf->state.ELFW(elf,LIBELFBITS).scns;
        Elf_Scn **scns = (Elf_Scn **) alloca (shnum * sizeof (Elf_Scn *));
        char *const shdr_start = ((char *) elf->map_address + elf->start_offset
-@@ -582,6 +585,10 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf
+@@ -633,6 +636,10 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf
    /* Write all the sections.  Well, only those which are modified.  */
    if (shnum > 0)
      {
@@ -158,9 +143,9 @@
        off_t shdr_offset = elf->start_offset + ehdr->e_shoff;
  #if EV_NUM != 2
        xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR];
---- elfutils-0.136/libelf/elf_begin.c.robustify
-+++ elfutils-0.136/libelf/elf_begin.c
-@@ -155,7 +155,8 @@ get_shnum (void *map_address, unsigned c
+--- elfutils/libelf/elf_begin.c
++++ elfutils/libelf/elf_begin.c
+@@ -165,7 +165,8 @@ get_shnum (void *map_address, unsigned c
  
        if (unlikely (result == 0) && ehdr.e32->e_shoff != 0)
  	{
@@ -170,7 +155,7 @@
  	    /* Cannot read the first section header.  */
  	    return 0;
  
-@@ -203,7 +204,8 @@ get_shnum (void *map_address, unsigned c
+@@ -213,7 +214,8 @@ get_shnum (void *map_address, unsigned c
  
        if (unlikely (result == 0) && ehdr.e64->e_shoff != 0)
  	{
@@ -180,7 +165,7 @@
  	    /* Cannot read the first section header.  */
  	    return 0;
  
-@@ -275,6 +277,15 @@ file_read_elf (int fildes, void *map_add
+@@ -285,6 +287,15 @@ file_read_elf (int fildes, void *map_add
      /* Could not determine the number of sections.  */
      return NULL;
  
@@ -196,7 +181,7 @@
    /* We can now allocate the memory.  */
    Elf *elf = allocate_elf (fildes, map_address, offset, maxsize, cmd, parent,
  			   ELF_K_ELF, scncnt * sizeof (Elf_Scn));
-@@ -308,13 +319,31 @@ file_read_elf (int fildes, void *map_add
+@@ -318,13 +329,31 @@ file_read_elf (int fildes, void *map_add
  	{
  	  /* We can use the mmapped memory.  */
  	  elf->state.elf32.ehdr = ehdr;
@@ -228,7 +213,7 @@
  
  	  for (size_t cnt = 0; cnt < scncnt; ++cnt)
  	    {
-@@ -396,13 +425,26 @@ file_read_elf (int fildes, void *map_add
+@@ -406,13 +435,26 @@ file_read_elf (int fildes, void *map_add
  	{
  	  /* We can use the mmapped memory.  */
  	  elf->state.elf64.ehdr = ehdr;
@@ -255,8 +240,8 @@
  
  	  for (size_t cnt = 0; cnt < scncnt; ++cnt)
  	    {
---- elfutils-0.136/libelf/elf_getarsym.c.robustify
-+++ elfutils-0.136/libelf/elf_getarsym.c
+--- elfutils/libelf/elf_getarsym.c
++++ elfutils/libelf/elf_getarsym.c
 @@ -179,6 +179,9 @@ elf_getarsym (elf, ptr)
        size_t index_size = atol (tmpbuf);
  
@@ -267,8 +252,8 @@
  	  || n * sizeof (uint32_t) > index_size)
  	{
  	  /* This index table cannot be right since it does not fit into
---- elfutils-0.136/libelf/elf_getshstrndx.c.robustify
-+++ elfutils-0.136/libelf/elf_getshstrndx.c
+--- elfutils/libelf/elf_getshstrndx.c
++++ elfutils/libelf/elf_getshstrndx.c
 @@ -125,10 +125,25 @@ elf_getshstrndx (elf, dst)
  	      if (elf->map_address != NULL
  		  && elf->state.elf32.ehdr->e_ident[EI_DATA] == MY_ELFDATA
@@ -325,8 +310,8 @@
  	      else
  		{
  		  /* We avoid reading in all the section headers.  Just read
---- elfutils-0.136/libelf/elf_newscn.c.robustify
-+++ elfutils-0.136/libelf/elf_newscn.c
+--- elfutils/libelf/elf_newscn.c
++++ elfutils/libelf/elf_newscn.c
 @@ -104,10 +104,18 @@ elf_newscn (elf)
    else
      {
@@ -347,8 +332,8 @@
        newp = (Elf_ScnList *) calloc (sizeof (Elf_ScnList)
  				     + ((elf->state.elf.scnincr *= 2)
  					* sizeof (Elf_Scn)), 1);
---- elfutils-0.136/libelf/gelf_getdyn.c.robustify
-+++ elfutils-0.136/libelf/gelf_getdyn.c
+--- elfutils/libelf/gelf_getdyn.c
++++ elfutils/libelf/gelf_getdyn.c
 @@ -93,7 +93,8 @@ gelf_getdyn (data, ndx, dst)
  	 table entries has to be adopted.  The user better has provided
  	 a buffer where we can store the information.  While copying the
@@ -369,8 +354,8 @@
  	{
  	  __libelf_seterrno (ELF_E_INVALID_INDEX);
  	  goto out;
---- elfutils-0.136/libelf/gelf_getlib.c.robustify
-+++ elfutils-0.136/libelf/gelf_getlib.c
+--- elfutils/libelf/gelf_getlib.c
++++ elfutils/libelf/gelf_getlib.c
 @@ -86,7 +86,8 @@ gelf_getlib (data, ndx, dst)
    /* The data is already in the correct form.  Just make sure the
       index is OK.  */
@@ -381,8 +366,8 @@
      __libelf_seterrno (ELF_E_INVALID_INDEX);
    else
      {
---- elfutils-0.136/libelf/gelf_getmove.c.robustify
-+++ elfutils-0.136/libelf/gelf_getmove.c
+--- elfutils/libelf/gelf_getmove.c
++++ elfutils/libelf/gelf_getmove.c
 @@ -83,7 +83,8 @@ gelf_getmove (data, ndx, dst)
  
    /* The data is already in the correct form.  Just make sure the
@@ -393,8 +378,8 @@
      {
        __libelf_seterrno (ELF_E_INVALID_INDEX);
        goto out;
---- elfutils-0.136/libelf/gelf_getrela.c.robustify
-+++ elfutils-0.136/libelf/gelf_getrela.c
+--- elfutils/libelf/gelf_getrela.c
++++ elfutils/libelf/gelf_getrela.c
 @@ -71,12 +71,6 @@ gelf_getrela (data, ndx, dst)
    if (data_scn == NULL)
      return NULL;
@@ -428,8 +413,8 @@
  	{
  	  __libelf_seterrno (ELF_E_INVALID_INDEX);
  	  result = NULL;
---- elfutils-0.136/libelf/gelf_getrel.c.robustify
-+++ elfutils-0.136/libelf/gelf_getrel.c
+--- elfutils/libelf/gelf_getrel.c
++++ elfutils/libelf/gelf_getrel.c
 @@ -71,12 +71,6 @@ gelf_getrel (data, ndx, dst)
    if (data_scn == NULL)
      return NULL;
@@ -463,8 +448,8 @@
  	{
  	  __libelf_seterrno (ELF_E_INVALID_INDEX);
  	  result = NULL;
---- elfutils-0.136/libelf/gelf_getsym.c.robustify
-+++ elfutils-0.136/libelf/gelf_getsym.c
+--- elfutils/libelf/gelf_getsym.c
++++ elfutils/libelf/gelf_getsym.c
 @@ -90,7 +90,8 @@ gelf_getsym (data, ndx, dst)
  	 table entries has to be adopted.  The user better has provided
  	 a buffer where we can store the information.  While copying the
@@ -485,8 +470,8 @@
  	{
  	  __libelf_seterrno (ELF_E_INVALID_INDEX);
  	  goto out;
---- elfutils-0.136/libelf/gelf_getsyminfo.c.robustify
-+++ elfutils-0.136/libelf/gelf_getsyminfo.c
+--- elfutils/libelf/gelf_getsyminfo.c
++++ elfutils/libelf/gelf_getsyminfo.c
 @@ -84,7 +84,8 @@ gelf_getsyminfo (data, ndx, dst)
  
    /* The data is already in the correct form.  Just make sure the
@@ -497,8 +482,8 @@
      {
        __libelf_seterrno (ELF_E_INVALID_INDEX);
        goto out;
---- elfutils-0.136/libelf/gelf_getsymshndx.c.robustify
-+++ elfutils-0.136/libelf/gelf_getsymshndx.c
+--- elfutils/libelf/gelf_getsymshndx.c
++++ elfutils/libelf/gelf_getsymshndx.c
 @@ -90,7 +90,9 @@ gelf_getsymshndx (symdata, shndxdata, nd
       section index table.  */
    if (likely (shndxdata_scn != NULL))
@@ -530,8 +515,8 @@
  	{
  	  __libelf_seterrno (ELF_E_INVALID_INDEX);
  	  goto out;
---- elfutils-0.136/libelf/gelf_getversym.c.robustify
-+++ elfutils-0.136/libelf/gelf_getversym.c
+--- elfutils/libelf/gelf_getversym.c
++++ elfutils/libelf/gelf_getversym.c
 @@ -92,7 +92,8 @@ gelf_getversym (data, ndx, dst)
  
    /* The data is already in the correct form.  Just make sure the
@@ -542,8 +527,8 @@
      {
        __libelf_seterrno (ELF_E_INVALID_INDEX);
        result = NULL;
---- elfutils-0.136/libelf/gelf_update_dyn.c.robustify
-+++ elfutils-0.136/libelf/gelf_update_dyn.c
+--- elfutils/libelf/gelf_update_dyn.c
++++ elfutils/libelf/gelf_update_dyn.c
 @@ -71,12 +71,6 @@ gelf_update_dyn (data, ndx, src)
    if (data == NULL)
      return 0;
@@ -577,8 +562,8 @@
  	{
  	  __libelf_seterrno (ELF_E_INVALID_INDEX);
  	  goto out;
---- elfutils-0.136/libelf/gelf_update_lib.c.robustify
-+++ elfutils-0.136/libelf/gelf_update_lib.c
+--- elfutils/libelf/gelf_update_lib.c
++++ elfutils/libelf/gelf_update_lib.c
 @@ -68,12 +68,6 @@ gelf_update_lib (data, ndx, src)
    if (data == NULL)
      return 0;
@@ -602,8 +587,8 @@
      __libelf_seterrno (ELF_E_INVALID_INDEX);
    else
      {
---- elfutils-0.136/libelf/gelf_update_move.c.robustify
-+++ elfutils-0.136/libelf/gelf_update_move.c
+--- elfutils/libelf/gelf_update_move.c
++++ elfutils/libelf/gelf_update_move.c
 @@ -75,7 +75,7 @@ gelf_update_move (data, ndx, src)
    assert (sizeof (GElf_Move) == sizeof (Elf64_Move));
  
@@ -613,8 +598,8 @@
        || unlikely ((ndx + 1) * sizeof (GElf_Move) > data_scn->d.d_size))
      {
        __libelf_seterrno (ELF_E_INVALID_INDEX);
---- elfutils-0.136/libelf/gelf_update_rela.c.robustify
-+++ elfutils-0.136/libelf/gelf_update_rela.c
+--- elfutils/libelf/gelf_update_rela.c
++++ elfutils/libelf/gelf_update_rela.c
 @@ -68,12 +68,6 @@ gelf_update_rela (Elf_Data *dst, int ndx
    if (dst == NULL)
      return 0;
@@ -648,8 +633,8 @@
  	{
  	  __libelf_seterrno (ELF_E_INVALID_INDEX);
  	  goto out;
---- elfutils-0.136/libelf/gelf_update_rel.c.robustify
-+++ elfutils-0.136/libelf/gelf_update_rel.c
+--- elfutils/libelf/gelf_update_rel.c
++++ elfutils/libelf/gelf_update_rel.c
 @@ -68,12 +68,6 @@ gelf_update_rel (Elf_Data *dst, int ndx,
    if (dst == NULL)
      return 0;
@@ -683,8 +668,8 @@
  	{
  	  __libelf_seterrno (ELF_E_INVALID_INDEX);
  	  goto out;
---- elfutils-0.136/libelf/gelf_update_sym.c.robustify
-+++ elfutils-0.136/libelf/gelf_update_sym.c
+--- elfutils/libelf/gelf_update_sym.c
++++ elfutils/libelf/gelf_update_sym.c
 @@ -72,12 +72,6 @@ gelf_update_sym (data, ndx, src)
    if (data == NULL)
      return 0;
@@ -718,8 +703,8 @@
  	{
  	  __libelf_seterrno (ELF_E_INVALID_INDEX);
  	  goto out;
---- elfutils-0.136/libelf/gelf_update_syminfo.c.robustify
-+++ elfutils-0.136/libelf/gelf_update_syminfo.c
+--- elfutils/libelf/gelf_update_syminfo.c
++++ elfutils/libelf/gelf_update_syminfo.c
 @@ -72,12 +72,6 @@ gelf_update_syminfo (data, ndx, src)
    if (data == NULL)
      return 0;
@@ -743,8 +728,8 @@
      {
        __libelf_seterrno (ELF_E_INVALID_INDEX);
        goto out;
---- elfutils-0.136/libelf/gelf_update_symshndx.c.robustify
-+++ elfutils-0.136/libelf/gelf_update_symshndx.c
+--- elfutils/libelf/gelf_update_symshndx.c
++++ elfutils/libelf/gelf_update_symshndx.c
 @@ -77,12 +77,6 @@ gelf_update_symshndx (symdata, shndxdata
    if (symdata == NULL)
      return 0;
@@ -778,8 +763,8 @@
  	{
  	  __libelf_seterrno (ELF_E_INVALID_INDEX);
  	  goto out;
---- elfutils-0.136/libelf/gelf_update_versym.c.robustify
-+++ elfutils-0.136/libelf/gelf_update_versym.c
+--- elfutils/libelf/gelf_update_versym.c
++++ elfutils/libelf/gelf_update_versym.c
 @@ -75,7 +75,7 @@ gelf_update_versym (data, ndx, src)
    assert (sizeof (GElf_Versym) == sizeof (Elf64_Versym));
  
@@ -789,8 +774,8 @@
        || unlikely ((ndx + 1) * sizeof (GElf_Versym) > data_scn->d.d_size))
      {
        __libelf_seterrno (ELF_E_INVALID_INDEX);
---- elfutils-0.136/libelf/libelfP.h.robustify
-+++ elfutils-0.136/libelf/libelfP.h
+--- elfutils/libelf/libelfP.h
++++ elfutils/libelf/libelfP.h
 @@ -611,4 +611,13 @@ extern uint32_t __libelf_crc32 (uint32_t
  /* Align offset to 4 bytes as needed for note name and descriptor data.  */
  #define NOTE_ALIGN(n)	(((n) + 3) & -4U)
@@ -805,9 +790,48 @@
 +#endif
 +
  #endif  /* libelfP.h */
---- elfutils-0.136/src/elflint.c.robustify
-+++ elfutils-0.136/src/elflint.c
-@@ -131,6 +131,9 @@ static uint32_t shstrndx;
+--- elfutils/src/ChangeLog
++++ elfutils/src/ChangeLog
+@@ -1297,6 +1297,16 @@
+ 	object symbols or symbols with unknown type.
+ 	(check_rel): Likewise.
+ 
++2005-06-09  Roland McGrath  <roland at redhat.com>
++
++	* readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link.
++	(handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise.
++	(handle_scngrp): Check for bogus sh_info.
++
++	* strip.c (handle_elf): Check for bogus values in sh_link, sh_info,
++	st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data.
++	Don't use assert on input values, instead bail with "illformed" error.
++
+ 2005-06-08  Roland McGrath  <roland at redhat.com>
+ 
+ 	* readelf.c (print_ops): Add consts.
+@@ -1342,6 +1352,19 @@
+ 
+ 	* readelf.c (dwarf_tag_string): Add new tags.
+ 
++2005-05-17  Jakub Jelinek  <jakub at redhat.com>
++
++	* elflint.c (check_hash): Don't check entries beyond end of section.
++	(check_note): Don't crash if gelf_rawchunk fails.
++	(section_name): Return <invalid> if gelf_getshdr returns NULL.
++
++2005-05-14  Jakub Jelinek  <jakub at redhat.com>
++
++	* elflint.c (section_name): Return "<invalid>" instead of
++	crashing on invalid section name.
++	(check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic,
++	check_symtab_shndx, check_hash, check_versym): Robustify.
++
+ 2005-05-08  Roland McGrath  <roland at redhat.com>
+ 
+ 	* strip.c (handle_elf): Don't translate hash and versym data formats,
+--- elfutils/src/elflint.c
++++ elfutils/src/elflint.c
+@@ -130,6 +130,9 @@ static uint32_t shstrndx;
  /* Array to count references in section groups.  */
  static int *scnref;
  
@@ -817,7 +841,7 @@
  
  int
  main (int argc, char *argv[])
-@@ -320,10 +323,19 @@ section_name (Ebl *ebl, int idx)
+@@ -319,10 +322,19 @@ section_name (Ebl *ebl, int idx)
  {
    GElf_Shdr shdr_mem;
    GElf_Shdr *shdr;
@@ -838,7 +862,7 @@
  }
  
  
-@@ -345,10 +357,6 @@ static const int valid_e_machine[] =
+@@ -344,10 +356,6 @@ static const int valid_e_machine[] =
    (sizeof (valid_e_machine) / sizeof (valid_e_machine[0]))
  
  
@@ -849,7 +873,7 @@
  static void
  check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size)
  {
-@@ -613,7 +621,8 @@ section [%2d] '%s': symbol table cannot 
+@@ -612,7 +620,8 @@ section [%2d] '%s': symbol table cannot 
  	  }
        }
  
@@ -859,7 +883,7 @@
      ERROR (gettext ("\
  section [%2u] '%s': entry size is does not match ElfXX_Sym\n"),
  	   idx, section_name (ebl, idx));
-@@ -651,7 +660,7 @@ section [%2d] '%s': XINDEX for zeroth en
+@@ -650,7 +659,7 @@ section [%2d] '%s': XINDEX for zeroth en
  	       xndxscnidx, section_name (ebl, xndxscnidx));
      }
  
@@ -868,7 +892,7 @@
      {
        sym = gelf_getsymshndx (data, xndxdata, cnt, &sym_mem, &xndx);
        if (sym == NULL)
-@@ -671,7 +680,8 @@ section [%2d] '%s': symbol %zu: invalid 
+@@ -670,7 +679,8 @@ section [%2d] '%s': symbol %zu: invalid 
        else
  	{
  	  name = elf_strptr (ebl->elf, shdr->sh_link, sym->st_name);
@@ -878,7 +902,7 @@
  	}
  
        if (sym->st_shndx == SHN_XINDEX)
-@@ -1001,9 +1011,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
+@@ -1000,9 +1010,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
      {
        GElf_Shdr rcshdr_mem;
        const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem);
@@ -892,7 +916,7 @@
  	{
  	  /* Found the dynamic section.  Look through it.  */
  	  Elf_Data *d = elf_getdata (scn, NULL);
-@@ -1013,7 +1025,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
+@@ -1012,7 +1024,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
  	    {
  	      GElf_Dyn dyn_mem;
  	      GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem);
@@ -903,7 +927,7 @@
  
  	      if (dyn->d_tag == DT_RELCOUNT)
  		{
-@@ -1027,7 +1041,9 @@ section [%2d] '%s': DT_RELCOUNT used for
+@@ -1026,7 +1040,9 @@ section [%2d] '%s': DT_RELCOUNT used for
  		      /* Does the number specified number of relative
  			 relocations exceed the total number of
  			 relocations?  */
@@ -914,7 +938,7 @@
  			ERROR (gettext ("\
  section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"),
  			       idx, section_name (ebl, idx),
-@@ -1187,7 +1203,8 @@ section [%2d] '%s': no relocations for m
+@@ -1186,7 +1202,8 @@ section [%2d] '%s': no relocations for m
  	}
      }
  
@@ -924,7 +948,7 @@
      ERROR (gettext (reltype == ELF_T_RELA ? "\
  section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\
  section [%2d] '%s': section entry size does not match ElfXX_Rel\n"),
-@@ -1410,7 +1427,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G
+@@ -1409,7 +1426,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G
    Elf_Data *symdata = elf_getdata (symscn, NULL);
    enum load_state state = state_undecided;
  
@@ -934,7 +958,7 @@
      {
        GElf_Rela rela_mem;
        GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem);
-@@ -1460,7 +1478,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE
+@@ -1459,7 +1477,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE
    Elf_Data *symdata = elf_getdata (symscn, NULL);
    enum load_state state = state_undecided;
  
@@ -944,7 +968,7 @@
      {
        GElf_Rel rel_mem;
        GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem);
-@@ -1563,7 +1582,8 @@ section [%2d] '%s': referenced as string
+@@ -1562,7 +1581,8 @@ section [%2d] '%s': referenced as string
  	   shdr->sh_link, section_name (ebl, shdr->sh_link),
  	   idx, section_name (ebl, idx));
  
@@ -954,7 +978,7 @@
      ERROR (gettext ("\
  section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"),
  	   idx, section_name (ebl, idx));
-@@ -1573,7 +1593,7 @@ section [%2d] '%s': section entry size d
+@@ -1572,7 +1592,7 @@ section [%2d] '%s': section entry size d
  	   idx, section_name (ebl, idx));
  
    bool non_null_warned = false;
@@ -963,7 +987,7 @@
      {
        GElf_Dyn dyn_mem;
        GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem);
-@@ -1854,6 +1874,8 @@ section [%2d] '%s': entry size does not 
+@@ -1853,6 +1873,8 @@ section [%2d] '%s': entry size does not 
  	   idx, section_name (ebl, idx));
  
    if (symshdr != NULL
@@ -972,7 +996,7 @@
        && (shdr->sh_size / shdr->sh_entsize
  	  < symshdr->sh_size / symshdr->sh_entsize))
      ERROR (gettext ("\
-@@ -1880,6 +1902,12 @@ section [%2d] '%s': extended section ind
+@@ -1879,6 +1901,12 @@ section [%2d] '%s': extended section ind
      }
  
    Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL);
@@ -985,7 +1009,7 @@
  
    if (*((Elf32_Word *) data->d_buf) != 0)
      ERROR (gettext ("symbol 0 should have zero extended section index\n"));
-@@ -1922,7 +1950,7 @@ section [%2d] '%s': hash table section i
+@@ -1921,7 +1949,7 @@ section [%2d] '%s': hash table section i
  
    size_t maxidx = nchain;
  
@@ -994,7 +1018,7 @@
      {
        size_t symsize = symshdr->sh_size / symshdr->sh_entsize;
  
-@@ -1933,18 +1961,28 @@ section [%2d] '%s': hash table section i
+@@ -1932,18 +1960,28 @@ section [%2d] '%s': hash table section i
        maxidx = symsize;
      }
  
@@ -1025,7 +1049,7 @@
  }
  
  
-@@ -1974,18 +2012,28 @@ section [%2d] '%s': hash table section i
+@@ -1973,18 +2011,28 @@ section [%2d] '%s': hash table section i
        maxidx = symsize;
      }
  
@@ -1057,7 +1081,7 @@
  }
  
  
-@@ -2010,7 +2058,7 @@ section [%2d] '%s': bitmask size not pow
+@@ -2009,7 +2057,7 @@ section [%2d] '%s': bitmask size not pow
    if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))
      {
        ERROR (gettext ("\
@@ -1066,7 +1090,7 @@
  	     idx, section_name (ebl, idx), (long int) shdr->sh_size,
  	     (long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)));
        return;
-@@ -2682,8 +2730,9 @@ section [%2d] '%s' refers in sh_link to 
+@@ -2681,8 +2729,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.  */
@@ -1078,9 +1102,9 @@
      ERROR (gettext ("\
  section [%2d] '%s' has different number of entries than symbol table [%2d] '%s'\n"),
  	   idx, section_name (ebl, idx),
---- elfutils-0.136/src/readelf.c.robustify
-+++ elfutils-0.136/src/readelf.c
-@@ -1111,6 +1111,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
+--- elfutils/src/readelf.c
++++ elfutils/src/readelf.c
+@@ -1130,6 +1130,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
    Elf32_Word *grpref = (Elf32_Word *) data->d_buf;
  
    GElf_Sym sym_mem;
@@ -1089,7 +1113,7 @@
    printf ((grpref[0] & GRP_COMDAT)
  	  ? ngettext ("\
  \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n",
-@@ -1123,8 +1125,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
+@@ -1142,8 +1144,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),
@@ -1100,7 +1124,7 @@
  	  ?: gettext ("<INVALID SYMBOL>"),
  	  data->d_size / sizeof (Elf32_Word) - 1);
  
-@@ -1275,7 +1277,8 @@ static void
+@@ -1294,7 +1296,8 @@ static void
  handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
  {
    int class = gelf_getclass (ebl->elf);
@@ -1110,7 +1134,7 @@
    Elf_Data *data;
    size_t cnt;
    size_t shstrndx;
-@@ -1290,6 +1293,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, 
+@@ -1309,6 +1312,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, 
      error (EXIT_FAILURE, 0,
  	   gettext ("cannot get section header string table index"));
  
@@ -1122,7 +1146,7 @@
    printf (ngettext ("\
  \nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
  		    "\
-@@ -1299,9 +1307,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, 
+@@ -1318,9 +1326,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, 
  	  class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
  	  shdr->sh_offset,
  	  (int) shdr->sh_link,
@@ -1133,7 +1157,7 @@
    fputs_unlocked (gettext ("  Type              Value\n"), stdout);
  
    for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
-@@ -1801,6 +1807,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
+@@ -1820,6 +1826,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
      error (EXIT_FAILURE, 0,
  	   gettext ("cannot get section header string table index"));
  
@@ -1147,7 +1171,7 @@
    /* Now we can compute the number of entries in the section.  */
    unsigned int nsyms = data->d_size / (class == ELFCLASS32
  				       ? sizeof (Elf32_Sym)
-@@ -1811,15 +1824,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
+@@ -1830,15 +1843,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
  		    nsyms),
  	  (unsigned int) elf_ndxscn (scn),
  	  elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms);
@@ -1164,7 +1188,7 @@
  
    fputs_unlocked (class == ELFCLASS32
  		  ? gettext ("\
-@@ -2055,7 +2065,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, 
+@@ -2074,7 +2084,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, 
      error (EXIT_FAILURE, 0,
  	   gettext ("cannot get section header string table index"));
  
@@ -1179,7 +1203,7 @@
    printf (ngettext ("\
  \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
  		    "\
-@@ -2066,9 +2082,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, 
+@@ -2085,9 +2101,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, 
  	  class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
  	  shdr->sh_offset,
  	  (unsigned int) shdr->sh_link,
@@ -1190,7 +1214,7 @@
  
    unsigned int offset = 0;
    for (int cnt = shdr->sh_info; --cnt >= 0; )
-@@ -2121,8 +2135,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
+@@ -2140,8 +2154,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
      error (EXIT_FAILURE, 0,
  	   gettext ("cannot get section header string table index"));
  
@@ -1206,7 +1230,7 @@
    printf (ngettext ("\
  \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
  		    "\
-@@ -2134,9 +2154,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
+@@ -2153,9 +2173,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
  	  class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
  	  shdr->sh_offset,
  	  (unsigned int) shdr->sh_link,
@@ -1217,7 +1241,7 @@
  
    unsigned int offset = 0;
    for (int cnt = shdr->sh_info; --cnt >= 0; )
-@@ -2398,8 +2416,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G
+@@ -2417,8 +2435,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G
        filename = NULL;
      }
  
@@ -1233,7 +1257,7 @@
    printf (ngettext ("\
  \nVersion symbols section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'",
  		    "\
-@@ -2411,9 +2435,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G
+@@ -2430,9 +2454,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G
  	  class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
  	  shdr->sh_offset,
  	  (unsigned int) shdr->sh_link,
@@ -1244,7 +1268,7 @@
  
    /* 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)
-@@ -2465,7 +2487,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
+@@ -2484,7 +2506,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
    for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt)
      ++counts[lengths[cnt]];
  
@@ -1263,7 +1287,7 @@
    printf (ngettext ("\
  \nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
  		    "\
-@@ -2478,9 +2510,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
+@@ -2497,9 +2529,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
  	  shdr->sh_addr,
  	  shdr->sh_offset,
  	  (unsigned int) shdr->sh_link,
@@ -1274,7 +1298,7 @@
  
    if (extrastr != NULL)
      fputs (extrastr, stdout);
-@@ -4039,6 +4069,16 @@ print_debug_aranges_section (Dwfl_Module
+@@ -4058,6 +4088,16 @@ print_debug_aranges_section (Dwfl_Module
        return;
      }
  
@@ -1289,10 +1313,10 @@
 +    }
 +
    printf (ngettext ("\
- \nDWARF section '%s' at offset %#" PRIx64 " contains %zu entry:\n",
+ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 " contains %zu entry:\n",
  		    "\
---- elfutils-0.136/src/strip.c.robustify
-+++ elfutils-0.136/src/strip.c
+--- elfutils/src/strip.c
++++ elfutils/src/strip.c
 @@ -544,6 +544,11 @@ handle_elf (int fd, Elf *elf, const char
        goto fail_close;
      }


Index: elfutils.spec
===================================================================
RCS file: /cvs/pkgs/rpms/elfutils/F-10/elfutils.spec,v
retrieving revision 1.110
retrieving revision 1.111
diff -u -r1.110 -r1.111
--- elfutils.spec	31 Dec 2008 22:12:42 -0000	1.110
+++ elfutils.spec	24 Jan 2009 01:22:09 -0000	1.111
@@ -1,4 +1,4 @@
-%define eu_version 0.138
+%define eu_version 0.139
 %define eu_release 1
 
 %if %{?_with_compat:1}%{!?_with_compat:0}
@@ -33,8 +33,8 @@
 Group: Development/Tools
 URL: https://fedorahosted.org/elfutils/
 Source: http://fedorahosted.org/releases/e/l/elfutils/%{name}-%{version}.tar.bz2
-Patch1: elfutils-portability.patch
-Patch2: elfutils-robustify.patch
+Patch1: elfutils-robustify.patch
+Patch2: elfutils-portability.patch
 Requires: elfutils-libelf-%{_arch} = %{version}-%{release}
 Requires: elfutils-libs-%{_arch} = %{version}-%{release}
 
@@ -50,6 +50,19 @@
 BuildRequires: gcc >= 3.2
 %endif
 
+%define use_zlib 0
+%if 0%{?fedora} >= 5
+%define use_zlib 1
+%endif
+%if 0%{?rhel} >= 5
+%define use_zlib 1
+%endif
+
+%if %{use_zlib}
+BuildRequires: zlib-devel >= 1.2.2.3
+BuildRequires: bzip2-devel
+%endif
+
 %define _gnu %{nil}
 %define _program_prefix eu-
 
@@ -142,19 +155,19 @@
 %prep
 %setup -q
 
-%if !0%{?scanf_has_m}
-sed -i.scanf-m -e 's/%m/%a/' tests/line2addr.c
-%endif
+%patch1 -p1 -b .robustify
 
 %if %{compat}
-%patch1 -p1 -b .portability
+%patch2 -p1 -b .portability
 sleep 1
 find . \( -name Makefile.in -o -name aclocal.m4 \) -print | xargs touch
 sleep 1
 find . \( -name configure -o -name config.h.in \) -print | xargs touch
+%else
+%if !0%{?scanf_has_m}
+sed -i.scanf-m -e 's/%m/%a/g' src/addr2line.c tests/line2addr.c
+%endif
 %endif
-
-%patch2 -p1 -b .robustify
 
 find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
 
@@ -263,6 +276,17 @@
 %{_libdir}/libelf.a
 
 %changelog
+* Fri Jan 23 2009 Roland McGrath <roland at redhat.com> - 0.139-1
+- Update to 0.139
+  - libcpu: Add Intel SSE4 disassembler support
+  - readelf: Implement call frame information and exception handling dumping.
+    	     Add -e option.  Enable it implicitly for -a.
+  - elflint: Check PT_GNU_EH_FRAME program header entry.
+  - libdwfl: Support automatic gzip/bzip2 decompression of ELF files. (#472136)
+
+* Thu Jan  1 2009 Roland McGrath <roland at redhat.com> - 0.138-2
+- Fix libelf regression.
+
 * Wed Dec 31 2008 Roland McGrath <roland at redhat.com> - 0.138-1
 - Update to 0.138
   - Install <elfutils/version.h> header file for applications to use in


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/elfutils/F-10/sources,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- sources	31 Dec 2008 22:12:42 -0000	1.49
+++ sources	24 Jan 2009 01:22:09 -0000	1.50
@@ -1 +1 @@
-1a846d275cb6c8ab995fa0fa877113ff  elfutils-0.138.tar.bz2
+9cfc12ac0d6d14968e253639fa957946  elfutils-0.139.tar.bz2


Index: upstream-key.gpg
===================================================================
RCS file: /cvs/pkgs/rpms/elfutils/F-10/upstream-key.gpg,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- upstream-key.gpg	9 Apr 2008 21:51:31 -0000	1.1
+++ upstream-key.gpg	24 Jan 2009 01:22:09 -0000	1.2
@@ -1,123 +1,109 @@
+pub   1024D/7EBBD625 2003-01-10
+uid                  Roland McGrath <roland at frob.com>
+uid                  Roland McGrath <frob at debian.org>
+uid                  Roland McGrath <roland at gnu.org>
+uid                  Roland McGrath <roland at redhat.com>
+sub   2048g/17998A93 2003-01-10
+
 pub   1024D/79FF4474 2001-08-24
 uid                  Ulrich Drepper <drepper at akkadia.org>
 uid                  Ulrich Drepper <drepper at redhat.com>
-uid                  [jpeg image of size 2203]
 sub   2048g/07FA6550 2001-08-24
 
 -----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.7 (GNU/Linux)
+Version: GnuPG v1.4.5 (GNU/Linux)
 
-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
+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
 gTKAnym+PwCfbnwIeEZfbBWgonv4/I3aNNm3FdQ=
-=rhf6
+=2IML
 -----END PGP PUBLIC KEY BLOCK-----


--- elfutils-0.138.tar.bz2.sig DELETED ---




More information about the fedora-extras-commits mailing list