From 48a457cc2589381315c372ef88e8c1c22fa074579717d22736cfcf00ec3852ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= Date: Thu, 28 Apr 2011 14:06:03 +0000 Subject: [PATCH] Accepting request 68667 from home:namtrac:branches:Base:System - Update to 0.152 - Upstream changelog: 0.152 - Various build and warning nits fixed for newest GCC and Autoconf. - libdwfl: Yet another prelink-related fix for another regression. Look for Linux kernel images in files named with compression suffixes. - elfcmp: New flag --ignore-build-id to ignore differing build ID bits. New flag -l/--verbose to print all differences. 0.151 - libdwfl: Fix for more prelink cases with separate debug file. - strip: New flag --strip-sections to remove section headers entirely. 0.150 - libdw: Fix for handling huge .debug_aranges section. - libdwfl: Fix for handling prelinked DSO with separate debug file. - findtextrel: Fix diagnostics to work with usual section ordering. - libebl: i386 backend fix for multi-register integer return value location. OBS-URL: https://build.opensuse.org/request/show/68667 OBS-URL: https://build.opensuse.org/package/show/Base:System/elfutils?expand=0&rev=22 --- README-BEFORE-ADDING-PATCHES | 16 ++++ elfutils-0.148.tar.bz2 | 3 - elfutils-0.152.tar.bz2 | 3 + elfutils-portability.patch | 148 ++++++++++++++++++++++------------- elfutils-robustify.patch | 122 +++++++++++++---------------- elfutils.changes | 41 ++++++++++ elfutils.spec | 7 +- 7 files changed, 213 insertions(+), 127 deletions(-) create mode 100644 README-BEFORE-ADDING-PATCHES delete mode 100644 elfutils-0.148.tar.bz2 create mode 100644 elfutils-0.152.tar.bz2 diff --git a/README-BEFORE-ADDING-PATCHES b/README-BEFORE-ADDING-PATCHES new file mode 100644 index 0000000..b85f6ec --- /dev/null +++ b/README-BEFORE-ADDING-PATCHES @@ -0,0 +1,16 @@ +All patches need to have a patch description header similar to what is used in +SuSE kernel git tree. + +Patches added without this will be reverted. + +From: Name +Subject: Summary of fix +Date: date +References: bnc#xxxxxx (bugzilla reference) +Upstream: upstream revision or a description of why it is not upstream +Signed-Off-by: Name (same as From: if committer is patch author) + +Short paragraph describing problem/fix. + +References to upstream repo/commit-id if applicable. + diff --git a/elfutils-0.148.tar.bz2 b/elfutils-0.148.tar.bz2 deleted file mode 100644 index 7384a9a..0000000 --- a/elfutils-0.148.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8aebfa4a745db21cf5429c9541fe482729b62efc7e53e9110151b4169fe887da -size 1811640 diff --git a/elfutils-0.152.tar.bz2 b/elfutils-0.152.tar.bz2 new file mode 100644 index 0000000..ee9a714 --- /dev/null +++ b/elfutils-0.152.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78798715adba95528cdf3fce33eca813131ee75b9109693d313b72f67d7fb4a6 +size 1876711 diff --git a/elfutils-portability.patch b/elfutils-portability.patch index de80310..bf2e888 100644 --- a/elfutils-portability.patch +++ b/elfutils-portability.patch @@ -1,22 +1,23 @@ -From: Tony Jones +From: Ismail Doenmez Subject: Elfutils portability patch -Version: 0.148 -References: https://fedorahosted.org/releases/e/l/elfutils/0.148/elfutils-portability.patch +Version: 0.152 +References: https://fedorahosted.org/releases/e/l/elfutils/0.152/elfutils-portability.patch Upstream: yes This patch contains portability fixes that are regarded as generally useful by the community but are not accepted by the elfutils maintainer (and are therefore not in the git repository). -Following change is removed from the patch (as Factory is built using +Following change is removed from the patch (as Factory is built using GNU_SOURCE and thus %a is interpreted as having a float param): -+ * addr2line.c (handle_address): Use %a instead of %m for compatibility. -+ + * addr2line.c (handle_address): Use %a instead of %m for compatibility. + + --- elfutils/backends/ChangeLog +++ elfutils/backends/ChangeLog -@@ -106,6 +106,10 @@ +@@ -111,6 +111,10 @@ * ppc_attrs.c (ppc_check_object_attribute): Handle tag GNU_Power_ABI_Struct_Return. @@ -27,7 +28,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): 2008-10-04 Ulrich Drepper * i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and -@@ -433,6 +437,11 @@ +@@ -438,6 +442,11 @@ * sparc_init.c: Likewise. * x86_64_init.c: Likewise. @@ -39,7 +40,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): 2005-11-19 Roland McGrath * ppc64_reloc.def: REL30 -> ADDR30. -@@ -455,6 +464,9 @@ +@@ -460,6 +469,9 @@ * Makefile.am (uninstall): Don't try to remove $(pkgincludedir). (CLEANFILES): Add libebl_$(m).so. @@ -98,7 +99,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): libebl_i386.so: $(cpu_i386) --- elfutils/ChangeLog +++ elfutils/ChangeLog -@@ -2,6 +2,10 @@ +@@ -13,6 +13,10 @@ * configure.ac (LOCALEDIR, DATADIRNAME): Removed. @@ -109,7 +110,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): 2009-09-21 Ulrich Drepper * configure.ac: Update for more modern autoconf. -@@ -10,6 +14,10 @@ +@@ -21,6 +25,10 @@ * configure.ac (zip_LIBS): Check for liblzma too. @@ -120,7 +121,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): 2009-04-19 Roland McGrath * configure.ac (eu_version): Round down here, not in version.h macros. -@@ -21,6 +29,8 @@ +@@ -32,6 +40,8 @@ 2009-01-23 Roland McGrath @@ -129,7 +130,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3. * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of -@@ -101,6 +111,10 @@ +@@ -112,6 +122,10 @@ * configure.ac: Add dummy automake conditional to get dependencies for non-generic linker right. See src/Makefile.am. @@ -140,7 +141,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): 2005-11-18 Roland McGrath * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable. -@@ -148,6 +162,17 @@ +@@ -159,6 +173,17 @@ * Makefile.am (all_SUBDIRS): Add libdwfl. * configure.ac: Write libdwfl/Makefile. @@ -224,8 +225,8 @@ GNU_SOURCE and thus %a is interpreted as having a float param): LEXLIB LEX_OUTPUT_ROOT LEX -@@ -3852,6 +3854,130 @@ if test "x$ac_cv_c99" != xyes; then : - as_fn_error "gcc with C99 support required" "$LINENO" 5 +@@ -3856,6 +3858,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 @@ -355,13 +356,13 @@ GNU_SOURCE and thus %a is interpreted as having a float param): { $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 : -@@ -3888,7 +4014,13 @@ fi +@@ -3892,7 +4018,13 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5 $as_echo "$ac_cv_tls" >&6; } if test "x$ac_cv_tls" != xyes; then : -- as_fn_error "__thread support required" "$LINENO" 5 +- as_fn_error $? "__thread support required" "$LINENO" 5 + if test "$use_locks" = yes; then : -+ as_fn_error "--enable-thread-safety requires __thread support" "$LINENO" 5 ++ as_fn_error $? "--enable-thread-safety requires __thread support" "$LINENO" 5 +else + +$as_echo "#define __thread /* empty: no multi-thread support */" >>confdefs.h @@ -370,16 +371,16 @@ GNU_SOURCE and thus %a is interpreted as having a float param): fi # Check whether --enable-largefile was given. -@@ -4874,7 +5006,7 @@ ac_config_files="$ac_config_files versio +@@ -4878,7 +5010,7 @@ ac_config_files="$ac_config_files versio # 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 ;; + *) as_fn_error $? "confused by version number '$PACKAGE_VERSION'" "$LINENO" 5 ;; esac case "$eu_version" in -@@ -4903,7 +5035,7 @@ case "$eu_version" in +@@ -4907,7 +5039,7 @@ case "$eu_version" in esac # Round up to the next release API (x.y) version. @@ -390,7 +391,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): # This file is a shell script that caches the results of configure --- elfutils/configure.ac +++ elfutils/configure.ac -@@ -73,6 +73,54 @@ CFLAGS="$old_CFLAGS"]) +@@ -70,6 +70,54 @@ CFLAGS="$old_CFLAGS"]) AS_IF([test "x$ac_cv_c99" != xyes], AC_MSG_ERROR([gcc with C99 support required])) @@ -445,7 +446,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): AC_CACHE_CHECK([for __thread support], ac_cv_tls, [dnl # Use the same flags that we use for our DSOs, so the test is representative. # Some old compiler/linker/libc combinations fail some ways and not others. -@@ -88,7 +136,10 @@ static __thread int a; int foo (int b) { +@@ -85,7 +133,10 @@ static __thread int a; int foo (int b) { CFLAGS="$save_CFLAGS" LDFLAGS="$save_LDFLAGS"]) AS_IF([test "x$ac_cv_tls" != xyes], @@ -457,7 +458,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): dnl This test must come as early as possible after the compiler configuration dnl tests, because the choice of the file model can (in principle) affect -@@ -251,7 +302,7 @@ AC_SUBST([eu_version]) +@@ -248,7 +299,7 @@ AC_SUBST([eu_version]) # 1.234 -> 1234 case "$PACKAGE_VERSION" in @@ -466,7 +467,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): *) AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;; esac case "$eu_version" in -@@ -280,6 +331,6 @@ case "$eu_version" in +@@ -277,6 +328,6 @@ case "$eu_version" in esac # Round up to the next release API (x.y) version. @@ -547,7 +548,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): @MUDFLAP_FALSE@libmudflap = --- elfutils/libasm/ChangeLog +++ elfutils/libasm/ChangeLog -@@ -67,6 +67,11 @@ +@@ -71,6 +71,11 @@ * asm_error.c: Add new error ASM_E_IOERROR. * libasmP.h: Add ASM_E_IOERROR definition. @@ -588,7 +589,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): @MUDFLAP_FALSE@libmudflap = --- elfutils/libcpu/ChangeLog +++ elfutils/libcpu/ChangeLog -@@ -9,6 +9,9 @@ +@@ -15,6 +15,9 @@ 2009-01-23 Roland McGrath @@ -598,7 +599,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): * Makefile.am (i386_parse_CFLAGS): Use quotes around command substitution that can produce leading whitespace. -@@ -338,6 +341,11 @@ +@@ -344,6 +347,11 @@ * defs/i386.doc: New file. * defs/x86_64: New file. @@ -649,7 +650,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): @MUDFLAP_FALSE@libmudflap = --- elfutils/libdw/ChangeLog +++ elfutils/libdw/ChangeLog -@@ -276,6 +276,10 @@ +@@ -308,6 +308,10 @@ * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too. @@ -660,7 +661,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): 2009-08-10 Roland McGrath * dwarf_getscopevar.c: Use dwarf_diename. -@@ -1044,6 +1048,11 @@ +@@ -1076,6 +1080,11 @@ 2005-05-31 Roland McGrath @@ -674,7 +675,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): --- elfutils/libdw/libdw.h +++ elfutils/libdw/libdw.h -@@ -842,7 +842,7 @@ extern Dwarf_OOM dwarf_new_oom_handler ( +@@ -852,7 +852,7 @@ extern Dwarf_OOM dwarf_new_oom_handler ( /* Inline optimizations. */ @@ -685,7 +686,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): dwarf_whatattr (Dwarf_Attribute *attr) --- elfutils/libdw/Makefile.in +++ elfutils/libdw/Makefile.in -@@ -191,6 +191,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -192,6 +192,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -693,7 +694,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -220,6 +221,7 @@ SHELL = @SHELL@ +@@ -221,6 +222,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -701,7 +702,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -282,7 +284,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi +@@ -283,7 +285,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi -I$(srcdir)/../libelf AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ $($(*F)_no_Werror),,-Werror) $(if \ @@ -712,7 +713,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): @MUDFLAP_FALSE@libmudflap = --- elfutils/libdwfl/ChangeLog +++ elfutils/libdwfl/ChangeLog -@@ -1265,6 +1265,11 @@ +@@ -1366,6 +1366,11 @@ 2005-07-21 Roland McGrath @@ -726,7 +727,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): * test2.c (main): Check sscanf result to quiet warning. --- elfutils/libdwfl/Makefile.in +++ elfutils/libdwfl/Makefile.in -@@ -181,6 +181,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -182,6 +182,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -734,7 +735,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -210,6 +211,7 @@ SHELL = @SHELL@ +@@ -211,6 +212,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -742,7 +743,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -273,7 +275,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi +@@ -274,7 +276,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi -I$(srcdir)/../libdw AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ $($(*F)_no_Werror),,-Werror) $(if \ @@ -753,7 +754,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): @MUDFLAP_FALSE@libmudflap = --- elfutils/libebl/ChangeLog +++ elfutils/libebl/ChangeLog -@@ -624,6 +624,11 @@ +@@ -628,6 +628,11 @@ * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency tracking works right. @@ -794,7 +795,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): @MUDFLAP_FALSE@libmudflap = --- elfutils/libelf/ChangeLog +++ elfutils/libelf/ChangeLog -@@ -657,6 +657,11 @@ +@@ -671,6 +671,11 @@ * elf.h: Update from glibc. @@ -891,7 +892,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -165,8 +165,16 @@ +@@ -260,8 +260,16 @@ * readelf.c (attr_callback): Use print_block only when we don't use print_ops. @@ -908,7 +909,16 @@ GNU_SOURCE and thus %a is interpreted as having a float param): * ar.c (do_oper_extract): Use pathconf instead of statfs. 2009-08-01 Ulrich Drepper -@@ -513,6 +523,11 @@ +@@ -425,6 +433,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 + + * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section +@@ -608,6 +618,11 @@ that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really is valid in RELRO. @@ -920,7 +930,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): 2008-02-29 Roland McGrath * readelf.c (print_attributes): Add a cast. -@@ -764,6 +779,8 @@ +@@ -859,6 +874,8 @@ * readelf.c (hex_dump): Fix rounding error in whitespace calculation. @@ -929,7 +939,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): 2007-10-15 Roland McGrath * make-debug-archive.in: New file. -@@ -1203,6 +1220,10 @@ +@@ -1298,6 +1315,10 @@ * elflint.c (valid_e_machine): Add EM_ALPHA. Reported by Christian Aichinger . @@ -940,7 +950,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): 2006-08-08 Ulrich Drepper * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. -@@ -1279,6 +1300,10 @@ +@@ -1374,6 +1395,10 @@ * Makefile.am: Add hacks to create dependency files for non-generic linker. @@ -951,7 +961,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): 2006-06-12 Ulrich Drepper * ldgeneric.c (ld_generic_generate_sections): Don't create .interp -@@ -1627,6 +1652,11 @@ +@@ -1722,6 +1747,11 @@ * readelf.c (print_debug_loc_section): Fix indentation for larger address size. @@ -965,7 +975,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): * readelf.c (print_debug_line_section): Print section offset of each --- elfutils/src/findtextrel.c +++ elfutils/src/findtextrel.c -@@ -490,7 +490,11 @@ ptrcompare (const void *p1, const void * +@@ -504,7 +504,11 @@ ptrcompare (const void *p1, const void * static void @@ -1046,7 +1056,35 @@ GNU_SOURCE and thus %a is interpreted as having a float param): size_LDADD = $(libelf) $(libeu) $(libmudflap) --- elfutils/src/readelf.c +++ elfutils/src/readelf.c -@@ -7845,7 +7845,7 @@ dump_archive_index (Elf *elf, const char +@@ -4274,10 +4274,11 @@ struct listptr + #define listptr_offset_size(p) ((p)->dwarf64 ? 8 : 4) + #define listptr_address_size(p) ((p)->addr64 ? 8 : 4) + ++static const char *listptr_name; + static int +-compare_listptr (const void *a, const void *b, void *arg) ++compare_listptr (const void *a, const void *b) + { +- const char *name = arg; ++ const char *const name = listptr_name; + struct listptr *p1 = (void *) a; + struct listptr *p2 = (void *) b; + +@@ -4357,8 +4358,11 @@ static void + sort_listptr (struct listptr_table *table, const char *name) + { + if (table->n > 0) +- qsort_r (table->table, table->n, sizeof table->table[0], +- &compare_listptr, (void *) name); ++ { ++ listptr_name = name; ++ qsort (table->table, table->n, sizeof table->table[0], ++ &compare_listptr); ++ } + } + + static bool +@@ -8098,7 +8102,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)) @@ -1082,7 +1120,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): break; } if (errno != EINVAL && errno != ENOMEM) -@@ -586,9 +595,11 @@ read_block (int fd, const char *fname, o +@@ -584,9 +593,11 @@ read_block (int fd, const char *fname, o elfmap_off = from & ~(ps - 1); elfmap_base = elfmap = map_file (fd, elfmap_off, fdlen, &elfmap_size); @@ -1109,7 +1147,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): /* Name and version of program. */ static void print_version (FILE *stream, struct argp_state *state); -@@ -301,8 +307,18 @@ process_file (const char *fname) +@@ -311,8 +317,18 @@ process_file (const char *fname) /* If we have to preserve the timestamp, we need it in the format utimes() understands. */ @@ -1128,7 +1166,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): } /* Open the file. */ -@@ -1747,7 +1763,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1809,7 +1825,7 @@ while computing checksum for debug infor /* If requested, preserve the timestamp. */ if (tvp != NULL) { @@ -1137,7 +1175,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): { error (0, errno, gettext ("\ cannot set access and modification date of '%s'"), -@@ -1804,7 +1820,7 @@ handle_ar (int fd, Elf *elf, const char +@@ -1866,7 +1882,7 @@ handle_ar (int fd, Elf *elf, const char if (tvp != NULL) { @@ -1148,7 +1186,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): cannot set access and modification date of '%s'"), fname); --- elfutils/tests/ChangeLog +++ elfutils/tests/ChangeLog -@@ -154,6 +154,8 @@ +@@ -205,6 +205,8 @@ 2008-01-21 Roland McGrath @@ -1157,7 +1195,7 @@ GNU_SOURCE and thus %a is interpreted as having a float param): * testfile45.S.bz2: Add tests for cltq, cqto. * testfile45.expect.bz2: Adjust. -@@ -862,6 +864,11 @@ +@@ -913,6 +915,11 @@ * Makefile.am (TESTS): Add run-elflint-test.sh. (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2. diff --git a/elfutils-robustify.patch b/elfutils-robustify.patch index c2ac0ac..ada2dbd 100644 --- a/elfutils-robustify.patch +++ b/elfutils-robustify.patch @@ -1,16 +1,6 @@ -From: Tony Jones -Subject: Elfutils robustify patch -Version: 0.148 -References: https://fedorahosted.org/releases/e/l/elfutils/0.148/elfutils-robustify.patch -Upstream: yes - -This patch contains functional/stability fixes that are regarded as generally -useful by the community but are not accepted by the elfutils maintainer (and -are therefore not in the git repository). - --- elfutils/libelf/ChangeLog +++ elfutils/libelf/ChangeLog -@@ -649,10 +649,53 @@ +@@ -663,10 +663,53 @@ If section content hasn't been read yet, do it before looking for the block size. If no section data present, infer size of section header. @@ -875,7 +865,7 @@ are therefore not in the git repository). #endif /* libelfP.h */ --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -1615,6 +1615,16 @@ +@@ -1710,6 +1710,16 @@ object symbols or symbols with unknown type. (check_rel): Likewise. @@ -892,7 +882,7 @@ are therefore not in the git repository). 2005-06-08 Roland McGrath * readelf.c (print_ops): Add consts. -@@ -1660,6 +1670,19 @@ +@@ -1755,6 +1765,19 @@ * readelf.c (dwarf_tag_string): Add new tags. @@ -987,7 +977,7 @@ are therefore not in the git repository). } if (sym->st_shndx == SHN_XINDEX) -@@ -1038,9 +1048,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e +@@ -1039,9 +1049,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e { GElf_Shdr rcshdr_mem; const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem); @@ -1001,7 +991,7 @@ are therefore not in the git repository). { /* Found the dynamic section. Look through it. */ Elf_Data *d = elf_getdata (scn, NULL); -@@ -1050,7 +1062,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e +@@ -1051,7 +1063,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e { GElf_Dyn dyn_mem; GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem); @@ -1012,7 +1002,7 @@ are therefore not in the git repository). if (dyn->d_tag == DT_RELCOUNT) { -@@ -1064,7 +1078,9 @@ section [%2d] '%s': DT_RELCOUNT used for +@@ -1065,7 +1079,9 @@ section [%2d] '%s': DT_RELCOUNT used for /* Does the number specified number of relative relocations exceed the total number of relocations? */ @@ -1023,7 +1013,7 @@ are therefore not in the git repository). ERROR (gettext ("\ section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"), idx, section_name (ebl, idx), -@@ -1224,7 +1240,8 @@ section [%2d] '%s': no relocations for m +@@ -1225,7 +1241,8 @@ section [%2d] '%s': no relocations for m } } @@ -1033,7 +1023,7 @@ are therefore not in the git repository). ERROR (gettext (reltype == ELF_T_RELA ? "\ section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\ section [%2d] '%s': section entry size does not match ElfXX_Rel\n"), -@@ -1447,7 +1464,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G +@@ -1448,7 +1465,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G Elf_Data *symdata = elf_getdata (symscn, NULL); enum load_state state = state_undecided; @@ -1043,7 +1033,7 @@ are therefore not in the git repository). { GElf_Rela rela_mem; GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem); -@@ -1497,7 +1515,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE +@@ -1498,7 +1516,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE Elf_Data *symdata = elf_getdata (symscn, NULL); enum load_state state = state_undecided; @@ -1053,7 +1043,7 @@ are therefore not in the git repository). { GElf_Rel rel_mem; GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem); -@@ -1600,7 +1619,8 @@ section [%2d] '%s': referenced as string +@@ -1597,7 +1616,8 @@ section [%2d] '%s': referenced as string shdr->sh_link, section_name (ebl, shdr->sh_link), idx, section_name (ebl, idx)); @@ -1063,7 +1053,7 @@ are therefore not in the git repository). ERROR (gettext ("\ section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"), idx, section_name (ebl, idx)); -@@ -1610,7 +1630,7 @@ section [%2d] '%s': section entry size d +@@ -1607,7 +1627,7 @@ section [%2d] '%s': section entry size d idx, section_name (ebl, idx)); bool non_null_warned = false; @@ -1072,7 +1062,7 @@ are therefore not in the git repository). { GElf_Dyn dyn_mem; GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem); -@@ -1891,6 +1911,8 @@ section [%2d] '%s': entry size does not +@@ -1879,6 +1899,8 @@ section [%2d] '%s': entry size does not idx, section_name (ebl, idx)); if (symshdr != NULL @@ -1081,7 +1071,7 @@ are therefore not in the git repository). && (shdr->sh_size / shdr->sh_entsize < symshdr->sh_size / symshdr->sh_entsize)) ERROR (gettext ("\ -@@ -1917,6 +1939,12 @@ section [%2d] '%s': extended section ind +@@ -1905,6 +1927,12 @@ section [%2d] '%s': extended section ind } Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL); @@ -1094,7 +1084,7 @@ are therefore not in the git repository). if (*((Elf32_Word *) data->d_buf) != 0) ERROR (gettext ("symbol 0 should have zero extended section index\n")); -@@ -1959,7 +1987,7 @@ section [%2d] '%s': hash table section i +@@ -1947,7 +1975,7 @@ section [%2d] '%s': hash table section i size_t maxidx = nchain; @@ -1103,7 +1093,7 @@ are therefore not in the git repository). { size_t symsize = symshdr->sh_size / symshdr->sh_entsize; -@@ -1970,18 +1998,28 @@ section [%2d] '%s': hash table section i +@@ -1958,18 +1986,28 @@ section [%2d] '%s': hash table section i maxidx = symsize; } @@ -1134,7 +1124,7 @@ are therefore not in the git repository). } -@@ -2011,18 +2049,28 @@ section [%2d] '%s': hash table section i +@@ -1999,18 +2037,28 @@ section [%2d] '%s': hash table section i maxidx = symsize; } @@ -1166,7 +1156,7 @@ are therefore not in the git repository). } -@@ -2047,7 +2095,7 @@ section [%2d] '%s': bitmask size not pow +@@ -2035,7 +2083,7 @@ section [%2d] '%s': bitmask size not pow if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)) { ERROR (gettext ("\ @@ -1175,7 +1165,7 @@ are therefore not in the git repository). idx, section_name (ebl, idx), (long int) shdr->sh_size, (long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))); return; -@@ -2719,8 +2767,9 @@ section [%2d] '%s' refers in sh_link to +@@ -2707,8 +2755,9 @@ section [%2d] '%s' refers in sh_link to /* The number of elements in the version symbol table must be the same as the number of symbols. */ @@ -1189,7 +1179,7 @@ are therefore not in the git repository). idx, section_name (ebl, idx), --- elfutils/src/readelf.c +++ elfutils/src/readelf.c -@@ -1172,6 +1172,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G +@@ -1178,6 +1178,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G Elf32_Word *grpref = (Elf32_Word *) data->d_buf; GElf_Sym sym_mem; @@ -1198,7 +1188,7 @@ are therefore not in the git repository). printf ((grpref[0] & GRP_COMDAT) ? ngettext ("\ \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n", -@@ -1184,8 +1186,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G +@@ -1190,8 +1192,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), @@ -1209,7 +1199,7 @@ are therefore not in the git repository). ?: gettext (""), data->d_size / sizeof (Elf32_Word) - 1); -@@ -1336,7 +1338,8 @@ static void +@@ -1342,7 +1344,8 @@ static void handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) { int class = gelf_getclass (ebl->elf); @@ -1219,7 +1209,7 @@ are therefore not in the git repository). Elf_Data *data; size_t cnt; size_t shstrndx; -@@ -1351,6 +1354,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, +@@ -1357,6 +1360,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1231,7 +1221,7 @@ are therefore not in the git repository). printf (ngettext ("\ \nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -1360,9 +1368,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, +@@ -1366,9 +1374,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (int) shdr->sh_link, @@ -1242,7 +1232,7 @@ are therefore not in the git repository). fputs_unlocked (gettext (" Type Value\n"), stdout); for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) -@@ -1945,6 +1951,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G +@@ -1951,6 +1957,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1256,7 +1246,7 @@ are therefore not in the git repository). /* Now we can compute the number of entries in the section. */ unsigned int nsyms = data->d_size / (class == ELFCLASS32 ? sizeof (Elf32_Sym) -@@ -1955,15 +1968,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G +@@ -1961,15 +1974,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G nsyms), (unsigned int) elf_ndxscn (scn), elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms); @@ -1273,7 +1263,7 @@ are therefore not in the git repository). fputs_unlocked (class == ELFCLASS32 ? gettext ("\ -@@ -2199,7 +2209,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, +@@ -2205,7 +2215,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1288,7 +1278,7 @@ are therefore not in the git repository). printf (ngettext ("\ \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2210,9 +2226,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, +@@ -2216,9 +2232,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1299,7 +1289,7 @@ are therefore not in the git repository). unsigned int offset = 0; for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -2265,8 +2279,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G +@@ -2271,8 +2285,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1315,7 +1305,7 @@ are therefore not in the git repository). printf (ngettext ("\ \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2278,9 +2298,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G +@@ -2284,9 +2304,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1326,7 +1316,7 @@ are therefore not in the git repository). unsigned int offset = 0; for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -2542,8 +2560,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G +@@ -2548,8 +2566,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G filename = NULL; } @@ -1342,7 +1332,7 @@ are therefore not in the git repository). printf (ngettext ("\ \nVersion symbols section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'", "\ -@@ -2555,9 +2579,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G +@@ -2561,9 +2585,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1353,7 +1343,7 @@ are therefore not in the git repository). /* 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) -@@ -2609,7 +2631,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, +@@ -2615,7 +2637,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt) ++counts[lengths[cnt]]; @@ -1372,7 +1362,7 @@ are therefore not in the git repository). 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", "\ -@@ -2622,9 +2654,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, +@@ -2628,9 +2660,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1383,7 +1373,7 @@ are therefore not in the git repository). if (extrastr != NULL) fputs (extrastr, stdout); -@@ -4312,6 +4342,16 @@ print_debug_aranges_section (Dwfl_Module +@@ -4486,6 +4516,16 @@ print_debug_aranges_section (Dwfl_Module return; } @@ -1402,7 +1392,7 @@ are therefore not in the git repository). "\ --- elfutils/src/strip.c +++ elfutils/src/strip.c -@@ -545,6 +545,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -555,6 +555,11 @@ handle_elf (int fd, Elf *elf, const char goto fail_close; } @@ -1414,7 +1404,7 @@ are therefore not in the git repository). /* 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. -@@ -566,7 +571,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -576,7 +581,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). */ @@ -1423,7 +1413,7 @@ are therefore not in the git repository). shdr_info[cnt].scn = scn; -@@ -579,6 +584,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -589,6 +594,7 @@ handle_elf (int fd, Elf *elf, const char shdr_info[cnt].shdr.sh_name); if (shdr_info[cnt].name == NULL) { @@ -1431,7 +1421,7 @@ are therefore not in the git repository). error (0, 0, gettext ("illformed file '%s'"), fname); goto fail_close; } -@@ -588,6 +594,8 @@ handle_elf (int fd, Elf *elf, const char +@@ -598,6 +604,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; @@ -1440,7 +1430,7 @@ are therefore not in the git repository). /* Sections in files other than relocatable object files which are not loaded can be freely moved by us. In relocatable -@@ -600,7 +608,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -610,7 +618,7 @@ handle_elf (int fd, Elf *elf, const char appropriate reference. */ if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX)) { @@ -1449,7 +1439,7 @@ are therefore not in the git repository). shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt; } else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP)) -@@ -617,7 +625,12 @@ handle_elf (int fd, Elf *elf, const char +@@ -627,7 +635,12 @@ handle_elf (int fd, Elf *elf, const char for (inner = 1; inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word); ++inner) @@ -1462,7 +1452,7 @@ are therefore not in the git repository). if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0)) /* If the section group contains only one element and this -@@ -628,7 +641,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -638,7 +651,7 @@ handle_elf (int fd, Elf *elf, const char } else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym)) { @@ -1471,7 +1461,7 @@ are therefore not in the git repository). shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt; } -@@ -636,7 +649,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -646,7 +659,7 @@ handle_elf (int fd, Elf *elf, const char discarded right away. */ if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0) { @@ -1480,7 +1470,7 @@ are therefore not in the git repository). if (shdr_info[shdr_info[cnt].group_idx].idx == 0) { -@@ -711,11 +724,15 @@ handle_elf (int fd, Elf *elf, const char +@@ -722,11 +735,15 @@ 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. */ @@ -1498,7 +1488,7 @@ are therefore not in the git repository). if (shdr_info[cnt].idx == 1) { -@@ -742,7 +759,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -753,7 +770,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) { @@ -1507,7 +1497,7 @@ are therefore not in the git repository). shdr_info[shdr_info[cnt].symtab_idx].data = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, -@@ -782,6 +799,9 @@ handle_elf (int fd, Elf *elf, const char +@@ -793,6 +810,9 @@ handle_elf (int fd, Elf *elf, const char else if (scnidx == SHN_XINDEX) scnidx = xndx; @@ -1517,7 +1507,7 @@ are therefore not in the git repository). if (shdr_info[scnidx].idx == 0) /* This symbol table has a real symbol in a discarded section. So preserve the -@@ -812,12 +832,16 @@ handle_elf (int fd, Elf *elf, const char +@@ -823,12 +843,16 @@ handle_elf (int fd, Elf *elf, const char } /* Handle references through sh_info. */ @@ -1536,7 +1526,7 @@ are therefore not in the git repository). /* Mark the section as investigated. */ shdr_info[cnt].idx = 2; -@@ -956,7 +980,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -967,7 +991,7 @@ handle_elf (int fd, Elf *elf, const char error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"), elf_errmsg (-1)); @@ -1545,7 +1535,7 @@ are therefore not in the git repository). /* Add this name to the section header string table. */ shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0); -@@ -993,7 +1017,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1004,7 +1028,7 @@ handle_elf (int fd, Elf *elf, const char error (EXIT_FAILURE, 0, gettext ("while create section header section: %s"), elf_errmsg (-1)); @@ -1554,7 +1544,7 @@ are therefore not in the git repository). shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn); if (shdr_info[cnt].data == NULL) -@@ -1049,7 +1073,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1060,7 +1084,7 @@ handle_elf (int fd, Elf *elf, const char error (EXIT_FAILURE, 0, gettext ("while create section header section: %s"), elf_errmsg (-1)); @@ -1563,7 +1553,7 @@ are therefore not in the git repository). /* Finalize the string table and fill in the correct indices in the section headers. */ -@@ -1139,20 +1163,20 @@ handle_elf (int fd, Elf *elf, const char +@@ -1150,20 +1174,20 @@ handle_elf (int fd, Elf *elf, const char shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, NULL); @@ -1587,7 +1577,7 @@ are therefore not in the git repository). >= shdr_info[cnt].data->d_size / elsize); } -@@ -1207,7 +1231,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1218,7 +1242,7 @@ handle_elf (int fd, Elf *elf, const char sec = shdr_info[sym->st_shndx].idx; else { @@ -1596,7 +1586,7 @@ are therefore not in the git repository). sec = shdr_info[xshndx].idx; } -@@ -1228,7 +1252,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1239,7 +1263,7 @@ handle_elf (int fd, Elf *elf, const char nxshndx = sec; } @@ -1605,7 +1595,7 @@ are therefore not in the git repository). if ((inner != destidx || nshndx != sym->st_shndx || (shndxdata != NULL && nxshndx != xshndx)) -@@ -1252,7 +1276,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -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. */ @@ -1614,7 +1604,7 @@ are therefore not in the git repository). } if (destidx != inner) -@@ -1439,11 +1463,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -1450,11 +1474,11 @@ handle_elf (int fd, Elf *elf, const char { GElf_Sym sym_mem; GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem); @@ -1628,7 +1618,7 @@ are therefore not in the git repository). size_t hidx = elf_hash (name) % nbucket; if (bucket[hidx] == 0) -@@ -1462,7 +1486,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1473,7 +1497,7 @@ handle_elf (int fd, Elf *elf, const char else { /* Alpha and S390 64-bit use 64-bit SHT_HASH entries. */ @@ -1637,7 +1627,7 @@ are therefore not in the git repository). == sizeof (Elf64_Xword)); Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf; -@@ -1493,11 +1517,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -1504,11 +1528,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.changes b/elfutils.changes index b5e788f..056fbff 100644 --- a/elfutils.changes +++ b/elfutils.changes @@ -1,3 +1,44 @@ +------------------------------------------------------------------- +Thu Apr 28 11:12:54 UTC 2011 - idoenmez@novell.com + +- Update to 0.152 +- Upstream changelog: + 0.152 + - Various build and warning nits fixed for newest GCC and Autoconf. + - libdwfl: Yet another prelink-related fix for another regression. + Look for Linux kernel images in files named with compression suffixes. + - elfcmp: New flag --ignore-build-id to ignore differing build ID bits. + New flag -l/--verbose to print all differences. + + 0.151 + - libdwfl: Fix for more prelink cases with separate debug file. + - strip: New flag --strip-sections to remove section headers entirely. + + 0.150 + - libdw: Fix for handling huge .debug_aranges section. + - libdwfl: Fix for handling prelinked DSO with separate debug file. + - findtextrel: Fix diagnostics to work with usual section ordering. + - libebl: i386 backend fix for multi-register integer return value location. + +------------------------------------------------------------------- +Sat Sep 18 00:00:44 UTC 2010 - tonyj@novell.com + +- Update to 0.149 +- Upstream changelog + - libdwfl: Fix Linux kernel module search when dwfl_build_id_find_elf and + dwfl_build_id_find_debuginfo close fd on success + - readelf: Use symbolic printing for FDE initial_location address + - readelf: Print .debug_loc/.debug_ranges with cognizance of actual DIE + pointers into them. + - readelf: Fix crash in .debug_loc with garbage data. + - readelf: Fix DW_OP_call_ref printing for version 2 CUs. + - Handle DW_OP_GNU_implicit_pointer. + - Add dwfl_dwarf_line, addr2line -F to print out more line info bits. + - Add missing size entries for ELF_T_LIB and ELF_T_GNUHASH. + - Fix dwarf_formref_die DW_FORM_ref_sig8 hash table insertion. + - Consider .gdb_index as a debugging section + - Misc intendation, typo, translation and cleanup fixes + ------------------------------------------------------------------- Mon Sep 13 11:32:58 UTC 2010 - coolo@novell.com diff --git a/elfutils.spec b/elfutils.spec index 841d626..94057ad 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -1,5 +1,5 @@ # -# spec file for package elfutils (Version 0.148) +# spec file for package elfutils (Version 0.149) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -20,12 +20,13 @@ Name: elfutils License: GPLv2 ; GPLv2+ ; LGPLv2.1+ -Version: 0.148 -Release: 2 +Version: 0.152 +Release: 1 Summary: Higher-level library to access ELF Group: System/Libraries Url: http://elfutils.fedorahosted.org Source: elfutils-%{version}.tar.bz2 +Source1: README-BEFORE-ADDING-PATCHES Source2: baselibs.conf Patch1: elfutils-portability.patch Patch2: elfutils-robustify.patch