From 22346cb74702adfbd20326d7f4de1bc764cc78a2 Mon Sep 17 00:00:00 2001 From: Mark J. Wielaard Date: Feb 23 2012 12:24:19 +0000 Subject: Update to 0.153. --- diff --git a/.gitignore b/.gitignore index 30080c5..ab491e2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /elfutils-0.152.tar.bz2 +/elfutils-0.153.tar.bz2 diff --git a/elfutils-portability.patch b/elfutils-portability.patch index d4fa95f..ec78059 100644 --- a/elfutils-portability.patch +++ b/elfutils-portability.patch @@ -1,6 +1,6 @@ --- 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. @@ -11,7 +11,7 @@ 2008-10-04 Ulrich Drepper * 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. @@ -23,7 +23,7 @@ 2005-11-19 Roland McGrath * 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. @@ -46,7 +46,17 @@ libebl_i386.so: $(cpu_i386) --- elfutils/backends/Makefile.in +++ elfutils/backends/Makefile.in -@@ -165,6 +165,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -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@ @@ -54,7 +64,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -194,6 +195,7 @@ SHELL = @SHELL@ +@@ -194,6 +196,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -62,15 +72,19 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -257,7 +259,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi +@@ -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_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_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 \ @@ -82,7 +96,17 @@ libebl_i386.so: $(cpu_i386) --- elfutils/ChangeLog +++ elfutils/ChangeLog -@@ -13,6 +13,10 @@ +@@ -14,6 +14,9 @@ + + 2011-10-08 Mike Frysinger + ++ * 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 +@@ -35,6 +38,10 @@ * configure.ac (LOCALEDIR, DATADIRNAME): Removed. @@ -93,7 +117,7 @@ 2009-09-21 Ulrich Drepper * configure.ac: Update for more modern autoconf. -@@ -21,6 +25,10 @@ +@@ -43,6 +50,10 @@ * configure.ac (zip_LIBS): Check for liblzma too. @@ -104,7 +128,7 @@ 2009-04-19 Roland McGrath * configure.ac (eu_version): Round down here, not in version.h macros. -@@ -32,6 +40,8 @@ +@@ -54,6 +65,8 @@ 2009-01-23 Roland McGrath @@ -113,7 +137,7 @@ * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3. * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of -@@ -112,6 +122,10 @@ +@@ -134,6 +147,10 @@ * configure.ac: Add dummy automake conditional to get dependencies for non-generic linker right. See src/Makefile.am. @@ -124,7 +148,7 @@ 2005-11-18 Roland McGrath * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable. -@@ -159,6 +173,17 @@ +@@ -181,6 +198,17 @@ * Makefile.am (all_SUBDIRS): Add libdwfl. * configure.ac: Write libdwfl/Makefile. @@ -142,9 +166,30 @@ 2005-05-19 Roland McGrath * 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 ++ ++ * eu.am [BUILD_WERROR]: Conditionalize -Werror use on this. ++ + 2010-07-02 Ulrich Drepper + + * elfutils.spec.in: Add more BuildRequires. --- 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 @@ ## . ## @@ -154,12 +199,19 @@ 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 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@ @@ -180,8 +232,9 @@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ --- elfutils/config.h.in +++ elfutils/config.h.in -@@ -1,5 +1,8 @@ - /* config.h.in. Generated from configure.ac by autoheader. */ +@@ -3,6 +3,9 @@ + /* Should ar and ranlib use -D behavior by default? */ + #undef DEFAULT_AR_DETERMINISTIC +/* Have __builtin_popcount. */ +#undef HAVE_BUILTIN_POPCOUNT @@ -189,7 +242,7 @@ /* $libdir subdirectory containing libebl modules. */ #undef LIBEBL_SUBDIR -@@ -55,4 +58,7 @@ +@@ -61,4 +64,7 @@ /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES @@ -199,7 +252,16 @@ #include --- elfutils/configure +++ elfutils/configure -@@ -602,6 +602,8 @@ NEVER_TRUE +@@ -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 @@ -208,13 +270,29 @@ LEXLIB LEX_OUTPUT_ROOT LEX -@@ -3856,6 +3858,130 @@ if test "x$ac_cv_c99" != xyes; then : +@@ -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 test "${ac_cv_cc_wextra+set}" = set; then : ++if ${ac_cv_cc_wextra+:} false; then : + $as_echo_n "(cached) " >&6 +else + old_CFLAGS="$CFLAGS" @@ -242,7 +320,7 @@ + +{ $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 test "${ac_cv_cc_gnu89_inline+set}" = set; then : ++if ${ac_cv_cc_gnu89_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + old_CFLAGS="$CFLAGS" @@ -274,7 +352,7 @@ + +{ $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 test "${ac_cv_as_needed+set}" = set; then : ++if ${ac_cv_as_needed+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat > conftest.c <&5 +$as_echo_n "checking for __builtin_popcount... " >&6; } -+if test "${ac_cv_popcount+set}" = set; then : ++if ${ac_cv_popcount+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -338,8 +416,8 @@ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __thread support" >&5 $as_echo_n "checking for __thread support... " >&6; } - if test "${ac_cv_tls+set}" = set; then : -@@ -3892,7 +4018,13 @@ fi + 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 : @@ -354,27 +432,52 @@ fi # Check whether --enable-largefile was given. -@@ -4878,7 +5010,7 @@ ac_config_files="$ac_config_files versio +@@ -4275,6 +4411,22 @@ else + fi - # 1.234 -> 1234 - case "$PACKAGE_VERSION" in --[0-9].*) eu_version="${PACKAGE_VERSION/./}" ;; -+[0-9].*) eu_version=`echo "$PACKAGE_VERSION" | sed 's@\.@@'` ;; - *) as_fn_error $? "confused by version number '$PACKAGE_VERSION'" "$LINENO" 5 ;; - esac - case "$eu_version" in -@@ -4907,7 +5039,7 @@ case "$eu_version" in + ++# 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=$(( (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 -@@ -70,6 +70,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])) @@ -429,7 +532,7 @@ AC_CACHE_CHECK([for __thread support], ac_cv_tls, [dnl # Use the same flags that we use for our DSOs, so the test is representative. # Some old compiler/linker/libc combinations fail some ways and not others. -@@ -85,7 +133,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], @@ -441,26 +544,29 @@ 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 -@@ -248,7 +299,7 @@ AC_SUBST([eu_version]) - - # 1.234 -> 1234 - 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 -@@ -277,6 +328,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. --[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 -@@ -14,6 +14,9 @@ +@@ -35,6 +35,9 @@ 2009-01-23 Roland McGrath @@ -470,7 +576,7 @@ * eu-config.h: Add multiple inclusion protection. 2009-01-17 Ulrich Drepper -@@ -70,6 +73,11 @@ +@@ -91,6 +94,11 @@ * Makefile.am (libeu_a_SOURCES): Add it. * system.h: Declare crc32_file. @@ -504,7 +610,17 @@ # define OLD_VERSION(name, version) \ --- elfutils/lib/Makefile.in +++ elfutils/lib/Makefile.in -@@ -99,6 +99,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -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@ @@ -512,7 +628,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -128,6 +129,7 @@ SHELL = @SHELL@ +@@ -129,6 +131,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -520,15 +636,19 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -190,7 +192,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi +@@ -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_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) -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 @@ -71,6 +71,11 @@ @@ -545,7 +665,21 @@ * Makefile.am (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. --- elfutils/libasm/Makefile.in +++ elfutils/libasm/Makefile.in -@@ -147,6 +147,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -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@ @@ -553,7 +687,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -176,6 +177,7 @@ SHELL = @SHELL@ +@@ -176,6 +178,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -561,18 +695,31 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -239,7 +241,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi +@@ -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_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_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 -@@ -15,6 +15,9 @@ +@@ -29,6 +29,9 @@ 2009-01-23 Roland McGrath @@ -582,7 +729,7 @@ * 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. @@ -596,7 +743,7 @@ * 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"); @@ -606,7 +753,17 @@ else --- elfutils/libcpu/Makefile.in +++ elfutils/libcpu/Makefile.in -@@ -116,6 +116,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -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@ @@ -614,7 +771,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = lex.$( ++ ++ * dwarf_begin_elf.c: Add fallback for be64toh if not defined. ++ + 2011-07-14 Mark Wielaard + + * libdw.h (dwarf_offdie): Fix documentation to mention .debug_info. +@@ -365,6 +369,10 @@ * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too. @@ -644,7 +816,7 @@ 2009-08-10 Roland McGrath * dwarf_getscopevar.c: Use dwarf_diename. -@@ -1076,6 +1080,11 @@ +@@ -1133,6 +1141,11 @@ 2005-05-31 Roland McGrath @@ -656,6 +828,23 @@ * 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 + # define crc32 loser_crc32 ++# ifndef be64toh ++# include ++# if __BYTE_ORDER == __LITTLE_ENDIAN ++# define be64toh(x) bswap_64 (x) ++# else ++# define be64toh(x) (x) ++# endif ++# endif + # include + # undef crc32 + #endif --- elfutils/libdw/libdw.h +++ elfutils/libdw/libdw.h @@ -852,7 +852,7 @@ extern Dwarf_OOM dwarf_new_oom_handler ( @@ -669,7 +858,19 @@ dwarf_whatattr (Dwarf_Attribute *attr) --- elfutils/libdw/Makefile.in +++ elfutils/libdw/Makefile.in -@@ -192,6 +192,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -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@ @@ -677,7 +878,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -221,6 +222,7 @@ SHELL = @SHELL@ +@@ -221,6 +223,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -685,18 +886,22 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -283,7 +285,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi +@@ -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_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_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 -@@ -1366,6 +1366,11 @@ +@@ -1409,6 +1409,11 @@ 2005-07-21 Roland McGrath @@ -710,7 +915,25 @@ * test2.c (main): Check sscanf result to quiet warning. --- elfutils/libdwfl/Makefile.in +++ elfutils/libdwfl/Makefile.in -@@ -182,6 +182,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -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@ @@ -718,7 +941,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -211,6 +212,7 @@ SHELL = @SHELL@ +@@ -211,6 +213,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -726,18 +949,42 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -274,7 +276,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi +@@ -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_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_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 -@@ -628,6 +628,11 @@ +@@ -650,6 +650,11 @@ * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency tracking works right. @@ -751,7 +998,17 @@ * libebl_x86_64.map: Add x86_64_core_note. --- elfutils/libebl/Makefile.in +++ elfutils/libebl/Makefile.in -@@ -143,6 +143,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -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@ @@ -759,7 +1016,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -172,6 +173,7 @@ SHELL = @SHELL@ +@@ -173,6 +175,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -767,18 +1024,31 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -235,7 +237,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi +@@ -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_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) -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 -@@ -671,6 +671,11 @@ +@@ -1,3 +1,8 @@ ++2011-03-10 Roland McGrath ++ ++ * gnuhash_xlate.h (elf_cvt_gnuhash): Avoid post-increment in bswap_32 ++ argument, since some implementations are buggy macros. ++ + 2011-01-05 Jan Kratochvil + + * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Fix off64_t overflow +@@ -671,6 +676,11 @@ * elf.h: Update from glibc. @@ -810,9 +1080,45 @@ : (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 , 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 -@@ -189,6 +189,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -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@ @@ -820,7 +1126,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -218,6 +219,7 @@ SHELL = @SHELL@ +@@ -218,6 +220,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -828,15 +1134,28 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -279,7 +281,7 @@ zip_LIBS = @zip_LIBS@ +@@ -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_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_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@ @@ -890,7 +1209,7 @@ break; --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -260,8 +260,16 @@ +@@ -490,8 +490,16 @@ * readelf.c (attr_callback): Use print_block only when we don't use print_ops. @@ -907,7 +1226,7 @@ * ar.c (do_oper_extract): Use pathconf instead of statfs. 2009-08-01 Ulrich Drepper -@@ -425,6 +433,8 @@ +@@ -655,6 +663,8 @@ * readelf.c (print_debug_frame_section): Use t instead of j formats for ptrdiff_t OFFSET. @@ -916,7 +1235,7 @@ 2009-01-21 Ulrich Drepper * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section -@@ -608,6 +618,11 @@ +@@ -838,6 +848,11 @@ that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really is valid in RELRO. @@ -928,7 +1247,7 @@ 2008-02-29 Roland McGrath * readelf.c (print_attributes): Add a cast. -@@ -859,6 +874,8 @@ +@@ -1089,6 +1104,8 @@ * readelf.c (hex_dump): Fix rounding error in whitespace calculation. @@ -937,7 +1256,7 @@ 2007-10-15 Roland McGrath * make-debug-archive.in: New file. -@@ -1298,6 +1315,10 @@ +@@ -1528,6 +1545,10 @@ * elflint.c (valid_e_machine): Add EM_ALPHA. Reported by Christian Aichinger . @@ -948,7 +1267,7 @@ 2006-08-08 Ulrich Drepper * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. -@@ -1374,6 +1395,10 @@ +@@ -1604,6 +1625,10 @@ * Makefile.am: Add hacks to create dependency files for non-generic linker. @@ -959,7 +1278,7 @@ 2006-06-12 Ulrich Drepper * ldgeneric.c (ld_generic_generate_sections): Don't create .interp -@@ -1722,6 +1747,11 @@ +@@ -1952,6 +1977,11 @@ * readelf.c (print_debug_loc_section): Fix indentation for larger address size. @@ -1005,7 +1324,7 @@ #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 @@ -1013,11 +1332,42 @@ +readelf_no_Werror = yes + readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl - nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl - size_LDADD = $(libelf) $(libeu) $(libmudflap) + nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl \ + $(demanglelib) --- elfutils/src/Makefile.in +++ elfutils/src/Makefile.in -@@ -228,6 +228,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -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@ @@ -1025,7 +1375,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -257,6 +258,7 @@ SHELL = @SHELL@ +@@ -258,6 +260,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -1033,16 +1383,31 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -321,7 +323,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi +@@ -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_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_1) $(am__append_2) @MUDFLAP_FALSE@libmudflap = -@@ -368,6 +370,9 @@ strings_no_Wformat = yes + @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 @@ -1050,11 +1415,20 @@ +# Buggy old compilers. +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) +@@ -377,7 +382,7 @@ nm_LDADD = $(libdw) $(libebl) $(libelf) 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 -@@ -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) @@ -1068,7 +1442,7 @@ 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) @@ -1082,7 +1456,7 @@ } 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)) @@ -1142,10 +1516,10 @@ +# define FUTIMES(fd, fname, tvp) utimes (fname, tvp) +#endif + + typedef uint8_t GElf_Byte; /* 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. */ @@ -1164,7 +1538,7 @@ } /* 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) { @@ -1173,7 +1547,7 @@ { 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) { @@ -1184,7 +1558,7 @@ cannot set access and modification date of '%s'"), fname); --- elfutils/tests/ChangeLog +++ elfutils/tests/ChangeLog -@@ -205,6 +205,8 @@ +@@ -279,6 +279,8 @@ 2008-01-21 Roland McGrath @@ -1193,7 +1567,7 @@ * testfile45.S.bz2: Add tests for cltq, cqto. * testfile45.expect.bz2: Adjust. -@@ -913,6 +915,11 @@ +@@ -987,6 +989,11 @@ * Makefile.am (TESTS): Add run-elflint-test.sh. (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2. @@ -1218,7 +1592,40 @@ case 0: --- elfutils/tests/Makefile.in +++ elfutils/tests/Makefile.in -@@ -372,6 +372,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -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@ @@ -1226,7 +1633,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -401,6 +402,7 @@ SHELL = @SHELL@ +@@ -420,6 +422,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -1234,12 +1641,28 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -462,7 +464,7 @@ zip_LIBS = @zip_LIBS@ - INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_2) +@@ -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_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_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 \ diff --git a/elfutils-robustify.patch b/elfutils-robustify.patch index afed2f8..d4ecbf0 100644 --- a/elfutils-robustify.patch +++ b/elfutils-robustify.patch @@ -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 . + ++2011-03-23 Petr Machata ++ ++ * relocate.c (relocate_section): Use gelf_fsize instead of relying ++ on shdr->sh_entsize. ++ + 2011-02-11 Roland McGrath + + * 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 @@ @@ -865,7 +909,20 @@ #endif /* libelfP.h */ --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -1710,6 +1710,16 @@ +@@ -228,6 +228,12 @@ + + * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature. + ++2011-03-23 Petr Machata ++ ++ * 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 + + * elfcmp.c (verbose): New variable. +@@ -1940,6 +1946,16 @@ object symbols or symbols with unknown type. (check_rel): Likewise. @@ -882,7 +939,7 @@ 2005-06-08 Roland McGrath * readelf.c (print_ops): Add consts. -@@ -1755,6 +1765,19 @@ +@@ -1985,6 +2001,19 @@ * readelf.c (dwarf_tag_string): Add new tags. @@ -948,7 +1005,7 @@ static void check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size) { -@@ -632,7 +640,8 @@ section [%2d] '%s': symbol table cannot +@@ -632,7 +640,8 @@ section [%2d] '%s': symbol table cannot } } @@ -967,7 +1024,7 @@ { sym = gelf_getsymshndx (data, xndxdata, cnt, &sym_mem, &xndx); if (sym == NULL) -@@ -690,7 +699,8 @@ section [%2d] '%s': symbol %zu: invalid +@@ -690,7 +699,8 @@ section [%2d] '%s': symbol %zu: invalid else { name = elf_strptr (ebl->elf, shdr->sh_link, sym->st_name); @@ -1062,7 +1119,7 @@ { GElf_Dyn dyn_mem; GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem); -@@ -1879,6 +1899,8 @@ section [%2d] '%s': entry size does not +@@ -1879,6 +1899,8 @@ section [%2d] '%s': entry size does not idx, section_name (ebl, idx)); if (symshdr != NULL @@ -1165,7 +1222,7 @@ idx, section_name (ebl, idx), (long int) shdr->sh_size, (long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))); return; -@@ -2707,8 +2755,9 @@ section [%2d] '%s' refers in sh_link to +@@ -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. */ @@ -1179,7 +1236,7 @@ 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; @@ -1188,7 +1245,7 @@ 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), @@ -1199,7 +1256,7 @@ ?: gettext (""), 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); @@ -1209,10 +1266,16 @@ 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")); ++ 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"), @@ -1221,7 +1284,11 @@ 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, @@ -1231,8 +1298,32 @@ + 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")); @@ -1246,7 +1337,7 @@ /* Now we can compute the number of entries in the section. */ unsigned int nsyms = data->d_size / (class == ELFCLASS32 ? sizeof (Elf32_Sym) -@@ -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); @@ -1263,7 +1354,7 @@ 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")); @@ -1278,7 +1369,7 @@ printf (ngettext ("\ \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -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, @@ -1289,7 +1380,7 @@ 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")); @@ -1305,7 +1396,7 @@ printf (ngettext ("\ \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -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, @@ -1316,13 +1407,14 @@ 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); ++ 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)); @@ -1332,7 +1424,13 @@ 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, @@ -1342,8 +1440,12 @@ + 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]]; @@ -1362,7 +1464,7 @@ printf (ngettext ("\ \nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -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, @@ -1373,7 +1475,17 @@ 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; } @@ -1392,7 +1504,7 @@ "\ --- 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; } @@ -1404,7 +1516,7 @@ /* Storage for section information. We leave room for two more entries since we unconditionally create a section header string table. Maybe some weird tool created an ELF file without one. -@@ -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). */ @@ -1413,7 +1525,7 @@ 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) { @@ -1421,7 +1533,7 @@ 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; @@ -1430,7 +1542,7 @@ /* 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)) { @@ -1439,7 +1551,7 @@ shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt; } else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP)) -@@ -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) @@ -1452,7 +1564,7 @@ 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)) { @@ -1461,7 +1573,7 @@ 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) { @@ -1470,7 +1582,7 @@ 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. */ @@ -1478,17 +1590,17 @@ + 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) - 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) { @@ -1497,7 +1609,7 @@ 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; @@ -1507,7 +1619,7 @@ 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. */ @@ -1526,7 +1638,7 @@ /* 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)); @@ -1535,7 +1647,7 @@ /* 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)); @@ -1544,7 +1656,7 @@ 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)); @@ -1553,7 +1665,7 @@ /* 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); @@ -1577,7 +1689,7 @@ >= 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 { @@ -1586,7 +1698,7 @@ 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; } @@ -1595,16 +1707,22 @@ 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); @@ -1618,16 +1736,18 @@ 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 +- == sizeof (Elf64_Xword)); + elf_assert (shdr_info[cnt].shdr.sh_entsize - == sizeof (Elf64_Xword)); ++ == sizeof (Elf64_Xword)); 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); diff --git a/elfutils.spec b/elfutils.spec index d04ea3a..632db3b 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -1,7 +1,7 @@ Name: elfutils Summary: A collection of utilities and DSOs to handle compiled objects -Version: 0.152 -%global baserelease 3 +Version: 0.153 +%global baserelease 1 URL: https://fedorahosted.org/elfutils/ %global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/ License: GPLv2 with exceptions @@ -218,9 +218,12 @@ RPM_OPT_FLAGS=${RPM_OPT_FLAGS/-Wall/} # Some older glibc headers can run afoul of -Werror all by themselves. # Disabling the fancy inlines avoids those problems. RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D__NO_INLINE__" +COMPAT_CONFIG_FLAGS="--disable-werror" +%else +COMPAT_CONFIG_FLAGS="" %endif -%configure CFLAGS="$RPM_OPT_FLAGS -fexceptions" || { +%configure $COMPAT_CONFIG_FLAGS CFLAGS="$RPM_OPT_FLAGS -fexceptions" || { cat config.log exit 2 } @@ -318,6 +321,15 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/libelf.a %changelog +* Thu Feb 23 2012 Mark Wielaard - 0.153-1 +- Update to 0.153 + - New --disable-werror for portability. + - Support for .zdebug sections (#679777) + - type_units and DW_AT_GNU_odr_signature support (#679815) + - low level support DW_OP_GNU_entry_value and DW_TAG_GNU_call_site (#688090) + - FTBFS on rawhide with gcc 4.7 (#783506) + - Remove gcc-4.7 patch + * Fri Jan 20 2012 Mark Wielaard - 0.152-3 - Fixes for gcc-4.7 based on upstream commit 32899a (#783506). diff --git a/sources b/sources index 5432091..e93e478 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -39739ed58a0fa1862eff8735f111fe5c elfutils-0.152.tar.bz2 +289a146182bc29f0236eaa15d8ebdf98 elfutils-0.153.tar.bz2