From: Jakub Bogusz Date: Tue, 26 Mar 2013 20:54:13 +0000 (+0100) Subject: - updated to 0.155 with upstream portability,robustify patches X-Git-Tag: auto/th/elfutils-0.157-1~4 X-Git-Url: http://git.pld-linux.org/?p=packages%2Felfutils.git;a=commitdiff_plain;h=3a5346c9cf044852d263a138eb61cc69f45dd5e6 - updated to 0.155 with upstream portability,robustify patches - updated pl.po patch - removed obsolete upstream patch - temporarily disable elflint-self test (fails with current binutils also on x86) --- diff --git a/elfutils-pl.po.patch b/elfutils-pl.po.patch index 3b600c2..891926f 100644 --- a/elfutils-pl.po.patch +++ b/elfutils-pl.po.patch @@ -1,103 +1,112 @@ ---- elfutils-0.153/po/pl.po.orig 2012-02-23 12:05:40.000000000 +0100 -+++ elfutils-0.153/po/pl.po 2012-05-07 17:26:58.614998763 +0200 -@@ -378,44 +378,44 @@ +--- elfutils-0.155/po/pl.po.orig 2012-08-27 20:34:13.000000000 +0200 ++++ elfutils-0.155/po/pl.po 2013-03-26 17:52:45.907774952 +0100 +@@ -206,7 +206,7 @@ + + #: libdw/dwarf_error.c:94 + msgid "no alternative debug link found" +-msgstr "" ++msgstr "nie znaleziono alternatywnego dowiązania diagnostycznego" + + #: libdwfl/argp-std.c:46 src/unstrip.c:2240 + msgid "Input selection options:" +@@ -382,44 +382,44 @@ msgstr ": %#" - #: libebl/eblobjnote.c:76 + #: libebl/eblobjnote.c:55 -#, fuzzy, c-format +#, c-format msgid "unknown SDT version %u\n" -msgstr "nieznana wersja" +msgstr "nieznana wersja SDT %u\n" - #: libebl/eblobjnote.c:94 + #: libebl/eblobjnote.c:73 -#, fuzzy, c-format +#, c-format msgid "invalid SDT probe descriptor\n" -msgstr "nieprawidłowy deskryptor pliku" +msgstr "nieprawidłowy deskryptor sondy SDT\n" - #: libebl/eblobjnote.c:144 + #: libebl/eblobjnote.c:123 #, c-format msgid " PC: " -msgstr "" +msgstr " PC: " - #: libebl/eblobjnote.c:146 + #: libebl/eblobjnote.c:125 #, c-format msgid " Base: " -msgstr "" +msgstr " Podstawa: " - #: libebl/eblobjnote.c:148 + #: libebl/eblobjnote.c:127 #, c-format msgid " Semaphore: " -msgstr "" +msgstr " Semafor: " - #: libebl/eblobjnote.c:150 + #: libebl/eblobjnote.c:129 #, c-format msgid " Provider: " -msgstr "" +msgstr " Dostawca: " - #: libebl/eblobjnote.c:152 + #: libebl/eblobjnote.c:131 #, c-format msgid " Name: " -msgstr "" +msgstr " Nazwa: " - #: libebl/eblobjnote.c:154 + #: libebl/eblobjnote.c:133 #, c-format msgid " Args: " -msgstr "" +msgstr " Argumenty: " - #: libebl/eblobjnote.c:164 + #: libebl/eblobjnote.c:143 #, c-format -@@ -805,7 +805,7 @@ - #: src/ar.c:256 +@@ -809,7 +809,7 @@ + #: src/ar.c:249 #, c-format msgid "command option required" -msgstr "" +msgstr "wymagana opcja polecenia" - #: src/ar.c:321 + #: src/ar.c:314 #, c-format -@@ -3872,9 +3872,8 @@ +@@ -3876,9 +3876,8 @@ msgstr "Używa BAZY do wypisywania wartości symboli" - #: src/nm.c:95 + #: src/nm.c:87 -#, fuzzy msgid "Mark special symbols" -msgstr "Oznacza słabe symbole" +msgstr "Oznacza symbole specjalne" - #: src/nm.c:97 + #: src/nm.c:89 msgid "Print size of defined symbols" -@@ -3898,16 +3897,15 @@ +@@ -3902,16 +3901,15 @@ - #: src/nm.c:106 + #: src/nm.c:98 msgid "Decode low-level symbol names into source code names" -msgstr "" +msgstr "Dekoduje niskopoziomowe nazwy symboli na nazwy z kodu źródłowego" - #: src/nm.c:113 + #: src/nm.c:105 msgid "List symbols from FILEs (a.out by default)." msgstr "Wyświetla listę symboli z PLIKU (domyślnie a.out)." - #: src/nm.c:124 src/objdump.c:88 + #: src/nm.c:116 src/objdump.c:80 -#, fuzzy msgid "Output formatting" -msgstr "Format wyjścia:" +msgstr "Format wyjścia" - #: src/nm.c:148 src/objdump.c:112 src/size.c:117 src/strip.c:128 + #: src/nm.c:140 src/objdump.c:104 src/size.c:109 src/strip.c:120 #, c-format -@@ -3926,13 +3924,12 @@ +@@ -3930,13 +3928,12 @@ msgstr "%s: nie rozpoznano formatu pliku" - #: src/nm.c:468 + #: src/nm.c:460 -#, fuzzy msgid "" "\n" @@ -107,85 +116,73 @@ -"Indeks archiwum:" +"Indeks archiwum:\n" - #: src/nm.c:477 + #: src/nm.c:469 #, c-format -@@ -4028,9 +4025,8 @@ +@@ -4032,9 +4029,8 @@ msgstr "Wyświetla kod asemblera sekcji wykonywalnych" - #: src/objdump.c:68 + #: src/objdump.c:60 -#, fuzzy msgid "Output content selection:" -msgstr "Wybór opcji wyjścia:" +msgstr "Wybór zawartości wyjścia:" - #: src/objdump.c:70 + #: src/objdump.c:62 msgid "Only display information for section NAME." -@@ -4083,9 +4079,9 @@ +@@ -4087,9 +4083,9 @@ msgstr "nie można deasemblować" - #: src/objdump.c:744 + #: src/objdump.c:736 -#, fuzzy, c-format +#, c-format msgid "cannot allocate memory" -msgstr "nie można przydzielić sekcji PLT: %s" +msgstr "nie można przydzielić pamięci" - #: src/ranlib.c:74 + #: src/ranlib.c:66 msgid "Generate an index to speed access to archives." -@@ -4167,14 +4163,13 @@ +@@ -4171,14 +4167,13 @@ msgstr "Dodatkowy wybór wyjścia:" - #: src/readelf.c:95 + #: src/readelf.c:89 -#, fuzzy msgid "" "Display DWARF section content. SECTION can be one of abbrev, aranges, " - "frame, gdb_index, info, loc, line, ranges, pubnames, str, macinfo, or " + "frame, gdb_index, info, loc, line, ranges, pubnames, str, macinfo, macro or " "exception" msgstr "" "Wyświetla zawartość sekcji DWARF. SEKCJA może być jednym z abbrev, aranges, " -"frame, info, loc, line, ranges, pubnames, str, macinfo lub exception." -+"frame, gdb_index, info, loc, line, ranges, pubnames, str, macinfo lub exception." ++"frame, gdb_index, info, loc, line, ranges, pubnames, str, macinfo, macro lub exception." - #: src/readelf.c:99 + #: src/readelf.c:93 msgid "Dump the uninterpreted contents of SECTION, by number or name" -@@ -4198,7 +4193,7 @@ +@@ -4202,7 +4197,7 @@ - #: src/readelf.c:110 + #: src/readelf.c:104 msgid "Ignored for compatibility (lines always wide)" -msgstr "" +msgstr "Ignorowane dla kompatybilności (linie są zawsze szerokie)" - #: src/readelf.c:115 + #: src/readelf.c:109 msgid "Print information from ELF file in human-readable form." -@@ -5067,9 +5062,9 @@ - msgstr "nieznany atrybut użytkownika %hx" - - #: src/readelf.c:3657 --#, fuzzy, c-format -+#, c-format - msgid "unknown form %#" --msgstr "nieznana forma %" -+msgstr "nieznana forma %#" - - #: src/readelf.c:3893 - msgid "empty block" -@@ -5450,21 +5445,18 @@ +@@ -5429,21 +5424,18 @@ msgstr " instrukcja rozszerzona %u: " - #: src/readelf.c:6258 + #: src/readelf.c:5781 -#, fuzzy msgid " end of sequence" -msgstr "koniec sekwencji" +msgstr " koniec sekwencji" - #: src/readelf.c:6275 + #: src/readelf.c:5798 -#, fuzzy, c-format +#, c-format msgid " set address to %s\n" -msgstr "ustawienie adresu na %s\n" +msgstr " ustawienie adresu na %s\n" - #: src/readelf.c:6296 + #: src/readelf.c:5819 -#, fuzzy, c-format +#, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" @@ -194,22 +191,22 @@ -"%s\n" +msgstr " definicja nowego pliku: dir=%u, mtime=%, długość=%, nazwa=%s\n" - #: src/readelf.c:6309 + #: src/readelf.c:5832 #, c-format -@@ -5472,25 +5464,22 @@ +@@ -5451,25 +5443,22 @@ msgstr " ustawienie dyskryminatora na %u\n" - #: src/readelf.c:6314 + #: src/readelf.c:5837 -#, fuzzy msgid " unknown opcode" -msgstr "nieznana instrukcja" +msgstr " nieznana instrukcja" - #: src/readelf.c:6326 + #: src/readelf.c:5849 msgid " copy" msgstr " kopiowanie" - #: src/readelf.c:6337 + #: src/readelf.c:5860 -#, fuzzy, c-format +#, c-format msgid " advance address by %u to %s, op_index to %u\n" @@ -218,45 +215,123 @@ -"\n" +msgstr " zwiększenie adresu o %u do %s, op_index do %u\n" - #: src/readelf.c:6341 + #: src/readelf.c:5864 -#, fuzzy, c-format +#, c-format msgid " advance address by %u to %s\n" -msgstr "zwiększenie adresu o %u do %s\n" +msgstr " zwiększenie adresu o %u do %s\n" - #: src/readelf.c:6352 + #: src/readelf.c:5875 #, c-format -@@ -5517,19 +5506,19 @@ +@@ -5496,19 +5485,19 @@ msgstr " ustawienie podstawowej flagi bloku" - #: src/readelf.c:6392 + #: src/readelf.c:5915 -#, fuzzy, c-format +#, c-format msgid " advance address by constant %u to %s, op_index to %u\n" -msgstr "zwiększenie adresu o stałą %u do %s, op_index do %u\n" +msgstr " zwiększenie adresu o stałą %u do %s, op_index do %u\n" - #: src/readelf.c:6396 + #: src/readelf.c:5919 -#, fuzzy, c-format +#, c-format msgid " advance address by constant %u to %s\n" -msgstr "zwiększenie adresu o stałą %u do %s\n" +msgstr " zwiększenie adresu o stałą %u do %s\n" - #: src/readelf.c:6414 + #: src/readelf.c:5937 -#, fuzzy, c-format +#, c-format msgid " advance address by fixed value %u to %s\n" -msgstr "zwiększenie adresu o stałą wartość %u do %s\n" +msgstr " zwiększenie adresu o stałą wartość %u do %s\n" - #: src/readelf.c:6423 + #: src/readelf.c:5946 msgid " set prologue end flag" -@@ -5662,84 +5651,84 @@ +@@ -5561,59 +5550,59 @@ + msgstr "%*s*** niezakończony ciąg na końcu sekcji" + + #: src/readelf.c:6327 +-#, fuzzy, c-format ++#, c-format + msgid " Offset: 0x%\n" +-msgstr " Właściciel Rozmiar\n" ++msgstr " Offset: 0x%\n" + + #: src/readelf.c:6339 +-#, fuzzy, c-format ++#, c-format + msgid " Version: %\n" +-msgstr " %s: %\n" ++msgstr " Wersja: %\n" + + #: src/readelf.c:6345 src/readelf.c:7055 + #, c-format + msgid " unknown version, cannot parse section\n" +-msgstr "" ++msgstr " nieznana wersja, nie można przeanalizować sekcji\n" + + #: src/readelf.c:6352 +-#, fuzzy, c-format ++#, c-format + msgid " Flag: 0x%\n" +-msgstr " Adres punktu wejściowego: %#\n" ++msgstr " Flaga: 0x%\n" + + #: src/readelf.c:6355 +-#, fuzzy, c-format ++#, c-format + msgid " Offset length: %\n" +-msgstr " (offset: %#)" ++msgstr " Długość offsetu: %\n" + + #: src/readelf.c:6363 +-#, fuzzy, c-format ++#, c-format + msgid " .debug_line offset: 0x%\n" +-msgstr " (kończący offset: %#)" ++msgstr " Offset .debug_line: 0x%\n" + + #: src/readelf.c:6375 +-#, fuzzy, c-format ++#, c-format + msgid " extension opcode table, % items:\n" +-msgstr " nieznana instrukcja z % parametrem:" ++msgstr " tablica instrukcji rozszerzeń (elementów: %):\n" + + #: src/readelf.c:6382 + #, c-format + msgid " [%]" +-msgstr "" ++msgstr " [%]" + + #: src/readelf.c:6394 +-#, fuzzy, c-format ++#, c-format + msgid " % arguments:" +-msgstr " [%*] %hhu parametr\n" ++msgstr " argumenty w liczbie %:" + + #: src/readelf.c:6422 + #, c-format + msgid " no arguments." +-msgstr "" ++msgstr " brak argumentów." + + #: src/readelf.c:6657 + #, c-format + msgid "vendor opcode not verified?" +-msgstr "" ++msgstr "instrukcja producenta nie zweryfikowana?" + + #: src/readelf.c:6685 + #, c-format +@@ -5696,79 +5685,79 @@ msgstr "nieprawidłowe kodowanie TType" - #: src/readelf.c:7089 + #: src/readelf.c:7019 -#, fuzzy, c-format +#, c-format msgid "" @@ -267,55 +342,49 @@ -"Sekcja DWARF [%2zu] \"%s\" pod offsetem %# zawiera %zu wpis:\n" +"Sekcja GDB [%2zu] '%s' pod offsetem %# o rozmiarze % B :\n" - #: src/readelf.c:7118 + #: src/readelf.c:7048 -#, fuzzy, c-format +#, c-format msgid " Version: %\n" -msgstr " %s: %\n" +msgstr " Wersja: %\n" - #: src/readelf.c:7124 - #, c-format - msgid " unknown version, cannot parse section\n" --msgstr "" -+msgstr " nieznana wersja, nie można przeanalizować sekcji\n" - - #: src/readelf.c:7133 + #: src/readelf.c:7064 -#, fuzzy, c-format +#, c-format msgid " CU offset: %#\n" -msgstr " (offset: %#)" +msgstr " offset CU: %#\n" - #: src/readelf.c:7140 + #: src/readelf.c:7071 -#, fuzzy, c-format +#, c-format msgid " TU offset: %#\n" -msgstr " (offset: %#)" +msgstr " offset TU: %#\n" - #: src/readelf.c:7147 + #: src/readelf.c:7078 -#, fuzzy, c-format +#, c-format msgid " address offset: %#\n" -msgstr " (kończący offset: %#)" +msgstr " offset adresu: %#\n" - #: src/readelf.c:7154 + #: src/readelf.c:7085 -#, fuzzy, c-format +#, c-format msgid " symbol offset: %#\n" -msgstr " (offset: %#)" +msgstr " offset symbolu: %#\n" - #: src/readelf.c:7161 + #: src/readelf.c:7092 -#, fuzzy, c-format +#, c-format msgid " constant offset: %#\n" -msgstr " (kończący offset: %#)" +msgstr " offset stałej: %#\n" - #: src/readelf.c:7168 + #: src/readelf.c:7099 -#, fuzzy, c-format +#, c-format msgid "" @@ -326,7 +395,7 @@ -"Sekcja DWARF [%2zu] \"%s\" pod offsetem %# zawiera %zu wpis:\n" +" Lista CU pod offsetem %# (wpisów: %zu):\n" - #: src/readelf.c:7190 + #: src/readelf.c:7121 -#, fuzzy, c-format +#, c-format msgid "" @@ -337,7 +406,7 @@ -"Sekcja DWARF [%2zu] \"%s\" pod offsetem %# zawiera %zu wpis:\n" +" Lista TU pod offsetem %# (wpisów: %zu):\n" - #: src/readelf.c:7216 + #: src/readelf.c:7147 -#, fuzzy, c-format +#, c-format msgid "" @@ -348,7 +417,7 @@ -"Sekcja DWARF [%2zu] \"%s\" pod offsetem %# zawiera %zu wpis:\n" +" Lista adresów pod offsetem %# (wpisów: %zu):\n" - #: src/readelf.c:7243 + #: src/readelf.c:7174 -#, fuzzy, c-format +#, c-format msgid "" @@ -359,9 +428,9 @@ -"Nieprawidłowa tabela symboli pod offsetem %#0\n" +" Tablica symboli pof offsetem %# (wpisów: %zu):\n" - #: src/readelf.c:7296 + #: src/readelf.c:7259 #, c-format -@@ -6047,6 +6036,9 @@ +@@ -6076,6 +6065,9 @@ "sections are placed in a debug file (only relevant for ET_REL files, " "operation is not reversable, needs -f)" msgstr "" @@ -369,26 +438,57 @@ +"jeśli usuwane sekcje są umieszczane w pliku debugowym (do używania " +"wyłącznie z plikami ET_REL, operacja nieodwracalna, wymaga -f)" - #: src/strip.c:93 + #: src/strip.c:85 msgid "Remove .comment section" -@@ -6063,7 +6055,7 @@ - #: src/strip.c:189 +@@ -6092,7 +6084,7 @@ + #: src/strip.c:181 #, c-format msgid "--reloc-debug-sections used without -f" -msgstr "" +msgstr "--reloc-debug-sections użyte bez -f" - #: src/strip.c:203 + #: src/strip.c:195 #, c-format -@@ -6151,9 +6143,9 @@ +@@ -6180,9 +6172,9 @@ msgstr "podczas tworzenia tabeli ciągów nagłówka sekcji: %s" - #: src/strip.c:1732 + #: src/strip.c:1724 -#, fuzzy, c-format +#, c-format msgid "bad relocation" -msgstr "Wyświetla relokacje" +msgstr "błędna relokacja" - #: src/strip.c:1849 src/strip.c:1959 + #: src/strip.c:1841 src/strip.c:1951 #, c-format +@@ -6573,30 +6565,3 @@ + "jeśli obraz ELF jest dostępny, ale nie z żadnego nazwanego pliku. PLIK-" + "DEBUGOWANIA jest nazwą oddzielnego pliku debuginfo lub \"-\", jeśli nie " + "odnaleziono debuginfo lub \".\", jeśli PLIK zawiera informacje debugowania." +- +-#~ msgid "unknown tag %hx" +-#~ msgstr "nieznany znacznik %hx" +- +-#~ msgid "unknown user tag %hx" +-#~ msgstr "nieznany znacznik użytkownika %hx" +- +-#~ msgid "unknown attribute %hx" +-#~ msgstr "nieznany atrybut %hx" +- +-#~ msgid "unknown user attribute %hx" +-#~ msgstr "nieznany atrybut użytkownika %hx" +- +-#, fuzzy +-#~ msgid "unknown form %#" +-#~ msgstr "nieznana forma %" +- +-#~ msgid "" +-#~ "\n" +-#~ "\n" +-#~ "Symbols from %s[%s]:\n" +-#~ "\n" +-#~ msgstr "" +-#~ "\n" +-#~ "\n" +-#~ "Symbole z %s[%s]:\n" +-#~ "\n" diff --git a/elfutils-portability.patch b/elfutils-portability.patch index ec78059..dd9eeb2 100644 --- a/elfutils-portability.patch +++ b/elfutils-portability.patch @@ -1,6 +1,6 @@ --- elfutils/backends/ChangeLog +++ elfutils/backends/ChangeLog -@@ -121,6 +121,10 @@ +@@ -135,6 +135,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 -@@ -448,6 +452,11 @@ +@@ -462,6 +466,11 @@ * sparc_init.c: Likewise. * x86_64_init.c: Likewise. @@ -23,7 +23,7 @@ 2005-11-19 Roland McGrath * ppc64_reloc.def: REL30 -> ADDR30. -@@ -470,6 +479,9 @@ +@@ -484,6 +493,9 @@ * Makefile.am (uninstall): Don't try to remove $(pkgincludedir). (CLEANFILES): Add libebl_$(m).so. @@ -35,7 +35,7 @@ --- elfutils/backends/Makefile.am +++ elfutils/backends/Makefile.am -@@ -103,7 +103,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a +@@ -111,7 +111,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a $(LINK) -shared -o $(@:.map=.so) \ -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \ -Wl,--version-script,$(@:.so=.map) \ @@ -56,7 +56,7 @@ 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@ +@@ -172,6 +173,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -64,7 +64,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -194,6 +196,7 @@ SHELL = @SHELL@ +@@ -201,6 +203,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -72,7 +72,7 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -256,10 +259,9 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi +@@ -263,10 +266,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 \ @@ -85,7 +85,7 @@ @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 +@@ -719,7 +721,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a $(LINK) -shared -o $(@:.map=.so) \ -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \ -Wl,--version-script,$(@:.so=.map) \ @@ -96,7 +96,16 @@ libebl_i386.so: $(cpu_i386) --- elfutils/ChangeLog +++ elfutils/ChangeLog -@@ -14,6 +14,9 @@ +@@ -16,6 +16,8 @@ + + 2012-01-24 Mark Wielaard + ++ * configure.ac: Wrap AC_COMPILE_IFELSE sources in AC_LANG_SOURCE. ++ + * COPYING: Fix address. Updated version from gnulib. + + 2012-01-23 Mark Wielaard +@@ -34,6 +36,9 @@ 2011-10-08 Mike Frysinger @@ -106,7 +115,7 @@ * configure.ac: Fix use of AC_ARG_ENABLE to handle $enableval correctly. 2011-10-02 Ulrich Drepper -@@ -35,6 +38,10 @@ +@@ -55,6 +60,10 @@ * configure.ac (LOCALEDIR, DATADIRNAME): Removed. @@ -117,7 +126,7 @@ 2009-09-21 Ulrich Drepper * configure.ac: Update for more modern autoconf. -@@ -43,6 +50,10 @@ +@@ -63,6 +72,10 @@ * configure.ac (zip_LIBS): Check for liblzma too. @@ -128,7 +137,7 @@ 2009-04-19 Roland McGrath * configure.ac (eu_version): Round down here, not in version.h macros. -@@ -54,6 +65,8 @@ +@@ -74,6 +87,8 @@ 2009-01-23 Roland McGrath @@ -137,7 +146,7 @@ * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3. * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of -@@ -134,6 +147,10 @@ +@@ -154,6 +169,10 @@ * configure.ac: Add dummy automake conditional to get dependencies for non-generic linker right. See src/Makefile.am. @@ -148,7 +157,7 @@ 2005-11-18 Roland McGrath * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable. -@@ -181,6 +198,17 @@ +@@ -201,6 +220,17 @@ * Makefile.am (all_SUBDIRS): Add libdwfl. * configure.ac: Write libdwfl/Makefile. @@ -168,7 +177,7 @@ * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros. --- elfutils/config/ChangeLog +++ elfutils/config/ChangeLog -@@ -6,6 +6,10 @@ +@@ -19,6 +19,10 @@ * known-dwarf.awk: Use gawk. @@ -186,11 +195,11 @@ ## -## Copyright (C) 2010 Red Hat, Inc. +## Copyright (C) 2010-2011 Red Hat, Inc. - ## This file is part of Red Hat elfutils. ## - ## Red Hat elfutils is free software; you can redistribute it and/or modify -@@ -25,14 +25,20 @@ - ## . + ## This file is part of elfutils. + ## +@@ -29,14 +29,20 @@ + ## not, see . ## +WEXTRA = @WEXTRA@ @@ -232,9 +241,9 @@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ --- elfutils/config.h.in +++ elfutils/config.h.in -@@ -3,6 +3,9 @@ - /* Should ar and ranlib use -D behavior by default? */ - #undef DEFAULT_AR_DETERMINISTIC +@@ -6,6 +6,9 @@ + /* Defined if libdw should support GNU ref_alt FORM, dwz multi files. */ + #undef ENABLE_DWZ +/* Have __builtin_popcount. */ +#undef HAVE_BUILTIN_POPCOUNT @@ -242,7 +251,7 @@ /* $libdir subdirectory containing libebl modules. */ #undef LIBEBL_SUBDIR -@@ -61,4 +64,7 @@ +@@ -64,4 +67,7 @@ /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES @@ -270,7 +279,7 @@ LEXLIB LEX_OUTPUT_ROOT LEX -@@ -722,6 +726,7 @@ enable_mudflap +@@ -725,6 +729,7 @@ enable_mudflap enable_debugpred enable_gprof enable_gcov @@ -278,7 +287,7 @@ enable_tests_rpath enable_libebl_subdir with_zlib -@@ -1373,6 +1378,7 @@ Optional Features: +@@ -1378,6 +1383,7 @@ Optional Features: prediction --enable-gprof build binaries with gprof support --enable-gcov build binaries with gcov support @@ -286,7 +295,7 @@ --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 : +@@ -3917,6 +3923,130 @@ if test "x$ac_cv_c99" != xyes; then : as_fn_error $? "gcc with C99 support required" "$LINENO" 5 fi @@ -417,7 +426,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __thread support" >&5 $as_echo_n "checking for __thread support... " >&6; } if ${ac_cv_tls+:} false; then : -@@ -3926,7 +4056,13 @@ fi +@@ -3953,7 +4083,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 : @@ -432,7 +441,7 @@ fi # Check whether --enable-largefile was given. -@@ -4275,6 +4411,22 @@ else +@@ -4302,6 +4438,22 @@ else fi @@ -455,7 +464,7 @@ # 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 +@@ -5022,7 +5174,7 @@ case "$eu_version" in esac # Round up to the next release API (x.y) version. @@ -464,7 +473,7 @@ 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 +@@ -5185,6 +5337,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 @@ -477,14 +486,14 @@ Usually this means the macro was only invoked conditionally." "$LINENO" 5 --- elfutils/configure.ac +++ elfutils/configure.ac -@@ -81,6 +81,54 @@ CFLAGS="$old_CFLAGS"]) +@@ -90,6 +90,54 @@ CFLAGS="$old_CFLAGS"]) AS_IF([test "x$ac_cv_c99" != xyes], AC_MSG_ERROR([gcc with C99 support required])) +AC_CACHE_CHECK([for -Wextra option to $CC], ac_cv_cc_wextra, [dnl +old_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Wextra" -+AC_COMPILE_IFELSE([void foo (void) { }], ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([void foo (void) { }])], + ac_cv_cc_wextra=yes, ac_cv_cc_wextra=no) +CFLAGS="$old_CFLAGS"]) +AC_SUBST(WEXTRA) @@ -493,14 +502,14 @@ +AC_CACHE_CHECK([for -fgnu89-inline option to $CC], ac_cv_cc_gnu89_inline, [dnl +old_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -fgnu89-inline -Werror" -+AC_COMPILE_IFELSE([ ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([ +void foo (void) +{ + inline void bar (void) {} + bar (); +} +extern inline void baz (void) {} -+], ac_cv_cc_gnu89_inline=yes, ac_cv_cc_gnu89_inline=no) ++])], ac_cv_cc_gnu89_inline=yes, ac_cv_cc_gnu89_inline=no) +CFLAGS="$old_CFLAGS"]) +AS_IF([test "x$ac_cv_cc_gnu89_inline" = xyes], + [WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"]) @@ -532,7 +541,7 @@ AC_CACHE_CHECK([for __thread support], ac_cv_tls, [dnl # Use the same flags that we use for our DSOs, so the test is representative. # Some old compiler/linker/libc combinations fail some ways and not others. -@@ -96,7 +144,10 @@ static __thread int a; int foo (int b) { +@@ -105,7 +153,10 @@ static __thread int a; int foo (int b) { CFLAGS="$save_CFLAGS" LDFLAGS="$save_LDFLAGS"]) AS_IF([test "x$ac_cv_tls" != xyes], @@ -544,7 +553,7 @@ dnl This test must come as early as possible after the compiler configuration dnl tests, because the choice of the file model can (in principle) affect -@@ -184,6 +235,11 @@ AM_CONDITIONAL(GCOV, test "$use_gcov" = +@@ -193,6 +244,11 @@ AM_CONDITIONAL(GCOV, test "$use_gcov" = AM_CONDITIONAL(BUILD_STATIC, [dnl test "$use_mudflap" = yes -o "$use_gprof" = yes -o "$use_gcov" = yes]) @@ -556,7 +565,7 @@ AC_ARG_ENABLE([tests-rpath], AS_HELP_STRING([--enable-tests-rpath],[build $ORIGIN-using rpath into tests]), [tests_use_rpath=$enableval], [tests_use_rpath=no]) -@@ -295,6 +351,6 @@ case "$eu_version" in +@@ -304,6 +360,6 @@ case "$eu_version" in esac # Round up to the next release API (x.y) version. @@ -590,7 +599,7 @@ * Makefile.am: Use -ffunction-sections for xmalloc.c. --- elfutils/lib/eu-config.h +++ elfutils/lib/eu-config.h -@@ -182,6 +182,17 @@ asm (".section predict_data, \"aw\"; .pr +@@ -162,6 +162,17 @@ asm (".section predict_data, \"aw\"; .pr /* This macro is used by the tests conditionalize for standalone building. */ #define ELFUTILS_HEADER(name) @@ -719,7 +728,7 @@ EXTRA_DIST = libasm.map --- elfutils/libcpu/ChangeLog +++ elfutils/libcpu/ChangeLog -@@ -29,6 +29,9 @@ +@@ -38,6 +38,9 @@ 2009-01-23 Roland McGrath @@ -729,7 +738,7 @@ * Makefile.am (i386_parse_CFLAGS): Use quotes around command substitution that can produce leading whitespace. -@@ -358,6 +361,11 @@ +@@ -367,6 +370,11 @@ * defs/i386.doc: New file. * defs/x86_64: New file. @@ -743,7 +752,7 @@ * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. --- elfutils/libcpu/i386_disasm.c +++ elfutils/libcpu/i386_disasm.c -@@ -819,6 +819,7 @@ i386_disasm (const uint8_t **startp, con +@@ -822,6 +822,7 @@ i386_disasm (const uint8_t **startp, con default: assert (! "INVALID not handled"); @@ -794,7 +803,7 @@ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\ --- elfutils/libdw/ChangeLog +++ elfutils/libdw/ChangeLog -@@ -6,6 +6,10 @@ +@@ -82,6 +82,10 @@ * Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk. @@ -805,7 +814,7 @@ 2011-07-14 Mark Wielaard * libdw.h (dwarf_offdie): Fix documentation to mention .debug_info. -@@ -365,6 +369,10 @@ +@@ -441,6 +445,10 @@ * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too. @@ -816,7 +825,7 @@ 2009-08-10 Roland McGrath * dwarf_getscopevar.c: Use dwarf_diename. -@@ -1133,6 +1141,11 @@ +@@ -1209,6 +1217,11 @@ 2005-05-31 Roland McGrath @@ -830,7 +839,7 @@ --- elfutils/libdw/dwarf_begin_elf.c +++ elfutils/libdw/dwarf_begin_elf.c -@@ -64,6 +64,14 @@ +@@ -48,6 +48,14 @@ #if USE_ZLIB # include # define crc32 loser_crc32 @@ -847,7 +856,7 @@ #endif --- elfutils/libdw/libdw.h +++ elfutils/libdw/libdw.h -@@ -852,7 +852,7 @@ extern Dwarf_OOM dwarf_new_oom_handler ( +@@ -831,7 +831,7 @@ extern Dwarf_OOM dwarf_new_oom_handler ( /* Inline optimizations. */ @@ -901,7 +910,7 @@ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\ --- elfutils/libdwfl/ChangeLog +++ elfutils/libdwfl/ChangeLog -@@ -1409,6 +1409,11 @@ +@@ -1420,6 +1420,11 @@ 2005-07-21 Roland McGrath @@ -984,7 +993,7 @@ @MUDFLAP_FALSE@libdw = ../libdw/libdw.so --- elfutils/libebl/ChangeLog +++ elfutils/libebl/ChangeLog -@@ -650,6 +650,11 @@ +@@ -658,6 +658,11 @@ * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency tracking works right. @@ -1039,16 +1048,19 @@ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\ --- elfutils/libelf/ChangeLog +++ elfutils/libelf/ChangeLog -@@ -1,3 +1,8 @@ +@@ -34,6 +34,11 @@ + + * elf-knowledge.h (SECTION_STRIP_P): Remove < SHT_NUM check. + +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 + 2011-02-26 Mark Wielaard - * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Fix off64_t overflow -@@ -671,6 +676,11 @@ + * elf_end.c (elf_end): Call rwlock_unlock before rwlock_fini. +@@ -711,6 +716,11 @@ * elf.h: Update from glibc. @@ -1062,7 +1074,7 @@ * elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now. --- elfutils/libelf/common.h +++ elfutils/libelf/common.h -@@ -160,7 +160,7 @@ libelf_release_all (Elf *elf) +@@ -139,7 +139,7 @@ libelf_release_all (Elf *elf) (Var) = (sizeof (Var) == 1 \ ? (unsigned char) (Var) \ : (sizeof (Var) == 2 \ @@ -1071,7 +1083,7 @@ : (sizeof (Var) == 4 \ ? bswap_32 (Var) \ : bswap_64 (Var)))) -@@ -169,7 +169,7 @@ libelf_release_all (Elf *elf) +@@ -148,7 +148,7 @@ libelf_release_all (Elf *elf) (Dst) = (sizeof (Var) == 1 \ ? (unsigned char) (Var) \ : (sizeof (Var) == 2 \ @@ -1086,10 +1098,10 @@ /* Conversion functions for versioning information. - Copyright (C) 2006, 2007 Red Hat, Inc. + Copyright (C) 2006-2011 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2006. -@@ -89,7 +89,9 @@ elf_cvt_gnuhash (void *dest, const void +@@ -68,7 +68,9 @@ elf_cvt_gnuhash (void *dest, const void dest32 = (Elf32_Word *) &dest64[bitmask_words]; while (len >= 4) { @@ -1194,7 +1206,7 @@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ --- elfutils/src/addr2line.c +++ elfutils/src/addr2line.c -@@ -455,10 +455,10 @@ handle_address (const char *string, Dwfl +@@ -447,10 +447,10 @@ handle_address (const char *string, Dwfl bool parsed = false; int i, j; char *name = NULL; @@ -1209,7 +1221,7 @@ break; --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -490,8 +490,16 @@ +@@ -606,8 +606,16 @@ * readelf.c (attr_callback): Use print_block only when we don't use print_ops. @@ -1226,7 +1238,7 @@ * ar.c (do_oper_extract): Use pathconf instead of statfs. 2009-08-01 Ulrich Drepper -@@ -655,6 +663,8 @@ +@@ -771,6 +779,8 @@ * readelf.c (print_debug_frame_section): Use t instead of j formats for ptrdiff_t OFFSET. @@ -1235,7 +1247,7 @@ 2009-01-21 Ulrich Drepper * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section -@@ -838,6 +848,11 @@ +@@ -954,6 +964,11 @@ that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really is valid in RELRO. @@ -1247,7 +1259,7 @@ 2008-02-29 Roland McGrath * readelf.c (print_attributes): Add a cast. -@@ -1089,6 +1104,8 @@ +@@ -1205,6 +1220,8 @@ * readelf.c (hex_dump): Fix rounding error in whitespace calculation. @@ -1256,7 +1268,7 @@ 2007-10-15 Roland McGrath * make-debug-archive.in: New file. -@@ -1528,6 +1545,10 @@ +@@ -1644,6 +1661,10 @@ * elflint.c (valid_e_machine): Add EM_ALPHA. Reported by Christian Aichinger . @@ -1267,7 +1279,7 @@ 2006-08-08 Ulrich Drepper * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. -@@ -1604,6 +1625,10 @@ +@@ -1720,6 +1741,10 @@ * Makefile.am: Add hacks to create dependency files for non-generic linker. @@ -1278,7 +1290,7 @@ 2006-06-12 Ulrich Drepper * ldgeneric.c (ld_generic_generate_sections): Don't create .interp -@@ -1952,6 +1977,11 @@ +@@ -2068,6 +2093,11 @@ * readelf.c (print_debug_loc_section): Fix indentation for larger address size. @@ -1292,7 +1304,7 @@ * readelf.c (print_debug_line_section): Print section offset of each --- elfutils/src/findtextrel.c +++ elfutils/src/findtextrel.c -@@ -504,7 +504,11 @@ ptrcompare (const void *p1, const void * +@@ -496,7 +496,11 @@ ptrcompare (const void *p1, const void * static void @@ -1307,7 +1319,7 @@ { --- elfutils/src/ld.h +++ elfutils/src/ld.h -@@ -1122,6 +1122,7 @@ extern bool dynamically_linked_p (void); +@@ -1114,6 +1114,7 @@ extern bool dynamically_linked_p (void); /* Checked whether the symbol is undefined and referenced from a DSO. */ extern bool linked_from_dso_p (struct scninfo *scninfo, size_t symidx); @@ -1315,7 +1327,7 @@ #ifdef __GNUC_STDC_INLINE__ __attribute__ ((__gnu_inline__)) #endif -@@ -1139,5 +1140,6 @@ linked_from_dso_p (struct scninfo *scnin +@@ -1131,5 +1132,6 @@ linked_from_dso_p (struct scninfo *scnin return sym->defined && sym->in_dso; } @@ -1324,7 +1336,7 @@ #endif /* ld.h */ --- elfutils/src/Makefile.am +++ elfutils/src/Makefile.am -@@ -103,6 +103,9 @@ addr2line_no_Wformat = yes +@@ -95,6 +95,9 @@ addr2line_no_Wformat = yes # XXX While the file is not finished, don't warn about this ldgeneric_no_Wunused = yes @@ -1339,7 +1351,7 @@ @@ -40,7 +40,8 @@ host_triplet = @host@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/config/eu.am ChangeLog \ - ldlex.c ldscript.c ylwrap + ldlex.c ldscript.c -@MUDFLAP_TRUE@am__append_1 = -fmudflap +@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) +@MUDFLAP_TRUE@am__append_2 = -fmudflap @@ -1428,7 +1440,7 @@ findtextrel_LDADD = $(libdw) $(libelf) $(libmudflap) --- elfutils/src/readelf.c +++ elfutils/src/readelf.c -@@ -4434,10 +4434,11 @@ struct listptr +@@ -3949,10 +3949,11 @@ struct listptr #define listptr_offset_size(p) ((p)->dwarf64 ? 8 : 4) #define listptr_address_size(p) ((p)->addr64 ? 8 : 4) @@ -1442,7 +1454,7 @@ struct listptr *p1 = (void *) a; struct listptr *p2 = (void *) b; -@@ -4518,8 +4519,11 @@ static void +@@ -4033,8 +4034,11 @@ static void sort_listptr (struct listptr_table *table, const char *name) { if (table->n > 0) @@ -1456,7 +1468,7 @@ } static bool -@@ -8478,7 +8482,7 @@ dump_archive_index (Elf *elf, const char +@@ -8442,7 +8446,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)) @@ -1467,7 +1479,7 @@ error (EXIT_FAILURE, 0, --- elfutils/src/strings.c +++ elfutils/src/strings.c -@@ -51,6 +51,10 @@ +@@ -43,6 +43,10 @@ #include @@ -1478,7 +1490,7 @@ /* Prototypes of local functions. */ static int read_fd (int fd, const char *fname, off64_t fdlen); -@@ -491,8 +495,13 @@ map_file (int fd, off64_t start_off, off +@@ -483,8 +487,13 @@ map_file (int fd, off64_t start_off, off fd, start_off); if (mem != MAP_FAILED) { @@ -1492,7 +1504,7 @@ break; } if (errno != EINVAL && errno != ENOMEM) -@@ -584,9 +593,11 @@ read_block (int fd, const char *fname, o +@@ -576,9 +585,11 @@ read_block (int fd, const char *fname, o elfmap_off = from & ~(ps - 1); elfmap_base = elfmap = map_file (fd, elfmap_off, fdlen, &elfmap_size); @@ -1506,7 +1518,7 @@ if (unlikely (elfmap == MAP_FAILED)) --- elfutils/src/strip.c +++ elfutils/src/strip.c -@@ -53,6 +53,12 @@ +@@ -45,6 +45,12 @@ #include #include @@ -1519,7 +1531,7 @@ typedef uint8_t GElf_Byte; /* Name and version of program. */ -@@ -326,8 +332,18 @@ process_file (const char *fname) +@@ -318,8 +324,18 @@ process_file (const char *fname) /* If we have to preserve the timestamp, we need it in the format utimes() understands. */ @@ -1538,7 +1550,7 @@ } /* Open the file. */ -@@ -2063,7 +2079,7 @@ while computing checksum for debug infor +@@ -2055,7 +2071,7 @@ while computing checksum for debug infor /* If requested, preserve the timestamp. */ if (tvp != NULL) { @@ -1547,7 +1559,7 @@ { error (0, errno, gettext ("\ cannot set access and modification date of '%s'"), -@@ -2120,7 +2136,7 @@ handle_ar (int fd, Elf *elf, const char +@@ -2112,7 +2128,7 @@ handle_ar (int fd, Elf *elf, const char if (tvp != NULL) { @@ -1558,7 +1570,7 @@ cannot set access and modification date of '%s'"), fname); --- elfutils/tests/ChangeLog +++ elfutils/tests/ChangeLog -@@ -279,6 +279,8 @@ +@@ -439,6 +439,8 @@ 2008-01-21 Roland McGrath @@ -1567,7 +1579,7 @@ * testfile45.S.bz2: Add tests for cltq, cqto. * testfile45.expect.bz2: Adjust. -@@ -987,6 +989,11 @@ +@@ -1147,6 +1149,11 @@ * Makefile.am (TESTS): Add run-elflint-test.sh. (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2. @@ -1581,7 +1593,7 @@ * get-files.c (main): Use correct format specifier. --- elfutils/tests/line2addr.c +++ elfutils/tests/line2addr.c -@@ -132,7 +132,7 @@ main (int argc, char *argv[]) +@@ -124,7 +124,7 @@ main (int argc, char *argv[]) { struct args a = { .arg = argv[cnt] }; @@ -1592,7 +1604,7 @@ case 0: --- elfutils/tests/Makefile.in +++ elfutils/tests/Makefile.in -@@ -36,14 +36,15 @@ build_triplet = @build@ +@@ -35,14 +35,15 @@ build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/eu.am ChangeLog @@ -1609,23 +1621,27 @@ -@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) \ + check_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 +@@ -92,12 +93,12 @@ TESTS = run-arextract.sh run-arsymtest.s + run-readelf-gdb_index.sh run-unstrip-n.sh run-low_high_pc.sh \ + run-macro-test.sh run-elf_cntl_gelf_getshdr.sh \ + run-test-archive64.sh $(am__EXEEXT_1) $(am__EXEEXT_3) \ +- $(am__append_9) -@STANDALONE_FALSE@am__append_5 = msg_tst md5-sha1-test ++ $(am__append_10) @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) +-@ENABLE_DWZ_TRUE@am__append_9 = run-readelf-dwz-multi.sh +@HAVE_LIBASM_TRUE@am__append_9 = $(asm_TESTS) ++@ENABLE_DWZ_TRUE@am__append_10 = run-readelf-dwz-multi.sh 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@ +@@ -412,6 +413,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -1633,7 +1649,7 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -420,6 +422,7 @@ SHELL = @SHELL@ +@@ -441,6 +443,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -1641,7 +1657,7 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -478,12 +481,11 @@ top_build_prefix = @top_build_prefix@ +@@ -499,12 +502,11 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ zip_LIBS = @zip_LIBS@ @@ -1657,7 +1673,7 @@ @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 +@@ -514,7 +516,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 diff --git a/elfutils-robustify.patch b/elfutils-robustify.patch index d4ecbf0..9eee984 100644 --- a/elfutils-robustify.patch +++ b/elfutils-robustify.patch @@ -1,6 +1,6 @@ --- elfutils/libdwfl/ChangeLog +++ elfutils/libdwfl/ChangeLog -@@ -41,6 +41,11 @@ +@@ -52,6 +52,11 @@ * dwfl_module_getdwarf.c (open_elf): Clear errno before CBFAIL. Reported by Kurt Roeckx . @@ -18,10 +18,10 @@ /* Relocate debug information. - Copyright (C) 2005-2010 Red Hat, Inc. + Copyright (C) 2005-2011 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. - Red Hat elfutils is free software; you can redistribute it and/or modify -@@ -478,7 +478,10 @@ relocate_section (Dwfl_Module *mod, Elf + This file is free software; you can redistribute it and/or modify +@@ -457,7 +457,10 @@ relocate_section (Dwfl_Module *mod, Elf } } @@ -33,7 +33,7 @@ size_t complete = 0; if (shdr->sh_type == SHT_REL) for (size_t relidx = 0; !result && relidx < nrels; ++relidx) -@@ -580,7 +583,7 @@ relocate_section (Dwfl_Module *mod, Elf +@@ -559,7 +562,7 @@ relocate_section (Dwfl_Module *mod, Elf nrels = next; } @@ -44,7 +44,7 @@ --- elfutils/libelf/ChangeLog +++ elfutils/libelf/ChangeLog -@@ -663,10 +663,53 @@ +@@ -703,10 +703,53 @@ If section content hasn't been read yet, do it before looking for the block size. If no section data present, infer size of section header. @@ -100,7 +100,7 @@ * elf.h: Update from glibc. --- elfutils/libelf/elf32_getphdr.c +++ elfutils/libelf/elf32_getphdr.c -@@ -114,6 +114,16 @@ __elfw2(LIBELFBITS,getphdr_wrlock) (elf) +@@ -93,6 +93,16 @@ __elfw2(LIBELFBITS,getphdr_wrlock) (elf) if (elf->map_address != NULL) { @@ -119,14 +119,7 @@ + elf->start_offset + ehdr->e_phoff); --- elfutils/libelf/elf32_getshdr.c +++ elfutils/libelf/elf32_getshdr.c -@@ -1,5 +1,5 @@ - /* Return section header. -- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2007, 2009 Red Hat, Inc. -+ Copyright (C) 1998-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper , 1998. - -@@ -81,7 +81,8 @@ load_shdr_wrlock (Elf_Scn *scn) +@@ -60,7 +60,8 @@ load_shdr_wrlock (Elf_Scn *scn) goto out; size_t shnum; @@ -136,7 +129,7 @@ goto out; size_t size = shnum * sizeof (ElfW2(LIBELFBITS,Shdr)); -@@ -98,6 +99,16 @@ load_shdr_wrlock (Elf_Scn *scn) +@@ -77,6 +78,16 @@ load_shdr_wrlock (Elf_Scn *scn) if (elf->map_address != NULL) { @@ -155,7 +148,7 @@ /* All the data is already mapped. If we could use it --- elfutils/libelf/elf32_newphdr.c +++ elfutils/libelf/elf32_newphdr.c -@@ -135,6 +135,12 @@ elfw2(LIBELFBITS,newphdr) (elf, count) +@@ -114,6 +114,12 @@ elfw2(LIBELFBITS,newphdr) (elf, count) || count == PN_XNUM || elf->state.ELFW(elf,LIBELFBITS).phdr == NULL) { @@ -170,7 +163,7 @@ result = (ElfW2(LIBELFBITS,Phdr) *) --- elfutils/libelf/elf32_updatefile.c +++ elfutils/libelf/elf32_updatefile.c -@@ -223,6 +223,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf +@@ -202,6 +202,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf /* Write all the sections. Well, only those which are modified. */ if (shnum > 0) { @@ -180,7 +173,7 @@ Elf_ScnList *list = &elf->state.ELFW(elf,LIBELFBITS).scns; Elf_Scn **scns = (Elf_Scn **) alloca (shnum * sizeof (Elf_Scn *)); char *const shdr_start = ((char *) elf->map_address + elf->start_offset -@@ -645,6 +648,10 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf +@@ -624,6 +627,10 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf /* Write all the sections. Well, only those which are modified. */ if (shnum > 0) { @@ -193,7 +186,7 @@ xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR]; --- elfutils/libelf/elf_begin.c +++ elfutils/libelf/elf_begin.c -@@ -165,7 +165,8 @@ get_shnum (void *map_address, unsigned c +@@ -144,7 +144,8 @@ get_shnum (void *map_address, unsigned c if (unlikely (result == 0) && ehdr.e32->e_shoff != 0) { @@ -203,7 +196,7 @@ /* Cannot read the first section header. */ return 0; -@@ -213,7 +214,8 @@ get_shnum (void *map_address, unsigned c +@@ -192,7 +193,8 @@ get_shnum (void *map_address, unsigned c if (unlikely (result == 0) && ehdr.e64->e_shoff != 0) { @@ -213,7 +206,7 @@ /* Cannot read the first section header. */ return 0; -@@ -285,6 +287,15 @@ file_read_elf (int fildes, void *map_add +@@ -264,6 +266,15 @@ file_read_elf (int fildes, void *map_add /* Could not determine the number of sections. */ return NULL; @@ -229,7 +222,7 @@ /* We can now allocate the memory. Even if there are no section headers, we allocate space for a zeroth section in case we need it later. */ const size_t scnmax = (scncnt ?: (cmd == ELF_C_RDWR || cmd == ELF_C_RDWR_MMAP) -@@ -324,6 +335,16 @@ file_read_elf (int fildes, void *map_add +@@ -303,6 +314,16 @@ file_read_elf (int fildes, void *map_add { /* We can use the mmapped memory. */ elf->state.elf32.ehdr = ehdr; @@ -246,7 +239,7 @@ elf->state.elf32.shdr = (Elf32_Shdr *) ((char *) ehdr + ehdr->e_shoff); -@@ -410,6 +431,11 @@ file_read_elf (int fildes, void *map_add +@@ -389,6 +410,11 @@ file_read_elf (int fildes, void *map_add { /* We can use the mmapped memory. */ elf->state.elf64.ehdr = ehdr; @@ -260,19 +253,19 @@ --- elfutils/libelf/elf_getarsym.c +++ elfutils/libelf/elf_getarsym.c -@@ -179,6 +179,9 @@ elf_getarsym (elf, ptr) +@@ -181,6 +181,9 @@ elf_getarsym (elf, ptr) size_t index_size = atol (tmpbuf); if (SARMAG + sizeof (struct ar_hdr) + index_size > elf->maximum_size +#if SIZE_MAX <= 4294967295U + || n >= SIZE_MAX / sizeof (Elf_Arsym) +#endif - || n * sizeof (uint32_t) > index_size) + || n * w > index_size) { /* This index table cannot be right since it does not fit into --- elfutils/libelf/elf_getshdrstrndx.c +++ elfutils/libelf/elf_getshdrstrndx.c -@@ -125,10 +125,25 @@ elf_getshdrstrndx (elf, dst) +@@ -104,10 +104,25 @@ elf_getshdrstrndx (elf, dst) if (elf->map_address != NULL && elf->state.elf32.ehdr->e_ident[EI_DATA] == MY_ELFDATA && (ALLOW_UNALIGNED @@ -301,7 +294,7 @@ else { /* We avoid reading in all the section headers. Just read -@@ -163,10 +178,25 @@ elf_getshdrstrndx (elf, dst) +@@ -142,10 +157,25 @@ elf_getshdrstrndx (elf, dst) if (elf->map_address != NULL && elf->state.elf64.ehdr->e_ident[EI_DATA] == MY_ELFDATA && (ALLOW_UNALIGNED @@ -332,7 +325,7 @@ /* We avoid reading in all the section headers. Just read --- elfutils/libelf/elf_newscn.c +++ elfutils/libelf/elf_newscn.c -@@ -104,10 +104,18 @@ elf_newscn (elf) +@@ -83,10 +83,18 @@ elf_newscn (elf) else { /* We must allocate a new element. */ @@ -358,10 +351,10 @@ /* Get information from dynamic table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -93,7 +93,7 @@ gelf_getdyn (data, ndx, dst) +@@ -72,7 +72,7 @@ gelf_getdyn (data, ndx, dst) table entries has to be adopted. The user better has provided a buffer where we can store the information. While copying the data we are converting the format. */ @@ -370,7 +363,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -114,7 +114,7 @@ gelf_getdyn (data, ndx, dst) +@@ -93,7 +93,7 @@ gelf_getdyn (data, ndx, dst) /* The data is already in the correct form. Just make sure the index is OK. */ @@ -385,10 +378,10 @@ /* Get library from table at the given index. - Copyright (C) 2004 Red Hat, Inc. + Copyright (C) 2004-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2004. -@@ -86,7 +86,7 @@ gelf_getlib (data, ndx, dst) +@@ -65,7 +65,7 @@ gelf_getlib (data, ndx, dst) /* The data is already in the correct form. Just make sure the index is OK. */ GElf_Lib *result = NULL; @@ -403,10 +396,10 @@ /* Get move structure at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -83,7 +83,7 @@ gelf_getmove (data, ndx, dst) +@@ -62,7 +62,7 @@ gelf_getmove (data, ndx, dst) /* The data is already in the correct form. Just make sure the index is OK. */ @@ -421,10 +414,10 @@ /* Get RELA relocation information at given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -71,12 +71,6 @@ gelf_getrela (data, ndx, dst) +@@ -50,12 +50,6 @@ gelf_getrela (data, ndx, dst) if (data_scn == NULL) return NULL; @@ -437,7 +430,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_RELA)) { __libelf_seterrno (ELF_E_INVALID_HANDLE); -@@ -93,7 +87,7 @@ gelf_getrela (data, ndx, dst) +@@ -72,7 +66,7 @@ gelf_getrela (data, ndx, dst) if (scn->elf->class == ELFCLASS32) { /* We have to convert the data. */ @@ -446,7 +439,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); result = NULL; -@@ -114,7 +108,7 @@ gelf_getrela (data, ndx, dst) +@@ -93,7 +87,7 @@ gelf_getrela (data, ndx, dst) { /* Simply copy the data after we made sure we are actually getting correct data. */ @@ -461,10 +454,10 @@ /* Get REL relocation information at given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -71,12 +71,6 @@ gelf_getrel (data, ndx, dst) +@@ -50,12 +50,6 @@ gelf_getrel (data, ndx, dst) if (data_scn == NULL) return NULL; @@ -477,7 +470,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_REL)) { __libelf_seterrno (ELF_E_INVALID_HANDLE); -@@ -93,7 +87,7 @@ gelf_getrel (data, ndx, dst) +@@ -72,7 +66,7 @@ gelf_getrel (data, ndx, dst) if (scn->elf->class == ELFCLASS32) { /* We have to convert the data. */ @@ -486,7 +479,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); result = NULL; -@@ -113,7 +107,7 @@ gelf_getrel (data, ndx, dst) +@@ -92,7 +86,7 @@ gelf_getrel (data, ndx, dst) { /* Simply copy the data after we made sure we are actually getting correct data. */ @@ -501,10 +494,10 @@ /* Get symbol information from symbol table at the given index. - Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 1999-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 1999. -@@ -90,7 +90,7 @@ gelf_getsym (data, ndx, dst) +@@ -69,7 +69,7 @@ gelf_getsym (data, ndx, dst) table entries has to be adopted. The user better has provided a buffer where we can store the information. While copying the data we are converting the format. */ @@ -513,7 +506,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -119,7 +119,7 @@ gelf_getsym (data, ndx, dst) +@@ -98,7 +98,7 @@ gelf_getsym (data, ndx, dst) /* The data is already in the correct form. Just make sure the index is OK. */ @@ -528,10 +521,10 @@ /* Get additional symbol information from symbol table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -84,7 +84,7 @@ gelf_getsyminfo (data, ndx, dst) +@@ -63,7 +63,7 @@ gelf_getsyminfo (data, ndx, dst) /* The data is already in the correct form. Just make sure the index is OK. */ @@ -547,10 +540,10 @@ at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -90,7 +90,7 @@ gelf_getsymshndx (symdata, shndxdata, nd +@@ -69,7 +69,7 @@ gelf_getsymshndx (symdata, shndxdata, nd section index table. */ if (likely (shndxdata_scn != NULL)) { @@ -559,7 +552,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -110,7 +110,7 @@ gelf_getsymshndx (symdata, shndxdata, nd +@@ -89,7 +89,7 @@ gelf_getsymshndx (symdata, shndxdata, nd table entries has to be adopted. The user better has provided a buffer where we can store the information. While copying the data we are converting the format. */ @@ -568,7 +561,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -139,7 +139,7 @@ gelf_getsymshndx (symdata, shndxdata, nd +@@ -118,7 +118,7 @@ gelf_getsymshndx (symdata, shndxdata, nd /* The data is already in the correct form. Just make sure the index is OK. */ @@ -583,10 +576,10 @@ /* Get symbol version information at the given index. - Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 1999-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 1999. -@@ -92,7 +92,7 @@ gelf_getversym (data, ndx, dst) +@@ -71,7 +71,7 @@ gelf_getversym (data, ndx, dst) /* The data is already in the correct form. Just make sure the index is OK. */ @@ -601,10 +594,10 @@ /* Update information in dynamic table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -71,12 +71,6 @@ gelf_update_dyn (data, ndx, src) +@@ -50,12 +50,6 @@ gelf_update_dyn (data, ndx, src) if (data == NULL) return 0; @@ -617,7 +610,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_DYN)) { /* The type of the data better should match. */ -@@ -102,7 +96,7 @@ gelf_update_dyn (data, ndx, src) +@@ -81,7 +75,7 @@ gelf_update_dyn (data, ndx, src) } /* Check whether we have to resize the data buffer. */ @@ -626,7 +619,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -116,7 +110,7 @@ gelf_update_dyn (data, ndx, src) +@@ -95,7 +89,7 @@ gelf_update_dyn (data, ndx, src) else { /* Check whether we have to resize the data buffer. */ @@ -641,10 +634,10 @@ /* Update library in table at the given index. - Copyright (C) 2004 Red Hat, Inc. + Copyright (C) 2004-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2004. -@@ -68,12 +68,6 @@ gelf_update_lib (data, ndx, src) +@@ -47,12 +47,6 @@ gelf_update_lib (data, ndx, src) if (data == NULL) return 0; @@ -657,7 +650,7 @@ Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data; if (unlikely (data_scn->d.d_type != ELF_T_LIB)) { -@@ -87,7 +81,7 @@ gelf_update_lib (data, ndx, src) +@@ -66,7 +60,7 @@ gelf_update_lib (data, ndx, src) /* Check whether we have to resize the data buffer. */ int result = 0; @@ -672,10 +665,10 @@ /* Update move structure at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -75,8 +75,7 @@ gelf_update_move (data, ndx, src) +@@ -54,8 +54,7 @@ gelf_update_move (data, ndx, src) assert (sizeof (GElf_Move) == sizeof (Elf64_Move)); /* Check whether we have to resize the data buffer. */ @@ -691,10 +684,10 @@ /* Update RELA relocation information at given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -68,12 +68,6 @@ gelf_update_rela (Elf_Data *dst, int ndx +@@ -47,12 +47,6 @@ gelf_update_rela (Elf_Data *dst, int ndx if (dst == NULL) return 0; @@ -707,7 +700,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_RELA)) { /* The type of the data better should match. */ -@@ -101,7 +95,7 @@ gelf_update_rela (Elf_Data *dst, int ndx +@@ -80,7 +74,7 @@ gelf_update_rela (Elf_Data *dst, int ndx } /* Check whether we have to resize the data buffer. */ @@ -716,7 +709,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -117,7 +111,7 @@ gelf_update_rela (Elf_Data *dst, int ndx +@@ -96,7 +90,7 @@ gelf_update_rela (Elf_Data *dst, int ndx else { /* Check whether we have to resize the data buffer. */ @@ -731,10 +724,10 @@ /* Update REL relocation information at given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -68,12 +68,6 @@ gelf_update_rel (Elf_Data *dst, int ndx, +@@ -47,12 +47,6 @@ gelf_update_rel (Elf_Data *dst, int ndx, if (dst == NULL) return 0; @@ -747,7 +740,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_REL)) { /* The type of the data better should match. */ -@@ -99,7 +93,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, +@@ -78,7 +72,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, } /* Check whether we have to resize the data buffer. */ @@ -756,7 +749,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -114,7 +108,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, +@@ -93,7 +87,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, else { /* Check whether we have to resize the data buffer. */ @@ -771,10 +764,10 @@ /* Update symbol information in symbol table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -72,12 +72,6 @@ gelf_update_sym (data, ndx, src) +@@ -51,12 +51,6 @@ gelf_update_sym (data, ndx, src) if (data == NULL) return 0; @@ -787,7 +780,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_SYM)) { /* The type of the data better should match. */ -@@ -102,7 +96,7 @@ gelf_update_sym (data, ndx, src) +@@ -81,7 +75,7 @@ gelf_update_sym (data, ndx, src) } /* Check whether we have to resize the data buffer. */ @@ -796,7 +789,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -125,7 +119,7 @@ gelf_update_sym (data, ndx, src) +@@ -104,7 +98,7 @@ gelf_update_sym (data, ndx, src) else { /* Check whether we have to resize the data buffer. */ @@ -811,10 +804,10 @@ /* Update additional symbol information in symbol table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -72,12 +72,6 @@ gelf_update_syminfo (data, ndx, src) +@@ -51,12 +51,6 @@ gelf_update_syminfo (data, ndx, src) if (data == NULL) return 0; @@ -827,7 +820,7 @@ if (unlikely (data_scn->d.d_type != ELF_T_SYMINFO)) { /* The type of the data better should match. */ -@@ -93,7 +87,7 @@ gelf_update_syminfo (data, ndx, src) +@@ -72,7 +66,7 @@ gelf_update_syminfo (data, ndx, src) rwlock_wrlock (scn->elf->lock); /* Check whether we have to resize the data buffer. */ @@ -843,10 +836,10 @@ given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2000. -@@ -77,12 +77,6 @@ gelf_update_symshndx (symdata, shndxdata +@@ -56,12 +56,6 @@ gelf_update_symshndx (symdata, shndxdata if (symdata == NULL) return 0; @@ -859,7 +852,7 @@ if (unlikely (symdata_scn->d.d_type != ELF_T_SYM)) { /* The type of the data better should match. */ -@@ -128,7 +122,7 @@ gelf_update_symshndx (symdata, shndxdata +@@ -107,7 +101,7 @@ gelf_update_symshndx (symdata, shndxdata } /* Check whether we have to resize the data buffer. */ @@ -868,7 +861,7 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; -@@ -151,7 +145,7 @@ gelf_update_symshndx (symdata, shndxdata +@@ -130,7 +124,7 @@ gelf_update_symshndx (symdata, shndxdata else { /* Check whether we have to resize the data buffer. */ @@ -883,10 +876,10 @@ /* Update symbol version information. - Copyright (C) 2001, 2002 Red Hat, Inc. + Copyright (C) 2001-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. + This file is part of elfutils. Written by Ulrich Drepper , 2001. -@@ -75,8 +75,7 @@ gelf_update_versym (data, ndx, src) +@@ -54,8 +54,7 @@ gelf_update_versym (data, ndx, src) assert (sizeof (GElf_Versym) == sizeof (Elf64_Versym)); /* Check whether we have to resize the data buffer. */ @@ -898,7 +891,7 @@ return 0; --- elfutils/libelf/libelfP.h +++ elfutils/libelf/libelfP.h -@@ -608,4 +608,8 @@ extern uint32_t __libelf_crc32 (uint32_t +@@ -587,4 +587,8 @@ extern uint32_t __libelf_crc32 (uint32_t /* Align offset to 4 bytes as needed for note name and descriptor data. */ #define NOTE_ALIGN(n) (((n) + 3) & -4U) @@ -909,7 +902,7 @@ #endif /* libelfP.h */ --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -228,6 +228,12 @@ +@@ -344,6 +344,12 @@ * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature. @@ -922,7 +915,7 @@ 2011-02-11 Roland McGrath * elfcmp.c (verbose): New variable. -@@ -1940,6 +1946,16 @@ +@@ -2056,6 +2062,16 @@ object symbols or symbols with unknown type. (check_rel): Likewise. @@ -939,7 +932,7 @@ 2005-06-08 Roland McGrath * readelf.c (print_ops): Add consts. -@@ -1985,6 +2001,19 @@ +@@ -2101,6 +2117,19 @@ * readelf.c (dwarf_tag_string): Add new tags. @@ -961,7 +954,7 @@ * strip.c (handle_elf): Don't translate hash and versym data formats, --- elfutils/src/elflint.c +++ elfutils/src/elflint.c -@@ -131,6 +131,10 @@ static uint32_t shstrndx; +@@ -123,6 +123,10 @@ static uint32_t shstrndx; /* Array to count references in section groups. */ static int *scnref; @@ -972,7 +965,7 @@ int main (int argc, char *argv[]) -@@ -319,10 +323,19 @@ section_name (Ebl *ebl, int idx) +@@ -311,10 +315,19 @@ section_name (Ebl *ebl, int idx) { GElf_Shdr shdr_mem; GElf_Shdr *shdr; @@ -993,7 +986,7 @@ } -@@ -344,11 +357,6 @@ static const int valid_e_machine[] = +@@ -337,11 +350,6 @@ static const int valid_e_machine[] = (sizeof (valid_e_machine) / sizeof (valid_e_machine[0])) @@ -1005,7 +998,7 @@ static void check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size) { -@@ -632,7 +640,8 @@ section [%2d] '%s': symbol table cannot +@@ -625,7 +633,8 @@ section [%2d] '%s': symbol table cannot } } @@ -1015,7 +1008,7 @@ ERROR (gettext ("\ section [%2u] '%s': entry size is does not match ElfXX_Sym\n"), idx, section_name (ebl, idx)); -@@ -670,7 +679,7 @@ section [%2d] '%s': XINDEX for zeroth en +@@ -663,7 +672,7 @@ section [%2d] '%s': XINDEX for zeroth en xndxscnidx, section_name (ebl, xndxscnidx)); } @@ -1024,7 +1017,7 @@ { sym = gelf_getsymshndx (data, xndxdata, cnt, &sym_mem, &xndx); if (sym == NULL) -@@ -690,7 +699,8 @@ section [%2d] '%s': symbol %zu: invalid +@@ -683,7 +692,8 @@ section [%2d] '%s': symbol %zu: invalid else { name = elf_strptr (ebl->elf, shdr->sh_link, sym->st_name); @@ -1034,7 +1027,7 @@ } if (sym->st_shndx == SHN_XINDEX) -@@ -1039,9 +1049,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e +@@ -1032,9 +1042,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e { GElf_Shdr rcshdr_mem; const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem); @@ -1048,7 +1041,7 @@ { /* Found the dynamic section. Look through it. */ Elf_Data *d = elf_getdata (scn, NULL); -@@ -1051,7 +1063,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e +@@ -1044,7 +1056,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e { GElf_Dyn dyn_mem; GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem); @@ -1059,7 +1052,7 @@ if (dyn->d_tag == DT_RELCOUNT) { -@@ -1065,7 +1079,9 @@ section [%2d] '%s': DT_RELCOUNT used for +@@ -1058,7 +1072,9 @@ section [%2d] '%s': DT_RELCOUNT used for /* Does the number specified number of relative relocations exceed the total number of relocations? */ @@ -1070,7 +1063,7 @@ ERROR (gettext ("\ section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"), idx, section_name (ebl, idx), -@@ -1225,7 +1241,8 @@ section [%2d] '%s': no relocations for m +@@ -1218,7 +1234,8 @@ section [%2d] '%s': no relocations for m } } @@ -1080,7 +1073,7 @@ ERROR (gettext (reltype == ELF_T_RELA ? "\ section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\ section [%2d] '%s': section entry size does not match ElfXX_Rel\n"), -@@ -1448,7 +1465,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G +@@ -1441,7 +1458,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G Elf_Data *symdata = elf_getdata (symscn, NULL); enum load_state state = state_undecided; @@ -1090,7 +1083,7 @@ { GElf_Rela rela_mem; GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem); -@@ -1498,7 +1516,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE +@@ -1491,7 +1509,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE Elf_Data *symdata = elf_getdata (symscn, NULL); enum load_state state = state_undecided; @@ -1100,7 +1093,7 @@ { GElf_Rel rel_mem; GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem); -@@ -1597,7 +1616,8 @@ section [%2d] '%s': referenced as string +@@ -1590,7 +1609,8 @@ section [%2d] '%s': referenced as string shdr->sh_link, section_name (ebl, shdr->sh_link), idx, section_name (ebl, idx)); @@ -1110,7 +1103,7 @@ ERROR (gettext ("\ section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"), idx, section_name (ebl, idx)); -@@ -1607,7 +1627,7 @@ section [%2d] '%s': section entry size d +@@ -1600,7 +1620,7 @@ section [%2d] '%s': section entry size d idx, section_name (ebl, idx)); bool non_null_warned = false; @@ -1119,7 +1112,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 +@@ -1872,6 +1892,8 @@ section [%2d] '%s': entry size does not idx, section_name (ebl, idx)); if (symshdr != NULL @@ -1128,7 +1121,7 @@ && (shdr->sh_size / shdr->sh_entsize < symshdr->sh_size / symshdr->sh_entsize)) ERROR (gettext ("\ -@@ -1905,6 +1927,12 @@ section [%2d] '%s': extended section ind +@@ -1898,6 +1920,12 @@ section [%2d] '%s': extended section ind } Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL); @@ -1141,7 +1134,7 @@ if (*((Elf32_Word *) data->d_buf) != 0) ERROR (gettext ("symbol 0 should have zero extended section index\n")); -@@ -1947,7 +1975,7 @@ section [%2d] '%s': hash table section i +@@ -1940,7 +1968,7 @@ section [%2d] '%s': hash table section i size_t maxidx = nchain; @@ -1150,7 +1143,7 @@ { size_t symsize = symshdr->sh_size / symshdr->sh_entsize; -@@ -1958,18 +1986,28 @@ section [%2d] '%s': hash table section i +@@ -1951,18 +1979,28 @@ section [%2d] '%s': hash table section i maxidx = symsize; } @@ -1181,7 +1174,7 @@ } -@@ -1999,18 +2037,28 @@ section [%2d] '%s': hash table section i +@@ -1992,18 +2030,28 @@ section [%2d] '%s': hash table section i maxidx = symsize; } @@ -1213,7 +1206,7 @@ } -@@ -2035,7 +2083,7 @@ section [%2d] '%s': bitmask size not pow +@@ -2028,7 +2076,7 @@ section [%2d] '%s': bitmask size not pow if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)) { ERROR (gettext ("\ @@ -1222,7 +1215,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 +@@ -2700,8 +2748,9 @@ section [%2d] '%s' refers in sh_link to /* The number of elements in the version symbol table must be the same as the number of symbols. */ @@ -1236,7 +1229,7 @@ idx, section_name (ebl, idx), --- elfutils/src/readelf.c +++ elfutils/src/readelf.c -@@ -1191,6 +1191,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G +@@ -1189,6 +1189,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G Elf32_Word *grpref = (Elf32_Word *) data->d_buf; GElf_Sym sym_mem; @@ -1245,7 +1238,7 @@ printf ((grpref[0] & GRP_COMDAT) ? ngettext ("\ \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n", -@@ -1203,8 +1205,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G +@@ -1201,8 +1203,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G data->d_size / sizeof (Elf32_Word) - 1), elf_ndxscn (scn), elf_strptr (ebl->elf, shstrndx, shdr->sh_name), @@ -1256,7 +1249,7 @@ ?: gettext (""), data->d_size / sizeof (Elf32_Word) - 1); -@@ -1355,10 +1357,12 @@ static void +@@ -1353,10 +1355,12 @@ static void handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) { int class = gelf_getclass (ebl->elf); @@ -1270,7 +1263,7 @@ /* Get the data of the section. */ data = elf_getdata (scn, NULL); -@@ -1370,21 +1374,26 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, +@@ -1368,21 +1372,26 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1303,7 +1296,7 @@ { GElf_Dyn dynmem; GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dynmem); -@@ -1533,7 +1542,8 @@ static void +@@ -1531,7 +1540,8 @@ static void handle_relocs_rel (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr) { int class = gelf_getclass (ebl->elf); @@ -1313,7 +1306,7 @@ /* Get the data of the section. */ Elf_Data *data = elf_getdata (scn, NULL); -@@ -1719,7 +1729,8 @@ static void +@@ -1717,7 +1727,8 @@ static void handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr) { int class = gelf_getclass (ebl->elf); @@ -1323,7 +1316,7 @@ /* Get the data of the section. */ Elf_Data *data = elf_getdata (scn, NULL); -@@ -1966,6 +1977,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G +@@ -1964,6 +1975,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1337,7 +1330,7 @@ /* Now we can compute the number of entries in the section. */ unsigned int nsyms = data->d_size / (class == ELFCLASS32 ? sizeof (Elf32_Sym) -@@ -1976,15 +1994,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G +@@ -1974,15 +1992,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G nsyms), (unsigned int) elf_ndxscn (scn), elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms); @@ -1354,7 +1347,7 @@ fputs_unlocked (class == ELFCLASS32 ? gettext ("\ -@@ -2220,7 +2235,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, +@@ -2218,7 +2233,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1369,7 +1362,7 @@ printf (ngettext ("\ \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2231,9 +2252,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, +@@ -2229,9 +2250,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1380,7 +1373,7 @@ unsigned int offset = 0; for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -2286,8 +2305,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G +@@ -2284,8 +2303,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1396,7 +1389,7 @@ printf (ngettext ("\ \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2299,9 +2324,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G +@@ -2297,9 +2322,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1407,7 +1400,7 @@ unsigned int offset = 0; for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -2563,25 +2586,30 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G +@@ -2561,25 +2584,30 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G filename = NULL; } @@ -1445,7 +1438,7 @@ { if (cnt % 2 == 0) printf ("\n %4d:", cnt); -@@ -2630,7 +2658,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, +@@ -2628,7 +2656,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt) ++counts[lengths[cnt]]; @@ -1464,7 +1457,7 @@ printf (ngettext ("\ \nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2643,9 +2681,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, +@@ -2641,9 +2679,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1475,7 +1468,7 @@ if (extrastr != NULL) fputs (extrastr, stdout); -@@ -2905,7 +2941,8 @@ print_liblist (Ebl *ebl) +@@ -2903,7 +2939,8 @@ print_liblist (Ebl *ebl) if (shdr != NULL && shdr->sh_type == SHT_GNU_LIBLIST) { @@ -1485,7 +1478,7 @@ printf (ngettext ("\ \nLibrary list section [%2zu] '%s' at offset %#0" PRIx64 " contains %d entry:\n", "\ -@@ -4646,6 +4683,16 @@ print_debug_aranges_section (Dwfl_Module +@@ -4164,6 +4201,16 @@ print_debug_aranges_section (Dwfl_Module return; } @@ -1504,7 +1497,7 @@ "\ --- elfutils/src/strip.c +++ elfutils/src/strip.c -@@ -572,6 +572,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -564,6 +564,11 @@ handle_elf (int fd, Elf *elf, const char goto fail_close; } @@ -1516,7 +1509,7 @@ /* Storage for section information. We leave room for two more entries since we unconditionally create a section header string table. Maybe some weird tool created an ELF file without one. -@@ -593,7 +598,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -585,7 +590,7 @@ handle_elf (int fd, Elf *elf, const char { /* This should always be true (i.e., there should not be any holes in the numbering). */ @@ -1525,7 +1518,7 @@ shdr_info[cnt].scn = scn; -@@ -606,6 +611,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -598,6 +603,7 @@ handle_elf (int fd, Elf *elf, const char shdr_info[cnt].shdr.sh_name); if (shdr_info[cnt].name == NULL) { @@ -1533,7 +1526,7 @@ error (0, 0, gettext ("illformed file '%s'"), fname); goto fail_close; } -@@ -615,6 +621,8 @@ handle_elf (int fd, Elf *elf, const char +@@ -607,6 +613,8 @@ handle_elf (int fd, Elf *elf, const char /* Remember the shdr.sh_link value. */ shdr_info[cnt].old_sh_link = shdr_info[cnt].shdr.sh_link; @@ -1542,7 +1535,7 @@ /* Sections in files other than relocatable object files which are not loaded can be freely moved by us. In relocatable -@@ -627,7 +635,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -619,7 +627,7 @@ handle_elf (int fd, Elf *elf, const char appropriate reference. */ if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX)) { @@ -1551,7 +1544,7 @@ shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt; } else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP)) -@@ -644,7 +652,12 @@ handle_elf (int fd, Elf *elf, const char +@@ -636,7 +644,12 @@ handle_elf (int fd, Elf *elf, const char for (inner = 1; inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word); ++inner) @@ -1564,7 +1557,7 @@ if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0)) /* If the section group contains only one element and this -@@ -655,7 +668,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -647,7 +660,7 @@ handle_elf (int fd, Elf *elf, const char } else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym)) { @@ -1573,7 +1566,7 @@ shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt; } -@@ -663,7 +676,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -655,7 +668,7 @@ handle_elf (int fd, Elf *elf, const char discarded right away. */ if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0) { @@ -1582,7 +1575,7 @@ if (shdr_info[shdr_info[cnt].group_idx].idx == 0) { -@@ -739,10 +752,14 @@ handle_elf (int fd, Elf *elf, const char +@@ -731,10 +744,14 @@ handle_elf (int fd, Elf *elf, const char { /* If a relocation section is marked as being removed make sure the section it is relocating is removed, too. */ @@ -1600,7 +1593,7 @@ /* If a group section is marked as being removed make sure all the sections it contains are being removed, too. */ -@@ -786,7 +803,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -778,7 +795,7 @@ handle_elf (int fd, Elf *elf, const char if (shdr_info[cnt].symtab_idx != 0 && shdr_info[shdr_info[cnt].symtab_idx].data == NULL) { @@ -1609,7 +1602,7 @@ shdr_info[shdr_info[cnt].symtab_idx].data = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, -@@ -826,6 +843,9 @@ handle_elf (int fd, Elf *elf, const char +@@ -818,6 +835,9 @@ handle_elf (int fd, Elf *elf, const char else if (scnidx == SHN_XINDEX) scnidx = xndx; @@ -1619,7 +1612,7 @@ if (shdr_info[scnidx].idx == 0) /* This symbol table has a real symbol in a discarded section. So preserve the -@@ -856,12 +876,16 @@ handle_elf (int fd, Elf *elf, const char +@@ -848,12 +868,16 @@ handle_elf (int fd, Elf *elf, const char } /* Handle references through sh_info. */ @@ -1638,7 +1631,7 @@ /* Mark the section as investigated. */ shdr_info[cnt].idx = 2; -@@ -1002,7 +1026,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -994,7 +1018,7 @@ handle_elf (int fd, Elf *elf, const char error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"), elf_errmsg (-1)); @@ -1647,7 +1640,7 @@ /* Add this name to the section header string table. */ shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0); -@@ -1039,7 +1063,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1031,7 +1055,7 @@ handle_elf (int fd, Elf *elf, const char error (EXIT_FAILURE, 0, gettext ("while create section header section: %s"), elf_errmsg (-1)); @@ -1656,7 +1649,7 @@ shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn); if (shdr_info[cnt].data == NULL) -@@ -1095,7 +1119,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1087,7 +1111,7 @@ handle_elf (int fd, Elf *elf, const char error (EXIT_FAILURE, 0, gettext ("while create section header section: %s"), elf_errmsg (-1)); @@ -1665,7 +1658,7 @@ /* Finalize the string table and fill in the correct indices in the section headers. */ -@@ -1185,20 +1209,20 @@ handle_elf (int fd, Elf *elf, const char +@@ -1177,20 +1201,20 @@ handle_elf (int fd, Elf *elf, const char shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, NULL); @@ -1689,7 +1682,7 @@ >= shdr_info[cnt].data->d_size / elsize); } -@@ -1253,7 +1277,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1245,7 +1269,7 @@ handle_elf (int fd, Elf *elf, const char sec = shdr_info[sym->st_shndx].idx; else { @@ -1698,7 +1691,7 @@ sec = shdr_info[xshndx].idx; } -@@ -1274,7 +1298,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1266,7 +1290,7 @@ handle_elf (int fd, Elf *elf, const char nxshndx = sec; } @@ -1707,7 +1700,7 @@ if ((inner != destidx || nshndx != sym->st_shndx || (shndxdata != NULL && nxshndx != xshndx)) -@@ -1301,9 +1325,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -1293,9 +1317,11 @@ handle_elf (int fd, Elf *elf, const char { size_t sidx = (sym->st_shndx != SHN_XINDEX ? sym->st_shndx : xshndx); @@ -1722,7 +1715,7 @@ } } -@@ -1491,11 +1517,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -1483,11 +1509,11 @@ handle_elf (int fd, Elf *elf, const char { GElf_Sym sym_mem; GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem); @@ -1736,7 +1729,7 @@ size_t hidx = elf_hash (name) % nbucket; if (bucket[hidx] == 0) -@@ -1514,8 +1540,8 @@ handle_elf (int fd, Elf *elf, const char +@@ -1506,8 +1532,8 @@ handle_elf (int fd, Elf *elf, const char else { /* Alpha and S390 64-bit use 64-bit SHT_HASH entries. */ @@ -1747,7 +1740,7 @@ Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf; -@@ -1545,11 +1571,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -1537,11 +1563,11 @@ handle_elf (int fd, Elf *elf, const char { GElf_Sym sym_mem; GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem); diff --git a/elfutils-upstream.patch b/elfutils-upstream.patch deleted file mode 100644 index bf209e7..0000000 --- a/elfutils-upstream.patch +++ /dev/null @@ -1,45 +0,0 @@ -commit 738c18312e0db36dce5e1cd2cddaf66eb8947f1a -Author: Roland McGrath -Date: Wed Mar 28 15:01:49 2012 -0700 - - elflint: Accept SHF_INFO_LINK for reloc sections. - -commit 191d1f0b9163593eee8c4f5cbe3e95cabf6ae9a9 -Author: Mark Wielaard -Date: Mon Apr 2 17:11:25 2012 +0200 - - elf32_offscn.c: Do not match SHT_NOBITS sections at OFFSET. - - readelf -d doesn't work if a SHT_NOBITS section is right before the actual - .dynamic section at the same offset. elflint also fails on such binaries. - So skip SHT_NOBITS sections at the same offset in [g]elf[32|64]_offscn(). - -diff --git a/src/elflint.c b/src/elflint.c -index abca8b7..a03caac 100644 ---- a/src/elflint.c -+++ b/src/elflint.c -@@ -3357,8 +3357,8 @@ static const struct - { ".note", 6, SHT_NOTE, atleast, 0, SHF_ALLOC }, - { ".plt", 5, SHT_PROGBITS, unused, 0, 0 }, // XXX more tests - { ".preinit_array", 15, SHT_PREINIT_ARRAY, exact, SHF_ALLOC | SHF_WRITE, 0 }, -- { ".rela", 5, SHT_RELA, atleast, 0, SHF_ALLOC }, // XXX more tests -- { ".rel", 4, SHT_REL, atleast, 0, SHF_ALLOC }, // XXX more tests -+ { ".rela", 5, SHT_RELA, atleast, 0, SHF_ALLOC | SHF_INFO_LINK }, // XXX more tests -+ { ".rel", 4, SHT_REL, atleast, 0, SHF_ALLOC | SHF_INFO_LINK }, // XXX more tests - { ".rodata", 8, SHT_PROGBITS, atleast, SHF_ALLOC, SHF_MERGE | SHF_STRINGS }, - { ".rodata1", 9, SHT_PROGBITS, atleast, SHF_ALLOC, SHF_MERGE | SHF_STRINGS }, - { ".shstrtab", 10, SHT_STRTAB, exact, 0, 0 }, -diff --git a/libelf/elf32_offscn.c b/libelf/elf32_offscn.c -index 86eff8b..5dcfc4a 100644 ---- a/libelf/elf32_offscn.c -+++ b/libelf/elf32_offscn.c -@@ -101,7 +101,8 @@ elfw2(LIBELFBITS,offscn) (elf, offset) - /* If this section is empty, the following one has the same - sh_offset. We presume the caller is looking for a nonempty - section, so keep looking if this one is empty. */ -- if (runp->data[i].shdr.ELFW(e,LIBELFBITS)->sh_size != 0) -+ if (runp->data[i].shdr.ELFW(e,LIBELFBITS)->sh_size != 0 -+ && runp->data[i].shdr.ELFW(e,LIBELFBITS)->sh_type != SHT_NOBITS) - goto out; - } - diff --git a/elfutils.spec b/elfutils.spec index 3e18508..940f9db 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -5,12 +5,12 @@ Summary: A collection of utilities and DSOs to handle compiled objects Summary(pl.UTF-8): Zestaw narzędzi i bibliotek do obsługi skompilowanych obiektów Name: elfutils -Version: 0.153 -Release: 2 -License: GPL v2 with OSL linking exception +Version: 0.155 +Release: 1 +License: GPL v2+ or LGPL v3+ (libraries), GPL v3+ (programs) Group: Development/Tools Source0: https://fedorahosted.org/releases/e/l/elfutils/%{version}/%{name}-%{version}.tar.bz2 -# Source0-md5: 289a146182bc29f0236eaa15d8ebdf98 +# Source0-md5: 163a5712b86f6bdfebdf233cc6e2192d Patch0: %{name}-pl.po.patch Patch1: %{name}-debian-manpages.patch Patch2: %{name}-portability.patch @@ -21,7 +21,7 @@ Patch6: %{name}-sparc.patch Patch7: %{name}-inline.patch Patch8: %{name}-scanf.patch Patch9: %{name}-strings_c.patch -Patch10: %{name}-upstream.patch +Patch10: %{name}-am.patch URL: https://fedorahosted.org/elfutils/ BuildRequires: autoconf >= 2.63 BuildRequires: automake >= 1:1.8 @@ -154,9 +154,10 @@ programowalny interfejs asemblera. %{__rm} po/stamp-po # temporarily disable test failing on specific archs -%ifarch alpha -%{__perl} -pi -e 's/run-elflint-self.sh//' tests/Makefile -%endif +# - as for 0.155/binutils-2.23.52.0.1 this fails also on x86 +#ifarch alpha +%{__perl} -pi -e 's/run-elflint-self.sh//' tests/Makefile.am +#endif %build #%%{__gettextize} @@ -206,7 +207,7 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc AUTHORS EXCEPTION NEWS NOTES README THANKS TODO +%doc AUTHORS CONTRIBUTING ChangeLog NEWS NOTES README THANKS TODO %attr(755,root,root) %{_bindir}/eu-* %attr(755,root,root) %{_libdir}/libasm-*.so %attr(755,root,root) %ghost %{_libdir}/libasm.so.1