summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--elfutils-portability.patch28
-rw-r--r--elfutils-robustify.patch50
-rw-r--r--elfutils.spec10
-rw-r--r--elfutils/INSTALL97
-rw-r--r--elfutils/NEWS6
-rwxr-xr-xelfutils/config/config.guess196
-rwxr-xr-xelfutils/config/config.sub43
-rw-r--r--elfutils/config/elfutils.spec.in7
-rwxr-xr-xelfutils/configure20
-rw-r--r--elfutils/configure.ac4
-rw-r--r--elfutils/elfutils.spec9
-rw-r--r--elfutils/libdwfl/ChangeLog19
-rw-r--r--elfutils/libdwfl/derelocate.c3
-rw-r--r--elfutils/libdwfl/dwfl_module_getdwarf.c259
-rw-r--r--elfutils/libdwfl/libdwflP.h15
-rw-r--r--elfutils/libelf/ChangeLog5
-rw-r--r--elfutils/libelf/elf_getdata_rawchunk.c4
-rw-r--r--elfutils/po/de.gmobin21892 -> 21892 bytes
-rw-r--r--elfutils/po/de.po100
-rw-r--r--elfutils/po/elfutils.pot101
-rw-r--r--elfutils/po/en@boldquot.gmobin131110 -> 131416 bytes
-rw-r--r--elfutils/po/en@boldquot.po107
-rw-r--r--elfutils/po/en@quot.gmobin129478 -> 129776 bytes
-rw-r--r--elfutils/po/en@quot.po107
-rw-r--r--elfutils/po/es.gmobin141179 -> 141350 bytes
-rw-r--r--elfutils/po/es.po105
-rw-r--r--elfutils/po/ja.gmobin86957 -> 86957 bytes
-rw-r--r--elfutils/po/ja.po100
-rw-r--r--elfutils/po/pl.gmobin139117 -> 139272 bytes
-rw-r--r--elfutils/po/pl.po102
-rw-r--r--elfutils/po/uk.gmobin180063 -> 180289 bytes
-rw-r--r--elfutils/po/uk.po106
-rw-r--r--elfutils/src/ChangeLog11
-rw-r--r--elfutils/src/strip.c116
-rw-r--r--elfutils/tests/ChangeLog43
-rw-r--r--elfutils/tests/Makefile.am16
-rw-r--r--elfutils/tests/Makefile.in18
-rwxr-xr-xelfutils/tests/run-prelink-addr-test.sh216
-rwxr-xr-xelfutils/tests/testfile52-32.noshdrs.so.bz2bin0 -> 944 bytes
-rwxr-xr-xelfutils/tests/testfile52-32.prelink.so.bz2bin0 -> 1839 bytes
-rwxr-xr-xelfutils/tests/testfile52-32.so.bz2bin0 -> 1445 bytes
-rwxr-xr-xelfutils/tests/testfile52-32.so.debug.bz2bin0 -> 1681 bytes
-rwxr-xr-xelfutils/tests/testfile52-64.noshdrs.so.bz2bin0 -> 1044 bytes
-rwxr-xr-xelfutils/tests/testfile52-64.prelink.so.bz2bin0 -> 1978 bytes
-rwxr-xr-xelfutils/tests/testfile52-64.so.bz2bin0 -> 1558 bytes
-rwxr-xr-xelfutils/tests/testfile52-64.so.debug.bz2bin0 -> 1693 bytes
-rwxr-xr-xelfutils/tests/testfile53-32.bz2bin0 -> 1628 bytes
-rwxr-xr-xelfutils/tests/testfile53-32.debug.bz2bin0 -> 1959 bytes
-rwxr-xr-xelfutils/tests/testfile53-32.prelink.bz2bin0 -> 2192 bytes
-rwxr-xr-xelfutils/tests/testfile53-64.bz2bin0 -> 1683 bytes
-rwxr-xr-xelfutils/tests/testfile53-64.debug.bz2bin0 -> 1927 bytes
-rwxr-xr-xelfutils/tests/testfile53-64.prelink.bz2bin0 -> 2180 bytes
-rwxr-xr-xelfutils/tests/testfile54-32.noshdrs.so.bz2bin0 -> 416 bytes
-rwxr-xr-xelfutils/tests/testfile54-32.prelink.so.bz2bin0 -> 1035 bytes
-rwxr-xr-xelfutils/tests/testfile54-32.so.bz2bin0 -> 745 bytes
-rwxr-xr-xelfutils/tests/testfile54-32.so.debug.bz2bin0 -> 1009 bytes
-rwxr-xr-xelfutils/tests/testfile54-64.noshdrs.so.bz2bin0 -> 458 bytes
-rwxr-xr-xelfutils/tests/testfile54-64.prelink.so.bz2bin0 -> 1127 bytes
-rwxr-xr-xelfutils/tests/testfile54-64.so.bz2bin0 -> 799 bytes
-rwxr-xr-xelfutils/tests/testfile54-64.so.debug.bz2bin0 -> 1052 bytes
-rw-r--r--elfutils/version.h2
61 files changed, 1405 insertions, 620 deletions
diff --git a/elfutils-portability.patch b/elfutils-portability.patch
index 3c307687..eac700c9 100644
--- a/elfutils-portability.patch
+++ b/elfutils-portability.patch
@@ -696,7 +696,7 @@
@MUDFLAP_FALSE@libmudflap =
--- elfutils/libdwfl/ChangeLog
+++ elfutils/libdwfl/ChangeLog
-@@ -1331,6 +1331,11 @@
+@@ -1350,6 +1350,11 @@
2005-07-21 Roland McGrath <roland@redhat.com>
@@ -778,7 +778,7 @@
@MUDFLAP_FALSE@libmudflap =
--- elfutils/libelf/ChangeLog
+++ elfutils/libelf/ChangeLog
-@@ -666,6 +666,11 @@
+@@ -671,6 +671,11 @@
* elf.h: Update from glibc.
@@ -890,7 +890,7 @@
break;
--- elfutils/src/ChangeLog
+++ elfutils/src/ChangeLog
-@@ -225,8 +225,16 @@
+@@ -236,8 +236,16 @@
* readelf.c (attr_callback): Use print_block only when we don't use
print_ops.
@@ -907,7 +907,7 @@
* ar.c (do_oper_extract): Use pathconf instead of statfs.
2009-08-01 Ulrich Drepper <drepper@redhat.com>
-@@ -390,6 +398,8 @@
+@@ -401,6 +409,8 @@
* readelf.c (print_debug_frame_section): Use t instead of j formats
for ptrdiff_t OFFSET.
@@ -916,7 +916,7 @@
2009-01-21 Ulrich Drepper <drepper@redhat.com>
* elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
-@@ -573,6 +583,11 @@
+@@ -584,6 +594,11 @@
that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
is valid in RELRO.
@@ -928,7 +928,7 @@
2008-02-29 Roland McGrath <roland@redhat.com>
* readelf.c (print_attributes): Add a cast.
-@@ -824,6 +839,8 @@
+@@ -835,6 +850,8 @@
* readelf.c (hex_dump): Fix rounding error in whitespace calculation.
@@ -937,7 +937,7 @@
2007-10-15 Roland McGrath <roland@redhat.com>
* make-debug-archive.in: New file.
-@@ -1263,6 +1280,10 @@
+@@ -1274,6 +1291,10 @@
* elflint.c (valid_e_machine): Add EM_ALPHA.
Reported by Christian Aichinger <Greek0@gmx.net>.
@@ -948,7 +948,7 @@
2006-08-08 Ulrich Drepper <drepper@redhat.com>
* elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
-@@ -1339,6 +1360,10 @@
+@@ -1350,6 +1371,10 @@
* Makefile.am: Add hacks to create dependency files for non-generic
linker.
@@ -959,7 +959,7 @@
2006-06-12 Ulrich Drepper <drepper@redhat.com>
* ldgeneric.c (ld_generic_generate_sections): Don't create .interp
-@@ -1687,6 +1712,11 @@
+@@ -1698,6 +1723,11 @@
* readelf.c (print_debug_loc_section): Fix indentation for larger
address size.
@@ -1145,7 +1145,7 @@
/* 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. */
@@ -1164,7 +1164,7 @@
}
/* 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)
{
@@ -1173,7 +1173,7 @@
{
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)
{
@@ -1184,7 +1184,7 @@
cannot set access and modification date of '%s'"), fname);
--- elfutils/tests/ChangeLog
+++ elfutils/tests/ChangeLog
-@@ -154,6 +154,8 @@
+@@ -197,6 +197,8 @@
2008-01-21 Roland McGrath <roland@redhat.com>
@@ -1193,7 +1193,7 @@
* testfile45.S.bz2: Add tests for cltq, cqto.
* testfile45.expect.bz2: Adjust.
-@@ -862,6 +864,11 @@
+@@ -905,6 +907,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 b50cab4c..19764cbb 100644
--- a/elfutils-robustify.patch
+++ b/elfutils-robustify.patch
@@ -1,6 +1,6 @@
--- elfutils/libelf/ChangeLog
+++ elfutils/libelf/ChangeLog
-@@ -658,10 +658,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.
@@ -865,7 +865,7 @@
#endif /* libelfP.h */
--- elfutils/src/ChangeLog
+++ elfutils/src/ChangeLog
-@@ -1675,6 +1675,16 @@
+@@ -1686,6 +1686,16 @@
object symbols or symbols with unknown type.
(check_rel): Likewise.
@@ -882,7 +882,7 @@
2005-06-08 Roland McGrath <roland@redhat.com>
* readelf.c (print_ops): Add consts.
-@@ -1720,6 +1730,19 @@
+@@ -1731,6 +1741,19 @@
* readelf.c (dwarf_tag_string): Add new tags.
@@ -1392,7 +1392,7 @@
"\
--- 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;
}
@@ -1404,7 +1404,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.
-@@ -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). */
@@ -1413,7 +1413,7 @@
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)
{
@@ -1421,7 +1421,7 @@
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;
@@ -1430,7 +1430,7 @@
/* 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))
{
@@ -1439,7 +1439,7 @@
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)
@@ -1452,7 +1452,7 @@
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))
{
@@ -1461,7 +1461,7 @@
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)
{
@@ -1470,7 +1470,7 @@
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. */
@@ -1488,7 +1488,7 @@
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)
{
@@ -1497,7 +1497,7 @@
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;
@@ -1507,7 +1507,7 @@
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. */
@@ -1526,7 +1526,7 @@
/* 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));
@@ -1535,7 +1535,7 @@
/* 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));
@@ -1544,7 +1544,7 @@
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));
@@ -1553,7 +1553,7 @@
/* 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);
@@ -1577,7 +1577,7 @@
>= 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
{
@@ -1586,7 +1586,7 @@
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;
}
@@ -1595,7 +1595,7 @@
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. */
@@ -1604,7 +1604,7 @@
}
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);
@@ -1618,7 +1618,7 @@
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. */
@@ -1627,7 +1627,7 @@
== 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.spec b/elfutils.spec
index 5ea692eb..a75ad5fd 100644
--- a/elfutils.spec
+++ b/elfutils.spec
@@ -1,6 +1,6 @@
Name: elfutils
Summary: A collection of utilities and DSOs to handle compiled objects
-Version: 0.150
+Version: 0.151
%global baserelease 1
URL: https://fedorahosted.org/elfutils/
%global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/
@@ -315,6 +315,14 @@ rm -rf ${RPM_BUILD_ROOT}
%{_libdir}/libelf.a
%changelog
+* Wed Jan 12 2011 Roland McGrath <roland@redhat.com> - 0.151-1
+- Update to 0.151
+ - libdwfl: Fix for more prelink cases with separate debug file.
+ - eu-strip: New flag --strip-sections to remove section headers entirely.
+
+* Thu Dec 2 2010 Roland McGrath <roland@redhat.com> - 0.150-2
+- libdwfl: Remove bogus assert. (#658268)
+
* Tue Nov 23 2010 Roland McGrath <roland@redhat.com> - 0.150-1
- Update to 0.150
- libdw: Fix for handling huge .debug_aranges section. (#638432)
diff --git a/elfutils/INSTALL b/elfutils/INSTALL
index 2550dab7..7d1c323b 100644
--- a/elfutils/INSTALL
+++ b/elfutils/INSTALL
@@ -4,8 +4,10 @@ Installation Instructions
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
- This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
+ Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved. This file is offered as-is,
+without warranty of any kind.
Basic Installation
==================
@@ -13,7 +15,11 @@ Basic Installation
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
-instructions specific to this package.
+instructions specific to this package. Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below. The lack of an optional feature in a given package is not
+necessarily a bug. More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
@@ -42,7 +48,7 @@ may remove or edit it.
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
-The simplest way to compile this package is:
+ The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
@@ -53,12 +59,22 @@ The simplest way to compile this package is:
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
- the package.
+ the package, generally using the just-built uninstalled binaries.
4. Type `make install' to install the programs and any data files and
- documentation.
-
- 5. You can remove the program binaries and object files from the
+ documentation. When installing into a prefix owned by root, it is
+ recommended that the package be configured and built as a regular
+ user, and only the `make install' phase executed with root
+ privileges.
+
+ 5. Optionally, type `make installcheck' to repeat any self-tests, but
+ this time using the binaries in their final installed location.
+ This target does not install anything. Running this target as a
+ regular user, particularly if the prior `make install' required
+ root privileges, verifies that the installation completed
+ correctly.
+
+ 6. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
@@ -67,8 +83,15 @@ The simplest way to compile this package is:
all sorts of other programs in order to regenerate files that came
with the distribution.
- 6. Often, you can also type `make uninstall' to remove the installed
- files again.
+ 7. Often, you can also type `make uninstall' to remove the installed
+ files again. In practice, not all packages have tested that
+ uninstallation works correctly, even though it is required by the
+ GNU Coding Standards.
+
+ 8. Some packages, particularly those that use Automake, provide `make
+ distcheck', which can by used by developers to test that all other
+ targets like `make install' and `make uninstall' work correctly.
+ This target is generally not run by end users.
Compilers and Options
=====================
@@ -93,7 +116,8 @@ same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
+source code in the directory that `configure' is in and in `..'. This
+is known as a "VPATH" build.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
@@ -120,7 +144,8 @@ Installation Names
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX'.
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
@@ -131,15 +156,46 @@ Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
+you can set and what kinds of files go in them. In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+ The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+ The first method involves providing an override variable for each
+affected directory. For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'. Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated. The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+ The second method involves providing the `DESTDIR' variable. For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names. The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters. On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-Optional Features
-=================
-
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
@@ -152,6 +208,13 @@ find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
+ Some packages offer the ability to configure how verbose the
+execution of `make' will be. For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
Particular systems
==================
@@ -288,7 +351,7 @@ operates.
`configure' can determine that directory automatically.
`--prefix=DIR'
- Use DIR as the installation prefix. *Note Installation Names::
+ Use DIR as the installation prefix. *note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
diff --git a/elfutils/NEWS b/elfutils/NEWS
index 62460220..f76b8345 100644
--- a/elfutils/NEWS
+++ b/elfutils/NEWS
@@ -1,3 +1,9 @@
+Version 0.151
+
+libdwfl: Fix for more prelink cases with separate debug file.
+
+strip: New flag --strip-sections to remove section headers entirely.
+
Version 0.150
libdw: Fix for handling huge .debug_aranges section.
diff --git a/elfutils/config/config.guess b/elfutils/config/config.guess
index da833146..dc84c68e 100755
--- a/elfutils/config/config.guess
+++ b/elfutils/config/config.guess
@@ -1,10 +1,10 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
# Free Software Foundation, Inc.
-timestamp='2009-04-27'
+timestamp='2009-11-20'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -27,16 +27,16 @@ timestamp='2009-04-27'
# the same distribution terms that you use for the rest of that program.
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
+# Originally written by Per Bothner. Please send patches (context
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
+# entry.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
# exits with 0. Otherwise, it exits with 1.
#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
me=`echo "$0" | sed -e 's,.*/,,'`
@@ -170,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
+ | grep -q __ELF__
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
@@ -333,6 +333,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ echo i386-pc-auroraux${UNAME_RELEASE}
+ exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
eval $set_cc_for_build
SUN_ARCH="i386"
@@ -656,7 +659,7 @@ EOF
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep __LP64__ >/dev/null
+ grep -q __LP64__
then
HP_ARCH="hppa2.0w"
else
@@ -807,12 +810,12 @@ EOF
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
- *:Interix*:[3456]*)
+ *:Interix*:*)
case ${UNAME_MACHINE} in
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
- EM64T | authenticamd | genuineintel)
+ authenticamd | genuineintel | EM64T)
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
IA64)
@@ -822,6 +825,9 @@ EOF
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit ;;
+ 8664:Windows_NT:*)
+ echo x86_64-pc-mks
+ exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -851,6 +857,20 @@ EOF
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit ;;
arm*:Linux:*:*)
eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -873,6 +893,17 @@ EOF
frv:Linux:*:*)
echo frv-unknown-linux-gnu
exit ;;
+ i*86:Linux:*:*)
+ LIBC=gnu
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ exit ;;
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
@@ -882,78 +913,34 @@ EOF
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
- mips:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips
- #undef mipsel
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mipsel
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips
- #else
- CPU=
- #endif
- #endif
-EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^CPU/{
- s: ::g
- p
- }'`"
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- ;;
- mips64:Linux:*:*)
+ mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
- #undef mips64
- #undef mips64el
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mips64el
+ CPU=${UNAME_MACHINE}el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips64
+ CPU=${UNAME_MACHINE}
#else
CPU=
#endif
#endif
EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^CPU/{
- s: ::g
- p
- }'`"
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
or32:Linux:*:*)
echo or32-unknown-linux-gnu
exit ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
- exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
- exit ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
- exit ;;
padre:Linux:*:*)
echo sparc-unknown-linux-gnu
exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -962,8 +949,11 @@ EOF
*) echo hppa-unknown-linux-gnu ;;
esac
exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
@@ -986,66 +976,6 @@ EOF
xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
- i*86:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us. cd to the root directory to prevent
- # problems with other programs or directories called `ld' in the path.
- # Set LC_ALL=C to ensure ld outputs messages in English.
- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
- | sed -ne '/supported targets:/!d
- s/[ ][ ]*/ /g
- s/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit ;;
- "")
- # Either a pre-BFD a.out linker (linux-gnuoldld) or
- # one that does not give us useful --help.
- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
- exit ;;
- esac
- # Determine whether the default compiler is a.out or elf
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #ifdef __ELF__
- # ifdef __GLIBC__
- # if __GLIBC__ >= 2
- LIBC=gnu
- # else
- LIBC=gnulibc1
- # endif
- # else
- LIBC=gnulibc1
- # endif
- #else
- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
- LIBC=gnu
- #else
- LIBC=gnuaout
- #endif
- #endif
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^LIBC/{
- s: ::g
- p
- }'`"
- test x"${LIBC}" != x && {
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
- exit
- }
- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
- ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
@@ -1074,7 +1004,7 @@ EOF
i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit ;;
i*86:*DOS:*:*)
@@ -1182,7 +1112,7 @@ EOF
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
exit ;;
SM[BE]S:UNIX_SV:*:*)
@@ -1275,6 +1205,16 @@ EOF
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
case $UNAME_PROCESSOR in
+ i386)
+ eval $set_cc_for_build
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ UNAME_PROCESSOR="x86_64"
+ fi
+ fi ;;
unknown) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
diff --git a/elfutils/config/config.sub b/elfutils/config/config.sub
index a39437d0..2a55a507 100755
--- a/elfutils/config/config.sub
+++ b/elfutils/config/config.sub
@@ -1,10 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
# Free Software Foundation, Inc.
-timestamp='2009-04-17'
+timestamp='2009-11-20'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -32,13 +32,16 @@ timestamp='2009-04-17'
# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
+# diff and a properly formatted GNU ChangeLog entry.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
# If it is invalid, we print an error message on stderr and exit with code 1.
# Otherwise, we print the canonical config type on stdout and succeed.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
@@ -149,10 +152,13 @@ case $os in
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray)
+ -apple | -axis | -knuth | -cray | -microblaze)
os=
basic_machine=$1
;;
+ -bluegene*)
+ os=-cnk
+ ;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
@@ -281,6 +287,7 @@ case $basic_machine in
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
+ | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
@@ -288,13 +295,14 @@ case $basic_machine in
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
| spu | strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
+ | ubicom32 \
| v850 | v850e \
| we32k \
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
| z8k | z80)
basic_machine=$basic_machine-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12)
+ m6811 | m68hc11 | m6812 | m68hc12 | picochip)
# Motorola 68HC11/12.
basic_machine=$basic_machine-unknown
os=-none
@@ -337,7 +345,7 @@ case $basic_machine in
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
@@ -365,7 +373,7 @@ case $basic_machine in
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
- | romp-* | rs6000-* \
+ | romp-* | rs6000-* | rx-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
@@ -374,6 +382,7 @@ case $basic_machine in
| tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
| tron-* \
+ | ubicom32-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
@@ -467,6 +476,10 @@ case $basic_machine in
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
os=-linux
;;
+ bluegene*)
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
c90)
basic_machine=c90-cray
os=-unicos
@@ -719,6 +732,9 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
+ microblaze)
+ basic_machine=microblaze-xilinx
+ ;;
mingw32)
basic_machine=i386-pc
os=-mingw32
@@ -1240,6 +1256,9 @@ case $os in
# First match some system type aliases
# that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
+ -auroraux)
+ os=-auroraux
+ ;;
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
@@ -1260,9 +1279,9 @@ case $os in
# Each alternative MUST END IN A *, to match a version number.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -kopensolaris* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+ | -sym* | -kopensolaris* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1283,7 +1302,7 @@ case $os in
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1613,7 +1632,7 @@ case $basic_machine in
-sunos*)
vendor=sun
;;
- -aix*)
+ -cnk*|-aix*)
vendor=ibm
;;
-beos*)
diff --git a/elfutils/config/elfutils.spec.in b/elfutils/config/elfutils.spec.in
index 78e8be9d..d406daa5 100644
--- a/elfutils/config/elfutils.spec.in
+++ b/elfutils/config/elfutils.spec.in
@@ -188,6 +188,13 @@ rm -rf ${RPM_BUILD_ROOT}
%{_libdir}/libelf.a
%changelog
+* Mon Nov 22 2010 <drepper@redhat.com> 0.150-1
+- 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.
+
* Mon Sep 13 2010 <drepper@redhat.com> 0.149-1
- libdw: Decode new DW_OP_GNU_implicit_pointer operation; new
function dwarf_getlocation_implicit_pointer.
diff --git a/elfutils/configure b/elfutils/configure
index 6c9a21c5..db11af71 100755
--- a/elfutils/configure
+++ b/elfutils/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.66 for Red Hat elfutils 0.150.
+# Generated by GNU Autoconf 2.66 for Red Hat elfutils 0.151.
#
# Report bugs to <http://bugzilla.redhat.com/bugzilla/>.
#
@@ -553,8 +553,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Red Hat elfutils'
PACKAGE_TARNAME='elfutils'
-PACKAGE_VERSION='0.150'
-PACKAGE_STRING='Red Hat elfutils 0.150'
+PACKAGE_VERSION='0.151'
+PACKAGE_STRING='Red Hat elfutils 0.151'
PACKAGE_BUGREPORT='http://bugzilla.redhat.com/bugzilla/'
PACKAGE_URL=''
@@ -1269,7 +1269,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Red Hat elfutils 0.150 to adapt to many kinds of systems.
+\`configure' configures Red Hat elfutils 0.151 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1339,7 +1339,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Red Hat elfutils 0.150:";;
+ short | recursive ) echo "Configuration of Red Hat elfutils 0.151:";;
esac
cat <<\_ACEOF
@@ -1451,7 +1451,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Red Hat elfutils configure 0.150
+Red Hat elfutils configure 0.151
generated by GNU Autoconf 2.66
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1554,7 +1554,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Red Hat elfutils $as_me 0.150, which was
+It was created by Red Hat elfutils $as_me 0.151, which was
generated by GNU Autoconf 2.66. Invocation command line was
$ $0 $@
@@ -2375,7 +2375,7 @@ fi
# Define the identity of the package.
PACKAGE='elfutils'
- VERSION='0.150'
+ VERSION='0.151'
cat >>confdefs.h <<_ACEOF
@@ -5489,7 +5489,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Red Hat elfutils $as_me 0.150, which was
+This file was extended by Red Hat elfutils $as_me 0.151, which was
generated by GNU Autoconf 2.66. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5555,7 +5555,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Red Hat elfutils config.status 0.150
+Red Hat elfutils config.status 0.151
configured by $0, generated by GNU Autoconf 2.66,
with options \\"\$ac_cs_config\\"
diff --git a/elfutils/configure.ac b/elfutils/configure.ac
index a7541461..39ecd391 100644
--- a/elfutils/configure.ac
+++ b/elfutils/configure.ac
@@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
dnl Configure input file for elfutils. -*-autoconf-*-
dnl
-dnl Copyright (C) 1996-2010 Red Hat, Inc.
+dnl Copyright (C) 1996-2011 Red Hat, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software Foundation,
dnl Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
dnl
-AC_INIT([Red Hat elfutils],[0.150],[http://bugzilla.redhat.com/bugzilla/],[elfutils])
+AC_INIT([Red Hat elfutils],[0.151],[http://bugzilla.redhat.com/bugzilla/],[elfutils])
AC_CONFIG_AUX_DIR([config])
AC_CONFIG_FILES([config/Makefile])
diff --git a/elfutils/elfutils.spec b/elfutils/elfutils.spec
index a44512cd..38681cc9 100644
--- a/elfutils/elfutils.spec
+++ b/elfutils/elfutils.spec
@@ -1,7 +1,7 @@
# -*- rpm-spec-*-
Summary: A collection of utilities and DSOs to handle compiled objects
Name: elfutils
-Version: 0.150
+Version: 0.151
Release: 1
License: GPLv2 with exceptions
Group: Development/Tools
@@ -188,6 +188,13 @@ rm -rf ${RPM_BUILD_ROOT}
%{_libdir}/libelf.a
%changelog
+* Mon Nov 22 2010 <drepper@redhat.com> 0.150-1
+- 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.
+
* Mon Sep 13 2010 <drepper@redhat.com> 0.149-1
- libdw: Decode new DW_OP_GNU_implicit_pointer operation; new
function dwarf_getlocation_implicit_pointer.
diff --git a/elfutils/libdwfl/ChangeLog b/elfutils/libdwfl/ChangeLog
index dd4eb10c..16fb71d3 100644
--- a/elfutils/libdwfl/ChangeLog
+++ b/elfutils/libdwfl/ChangeLog
@@ -1,3 +1,22 @@
+2011-01-11 Roland McGrath <roland@redhat.com>
+
+ * dwfl_module_getdwarf.c (open_elf): Remove section-based
+ address_sync fixup from here.
+ (find_prelink_address_sync): New function.
+ (find_debuginfo): Call it.
+ * libdwflP.h (DWFL_ERRORS): Add BAD_PRELINK error.
+
+2011-01-04 Roland McGrath <roland@redhat.com>
+
+ * dwfl_module_getdwarf.c (open_elf): Enhance address_sync calculation
+ logic to consider section addresses, the better to survive all the
+ possible prelink machinations.
+ * libdwflP.h (struct dwfl_file): Comment change.
+
+2010-11-30 Roland McGrath <roland@redhat.com>
+
+ * derelocate.c (dwfl_module_relocations): Remove over-eager assert.
+
2010-11-12 Roland McGrath <roland@redhat.com>
* libdwflP.h (struct Dwfl_Module): New member main_bias.
diff --git a/elfutils/libdwfl/derelocate.c b/elfutils/libdwfl/derelocate.c
index 483b75eb..ba6d9db4 100644
--- a/elfutils/libdwfl/derelocate.c
+++ b/elfutils/libdwfl/derelocate.c
@@ -1,5 +1,5 @@
/* Recover relocatibility for addresses computed from debug information.
- Copyright (C) 2005-2009 Red Hat, Inc.
+ Copyright (C) 2005-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -240,7 +240,6 @@ dwfl_module_relocations (Dwfl_Module *mod)
case ET_EXEC:
assert (mod->main.vaddr == mod->low_addr);
- assert (mod->debug.address_sync == mod->main.address_sync);
break;
}
diff --git a/elfutils/libdwfl/dwfl_module_getdwarf.c b/elfutils/libdwfl/dwfl_module_getdwarf.c
index d89081b7..0825722d 100644
--- a/elfutils/libdwfl/dwfl_module_getdwarf.c
+++ b/elfutils/libdwfl/dwfl_module_getdwarf.c
@@ -1,5 +1,5 @@
/* Find debugging and symbol information for a module in libdwfl.
- Copyright (C) 2005-2010 Red Hat, Inc.
+ Copyright (C) 2005-2011 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -55,7 +55,7 @@
/* Open libelf FILE->fd and compute the load base of ELF as loaded in MOD.
- When we return success, FILE->elf and FILE->bias are set up. */
+ When we return success, FILE->elf and FILE->vaddr are set up. */
static inline Dwfl_Error
open_elf (Dwfl_Module *mod, struct dwfl_file *file)
{
@@ -95,6 +95,38 @@ open_elf (Dwfl_Module *mod, struct dwfl_file *file)
if (mod->e_type != ET_REL)
{
+ /* In any non-ET_REL file, we compute the "synchronization address".
+
+ We start with the address at the end of the first PT_LOAD
+ segment. When prelink converts REL to RELA in an ET_DYN
+ file, it expands the space between the beginning of the
+ segment and the actual code/data addresses. Since that
+ change wasn't made in the debug file, the distance from
+ p_vaddr to an address of interest (in an st_value or DWARF
+ data) now differs between the main and debug files. The
+ distance from address_sync to an address of interest remains
+ consistent.
+
+ If there are no section headers at all (full stripping), then
+ the end of the first segment is a valid synchronization address.
+ This cannot happen in a prelinked file, since prelink itself
+ relies on section headers for prelinking and for undoing it.
+ (If you do full stripping on a prelinked file, then you get what
+ you deserve--you can neither undo the prelinking, nor expect to
+ line it up with a debug file separated before prelinking.)
+
+ However, when prelink processes an ET_EXEC file, it can do
+ something different. There it juggles the "special" sections
+ (SHT_DYNSYM et al) to make space for the additional prelink
+ special sections. Sometimes it will do this by moving a special
+ section like .dynstr after the real program sections in the first
+ PT_LOAD segment--i.e. to the end. That changes the end address of
+ the segment, so it no longer lines up correctly and is not a valid
+ synchronization address to use. Because of this, we need to apply
+ a different prelink-savvy means to discover the synchronization
+ address when there is a separate debug file and a prelinked main
+ file. That is done in find_debuginfo, below. */
+
size_t phnum;
if (unlikely (elf_getphdrnum (file->elf, &phnum) != 0))
goto elf_error;
@@ -250,6 +282,224 @@ find_debuglink (Elf *elf, GElf_Word *crc)
return rawdata->d_buf;
}
+/* If the main file might have been prelinked, then we need to
+ discover the correct synchronization address between the main and
+ debug files. Because of prelink's section juggling, we cannot rely
+ on the address_sync computed from PT_LOAD segments (see open_elf).
+
+ We will attempt to discover a synchronization address based on the
+ section headers instead. But finding a section address that is
+ safe to use requires identifying which sections are SHT_PROGBITS.
+ We can do that in the main file, but in the debug file all the
+ allocated sections have been transformed into SHT_NOBITS so we have
+ lost the means to match them up correctly.
+
+ The only method left to us is to decode the .gnu.prelink_undo
+ section in the prelinked main file. This shows what the sections
+ looked like before prelink juggled them--when they still had a
+ direct correspondence to the debug file. */
+static Dwfl_Error
+find_prelink_address_sync (Dwfl_Module *mod)
+{
+ /* The magic section is only identified by name. */
+ size_t shstrndx;
+ if (elf_getshdrstrndx (mod->main.elf, &shstrndx) < 0)
+ return DWFL_E_LIBELF;
+
+ Elf_Scn *scn = NULL;
+ while ((scn = elf_nextscn (mod->main.elf, scn)) != NULL)
+ {
+ GElf_Shdr shdr_mem;
+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+ if (unlikely (shdr == NULL))
+ return DWFL_E_LIBELF;
+ if (shdr->sh_type == SHT_PROGBITS
+ && !(shdr->sh_flags & SHF_ALLOC)
+ && shdr->sh_name != 0)
+ {
+ const char *secname = elf_strptr (mod->main.elf, shstrndx,
+ shdr->sh_name);
+ if (unlikely (secname == NULL))
+ return DWFL_E_LIBELF;
+ if (!strcmp (secname, ".gnu.prelink_undo"))
+ break;
+ }
+ }
+
+ if (scn == NULL)
+ /* There was no .gnu.prelink_undo section. */
+ return DWFL_E_NOERROR;
+
+ Elf_Data *undodata = elf_rawdata (scn, NULL);
+ if (unlikely (undodata == NULL))
+ return DWFL_E_LIBELF;
+
+ /* Decode the section. It consists of the original ehdr, phdrs,
+ and shdrs (but omits section 0). */
+
+ union
+ {
+ Elf32_Ehdr e32;
+ Elf64_Ehdr e64;
+ } ehdr;
+ Elf_Data dst =
+ {
+ .d_buf = &ehdr,
+ .d_size = sizeof ehdr,
+ .d_type = ELF_T_EHDR,
+ .d_version = EV_CURRENT
+ };
+ Elf_Data src = *undodata;
+ src.d_size = gelf_fsize (mod->main.elf, ELF_T_EHDR, 1, EV_CURRENT);
+ src.d_type = ELF_T_EHDR;
+ if (unlikely (gelf_xlatetom (mod->main.elf, &dst, &src,
+ elf_getident (mod->main.elf, NULL)[EI_DATA])
+ == NULL))
+ return DWFL_E_LIBELF;
+
+ size_t shentsize = gelf_fsize (mod->main.elf, ELF_T_SHDR, 1, EV_CURRENT);
+ size_t phentsize = gelf_fsize (mod->main.elf, ELF_T_PHDR, 1, EV_CURRENT);
+
+ uint_fast16_t phnum;
+ uint_fast16_t shnum;
+ if (ehdr.e32.e_ident[EI_CLASS] == ELFCLASS32)
+ {
+ if (ehdr.e32.e_shentsize != shentsize
+ || ehdr.e32.e_phentsize != phentsize)
+ return DWFL_E_BAD_PRELINK;
+ phnum = ehdr.e32.e_phnum;
+ shnum = ehdr.e32.e_shnum;
+ }
+ else
+ {
+ if (ehdr.e64.e_shentsize != shentsize
+ || ehdr.e64.e_phentsize != phentsize)
+ return DWFL_E_BAD_PRELINK;
+ phnum = ehdr.e64.e_phnum;
+ shnum = ehdr.e64.e_shnum;
+ }
+
+ /* Since prelink does not store the zeroth section header in the undo
+ section, it cannot support SHN_XINDEX encoding. */
+ if (unlikely (shnum >= SHN_LORESERVE)
+ || unlikely (undodata->d_size != (src.d_size
+ + phnum * phentsize
+ + (shnum - 1) * shentsize)))
+ return DWFL_E_BAD_PRELINK;
+
+ /* We look at the allocated SHT_PROGBITS (or SHT_NOBITS) sections. (Most
+ every file will have some SHT_PROGBITS sections, but it's possible to
+ have one with nothing but .bss, i.e. SHT_NOBITS.) The special sections
+ that can be moved around have different sh_type values--except for
+ .interp, the section that became the PT_INTERP segment. So we exclude
+ the SHT_PROGBITS section whose address matches the PT_INTERP p_vaddr.
+ For this reason, we must examine the phdrs first to find PT_INTERP. */
+
+ src.d_buf += src.d_size;
+ src.d_type = ELF_T_PHDR;
+ src.d_size = phnum * phentsize;
+
+ GElf_Addr interp = 0;
+ {
+ union
+ {
+ Elf32_Phdr p32[phnum];
+ Elf64_Phdr p64[phnum];
+ } phdr;
+ dst.d_buf = &phdr;
+ dst.d_size = sizeof phdr;
+ if (unlikely (gelf_xlatetom (mod->main.elf, &dst, &src,
+ ehdr.e32.e_ident[EI_DATA]) == NULL))
+ return DWFL_E_LIBELF;
+ if (ehdr.e32.e_ident[EI_CLASS] == ELFCLASS32)
+ {
+ for (uint_fast16_t i = 0; i < phnum; ++i)
+ if (phdr.p32[i].p_type == PT_INTERP)
+ {
+ interp = phdr.p32[i].p_vaddr;
+ break;
+ }
+ }
+ else
+ {
+ for (uint_fast16_t i = 0; i < phnum; ++i)
+ if (phdr.p32[i].p_type == PT_INTERP)
+ {
+ interp = phdr.p32[i].p_vaddr;
+ break;
+ }
+ }
+ }
+
+ src.d_buf += src.d_size;
+ src.d_type = ELF_T_SHDR;
+ src.d_size = gelf_fsize (mod->main.elf, ELF_T_SHDR, shnum - 1, EV_CURRENT);
+
+ union
+ {
+ Elf32_Shdr s32[shnum - 1];
+ Elf64_Shdr s64[shnum - 1];
+ } shdr;
+ dst.d_buf = &shdr;
+ dst.d_size = sizeof shdr;
+ if (unlikely (gelf_xlatetom (mod->main.elf, &dst, &src,
+ ehdr.e32.e_ident[EI_DATA]) == NULL))
+ return DWFL_E_LIBELF;
+
+ /* Now we can look at the original section headers of the main file
+ before it was prelinked. First we'll apply our method to the main
+ file sections as they are after prelinking, to calculate the
+ synchronization address of the main file. Then we'll apply that
+ same method to the saved section headers, to calculate the matching
+ synchronization address of the debug file. */
+
+ GElf_Addr highest;
+
+ inline void consider_shdr (GElf_Word sh_type,
+ GElf_Xword sh_flags,
+ GElf_Addr sh_addr)
+ {
+ if ((sh_flags & SHF_ALLOC)
+ && ((sh_type == SHT_PROGBITS && sh_addr != interp)
+ || sh_type == SHT_NOBITS))
+ {
+ if (sh_addr > highest)
+ highest = sh_addr;
+ }
+ }
+
+ highest = 0;
+ scn = NULL;
+ while ((scn = elf_nextscn (mod->main.elf, scn)) != NULL)
+ {
+ GElf_Shdr sh_mem;
+ GElf_Shdr *sh = gelf_getshdr (scn, &sh_mem);
+ if (unlikely (sh == NULL))
+ return DWFL_E_LIBELF;
+ consider_shdr (sh->sh_type, sh->sh_flags, sh->sh_addr);
+ }
+ if (highest > mod->main.vaddr)
+ {
+ mod->main.address_sync = highest;
+
+ highest = 0;
+ if (ehdr.e32.e_ident[EI_CLASS] == ELFCLASS32)
+ for (size_t i = 0; i < shnum - 1; ++i)
+ consider_shdr (shdr.s32[i].sh_type, shdr.s32[i].sh_flags,
+ shdr.s32[i].sh_addr);
+ else
+ for (size_t i = 0; i < shnum - 1; ++i)
+ consider_shdr (shdr.s64[i].sh_type, shdr.s64[i].sh_flags,
+ shdr.s64[i].sh_addr);
+
+ if (highest > mod->debug.vaddr)
+ mod->debug.address_sync = highest;
+ else
+ return DWFL_E_BAD_PRELINK;
+ }
+
+ return DWFL_E_NOERROR;
+}
/* Find the separate debuginfo file for this module and open libelf on it.
When we return success, MOD->debug is set up. */
@@ -267,7 +517,10 @@ find_debuginfo (Dwfl_Module *mod)
debuglink_file,
debuglink_crc,
&mod->debug.name);
- return open_elf (mod, &mod->debug);
+ Dwfl_Error result = open_elf (mod, &mod->debug);
+ if (result == DWFL_E_NOERROR && mod->debug.address_sync != 0)
+ result = find_prelink_address_sync (mod);
+ return result;
}
diff --git a/elfutils/libdwfl/libdwflP.h b/elfutils/libdwfl/libdwflP.h
index 1003b2d3..1f7532bf 100644
--- a/elfutils/libdwfl/libdwflP.h
+++ b/elfutils/libdwfl/libdwflP.h
@@ -1,5 +1,5 @@
/* Internal definitions for libdwfl.
- Copyright (C) 2005-2010 Red Hat, Inc.
+ Copyright (C) 2005-2011 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -94,7 +94,8 @@
DWFL_ERROR (ALREADY_ELF, N_("ELF file opened")) \
DWFL_ERROR (BADELF, N_("not a valid ELF file")) \
DWFL_ERROR (WEIRD_TYPE, N_("cannot handle DWARF type description")) \
- DWFL_ERROR (WRONG_ID_ELF, N_("ELF file does not match build ID"))
+ DWFL_ERROR (WRONG_ID_ELF, N_("ELF file does not match build ID")) \
+ DWFL_ERROR (BAD_PRELINK, N_("corrupt .gnu.prelink_undo section data"))
#define DWFL_ERROR(name, text) DWFL_E_##name,
typedef enum { DWFL_ERRORS DWFL_E_NUM } Dwfl_Error;
@@ -146,15 +147,7 @@ struct dwfl_file
GElf_Addr vaddr;
/* This is an address chosen for synchronization between the main file
- and the debug file. In a file without phdrs, this is zero. In
- other files it is the address at the end of the first PT_LOAD
- segment. When prelink converts REL to RELA in an ET_DYN file, it
- expands the space between the beginning of the segment and the
- actual code/data addresses. Since that change wasn't made in the
- debug file, the distance from p_vaddr to an address of interest (in
- an st_value or DWARF data) now differs between the main and debug
- files. The distance from address_sync to an address of interest
- remains consistent. */
+ and the debug file. See dwfl_module_getdwarf.c for how it's chosen. */
GElf_Addr address_sync;
};
diff --git a/elfutils/libelf/ChangeLog b/elfutils/libelf/ChangeLog
index a8ded88e..d88e2fe5 100644
--- a/elfutils/libelf/ChangeLog
+++ b/elfutils/libelf/ChangeLog
@@ -1,3 +1,8 @@
+2011-01-05 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Fix off64_t overflow
+ when MAXIMUM_SIZE == ~0.
+
2010-08-18 Roland McGrath <roland@redhat.com>
* gelf_fsize.c (__libelf_type_sizes): Add entries for ELF_T_LIB
diff --git a/elfutils/libelf/elf_getdata_rawchunk.c b/elfutils/libelf/elf_getdata_rawchunk.c
index 5af0f7f3..3ec2100a 100644
--- a/elfutils/libelf/elf_getdata_rawchunk.c
+++ b/elfutils/libelf/elf_getdata_rawchunk.c
@@ -78,8 +78,8 @@ elf_getdata_rawchunk (elf, offset, size, type)
return NULL;
}
- if (unlikely (size > elf->maximum_size
- || (off64_t) (elf->maximum_size - size) < offset))
+ if (unlikely (offset < 0 || offset + (off64_t) size < offset
+ || offset + size > elf->maximum_size))
{
/* Invalid request. */
__libelf_seterrno (ELF_E_INVALID_OP);
diff --git a/elfutils/po/de.gmo b/elfutils/po/de.gmo
index 754a5591..88abb6e4 100644
--- a/elfutils/po/de.gmo
+++ b/elfutils/po/de.gmo
Binary files differ
diff --git a/elfutils/po/de.po b/elfutils/po/de.po
index 6dca9280..a93d4778 100644
--- a/elfutils/po/de.po
+++ b/elfutils/po/de.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: elfutils VERSION\n"
"Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2010-11-22 22:08-0500\n"
+"POT-Creation-Date: 2011-01-12 17:51-0500\n"
"PO-Revision-Date: 2009-06-29 15:15+0200\n"
"Last-Translator: Michael Münch <micm@fedoraproject.org>\n"
"Language-Team: German\n"
@@ -367,6 +367,11 @@ msgstr "konnte Elf-Deskriptor nicht erzeugen: %s"
msgid "ELF file does not match build ID"
msgstr ""
+#: libdwfl/libdwflP.h:98
+#, fuzzy
+msgid "corrupt .gnu.prelink_undo section data"
+msgstr "konnte Abschnittsdaten nicht holen: %s"
+
#: libebl/eblbackendname.c:63
msgid "No backend"
msgstr "Kein Backend"
@@ -597,7 +602,7 @@ msgstr ""
#: src/addr2line.c:189 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239
#: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181
#: src/ranlib.c:136 src/readelf.c:456 src/size.c:219 src/strings.c:227
-#: src/strip.c:204 src/unstrip.c:234
+#: src/strip.c:210 src/unstrip.c:234
#, c-format
msgid ""
"Copyright (C) %s Red Hat, Inc.\n"
@@ -612,7 +617,7 @@ msgstr ""
#: src/addr2line.c:194 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244
#: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186
#: src/ranlib.c:141 src/readelf.c:461 src/size.c:224 src/strings.c:232
-#: src/strip.c:209 src/unstrip.c:239
+#: src/strip.c:215 src/unstrip.c:239
#, c-format
msgid "Written by %s.\n"
msgstr "Geschrieben von %s.\n"
@@ -1018,7 +1023,7 @@ msgstr ""
#: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767
#: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301
-#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913
+#: src/strings.c:183 src/strip.c:443 src/strip.c:478 src/unstrip.c:1913
#: src/unstrip.c:1942
#, c-format
msgid "cannot open '%s'"
@@ -2682,7 +2687,7 @@ msgid "Locate source of text relocations in FILEs (a.out by default)."
msgstr ""
#: src/findtextrel.c:84 src/nm.c:111 src/objdump.c:80 src/size.c:92
-#: src/strings.c:92 src/strip.c:97
+#: src/strings.c:92 src/strip.c:100
msgid "[FILE...]"
msgstr ""
@@ -3168,7 +3173,7 @@ msgstr ""
msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
msgstr ""
-#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:543
+#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:553
#, c-format
msgid "cannot determine number of sections: %s"
msgstr ""
@@ -3465,7 +3470,7 @@ msgstr ""
msgid "default visibility set as local and global"
msgstr "Standard-Sichtbarkeit auf lokal und global gesetzt"
-#: src/nm.c:74 src/strip.c:73
+#: src/nm.c:74 src/strip.c:74
msgid "Output selection:"
msgstr ""
@@ -3531,7 +3536,7 @@ msgstr "Kennzeichne schwache Symbole"
msgid "Print size of defined symbols"
msgstr "Zeige Grösse der definierten Symbole"
-#: src/nm.c:98 src/size.c:80 src/strip.c:78 src/unstrip.c:81
+#: src/nm.c:98 src/size.c:80 src/strip.c:79 src/unstrip.c:81
msgid "Output options:"
msgstr "Ausgabeoptionen:"
@@ -3551,18 +3556,18 @@ msgstr "Sortierreihenfolge umkehren"
msgid "List symbols from FILEs (a.out by default)."
msgstr ""
-#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:121
+#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:124
#, c-format
msgid "%s: INTERNAL ERROR %d (%s-%s): %s"
msgstr "%s: INTERNER FEHLER %d (%s-%s): %s"
#: src/nm.c:380 src/nm.c:392 src/size.c:317 src/size.c:326 src/size.c:337
-#: src/strip.c:1816
+#: src/strip.c:1878
#, c-format
msgid "while closing '%s'"
msgstr "beim Schliessen von '%s'"
-#: src/nm.c:402 src/objdump.c:296 src/strip.c:359
+#: src/nm.c:402 src/objdump.c:296 src/strip.c:369
#, c-format
msgid "%s: File format not recognized"
msgstr "%s: Dateiformat nicht erkannt"
@@ -3605,7 +3610,7 @@ msgstr "Kann Suchbaum nicht erstellen"
#: src/readelf.c:1742 src/readelf.c:1952 src/readelf.c:2206 src/readelf.c:2272
#: src/readelf.c:2350 src/readelf.c:2848 src/readelf.c:2884 src/readelf.c:2946
#: src/readelf.c:6934 src/readelf.c:7832 src/readelf.c:7979 src/readelf.c:8047
-#: src/size.c:425 src/size.c:499 src/strip.c:483
+#: src/size.c:425 src/size.c:499 src/strip.c:493
#, c-format
msgid "cannot get section header string table index"
msgstr ""
@@ -5320,149 +5325,158 @@ msgstr "re-mmap fehlgeschlagen"
msgid "mprotect failed"
msgstr "mprotect fehlgeschlagen"
-#: src/strip.c:74
+#: src/strip.c:75
msgid "Place stripped output into FILE"
msgstr ""
-#: src/strip.c:75
+#: src/strip.c:76
msgid "Extract the removed sections into FILE"
msgstr ""
-#: src/strip.c:76
+#: src/strip.c:77
msgid "Embed name FILE instead of -f argument"
msgstr ""
-#: src/strip.c:80
+#: src/strip.c:81
msgid "Remove all debugging symbols"
msgstr ""
-#: src/strip.c:84
+#: src/strip.c:85
+msgid "Remove section headers (not recommended)"
+msgstr ""
+
+#: src/strip.c:87
msgid "Copy modified/access timestamps to the output"
msgstr ""
-#: src/strip.c:86
+#: src/strip.c:89
msgid "Remove .comment section"
msgstr ""
-#: src/strip.c:89
+#: src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr ""
-#: src/strip.c:94
+#: src/strip.c:97
msgid "Discard symbols from object files."
msgstr ""
-#: src/strip.c:186
+#: src/strip.c:192
#, c-format
msgid "Only one input file allowed together with '-o' and '-f'"
msgstr ""
-#: src/strip.c:222
+#: src/strip.c:228
#, c-format
msgid "-f option specified twice"
msgstr ""
-#: src/strip.c:231
+#: src/strip.c:237
#, c-format
msgid "-F option specified twice"
msgstr ""
-#: src/strip.c:240 src/unstrip.c:125
+#: src/strip.c:246 src/unstrip.c:125
#, c-format
msgid "-o option specified twice"
msgstr ""
-#: src/strip.c:260
+#: src/strip.c:266
#, c-format
msgid "-R option supports only .comment section"
msgstr ""
-#: src/strip.c:298 src/strip.c:322
+#: src/strip.c:308 src/strip.c:332
#, c-format
msgid "cannot stat input file '%s'"
msgstr ""
-#: src/strip.c:312
+#: src/strip.c:322
#, c-format
msgid "while opening '%s'"
msgstr ""
-#: src/strip.c:350
+#: src/strip.c:360
#, c-format
msgid "%s: cannot use -o or -f when stripping archive"
msgstr ""
-#: src/strip.c:448
+#: src/strip.c:458
#, c-format
msgid "cannot open EBL backend"
msgstr ""
-#: src/strip.c:498 src/strip.c:522
+#: src/strip.c:508 src/strip.c:532
#, c-format
msgid "cannot create new file '%s': %s"
msgstr ""
-#: src/strip.c:582
+#: src/strip.c:592
#, c-format
msgid "illformed file '%s'"
msgstr ""
-#: src/strip.c:869 src/strip.c:956
+#: src/strip.c:880 src/strip.c:967
#, c-format
msgid "while generating output file: %s"
msgstr ""
-#: src/strip.c:929 src/strip.c:1668
+#: src/strip.c:940 src/strip.c:1683
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr ""
-#: src/strip.c:943
+#: src/strip.c:954
#, c-format
msgid "while preparing output for '%s'"
msgstr ""
-#: src/strip.c:994 src/strip.c:1050
+#: src/strip.c:1005 src/strip.c:1061
#, c-format
msgid "while create section header section: %s"
msgstr ""
-#: src/strip.c:1000
+#: src/strip.c:1011
#, c-format
msgid "cannot allocate section data: %s"
msgstr ""
-#: src/strip.c:1059
+#: src/strip.c:1070
#, c-format
msgid "while create section header string table: %s"
msgstr ""
-#: src/strip.c:1593 src/strip.c:1690
+#: src/strip.c:1595 src/strip.c:1705
#, c-format
msgid "while writing '%s': %s"
msgstr ""
-#: src/strip.c:1604
+#: src/strip.c:1606
#, c-format
msgid "while creating '%s'"
msgstr ""
-#: src/strip.c:1616
+#: src/strip.c:1628
#, c-format
msgid "while computing checksum for debug information"
msgstr ""
-#: src/strip.c:1676
+#: src/strip.c:1691
#, c-format
msgid "%s: error while reading the file: %s"
msgstr ""
-#: src/strip.c:1722 src/strip.c:1729
+#: src/strip.c:1730 src/strip.c:1750
+#, fuzzy, c-format
+msgid "while writing '%s'"
+msgstr "beim Schliessen von '%s'"
+
+#: src/strip.c:1784 src/strip.c:1791
#, c-format
msgid "error while finishing '%s': %s"
msgstr ""
-#: src/strip.c:1752 src/strip.c:1809
+#: src/strip.c:1814 src/strip.c:1871
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr ""
diff --git a/elfutils/po/elfutils.pot b/elfutils/po/elfutils.pot
index a644718e..014a4eec 100644
--- a/elfutils/po/elfutils.pot
+++ b/elfutils/po/elfutils.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: elfutils 0.150\n"
+"Project-Id-Version: elfutils 0.151\n"
"Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2010-11-22 22:08-0500\n"
+"POT-Creation-Date: 2011-01-12 17:51-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -356,6 +356,10 @@ msgstr ""
msgid "ELF file does not match build ID"
msgstr ""
+#: libdwfl/libdwflP.h:98
+msgid "corrupt .gnu.prelink_undo section data"
+msgstr ""
+
#: libebl/eblbackendname.c:63
msgid "No backend"
msgstr ""
@@ -584,7 +588,7 @@ msgstr ""
#: src/addr2line.c:189 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239
#: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181
#: src/ranlib.c:136 src/readelf.c:456 src/size.c:219 src/strings.c:227
-#: src/strip.c:204 src/unstrip.c:234
+#: src/strip.c:210 src/unstrip.c:234
#, c-format
msgid ""
"Copyright (C) %s Red Hat, Inc.\n"
@@ -595,7 +599,7 @@ msgstr ""
#: src/addr2line.c:194 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244
#: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186
#: src/ranlib.c:141 src/readelf.c:461 src/size.c:224 src/strings.c:232
-#: src/strip.c:209 src/unstrip.c:239
+#: src/strip.c:215 src/unstrip.c:239
#, c-format
msgid "Written by %s.\n"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr ""
#: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767
#: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301
-#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913
+#: src/strings.c:183 src/strip.c:443 src/strip.c:478 src/unstrip.c:1913
#: src/unstrip.c:1942
#, c-format
msgid "cannot open '%s'"
@@ -2663,7 +2667,7 @@ msgid "Locate source of text relocations in FILEs (a.out by default)."
msgstr ""
#: src/findtextrel.c:84 src/nm.c:111 src/objdump.c:80 src/size.c:92
-#: src/strings.c:92 src/strip.c:97
+#: src/strings.c:92 src/strip.c:100
msgid "[FILE...]"
msgstr ""
@@ -3149,7 +3153,7 @@ msgstr ""
msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
msgstr ""
-#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:543
+#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:553
#, c-format
msgid "cannot determine number of sections: %s"
msgstr ""
@@ -3446,7 +3450,7 @@ msgstr ""
msgid "default visibility set as local and global"
msgstr ""
-#: src/nm.c:74 src/strip.c:73
+#: src/nm.c:74 src/strip.c:74
msgid "Output selection:"
msgstr ""
@@ -3508,7 +3512,7 @@ msgstr ""
msgid "Print size of defined symbols"
msgstr ""
-#: src/nm.c:98 src/size.c:80 src/strip.c:78 src/unstrip.c:81
+#: src/nm.c:98 src/size.c:80 src/strip.c:79 src/unstrip.c:81
msgid "Output options:"
msgstr ""
@@ -3528,18 +3532,18 @@ msgstr ""
msgid "List symbols from FILEs (a.out by default)."
msgstr ""
-#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:121
+#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:124
#, c-format
msgid "%s: INTERNAL ERROR %d (%s-%s): %s"
msgstr ""
#: src/nm.c:380 src/nm.c:392 src/size.c:317 src/size.c:326 src/size.c:337
-#: src/strip.c:1816
+#: src/strip.c:1878
#, c-format
msgid "while closing '%s'"
msgstr ""
-#: src/nm.c:402 src/objdump.c:296 src/strip.c:359
+#: src/nm.c:402 src/objdump.c:296 src/strip.c:369
#, c-format
msgid "%s: File format not recognized"
msgstr ""
@@ -3580,7 +3584,7 @@ msgstr ""
#: src/readelf.c:1742 src/readelf.c:1952 src/readelf.c:2206 src/readelf.c:2272
#: src/readelf.c:2350 src/readelf.c:2848 src/readelf.c:2884 src/readelf.c:2946
#: src/readelf.c:6934 src/readelf.c:7832 src/readelf.c:7979 src/readelf.c:8047
-#: src/size.c:425 src/size.c:499 src/strip.c:483
+#: src/size.c:425 src/size.c:499 src/strip.c:493
#, c-format
msgid "cannot get section header string table index"
msgstr ""
@@ -5283,149 +5287,158 @@ msgstr ""
msgid "mprotect failed"
msgstr ""
-#: src/strip.c:74
+#: src/strip.c:75
msgid "Place stripped output into FILE"
msgstr ""
-#: src/strip.c:75
+#: src/strip.c:76
msgid "Extract the removed sections into FILE"
msgstr ""
-#: src/strip.c:76
+#: src/strip.c:77
msgid "Embed name FILE instead of -f argument"
msgstr ""
-#: src/strip.c:80
+#: src/strip.c:81
msgid "Remove all debugging symbols"
msgstr ""
-#: src/strip.c:84
+#: src/strip.c:85
+msgid "Remove section headers (not recommended)"
+msgstr ""
+
+#: src/strip.c:87
msgid "Copy modified/access timestamps to the output"
msgstr ""
-#: src/strip.c:86
+#: src/strip.c:89
msgid "Remove .comment section"
msgstr ""
-#: src/strip.c:89
+#: src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr ""
-#: src/strip.c:94
+#: src/strip.c:97
msgid "Discard symbols from object files."
msgstr ""
-#: src/strip.c:186
+#: src/strip.c:192
#, c-format
msgid "Only one input file allowed together with '-o' and '-f'"
msgstr ""
-#: src/strip.c:222
+#: src/strip.c:228
#, c-format
msgid "-f option specified twice"
msgstr ""
-#: src/strip.c:231
+#: src/strip.c:237
#, c-format
msgid "-F option specified twice"
msgstr ""
-#: src/strip.c:240 src/unstrip.c:125
+#: src/strip.c:246 src/unstrip.c:125
#, c-format
msgid "-o option specified twice"
msgstr ""
-#: src/strip.c:260
+#: src/strip.c:266
#, c-format
msgid "-R option supports only .comment section"
msgstr ""
-#: src/strip.c:298 src/strip.c:322
+#: src/strip.c:308 src/strip.c:332
#, c-format
msgid "cannot stat input file '%s'"
msgstr ""
-#: src/strip.c:312
+#: src/strip.c:322
#, c-format
msgid "while opening '%s'"
msgstr ""
-#: src/strip.c:350
+#: src/strip.c:360
#, c-format
msgid "%s: cannot use -o or -f when stripping archive"
msgstr ""
-#: src/strip.c:448
+#: src/strip.c:458
#, c-format
msgid "cannot open EBL backend"
msgstr ""
-#: src/strip.c:498 src/strip.c:522
+#: src/strip.c:508 src/strip.c:532
#, c-format
msgid "cannot create new file '%s': %s"
msgstr ""
-#: src/strip.c:582
+#: src/strip.c:592
#, c-format
msgid "illformed file '%s'"
msgstr ""
-#: src/strip.c:869 src/strip.c:956
+#: src/strip.c:880 src/strip.c:967
#, c-format
msgid "while generating output file: %s"
msgstr ""
-#: src/strip.c:929 src/strip.c:1668
+#: src/strip.c:940 src/strip.c:1683
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr ""
-#: src/strip.c:943
+#: src/strip.c:954
#, c-format
msgid "while preparing output for '%s'"
msgstr ""
-#: src/strip.c:994 src/strip.c:1050
+#: src/strip.c:1005 src/strip.c:1061
#, c-format
msgid "while create section header section: %s"
msgstr ""
-#: src/strip.c:1000
+#: src/strip.c:1011
#, c-format
msgid "cannot allocate section data: %s"
msgstr ""
-#: src/strip.c:1059
+#: src/strip.c:1070
#, c-format
msgid "while create section header string table: %s"
msgstr ""
-#: src/strip.c:1593 src/strip.c:1690
+#: src/strip.c:1595 src/strip.c:1705
#, c-format
msgid "while writing '%s': %s"
msgstr ""
-#: src/strip.c:1604
+#: src/strip.c:1606
#, c-format
msgid "while creating '%s'"
msgstr ""
-#: src/strip.c:1616
+#: src/strip.c:1628
#, c-format
msgid "while computing checksum for debug information"
msgstr ""
-#: src/strip.c:1676
+#: src/strip.c:1691
#, c-format
msgid "%s: error while reading the file: %s"
msgstr ""
-#: src/strip.c:1722 src/strip.c:1729
+#: src/strip.c:1730 src/strip.c:1750
+#, c-format
+msgid "while writing '%s'"
+msgstr ""
+
+#: src/strip.c:1784 src/strip.c:1791
#, c-format
msgid "error while finishing '%s': %s"
msgstr ""
-#: src/strip.c:1752 src/strip.c:1809
+#: src/strip.c:1814 src/strip.c:1871
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr ""
diff --git a/elfutils/po/en@boldquot.gmo b/elfutils/po/en@boldquot.gmo
index 414f55b7..b5e2f852 100644
--- a/elfutils/po/en@boldquot.gmo
+++ b/elfutils/po/en@boldquot.gmo
Binary files differ
diff --git a/elfutils/po/en@boldquot.po b/elfutils/po/en@boldquot.po
index c286951b..6495da4d 100644
--- a/elfutils/po/en@boldquot.po
+++ b/elfutils/po/en@boldquot.po
@@ -1,7 +1,7 @@
# English translations for elfutils package.
-# Copyright (C) 2010 Red Hat, Inc.
+# Copyright (C) 2011 Red Hat, Inc.
# This file is distributed under the same license as the elfutils package.
-# Automatically generated, 2010.
+# Automatically generated, 2011.
#
# All this catalog "translates" are quotation characters.
# The msgids must be ASCII and therefore cannot contain real quotation
@@ -30,10 +30,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: elfutils 0.150\n"
+"Project-Id-Version: elfutils 0.151\n"
"Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2010-11-22 22:08-0500\n"
-"PO-Revision-Date: 2010-11-22 22:08-0500\n"
+"POT-Creation-Date: 2011-01-12 17:51-0500\n"
+"PO-Revision-Date: 2011-01-12 17:51-0500\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: en\n"
@@ -382,6 +382,10 @@ msgstr "cannot handle DWARF type description"
msgid "ELF file does not match build ID"
msgstr "ELF file does not match build ID"
+#: libdwfl/libdwflP.h:98
+msgid "corrupt .gnu.prelink_undo section data"
+msgstr "corrupt .gnu.prelink_undo section data"
+
#: libebl/eblbackendname.c:63
msgid "No backend"
msgstr "No backend"
@@ -612,7 +616,7 @@ msgstr "[ADDR...]"
#: src/addr2line.c:189 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239
#: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181
#: src/ranlib.c:136 src/readelf.c:456 src/size.c:219 src/strings.c:227
-#: src/strip.c:204 src/unstrip.c:234
+#: src/strip.c:210 src/unstrip.c:234
#, c-format
msgid ""
"Copyright (C) %s Red Hat, Inc.\n"
@@ -626,7 +630,7 @@ msgstr ""
#: src/addr2line.c:194 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244
#: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186
#: src/ranlib.c:141 src/readelf.c:461 src/size.c:224 src/strings.c:232
-#: src/strip.c:209 src/unstrip.c:239
+#: src/strip.c:215 src/unstrip.c:239
#, c-format
msgid "Written by %s.\n"
msgstr "Written by %s.\n"
@@ -1034,7 +1038,7 @@ msgstr "Invalid value ‘%s’ for --gaps parameter."
#: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767
#: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301
-#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913
+#: src/strings.c:183 src/strip.c:443 src/strip.c:478 src/unstrip.c:1913
#: src/unstrip.c:1942
#, c-format
msgid "cannot open '%s'"
@@ -2844,7 +2848,7 @@ msgid "Locate source of text relocations in FILEs (a.out by default)."
msgstr "Locate source of text relocations in FILEs (a.out by default)."
#: src/findtextrel.c:84 src/nm.c:111 src/objdump.c:80 src/size.c:92
-#: src/strings.c:92 src/strip.c:97
+#: src/strings.c:92 src/strip.c:100
msgid "[FILE...]"
msgstr "[FILE...]"
@@ -3339,7 +3343,7 @@ msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
msgstr ""
"Warning: size of ‘%s’ changed from %<PRIu64> in %s to %<PRIu64> in %s"
-#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:543
+#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:553
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "cannot determine number of sections: %s"
@@ -3643,7 +3647,7 @@ msgstr ""
msgid "default visibility set as local and global"
msgstr "default visibility set as local and global"
-#: src/nm.c:74 src/strip.c:73
+#: src/nm.c:74 src/strip.c:74
msgid "Output selection:"
msgstr "Output selection:"
@@ -3707,7 +3711,7 @@ msgstr "Mark weak symbols"
msgid "Print size of defined symbols"
msgstr "Print size of defined symbols"
-#: src/nm.c:98 src/size.c:80 src/strip.c:78 src/unstrip.c:81
+#: src/nm.c:98 src/size.c:80 src/strip.c:79 src/unstrip.c:81
msgid "Output options:"
msgstr "Output options:"
@@ -3727,18 +3731,18 @@ msgstr "Reverse the sense of the sort"
msgid "List symbols from FILEs (a.out by default)."
msgstr "List symbols from FILEs (a.out by default)."
-#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:121
+#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:124
#, c-format
msgid "%s: INTERNAL ERROR %d (%s-%s): %s"
msgstr "%s: INTERNAL ERROR %d (%s-%s): %s"
#: src/nm.c:380 src/nm.c:392 src/size.c:317 src/size.c:326 src/size.c:337
-#: src/strip.c:1816
+#: src/strip.c:1878
#, c-format
msgid "while closing '%s'"
msgstr "while closing ‘%s’"
-#: src/nm.c:402 src/objdump.c:296 src/strip.c:359
+#: src/nm.c:402 src/objdump.c:296 src/strip.c:369
#, c-format
msgid "%s: File format not recognized"
msgstr "%s: File format not recognized"
@@ -3781,7 +3785,7 @@ msgstr "cannot create search tree"
#: src/readelf.c:1742 src/readelf.c:1952 src/readelf.c:2206 src/readelf.c:2272
#: src/readelf.c:2350 src/readelf.c:2848 src/readelf.c:2884 src/readelf.c:2946
#: src/readelf.c:6934 src/readelf.c:7832 src/readelf.c:7979 src/readelf.c:8047
-#: src/size.c:425 src/size.c:499 src/strip.c:483
+#: src/size.c:425 src/size.c:499 src/strip.c:493
#, c-format
msgid "cannot get section header string table index"
msgstr "cannot get section header string table index"
@@ -5693,149 +5697,158 @@ msgstr "re-mmap failed"
msgid "mprotect failed"
msgstr "mprotect failed"
-#: src/strip.c:74
+#: src/strip.c:75
msgid "Place stripped output into FILE"
msgstr "Place stripped output into FILE"
-#: src/strip.c:75
+#: src/strip.c:76
msgid "Extract the removed sections into FILE"
msgstr "Extract the removed sections into FILE"
-#: src/strip.c:76
+#: src/strip.c:77
msgid "Embed name FILE instead of -f argument"
msgstr "Embed name FILE instead of -f argument"
-#: src/strip.c:80
+#: src/strip.c:81
msgid "Remove all debugging symbols"
msgstr "Remove all debugging symbols"
-#: src/strip.c:84
+#: src/strip.c:85
+msgid "Remove section headers (not recommended)"
+msgstr "Remove section headers (not recommended)"
+
+#: src/strip.c:87
msgid "Copy modified/access timestamps to the output"
msgstr "Copy modified/access timestamps to the output"
-#: src/strip.c:86
+#: src/strip.c:89
msgid "Remove .comment section"
msgstr "Remove .comment section"
-#: src/strip.c:89
+#: src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr "Relax a few rules to handle slightly broken ELF files"
-#: src/strip.c:94
+#: src/strip.c:97
msgid "Discard symbols from object files."
msgstr "Discard symbols from object files."
-#: src/strip.c:186
+#: src/strip.c:192
#, c-format
msgid "Only one input file allowed together with '-o' and '-f'"
msgstr "Only one input file allowed together with ‘-o’ and ‘-f’"
-#: src/strip.c:222
+#: src/strip.c:228
#, c-format
msgid "-f option specified twice"
msgstr "-f option specified twice"
-#: src/strip.c:231
+#: src/strip.c:237
#, c-format
msgid "-F option specified twice"
msgstr "-F option specified twice"
-#: src/strip.c:240 src/unstrip.c:125
+#: src/strip.c:246 src/unstrip.c:125
#, c-format
msgid "-o option specified twice"
msgstr "-o option specified twice"
-#: src/strip.c:260
+#: src/strip.c:266
#, c-format
msgid "-R option supports only .comment section"
msgstr "-R option supports only .comment section"
-#: src/strip.c:298 src/strip.c:322
+#: src/strip.c:308 src/strip.c:332
#, c-format
msgid "cannot stat input file '%s'"
msgstr "cannot stat input file ‘%s’"
-#: src/strip.c:312
+#: src/strip.c:322
#, c-format
msgid "while opening '%s'"
msgstr "while opening ‘%s’"
-#: src/strip.c:350
+#: src/strip.c:360
#, c-format
msgid "%s: cannot use -o or -f when stripping archive"
msgstr "%s: cannot use -o or -f when stripping archive"
-#: src/strip.c:448
+#: src/strip.c:458
#, c-format
msgid "cannot open EBL backend"
msgstr "cannot open EBL backend"
-#: src/strip.c:498 src/strip.c:522
+#: src/strip.c:508 src/strip.c:532
#, c-format
msgid "cannot create new file '%s': %s"
msgstr "cannot create new file '%s': %s"
-#: src/strip.c:582
+#: src/strip.c:592
#, c-format
msgid "illformed file '%s'"
msgstr "illformed file ‘%s’"
-#: src/strip.c:869 src/strip.c:956
+#: src/strip.c:880 src/strip.c:967
#, c-format
msgid "while generating output file: %s"
msgstr "while generating output file: %s"
-#: src/strip.c:929 src/strip.c:1668
+#: src/strip.c:940 src/strip.c:1683
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: error while creating ELF header: %s"
-#: src/strip.c:943
+#: src/strip.c:954
#, c-format
msgid "while preparing output for '%s'"
msgstr "while preparing output for ‘%s’"
-#: src/strip.c:994 src/strip.c:1050
+#: src/strip.c:1005 src/strip.c:1061
#, c-format
msgid "while create section header section: %s"
msgstr "while create section header section: %s"
-#: src/strip.c:1000
+#: src/strip.c:1011
#, c-format
msgid "cannot allocate section data: %s"
msgstr "cannot allocate section data: %s"
-#: src/strip.c:1059
+#: src/strip.c:1070
#, c-format
msgid "while create section header string table: %s"
msgstr "while create section header string table: %s"
-#: src/strip.c:1593 src/strip.c:1690
+#: src/strip.c:1595 src/strip.c:1705
#, c-format
msgid "while writing '%s': %s"
msgstr "while writing '%s': %s"
-#: src/strip.c:1604
+#: src/strip.c:1606
#, c-format
msgid "while creating '%s'"
msgstr "while creating ‘%s’"
-#: src/strip.c:1616
+#: src/strip.c:1628
#, c-format
msgid "while computing checksum for debug information"
msgstr "while computing checksum for debug information"
-#: src/strip.c:1676
+#: src/strip.c:1691
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: error while reading the file: %s"
-#: src/strip.c:1722 src/strip.c:1729
+#: src/strip.c:1730 src/strip.c:1750
+#, c-format
+msgid "while writing '%s'"
+msgstr "while writing ‘%s’"
+
+#: src/strip.c:1784 src/strip.c:1791
#, c-format
msgid "error while finishing '%s': %s"
msgstr "error while finishing '%s': %s"
-#: src/strip.c:1752 src/strip.c:1809
+#: src/strip.c:1814 src/strip.c:1871
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "cannot set access and modification date of ‘%s’"
diff --git a/elfutils/po/en@quot.gmo b/elfutils/po/en@quot.gmo
index 77ced815..1358583a 100644
--- a/elfutils/po/en@quot.gmo
+++ b/elfutils/po/en@quot.gmo
Binary files differ
diff --git a/elfutils/po/en@quot.po b/elfutils/po/en@quot.po
index aa979031..4a60b51f 100644
--- a/elfutils/po/en@quot.po
+++ b/elfutils/po/en@quot.po
@@ -1,7 +1,7 @@
# English translations for elfutils package.
-# Copyright (C) 2010 Red Hat, Inc.
+# Copyright (C) 2011 Red Hat, Inc.
# This file is distributed under the same license as the elfutils package.
-# Automatically generated, 2010.
+# Automatically generated, 2011.
#
# All this catalog "translates" are quotation characters.
# The msgids must be ASCII and therefore cannot contain real quotation
@@ -27,10 +27,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: elfutils 0.150\n"
+"Project-Id-Version: elfutils 0.151\n"
"Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2010-11-22 22:08-0500\n"
-"PO-Revision-Date: 2010-11-22 22:08-0500\n"
+"POT-Creation-Date: 2011-01-12 17:51-0500\n"
+"PO-Revision-Date: 2011-01-12 17:51-0500\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: en\n"
@@ -379,6 +379,10 @@ msgstr "cannot handle DWARF type description"
msgid "ELF file does not match build ID"
msgstr "ELF file does not match build ID"
+#: libdwfl/libdwflP.h:98
+msgid "corrupt .gnu.prelink_undo section data"
+msgstr "corrupt .gnu.prelink_undo section data"
+
#: libebl/eblbackendname.c:63
msgid "No backend"
msgstr "No backend"
@@ -609,7 +613,7 @@ msgstr "[ADDR...]"
#: src/addr2line.c:189 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239
#: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181
#: src/ranlib.c:136 src/readelf.c:456 src/size.c:219 src/strings.c:227
-#: src/strip.c:204 src/unstrip.c:234
+#: src/strip.c:210 src/unstrip.c:234
#, c-format
msgid ""
"Copyright (C) %s Red Hat, Inc.\n"
@@ -623,7 +627,7 @@ msgstr ""
#: src/addr2line.c:194 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244
#: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186
#: src/ranlib.c:141 src/readelf.c:461 src/size.c:224 src/strings.c:232
-#: src/strip.c:209 src/unstrip.c:239
+#: src/strip.c:215 src/unstrip.c:239
#, c-format
msgid "Written by %s.\n"
msgstr "Written by %s.\n"
@@ -1029,7 +1033,7 @@ msgstr "Invalid value ‘%s’ for --gaps parameter."
#: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767
#: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301
-#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913
+#: src/strings.c:183 src/strip.c:443 src/strip.c:478 src/unstrip.c:1913
#: src/unstrip.c:1942
#, c-format
msgid "cannot open '%s'"
@@ -2830,7 +2834,7 @@ msgid "Locate source of text relocations in FILEs (a.out by default)."
msgstr "Locate source of text relocations in FILEs (a.out by default)."
#: src/findtextrel.c:84 src/nm.c:111 src/objdump.c:80 src/size.c:92
-#: src/strings.c:92 src/strip.c:97
+#: src/strings.c:92 src/strip.c:100
msgid "[FILE...]"
msgstr "[FILE...]"
@@ -3323,7 +3327,7 @@ msgstr "Warning: type of ‘%s’ changed from %s in %s to %s in %s"
msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
msgstr "Warning: size of ‘%s’ changed from %<PRIu64> in %s to %<PRIu64> in %s"
-#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:543
+#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:553
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "cannot determine number of sections: %s"
@@ -3624,7 +3628,7 @@ msgstr "symbol ‘%s’ is declared both local and global for version ‘%s’"
msgid "default visibility set as local and global"
msgstr "default visibility set as local and global"
-#: src/nm.c:74 src/strip.c:73
+#: src/nm.c:74 src/strip.c:74
msgid "Output selection:"
msgstr "Output selection:"
@@ -3688,7 +3692,7 @@ msgstr "Mark weak symbols"
msgid "Print size of defined symbols"
msgstr "Print size of defined symbols"
-#: src/nm.c:98 src/size.c:80 src/strip.c:78 src/unstrip.c:81
+#: src/nm.c:98 src/size.c:80 src/strip.c:79 src/unstrip.c:81
msgid "Output options:"
msgstr "Output options:"
@@ -3708,18 +3712,18 @@ msgstr "Reverse the sense of the sort"
msgid "List symbols from FILEs (a.out by default)."
msgstr "List symbols from FILEs (a.out by default)."
-#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:121
+#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:124
#, c-format
msgid "%s: INTERNAL ERROR %d (%s-%s): %s"
msgstr "%s: INTERNAL ERROR %d (%s-%s): %s"
#: src/nm.c:380 src/nm.c:392 src/size.c:317 src/size.c:326 src/size.c:337
-#: src/strip.c:1816
+#: src/strip.c:1878
#, c-format
msgid "while closing '%s'"
msgstr "while closing ‘%s’"
-#: src/nm.c:402 src/objdump.c:296 src/strip.c:359
+#: src/nm.c:402 src/objdump.c:296 src/strip.c:369
#, c-format
msgid "%s: File format not recognized"
msgstr "%s: File format not recognized"
@@ -3762,7 +3766,7 @@ msgstr "cannot create search tree"
#: src/readelf.c:1742 src/readelf.c:1952 src/readelf.c:2206 src/readelf.c:2272
#: src/readelf.c:2350 src/readelf.c:2848 src/readelf.c:2884 src/readelf.c:2946
#: src/readelf.c:6934 src/readelf.c:7832 src/readelf.c:7979 src/readelf.c:8047
-#: src/size.c:425 src/size.c:499 src/strip.c:483
+#: src/size.c:425 src/size.c:499 src/strip.c:493
#, c-format
msgid "cannot get section header string table index"
msgstr "cannot get section header string table index"
@@ -5657,149 +5661,158 @@ msgstr "re-mmap failed"
msgid "mprotect failed"
msgstr "mprotect failed"
-#: src/strip.c:74
+#: src/strip.c:75
msgid "Place stripped output into FILE"
msgstr "Place stripped output into FILE"
-#: src/strip.c:75
+#: src/strip.c:76
msgid "Extract the removed sections into FILE"
msgstr "Extract the removed sections into FILE"
-#: src/strip.c:76
+#: src/strip.c:77
msgid "Embed name FILE instead of -f argument"
msgstr "Embed name FILE instead of -f argument"
-#: src/strip.c:80
+#: src/strip.c:81
msgid "Remove all debugging symbols"
msgstr "Remove all debugging symbols"
-#: src/strip.c:84
+#: src/strip.c:85
+msgid "Remove section headers (not recommended)"
+msgstr "Remove section headers (not recommended)"
+
+#: src/strip.c:87
msgid "Copy modified/access timestamps to the output"
msgstr "Copy modified/access timestamps to the output"
-#: src/strip.c:86
+#: src/strip.c:89
msgid "Remove .comment section"
msgstr "Remove .comment section"
-#: src/strip.c:89
+#: src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr "Relax a few rules to handle slightly broken ELF files"
-#: src/strip.c:94
+#: src/strip.c:97
msgid "Discard symbols from object files."
msgstr "Discard symbols from object files."
-#: src/strip.c:186
+#: src/strip.c:192
#, c-format
msgid "Only one input file allowed together with '-o' and '-f'"
msgstr "Only one input file allowed together with ‘-o’ and ‘-f’"
-#: src/strip.c:222
+#: src/strip.c:228
#, c-format
msgid "-f option specified twice"
msgstr "-f option specified twice"
-#: src/strip.c:231
+#: src/strip.c:237
#, c-format
msgid "-F option specified twice"
msgstr "-F option specified twice"
-#: src/strip.c:240 src/unstrip.c:125
+#: src/strip.c:246 src/unstrip.c:125
#, c-format
msgid "-o option specified twice"
msgstr "-o option specified twice"
-#: src/strip.c:260
+#: src/strip.c:266
#, c-format
msgid "-R option supports only .comment section"
msgstr "-R option supports only .comment section"
-#: src/strip.c:298 src/strip.c:322
+#: src/strip.c:308 src/strip.c:332
#, c-format
msgid "cannot stat input file '%s'"
msgstr "cannot stat input file ‘%s’"
-#: src/strip.c:312
+#: src/strip.c:322
#, c-format
msgid "while opening '%s'"
msgstr "while opening ‘%s’"
-#: src/strip.c:350
+#: src/strip.c:360
#, c-format
msgid "%s: cannot use -o or -f when stripping archive"
msgstr "%s: cannot use -o or -f when stripping archive"
-#: src/strip.c:448
+#: src/strip.c:458
#, c-format
msgid "cannot open EBL backend"
msgstr "cannot open EBL backend"
-#: src/strip.c:498 src/strip.c:522
+#: src/strip.c:508 src/strip.c:532
#, c-format
msgid "cannot create new file '%s': %s"
msgstr "cannot create new file '%s': %s"
-#: src/strip.c:582
+#: src/strip.c:592
#, c-format
msgid "illformed file '%s'"
msgstr "illformed file ‘%s’"
-#: src/strip.c:869 src/strip.c:956
+#: src/strip.c:880 src/strip.c:967
#, c-format
msgid "while generating output file: %s"
msgstr "while generating output file: %s"
-#: src/strip.c:929 src/strip.c:1668
+#: src/strip.c:940 src/strip.c:1683
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: error while creating ELF header: %s"
-#: src/strip.c:943
+#: src/strip.c:954
#, c-format
msgid "while preparing output for '%s'"
msgstr "while preparing output for ‘%s’"
-#: src/strip.c:994 src/strip.c:1050
+#: src/strip.c:1005 src/strip.c:1061
#, c-format
msgid "while create section header section: %s"
msgstr "while create section header section: %s"
-#: src/strip.c:1000
+#: src/strip.c:1011
#, c-format
msgid "cannot allocate section data: %s"
msgstr "cannot allocate section data: %s"
-#: src/strip.c:1059
+#: src/strip.c:1070
#, c-format
msgid "while create section header string table: %s"
msgstr "while create section header string table: %s"
-#: src/strip.c:1593 src/strip.c:1690
+#: src/strip.c:1595 src/strip.c:1705
#, c-format
msgid "while writing '%s': %s"
msgstr "while writing '%s': %s"
-#: src/strip.c:1604
+#: src/strip.c:1606
#, c-format
msgid "while creating '%s'"
msgstr "while creating ‘%s’"
-#: src/strip.c:1616
+#: src/strip.c:1628
#, c-format
msgid "while computing checksum for debug information"
msgstr "while computing checksum for debug information"
-#: src/strip.c:1676
+#: src/strip.c:1691
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: error while reading the file: %s"
-#: src/strip.c:1722 src/strip.c:1729
+#: src/strip.c:1730 src/strip.c:1750
+#, c-format
+msgid "while writing '%s'"
+msgstr "while writing ‘%s’"
+
+#: src/strip.c:1784 src/strip.c:1791
#, c-format
msgid "error while finishing '%s': %s"
msgstr "error while finishing '%s': %s"
-#: src/strip.c:1752 src/strip.c:1809
+#: src/strip.c:1814 src/strip.c:1871
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "cannot set access and modification date of ‘%s’"
diff --git a/elfutils/po/es.gmo b/elfutils/po/es.gmo
index 05b526b0..5ecea6a7 100644
--- a/elfutils/po/es.gmo
+++ b/elfutils/po/es.gmo
Binary files differ
diff --git a/elfutils/po/es.po b/elfutils/po/es.po
index 9f0f9b72..bdbb337c 100644
--- a/elfutils/po/es.po
+++ b/elfutils/po/es.po
@@ -10,9 +10,10 @@ msgid ""
msgstr ""
"Project-Id-Version: elfutils.master.es\n"
"Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2010-11-22 22:08-0500\n"
-"PO-Revision-Date: 2010-09-15 09:52-0300\n"
-"Last-Translator: Héctor Daniel Cabrera <logan@fedoraproject.org>\n"
+"POT-Creation-Date: 2011-01-12 17:51-0500\n"
+"PO-Revision-Date: 2011-01-10 15:17-0300\n"
+"Last-Translator: Claudio Rodrigo Pereyra Diaz <claudiorodrigo@pereyradiaz."
+"com.ar>\n"
"Language-Team: Fedora Spanish <trans-es@lists.fedoraproject.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
@@ -363,6 +364,11 @@ msgstr "no es posible manipular tipo de descripción DWARF"
msgid "ELF file does not match build ID"
msgstr "El archivo ELF no coincide con el ID construido"
+#: libdwfl/libdwflP.h:98
+#, fuzzy
+msgid "corrupt .gnu.prelink_undo section data"
+msgstr "no se puede leer sección '.gnu.prelink_undo': %s"
+
#: libebl/eblbackendname.c:63
msgid "No backend"
msgstr "No hay segundo plano (Backend)"
@@ -596,7 +602,7 @@ msgstr "[DIREC...]"
#: src/addr2line.c:189 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239
#: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181
#: src/ranlib.c:136 src/readelf.c:456 src/size.c:219 src/strings.c:227
-#: src/strip.c:204 src/unstrip.c:234
+#: src/strip.c:210 src/unstrip.c:234
#, c-format
msgid ""
"Copyright (C) %s Red Hat, Inc.\n"
@@ -612,7 +618,7 @@ msgstr ""
#: src/addr2line.c:194 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244
#: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186
#: src/ranlib.c:141 src/readelf.c:461 src/size.c:224 src/strings.c:232
-#: src/strip.c:209 src/unstrip.c:239
+#: src/strip.c:215 src/unstrip.c:239
#, c-format
msgid "Written by %s.\n"
msgstr "Escrito por %s.\n"
@@ -1019,7 +1025,7 @@ msgstr "Valor inválido '%s' para parámetro --gaps"
#: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767
#: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301
-#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913
+#: src/strings.c:183 src/strip.c:443 src/strip.c:478 src/unstrip.c:1913
#: src/unstrip.c:1942
#, c-format
msgid "cannot open '%s'"
@@ -2954,7 +2960,7 @@ msgstr ""
"Localizar origen de reubicaciones de texto en FICHEROS (a.out por defecto)."
#: src/findtextrel.c:84 src/nm.c:111 src/objdump.c:80 src/size.c:92
-#: src/strings.c:92 src/strip.c:97
+#: src/strings.c:92 src/strip.c:100
msgid "[FILE...]"
msgstr "[FICHERO...]"
@@ -3465,7 +3471,7 @@ msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
msgstr ""
"Advertencia: el tamaño de `%s' cambió de %<PRIu64> en %s a %<PRIu64> en %s"
-#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:543
+#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:553
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "no se pudieron determinar el número de secciones: %s"
@@ -3792,7 +3798,7 @@ msgstr ""
msgid "default visibility set as local and global"
msgstr "la visibilidad establecida por defecto establecida como local y global"
-#: src/nm.c:74 src/strip.c:73
+#: src/nm.c:74 src/strip.c:74
msgid "Output selection:"
msgstr "Selección de salida:"
@@ -3856,7 +3862,7 @@ msgstr "Marcar símbolos débiles"
msgid "Print size of defined symbols"
msgstr "Tamaño de impresión de símbolos definidos"
-#: src/nm.c:98 src/size.c:80 src/strip.c:78 src/unstrip.c:81
+#: src/nm.c:98 src/size.c:80 src/strip.c:79 src/unstrip.c:81
msgid "Output options:"
msgstr "Opciones de salida:"
@@ -3876,18 +3882,18 @@ msgstr "Invertir el orden"
msgid "List symbols from FILEs (a.out by default)."
msgstr "Listar símbolos de FICHEROS (a.out por defecto)."
-#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:121
+#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:124
#, c-format
msgid "%s: INTERNAL ERROR %d (%s-%s): %s"
msgstr "%s: ERROR INTERNO %d (%s-%s): %s"
#: src/nm.c:380 src/nm.c:392 src/size.c:317 src/size.c:326 src/size.c:337
-#: src/strip.c:1816
+#: src/strip.c:1878
#, c-format
msgid "while closing '%s'"
msgstr "error al cerrar '%s'"
-#: src/nm.c:402 src/objdump.c:296 src/strip.c:359
+#: src/nm.c:402 src/objdump.c:296 src/strip.c:369
#, c-format
msgid "%s: File format not recognized"
msgstr "%s: No se reconoce el formato del fichero"
@@ -3930,7 +3936,7 @@ msgstr "No se puede crear el árbol de búsqueda"
#: src/readelf.c:1742 src/readelf.c:1952 src/readelf.c:2206 src/readelf.c:2272
#: src/readelf.c:2350 src/readelf.c:2848 src/readelf.c:2884 src/readelf.c:2946
#: src/readelf.c:6934 src/readelf.c:7832 src/readelf.c:7979 src/readelf.c:8047
-#: src/size.c:425 src/size.c:499 src/strip.c:483
+#: src/size.c:425 src/size.c:499 src/strip.c:493
#, c-format
msgid "cannot get section header string table index"
msgstr "no se puede obtener índice de cadena de encabezamiento de sección"
@@ -5858,149 +5864,158 @@ msgstr "re-mmap falló"
msgid "mprotect failed"
msgstr "mprotect falló"
-#: src/strip.c:74
+#: src/strip.c:75
msgid "Place stripped output into FILE"
msgstr "Colocar la salida obtenida en FICHERO"
-#: src/strip.c:75
+#: src/strip.c:76
msgid "Extract the removed sections into FILE"
msgstr "Extraer secciones eliminadas en FICHERO"
-#: src/strip.c:76
+#: src/strip.c:77
msgid "Embed name FILE instead of -f argument"
msgstr "Incorporar nombre FILE en lugar de argumento -f"
-#: src/strip.c:80
+#: src/strip.c:81
msgid "Remove all debugging symbols"
msgstr "Elimina todos los símbolos de depuración"
-#: src/strip.c:84
+#: src/strip.c:85
+msgid "Remove section headers (not recommended)"
+msgstr "Quitar sección de cabeceras (no recomendado)"
+
+#: src/strip.c:87
msgid "Copy modified/access timestamps to the output"
msgstr "Copiar marcas de tiempo modificadas/acceso a la salida"
-#: src/strip.c:86
+#: src/strip.c:89
msgid "Remove .comment section"
msgstr "Quitar sección de comentario"
-#: src/strip.c:89
+#: src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr "Relaja algunas reglas para manejar ficheros ELF rotos"
-#: src/strip.c:94
+#: src/strip.c:97
msgid "Discard symbols from object files."
msgstr "Descarta símbolos de archivos objeto."
-#: src/strip.c:186
+#: src/strip.c:192
#, c-format
msgid "Only one input file allowed together with '-o' and '-f'"
msgstr "Sólo se permite ingresar un archivo junto con '-o' y '-f'"
-#: src/strip.c:222
+#: src/strip.c:228
#, c-format
msgid "-f option specified twice"
msgstr "opción -f especificada dos veces"
-#: src/strip.c:231
+#: src/strip.c:237
#, c-format
msgid "-F option specified twice"
msgstr "opción -F especificada dos veces"
-#: src/strip.c:240 src/unstrip.c:125
+#: src/strip.c:246 src/unstrip.c:125
#, c-format
msgid "-o option specified twice"
msgstr "opción -o especificada dos veces"
-#: src/strip.c:260
+#: src/strip.c:266
#, c-format
msgid "-R option supports only .comment section"
msgstr "la opción -R soporta únicamente. sección de comentario"
-#: src/strip.c:298 src/strip.c:322
+#: src/strip.c:308 src/strip.c:332
#, c-format
msgid "cannot stat input file '%s'"
msgstr "no sepuede stat fichero de entrada '%s'"
-#: src/strip.c:312
+#: src/strip.c:322
#, c-format
msgid "while opening '%s'"
msgstr "mientras se abría '%s'"
-#: src/strip.c:350
+#: src/strip.c:360
#, c-format
msgid "%s: cannot use -o or -f when stripping archive"
msgstr "%s: no puede utilizarse -o o -f cuando se extrae un archivo"
-#: src/strip.c:448
+#: src/strip.c:458
#, c-format
msgid "cannot open EBL backend"
msgstr "No se puede abrir el segundo plano EBL"
-#: src/strip.c:498 src/strip.c:522
+#: src/strip.c:508 src/strip.c:532
#, c-format
msgid "cannot create new file '%s': %s"
msgstr "no se puede crear fichero nuevo '%s': %s"
-#: src/strip.c:582
+#: src/strip.c:592
#, c-format
msgid "illformed file '%s'"
msgstr "Fichero illformed '%s'"
-#: src/strip.c:869 src/strip.c:956
+#: src/strip.c:880 src/strip.c:967
#, c-format
msgid "while generating output file: %s"
msgstr "al generar fichero de salida: %s"
-#: src/strip.c:929 src/strip.c:1668
+#: src/strip.c:940 src/strip.c:1683
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: error al crear encabezamiento ELF: %s"
-#: src/strip.c:943
+#: src/strip.c:954
#, c-format
msgid "while preparing output for '%s'"
msgstr "al preparar salida para '%s'"
-#: src/strip.c:994 src/strip.c:1050
+#: src/strip.c:1005 src/strip.c:1061
#, c-format
msgid "while create section header section: %s"
msgstr "al crear sección de encabezamiento de sección: %s"
-#: src/strip.c:1000
+#: src/strip.c:1011
#, c-format
msgid "cannot allocate section data: %s"
msgstr "no se puede asignar espacio para los datos: %s"
-#: src/strip.c:1059
+#: src/strip.c:1070
#, c-format
msgid "while create section header string table: %s"
msgstr "al crear tabla de cadenas de encabezamiento de sección: %s"
-#: src/strip.c:1593 src/strip.c:1690
+#: src/strip.c:1595 src/strip.c:1705
#, c-format
msgid "while writing '%s': %s"
msgstr "al escribir '%s': %s"
-#: src/strip.c:1604
+#: src/strip.c:1606
#, c-format
msgid "while creating '%s'"
msgstr "al crear '%s'"
-#: src/strip.c:1616
+#: src/strip.c:1628
#, c-format
msgid "while computing checksum for debug information"
msgstr "al computar la suma de verificación para información de depuración"
-#: src/strip.c:1676
+#: src/strip.c:1691
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: error al leer el fichero: %s"
-#: src/strip.c:1722 src/strip.c:1729
+#: src/strip.c:1730 src/strip.c:1750
+#, c-format
+msgid "while writing '%s'"
+msgstr "al escribir '%s'"
+
+#: src/strip.c:1784 src/strip.c:1791
#, c-format
msgid "error while finishing '%s': %s"
msgstr "Error al terminar '%s': %s"
-#: src/strip.c:1752 src/strip.c:1809
+#: src/strip.c:1814 src/strip.c:1871
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "no es posible establecer acceso y fecha de modificación de '%s'"
diff --git a/elfutils/po/ja.gmo b/elfutils/po/ja.gmo
index 3afa9f6b..0060d381 100644
--- a/elfutils/po/ja.gmo
+++ b/elfutils/po/ja.gmo
Binary files differ
diff --git a/elfutils/po/ja.po b/elfutils/po/ja.po
index e709405d..006134de 100644
--- a/elfutils/po/ja.po
+++ b/elfutils/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ja\n"
"Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2010-11-22 22:08-0500\n"
+"POT-Creation-Date: 2011-01-12 17:51-0500\n"
"PO-Revision-Date: 2009-09-20 15:32+0900\n"
"Last-Translator: Hyu_gabaru Ryu_ichi <hyu_gabaru@yahoo.co.jp>\n"
"Language-Team: Japanese <jp@li.org>\n"
@@ -365,6 +365,11 @@ msgstr "Elf 記述子を生成できません: %s"
msgid "ELF file does not match build ID"
msgstr ""
+#: libdwfl/libdwflP.h:98
+#, fuzzy
+msgid "corrupt .gnu.prelink_undo section data"
+msgstr "ラインデータセクションデータを得られません: %s"
+
#: libebl/eblbackendname.c:63
msgid "No backend"
msgstr "バックエンドがありません"
@@ -596,7 +601,7 @@ msgstr ""
#: src/addr2line.c:189 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239
#: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181
#: src/ranlib.c:136 src/readelf.c:456 src/size.c:219 src/strings.c:227
-#: src/strip.c:204 src/unstrip.c:234
+#: src/strip.c:210 src/unstrip.c:234
#, c-format
msgid ""
"Copyright (C) %s Red Hat, Inc.\n"
@@ -610,7 +615,7 @@ msgstr ""
#: src/addr2line.c:194 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244
#: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186
#: src/ranlib.c:141 src/readelf.c:461 src/size.c:224 src/strings.c:232
-#: src/strip.c:209 src/unstrip.c:239
+#: src/strip.c:215 src/unstrip.c:239
#, c-format
msgid "Written by %s.\n"
msgstr "%s によって書かれました。\n"
@@ -1014,7 +1019,7 @@ msgstr ""
#: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767
#: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301
-#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913
+#: src/strings.c:183 src/strip.c:443 src/strip.c:478 src/unstrip.c:1913
#: src/unstrip.c:1942
#, c-format
msgid "cannot open '%s'"
@@ -2751,7 +2756,7 @@ msgid "Locate source of text relocations in FILEs (a.out by default)."
msgstr ""
#: src/findtextrel.c:84 src/nm.c:111 src/objdump.c:80 src/size.c:92
-#: src/strings.c:92 src/strip.c:97
+#: src/strings.c:92 src/strip.c:100
msgid "[FILE...]"
msgstr "[ふぁいる...]"
@@ -3244,7 +3249,7 @@ msgstr ""
"警告: `%1$s の大きさが %3$s の %2$<PRIu64> から %5$s の %4$<PRIu64> に変更さ"
"れました"
-#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:543
+#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:553
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "セクション数を決定できません: %s"
@@ -3549,7 +3554,7 @@ msgstr "バージョン '%2$s' 用のローカルとグローバルで宣言さ
msgid "default visibility set as local and global"
msgstr "ローカルとグローバルに設定されたデフォルトの可視性"
-#: src/nm.c:74 src/strip.c:73
+#: src/nm.c:74 src/strip.c:74
msgid "Output selection:"
msgstr "出力選択:"
@@ -3613,7 +3618,7 @@ msgstr "弱いシンボルに印を点ける"
msgid "Print size of defined symbols"
msgstr "定義されたシンボルの印刷サイズ"
-#: src/nm.c:98 src/size.c:80 src/strip.c:78 src/unstrip.c:81
+#: src/nm.c:98 src/size.c:80 src/strip.c:79 src/unstrip.c:81
msgid "Output options:"
msgstr "出力オプション:"
@@ -3633,18 +3638,18 @@ msgstr "並べ替えの意味を逆にする"
msgid "List symbols from FILEs (a.out by default)."
msgstr "ふぁいる からシンボルを表示 (デフォルトではa.out)。"
-#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:121
+#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:124
#, c-format
msgid "%s: INTERNAL ERROR %d (%s-%s): %s"
msgstr "%s: 内部エラー %d (%s-%s): %s"
#: src/nm.c:380 src/nm.c:392 src/size.c:317 src/size.c:326 src/size.c:337
-#: src/strip.c:1816
+#: src/strip.c:1878
#, c-format
msgid "while closing '%s'"
msgstr "'%s' を閉じている最中"
-#: src/nm.c:402 src/objdump.c:296 src/strip.c:359
+#: src/nm.c:402 src/objdump.c:296 src/strip.c:369
#, c-format
msgid "%s: File format not recognized"
msgstr "%s: ファイル形式を認識できませんでした"
@@ -3687,7 +3692,7 @@ msgstr "検索ツリーを生成できません"
#: src/readelf.c:1742 src/readelf.c:1952 src/readelf.c:2206 src/readelf.c:2272
#: src/readelf.c:2350 src/readelf.c:2848 src/readelf.c:2884 src/readelf.c:2946
#: src/readelf.c:6934 src/readelf.c:7832 src/readelf.c:7979 src/readelf.c:8047
-#: src/size.c:425 src/size.c:499 src/strip.c:483
+#: src/size.c:425 src/size.c:499 src/strip.c:493
#, c-format
msgid "cannot get section header string table index"
msgstr "セクションヘッダー文字列テーブル索引が得られません"
@@ -5555,149 +5560,158 @@ msgstr ""
msgid "mprotect failed"
msgstr ""
-#: src/strip.c:74
+#: src/strip.c:75
msgid "Place stripped output into FILE"
msgstr "はぎ取った出力を ふぁいる に置く"
-#: src/strip.c:75
+#: src/strip.c:76
msgid "Extract the removed sections into FILE"
msgstr "抽出した取り除いたセクションを ふぁいる に置く"
-#: src/strip.c:76
+#: src/strip.c:77
msgid "Embed name FILE instead of -f argument"
msgstr "-f パラメーターの代わりに 名前 ふぁいる を有効にする"
-#: src/strip.c:80
+#: src/strip.c:81
msgid "Remove all debugging symbols"
msgstr "デバッグ用のシンボルを全て取り除く"
-#: src/strip.c:84
+#: src/strip.c:85
+msgid "Remove section headers (not recommended)"
+msgstr ""
+
+#: src/strip.c:87
msgid "Copy modified/access timestamps to the output"
msgstr "修正/アクセスタイムスタンプを出力へ複写する"
-#: src/strip.c:86
+#: src/strip.c:89
msgid "Remove .comment section"
msgstr ".comment セクションを取り除く"
-#: src/strip.c:89
+#: src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr "少し壊れた ELF ファイルを取り扱うためにルールを少し緩和する"
-#: src/strip.c:94
+#: src/strip.c:97
msgid "Discard symbols from object files."
msgstr "オブジェクトファイルからシンボルを破棄する"
-#: src/strip.c:186
+#: src/strip.c:192
#, c-format
msgid "Only one input file allowed together with '-o' and '-f'"
msgstr "'-o' と '-f' と一緒の場合は入力ファイルは 1 つしか認められません"
-#: src/strip.c:222
+#: src/strip.c:228
#, c-format
msgid "-f option specified twice"
msgstr "-f オプションが 2 回指定されています"
-#: src/strip.c:231
+#: src/strip.c:237
#, c-format
msgid "-F option specified twice"
msgstr "-F オプションが 2 回指定されています"
-#: src/strip.c:240 src/unstrip.c:125
+#: src/strip.c:246 src/unstrip.c:125
#, c-format
msgid "-o option specified twice"
msgstr "-o オプションが 2 回指定されています"
-#: src/strip.c:260
+#: src/strip.c:266
#, c-format
msgid "-R option supports only .comment section"
msgstr "-R オプションは .comment セクションのみをサポートします"
-#: src/strip.c:298 src/strip.c:322
+#: src/strip.c:308 src/strip.c:332
#, c-format
msgid "cannot stat input file '%s'"
msgstr "入力ファイル '%s' を stat できません"
-#: src/strip.c:312
+#: src/strip.c:322
#, c-format
msgid "while opening '%s'"
msgstr "'%s' を開いている間"
-#: src/strip.c:350
+#: src/strip.c:360
#, c-format
msgid "%s: cannot use -o or -f when stripping archive"
msgstr "%s: アーカイブから抜き出している時は -o や -f は使えません"
-#: src/strip.c:448
+#: src/strip.c:458
#, c-format
msgid "cannot open EBL backend"
msgstr "EBL バックエンドを開けません"
-#: src/strip.c:498 src/strip.c:522
+#: src/strip.c:508 src/strip.c:532
#, c-format
msgid "cannot create new file '%s': %s"
msgstr "新しいファイル '%s' を生成できません: %s"
-#: src/strip.c:582
+#: src/strip.c:592
#, c-format
msgid "illformed file '%s'"
msgstr "不適格なファイル '%s'"
-#: src/strip.c:869 src/strip.c:956
+#: src/strip.c:880 src/strip.c:967
#, c-format
msgid "while generating output file: %s"
msgstr "出力ファイルを生成している間: %s"
-#: src/strip.c:929 src/strip.c:1668
+#: src/strip.c:940 src/strip.c:1683
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: ELF ヘッダーを生成している間にエラー: %s"
-#: src/strip.c:943
+#: src/strip.c:954
#, c-format
msgid "while preparing output for '%s'"
msgstr "'%s' のための出力を準備している間"
-#: src/strip.c:994 src/strip.c:1050
+#: src/strip.c:1005 src/strip.c:1061
#, c-format
msgid "while create section header section: %s"
msgstr "セクションヘッダーセクションを生成している間: %s"
-#: src/strip.c:1000
+#: src/strip.c:1011
#, c-format
msgid "cannot allocate section data: %s"
msgstr "セクションデータを割り当てられません: %s"
-#: src/strip.c:1059
+#: src/strip.c:1070
#, c-format
msgid "while create section header string table: %s"
msgstr "セクションヘッダー文字列テーブルを生成中: %s"
-#: src/strip.c:1593 src/strip.c:1690
+#: src/strip.c:1595 src/strip.c:1705
#, c-format
msgid "while writing '%s': %s"
msgstr "'%s' を書込み中: %s"
-#: src/strip.c:1604
+#: src/strip.c:1606
#, c-format
msgid "while creating '%s'"
msgstr "'%s' を生成中"
-#: src/strip.c:1616
+#: src/strip.c:1628
#, c-format
msgid "while computing checksum for debug information"
msgstr "デバッグ情報のチェックサムを計算中"
-#: src/strip.c:1676
+#: src/strip.c:1691
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: ファイルを読込み中にエラー: %s"
-#: src/strip.c:1722 src/strip.c:1729
+#: src/strip.c:1730 src/strip.c:1750
+#, fuzzy, c-format
+msgid "while writing '%s'"
+msgstr "'%s' を書込み中: %s"
+
+#: src/strip.c:1784 src/strip.c:1791
#, c-format
msgid "error while finishing '%s': %s"
msgstr "'%s' の終了中にエラー: %s"
-#: src/strip.c:1752 src/strip.c:1809
+#: src/strip.c:1814 src/strip.c:1871
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "'%s' のアクセスと変更日付を設定できません"
diff --git a/elfutils/po/pl.gmo b/elfutils/po/pl.gmo
index f8938c68..b4a7bfe9 100644
--- a/elfutils/po/pl.gmo
+++ b/elfutils/po/pl.gmo
Binary files differ
diff --git a/elfutils/po/pl.po b/elfutils/po/pl.po
index 10fb5cc3..bd4e6ed8 100644
--- a/elfutils/po/pl.po
+++ b/elfutils/po/pl.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2010-11-22 22:08-0500\n"
-"PO-Revision-Date: 2010-10-25 13:56+0200\n"
+"POT-Creation-Date: 2011-01-12 17:51-0500\n"
+"PO-Revision-Date: 2011-01-08 08:49+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
"Language: pl\n"
@@ -357,6 +357,11 @@ msgstr "nie można obsłużyć opisu typu DWARF"
msgid "ELF file does not match build ID"
msgstr "plik ELF nie posiada pasującego identyfikatora kopii"
+#: libdwfl/libdwflP.h:98
+#, fuzzy
+msgid "corrupt .gnu.prelink_undo section data"
+msgstr "nie można odczytać sekcji \".gnu.prelink_undo\": %s"
+
#: libebl/eblbackendname.c:63
msgid "No backend"
msgstr "Brak zaplecza"
@@ -589,7 +594,7 @@ msgstr "[ADRES...]"
#: src/addr2line.c:189 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239
#: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181
#: src/ranlib.c:136 src/readelf.c:456 src/size.c:219 src/strings.c:227
-#: src/strip.c:204 src/unstrip.c:234
+#: src/strip.c:210 src/unstrip.c:234
#, c-format
msgid ""
"Copyright (C) %s Red Hat, Inc.\n"
@@ -605,7 +610,7 @@ msgstr ""
#: src/addr2line.c:194 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244
#: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186
#: src/ranlib.c:141 src/readelf.c:461 src/size.c:224 src/strings.c:232
-#: src/strip.c:209 src/unstrip.c:239
+#: src/strip.c:215 src/unstrip.c:239
#, c-format
msgid "Written by %s.\n"
msgstr "Napisane przez %s.\n"
@@ -1011,7 +1016,7 @@ msgstr "Nieprawidłowa wartość \"%s\" dla parametru --gaps."
#: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767
#: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301
-#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913
+#: src/strings.c:183 src/strip.c:443 src/strip.c:478 src/unstrip.c:1913
#: src/unstrip.c:1942
#, c-format
msgid "cannot open '%s'"
@@ -2908,7 +2913,7 @@ msgid "Locate source of text relocations in FILEs (a.out by default)."
msgstr "Odnajduje źródło relokacji tekstu w PLIKACH (domyślnie a.out)."
#: src/findtextrel.c:84 src/nm.c:111 src/objdump.c:80 src/size.c:92
-#: src/strings.c:92 src/strip.c:97
+#: src/strings.c:92 src/strip.c:100
msgid "[FILE...]"
msgstr "[PLIK...]"
@@ -3406,7 +3411,7 @@ msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
msgstr ""
"Ostrzeżenie: rozmiar \"%s\" zmienił się z %<PRIu64> w %s na %<PRIu64> w %s"
-#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:543
+#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:553
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "nie można określić liczby sekcji: %s"
@@ -3717,7 +3722,7 @@ msgstr ""
msgid "default visibility set as local and global"
msgstr "domyślna widoczność ustawiona jako lokalna i globalna"
-#: src/nm.c:74 src/strip.c:73
+#: src/nm.c:74 src/strip.c:74
msgid "Output selection:"
msgstr "Wybór wyjścia:"
@@ -3781,7 +3786,7 @@ msgstr "Oznacza słabe symbole"
msgid "Print size of defined symbols"
msgstr "Wyświetla rozmiar określonych symboli"
-#: src/nm.c:98 src/size.c:80 src/strip.c:78 src/unstrip.c:81
+#: src/nm.c:98 src/size.c:80 src/strip.c:79 src/unstrip.c:81
msgid "Output options:"
msgstr "Opcje wyjścia:"
@@ -3801,18 +3806,18 @@ msgstr "Odwraca kierunek porządkowania"
msgid "List symbols from FILEs (a.out by default)."
msgstr "Wyświetla listę symboli z PLIKU (domyślnie a.out)."
-#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:121
+#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:124
#, c-format
msgid "%s: INTERNAL ERROR %d (%s-%s): %s"
msgstr "%s: BŁĄD WEWNĘTRZNY %d (%s-%s): %s"
#: src/nm.c:380 src/nm.c:392 src/size.c:317 src/size.c:326 src/size.c:337
-#: src/strip.c:1816
+#: src/strip.c:1878
#, c-format
msgid "while closing '%s'"
msgstr "podczas zamykania \"%s\""
-#: src/nm.c:402 src/objdump.c:296 src/strip.c:359
+#: src/nm.c:402 src/objdump.c:296 src/strip.c:369
#, c-format
msgid "%s: File format not recognized"
msgstr "%s: nie rozpoznano formatu pliku"
@@ -3855,7 +3860,7 @@ msgstr "nie można utworzyć drzewa wyszukiwania"
#: src/readelf.c:1742 src/readelf.c:1952 src/readelf.c:2206 src/readelf.c:2272
#: src/readelf.c:2350 src/readelf.c:2848 src/readelf.c:2884 src/readelf.c:2946
#: src/readelf.c:6934 src/readelf.c:7832 src/readelf.c:7979 src/readelf.c:8047
-#: src/size.c:425 src/size.c:499 src/strip.c:483
+#: src/size.c:425 src/size.c:499 src/strip.c:493
#, c-format
msgid "cannot get section header string table index"
msgstr "nie można uzyskać indeksu tabeli ciągów nagłówków sekcji"
@@ -5827,149 +5832,158 @@ msgstr "ponowne mmap nie powiodło się"
msgid "mprotect failed"
msgstr "mprotect nie powiodło się"
-#: src/strip.c:74
+#: src/strip.c:75
msgid "Place stripped output into FILE"
msgstr "Umieszcza okrojone wyjście w PLIKU"
-#: src/strip.c:75
+#: src/strip.c:76
msgid "Extract the removed sections into FILE"
msgstr "Wydobywa usunięte sekcje do PLIKU"
-#: src/strip.c:76
+#: src/strip.c:77
msgid "Embed name FILE instead of -f argument"
msgstr "Osadza nazwę PLIKU zamiast parametru -f"
-#: src/strip.c:80
+#: src/strip.c:81
msgid "Remove all debugging symbols"
msgstr "Usuwa wszystkie symbole debugowania"
-#: src/strip.c:84
+#: src/strip.c:85
+msgid "Remove section headers (not recommended)"
+msgstr "Usuwa nagłówki sekcji (niezalecane)"
+
+#: src/strip.c:87
msgid "Copy modified/access timestamps to the output"
msgstr "Kopiuje czasy modyfikacji/dostępu do wyjścia"
-#: src/strip.c:86
+#: src/strip.c:89
msgid "Remove .comment section"
msgstr "Usuwa sekcję .comment"
-#: src/strip.c:89
+#: src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr "Łagodzi kilka reguł, aby obsłużyć lekko uszkodzone pliki ELF"
-#: src/strip.c:94
+#: src/strip.c:97
msgid "Discard symbols from object files."
msgstr "Odrzuca symbole z plików obiektów."
-#: src/strip.c:186
+#: src/strip.c:192
#, c-format
msgid "Only one input file allowed together with '-o' and '-f'"
msgstr "Tylko jeden plik wejściowy jest dozwolony z \"-o\" i \"-f\""
-#: src/strip.c:222
+#: src/strip.c:228
#, c-format
msgid "-f option specified twice"
msgstr "Opcję -f podano dwukrotnie"
-#: src/strip.c:231
+#: src/strip.c:237
#, c-format
msgid "-F option specified twice"
msgstr "Opcję -F podano dwukrotnie"
-#: src/strip.c:240 src/unstrip.c:125
+#: src/strip.c:246 src/unstrip.c:125
#, c-format
msgid "-o option specified twice"
msgstr "Opcję -o podano dwukrotnie"
-#: src/strip.c:260
+#: src/strip.c:266
#, c-format
msgid "-R option supports only .comment section"
msgstr "Opcja -R obsługuje tylko sekcję .comment"
-#: src/strip.c:298 src/strip.c:322
+#: src/strip.c:308 src/strip.c:332
#, c-format
msgid "cannot stat input file '%s'"
msgstr "nie można wykonać stat na pliku wejściowym \"%s\""
-#: src/strip.c:312
+#: src/strip.c:322
#, c-format
msgid "while opening '%s'"
msgstr "podczas otwierania \"%s\""
-#: src/strip.c:350
+#: src/strip.c:360
#, c-format
msgid "%s: cannot use -o or -f when stripping archive"
msgstr "%s: nie można używać -o lub -f podczas okrajania archiwum"
-#: src/strip.c:448
+#: src/strip.c:458
#, c-format
msgid "cannot open EBL backend"
msgstr "nie można otworzyć zaplecza EBL"
-#: src/strip.c:498 src/strip.c:522
+#: src/strip.c:508 src/strip.c:532
#, c-format
msgid "cannot create new file '%s': %s"
msgstr "nie można utworzyć nowego pliku \"%s\": %s"
-#: src/strip.c:582
+#: src/strip.c:592
#, c-format
msgid "illformed file '%s'"
msgstr "plik \"%s\" posiada błędny format"
-#: src/strip.c:869 src/strip.c:956
+#: src/strip.c:880 src/strip.c:967
#, c-format
msgid "while generating output file: %s"
msgstr "podczas tworzenia pliku wyjściowego: %s"
-#: src/strip.c:929 src/strip.c:1668
+#: src/strip.c:940 src/strip.c:1683
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: błąd podczas tworzenia nagłówka ELF: %s"
-#: src/strip.c:943
+#: src/strip.c:954
#, c-format
msgid "while preparing output for '%s'"
msgstr "podczas przygotowywania wyjścia dla \"%s\""
-#: src/strip.c:994 src/strip.c:1050
+#: src/strip.c:1005 src/strip.c:1061
#, c-format
msgid "while create section header section: %s"
msgstr "podczas tworzenia sekcji nagłówka sekcji: %s"
-#: src/strip.c:1000
+#: src/strip.c:1011
#, c-format
msgid "cannot allocate section data: %s"
msgstr "nie można przydzielić danych sekcji: %s"
-#: src/strip.c:1059
+#: src/strip.c:1070
#, c-format
msgid "while create section header string table: %s"
msgstr "podczas tworzenia tabeli ciągów nagłówka sekcji: %s"
-#: src/strip.c:1593 src/strip.c:1690
+#: src/strip.c:1595 src/strip.c:1705
#, c-format
msgid "while writing '%s': %s"
msgstr "podczas zapisywania \"%s\": %s"
-#: src/strip.c:1604
+#: src/strip.c:1606
#, c-format
msgid "while creating '%s'"
msgstr "podczas tworzenia \"%s\""
-#: src/strip.c:1616
+#: src/strip.c:1628
#, c-format
msgid "while computing checksum for debug information"
msgstr "podczas obliczania sumy kontrolnej dla informacji debugowania"
-#: src/strip.c:1676
+#: src/strip.c:1691
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: błąd podczas odczytywania pliku: %s"
-#: src/strip.c:1722 src/strip.c:1729
+#: src/strip.c:1730 src/strip.c:1750
+#, c-format
+msgid "while writing '%s'"
+msgstr "podczas zapisywania \"%s\""
+
+#: src/strip.c:1784 src/strip.c:1791
#, c-format
msgid "error while finishing '%s': %s"
msgstr "błąd podczas kończenia \"%s\": %s"
-#: src/strip.c:1752 src/strip.c:1809
+#: src/strip.c:1814 src/strip.c:1871
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "nie można ustawić czasu dostępu i modyfikacji \"%s\""
diff --git a/elfutils/po/uk.gmo b/elfutils/po/uk.gmo
index 49cfacc8..8276ec3d 100644
--- a/elfutils/po/uk.gmo
+++ b/elfutils/po/uk.gmo
Binary files differ
diff --git a/elfutils/po/uk.po b/elfutils/po/uk.po
index 9f60549c..8b5cd615 100644
--- a/elfutils/po/uk.po
+++ b/elfutils/po/uk.po
@@ -1,12 +1,12 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-# Yuri Chornoivan <yurchor@ukr.net>, 2010.
+# Yuri Chornoivan <yurchor@ukr.net>, 2010, 2011.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2010-11-22 22:08-0500\n"
-"PO-Revision-Date: 2010-09-01 10:00+0300\n"
+"POT-Creation-Date: 2011-01-12 17:51-0500\n"
+"PO-Revision-Date: 2011-01-08 09:47+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <kde-i18n-doc@kde.org>\n"
"Language: uk\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Lokalize 1.1\n"
+"X-Generator: Lokalize 1.2\n"
#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2829
#: src/readelf.c:3168 src/unstrip.c:2100 src/unstrip.c:2308
@@ -358,6 +358,11 @@ msgstr "не вдалося обробити опис типу DWARF"
msgid "ELF file does not match build ID"
msgstr "Файл ELF не відповідає ідентифікатору збирання"
+#: libdwfl/libdwflP.h:98
+#, fuzzy
+msgid "corrupt .gnu.prelink_undo section data"
+msgstr "не вдалося прочитати розділ «.gnu.prelink_undo»: %s"
+
#: libebl/eblbackendname.c:63
msgid "No backend"
msgstr "Немає сервера"
@@ -588,7 +593,7 @@ msgstr "[АДРЕСА...]"
#: src/addr2line.c:189 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239
#: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181
#: src/ranlib.c:136 src/readelf.c:456 src/size.c:219 src/strings.c:227
-#: src/strip.c:204 src/unstrip.c:234
+#: src/strip.c:210 src/unstrip.c:234
#, c-format
msgid ""
"Copyright (C) %s Red Hat, Inc.\n"
@@ -603,7 +608,7 @@ msgstr ""
#: src/addr2line.c:194 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244
#: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186
#: src/ranlib.c:141 src/readelf.c:461 src/size.c:224 src/strings.c:232
-#: src/strip.c:209 src/unstrip.c:239
+#: src/strip.c:215 src/unstrip.c:239
#, c-format
msgid "Written by %s.\n"
msgstr "Автор — %s.\n"
@@ -1013,7 +1018,7 @@ msgstr "Некоректне значення «%s» параметра --gaps."
#: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767
#: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301
-#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913
+#: src/strings.c:183 src/strip.c:443 src/strip.c:478 src/unstrip.c:1913
#: src/unstrip.c:1942
#, c-format
msgid "cannot open '%s'"
@@ -2925,7 +2930,7 @@ msgid "Locate source of text relocations in FILEs (a.out by default)."
msgstr "Шукає джерело переміщеного тексту у ФАЙЛАХ (типово, a.out)."
#: src/findtextrel.c:84 src/nm.c:111 src/objdump.c:80 src/size.c:92
-#: src/strings.c:92 src/strip.c:97
+#: src/strings.c:92 src/strip.c:100
msgid "[FILE...]"
msgstr "[ФАЙЛ...]"
@@ -3433,7 +3438,7 @@ msgstr "Попередження: тип «%s» змінився з %s у %s н
msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
msgstr "Попередження: розмір «%s» змінено з %<PRIu64> у %s на %<PRIu64> у %s"
-#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:543
+#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:636 src/strip.c:553
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "не вдалося визначити кількість розділів: %s"
@@ -3744,7 +3749,7 @@ msgstr "символ «%s» оголошено локально і на зага
msgid "default visibility set as local and global"
msgstr "типову видимість визначено як локальну і загальну"
-#: src/nm.c:74 src/strip.c:73
+#: src/nm.c:74 src/strip.c:74
msgid "Output selection:"
msgstr "Вибір виводу:"
@@ -3808,7 +3813,7 @@ msgstr "Позначати слабкі символи"
msgid "Print size of defined symbols"
msgstr "Вивести розмір визначених символів"
-#: src/nm.c:98 src/size.c:80 src/strip.c:78 src/unstrip.c:81
+#: src/nm.c:98 src/size.c:80 src/strip.c:79 src/unstrip.c:81
msgid "Output options:"
msgstr "Параметри виводу:"
@@ -3828,18 +3833,18 @@ msgstr "Змінити порядок на протилежний"
msgid "List symbols from FILEs (a.out by default)."
msgstr "Показати список символів з ФАЙЛів (типово з a.out)."
-#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:121
+#: src/nm.c:136 src/objdump.c:105 src/size.c:117 src/strip.c:124
#, c-format
msgid "%s: INTERNAL ERROR %d (%s-%s): %s"
msgstr "%s: ВНУТРІШНЯ ПОМИЛКА %d (%s-%s): %s"
#: src/nm.c:380 src/nm.c:392 src/size.c:317 src/size.c:326 src/size.c:337
-#: src/strip.c:1816
+#: src/strip.c:1878
#, c-format
msgid "while closing '%s'"
msgstr "під час закриття «%s»"
-#: src/nm.c:402 src/objdump.c:296 src/strip.c:359
+#: src/nm.c:402 src/objdump.c:296 src/strip.c:369
#, c-format
msgid "%s: File format not recognized"
msgstr "%s: не вдалося розпізнати формат файла"
@@ -3882,7 +3887,7 @@ msgstr "не вдалося створити дерево пошуку"
#: src/readelf.c:1742 src/readelf.c:1952 src/readelf.c:2206 src/readelf.c:2272
#: src/readelf.c:2350 src/readelf.c:2848 src/readelf.c:2884 src/readelf.c:2946
#: src/readelf.c:6934 src/readelf.c:7832 src/readelf.c:7979 src/readelf.c:8047
-#: src/size.c:425 src/size.c:499 src/strip.c:483
+#: src/size.c:425 src/size.c:499 src/strip.c:493
#, c-format
msgid "cannot get section header string table index"
msgstr "не вдалося визначити індекс заголовка розділу у таблиці рядків"
@@ -5840,153 +5845,162 @@ msgstr "помилка повторного використання mmap"
msgid "mprotect failed"
msgstr "помилка mprotect"
-#: src/strip.c:74
+#: src/strip.c:75
msgid "Place stripped output into FILE"
msgstr "Вивести дані після вилучення до ФАЙЛа"
-#: src/strip.c:75
+#: src/strip.c:76
msgid "Extract the removed sections into FILE"
msgstr "Видобути вилучені розділи до ФАЙЛа"
-#: src/strip.c:76
+#: src/strip.c:77
msgid "Embed name FILE instead of -f argument"
msgstr "Вбудувати назву ФАЙЛа замість аргументу -f"
-#: src/strip.c:80
+#: src/strip.c:81
msgid "Remove all debugging symbols"
msgstr "Вилучити всі символи зневаджування"
-#: src/strip.c:84
+#: src/strip.c:85
+msgid "Remove section headers (not recommended)"
+msgstr "Вилучити заголовки розділів (не рекомендовано)"
+
+#: src/strip.c:87
msgid "Copy modified/access timestamps to the output"
msgstr "Скопіювати часові позначки зміни/доступу до виведених даних"
-#: src/strip.c:86
+#: src/strip.c:89
msgid "Remove .comment section"
msgstr "Вилучити розділ .comment"
-#: src/strip.c:89
+#: src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr ""
"Знехтувати декількома правилами для обробки трохи пошкоджених файлів ELF"
-#: src/strip.c:94
+#: src/strip.c:97
msgid "Discard symbols from object files."
msgstr "Відкинути символи з об’єктних файлів"
-#: src/strip.c:186
+#: src/strip.c:192
#, c-format
msgid "Only one input file allowed together with '-o' and '-f'"
msgstr ""
"Разом з «-o» або «-f» можна використовувати лише один файл вхідних даних"
-#: src/strip.c:222
+#: src/strip.c:228
#, c-format
msgid "-f option specified twice"
msgstr "параметр -f вказано двічі"
-#: src/strip.c:231
+#: src/strip.c:237
#, c-format
msgid "-F option specified twice"
msgstr "параметр -F вказано двічі"
-#: src/strip.c:240 src/unstrip.c:125
+#: src/strip.c:246 src/unstrip.c:125
#, c-format
msgid "-o option specified twice"
msgstr "параметр -o вказано двічі"
-#: src/strip.c:260
+#: src/strip.c:266
#, c-format
msgid "-R option supports only .comment section"
msgstr "Для параметра -R передбачено підтримку лише розділу .comment"
-#: src/strip.c:298 src/strip.c:322
+#: src/strip.c:308 src/strip.c:332
#, c-format
msgid "cannot stat input file '%s'"
msgstr "не вдалося отримати дані з вхідного файла «%s» за допомогою stat"
-#: src/strip.c:312
+#: src/strip.c:322
#, c-format
msgid "while opening '%s'"
msgstr "під час спроби відкриття «%s»"
-#: src/strip.c:350
+#: src/strip.c:360
#, c-format
msgid "%s: cannot use -o or -f when stripping archive"
msgstr ""
"%s: не можна використовувати -o або -f під час вилучення додаткового вмісту "
"архіву"
-#: src/strip.c:448
+#: src/strip.c:458
#, c-format
msgid "cannot open EBL backend"
msgstr "не вдалося відкрити канал сервера EBL"
-#: src/strip.c:498 src/strip.c:522
+#: src/strip.c:508 src/strip.c:532
#, c-format
msgid "cannot create new file '%s': %s"
msgstr "не вдалося створити файл «%s»: %s"
-#: src/strip.c:582
+#: src/strip.c:592
#, c-format
msgid "illformed file '%s'"
msgstr "помилкове форматування файла «%s»"
-#: src/strip.c:869 src/strip.c:956
+#: src/strip.c:880 src/strip.c:967
#, c-format
msgid "while generating output file: %s"
msgstr "під час спроби створення файла з виведеними даними: %s"
-#: src/strip.c:929 src/strip.c:1668
+#: src/strip.c:940 src/strip.c:1683
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: помилка під час створення заголовка ELF: %s"
-#: src/strip.c:943
+#: src/strip.c:954
#, c-format
msgid "while preparing output for '%s'"
msgstr "під час приготування виведених даних для «%s»"
-#: src/strip.c:994 src/strip.c:1050
+#: src/strip.c:1005 src/strip.c:1061
#, c-format
msgid "while create section header section: %s"
msgstr "під час створення розділу заголовка розділу: %s"
-#: src/strip.c:1000
+#: src/strip.c:1011
#, c-format
msgid "cannot allocate section data: %s"
msgstr "не вдалося розмістити дані розділу: %s"
-#: src/strip.c:1059
+#: src/strip.c:1070
#, c-format
msgid "while create section header string table: %s"
msgstr "під час створення таблиці рядків заголовка розділу: %s"
-#: src/strip.c:1593 src/strip.c:1690
+#: src/strip.c:1595 src/strip.c:1705
#, c-format
msgid "while writing '%s': %s"
msgstr "під час запису «%s»: %s"
-#: src/strip.c:1604
+#: src/strip.c:1606
#, c-format
msgid "while creating '%s'"
msgstr "під час спроби створення «%s»"
-#: src/strip.c:1616
+#: src/strip.c:1628
#, c-format
msgid "while computing checksum for debug information"
msgstr "під час обчислення контрольної суми для діагностичних даних"
-#: src/strip.c:1676
+#: src/strip.c:1691
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: помилка під час читання файла: %s"
-#: src/strip.c:1722 src/strip.c:1729
+#: src/strip.c:1730 src/strip.c:1750
+#, c-format
+msgid "while writing '%s'"
+msgstr "під час спроби запису «%s»"
+
+#: src/strip.c:1784 src/strip.c:1791
#, c-format
msgid "error while finishing '%s': %s"
msgstr "помилка під час завершення «%s»: %s"
-#: src/strip.c:1752 src/strip.c:1809
+#: src/strip.c:1814 src/strip.c:1871
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "не вдалося встановити права доступу та дату зміни «%s»"
diff --git a/elfutils/src/ChangeLog b/elfutils/src/ChangeLog
index 7a151927..8b74ca6d 100644
--- a/elfutils/src/ChangeLog
+++ b/elfutils/src/ChangeLog
@@ -1,3 +1,14 @@
+2011-01-06 Roland McGrath <roland@redhat.com>
+
+ * strip.c (handle_elf): Under --strip-sections, remove all
+ non-allocated sections and never generate .gnu_debuglink.
+
+2011-01-04 Roland McGrath <roland@redhat.com>
+
+ * strip.c (remove_shdrs): New variable.
+ (options, parse_opt): Grok --strip-sections to set it.
+ (handle_elf): When that's set, truncate off .shstrtab and shdrs.
+
2010-11-10 Roland McGrath <roland@redhat.com>
* findtextrel.c (process_file): Don't assume order of sections.
diff --git a/elfutils/src/strip.c b/elfutils/src/strip.c
index 7b2b889a..99374eb3 100644
--- a/elfutils/src/strip.c
+++ b/elfutils/src/strip.c
@@ -1,5 +1,5 @@
/* Discard section not used at runtime from object files.
- Copyright (C) 2000-2010 Red Hat, Inc.
+ Copyright (C) 2000-2011 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2000.
@@ -65,6 +65,7 @@ ARGP_PROGRAM_BUG_ADDRESS_DEF = PACKAGE_BUGREPORT;
/* Values for the parameters which have no short form. */
#define OPT_REMOVE_COMMENT 0x100
#define OPT_PERMISSIVE 0x101
+#define OPT_STRIP_SECTIONS 0x102
/* Definitions of arguments for argp functions. */
@@ -80,6 +81,8 @@ static const struct argp_option options[] =
{ "strip-debug", 'g', NULL, 0, N_("Remove all debugging symbols"), 0 },
{ NULL, 'd', NULL, OPTION_ALIAS, NULL, 0 },
{ NULL, 'S', NULL, OPTION_ALIAS, NULL, 0 },
+ { "strip-sections", OPT_STRIP_SECTIONS, NULL, 0,
+ N_("Remove section headers (not recommended)"), 0 },
{ "preserve-dates", 'p', NULL, 0,
N_("Copy modified/access timestamps to the output"), 0 },
{ "remove-comment", OPT_REMOVE_COMMENT, NULL, 0,
@@ -140,6 +143,9 @@ static bool remove_comment;
/* If true remove all debug sections. */
static bool remove_debug;
+/* If true remove all section headers. */
+static bool remove_shdrs;
+
/* If true relax some ELF rules for input files. */
static bool permissive;
@@ -268,6 +274,10 @@ parse_opt (int key, char *arg, struct argp_state *state)
remove_debug = true;
break;
+ case OPT_STRIP_SECTIONS:
+ remove_shdrs = true;
+ break;
+
case OPT_PERMISSIVE:
permissive = true;
break;
@@ -662,9 +672,10 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
*/
for (cnt = 1; cnt < shnum; ++cnt)
/* Check whether the section can be removed. */
- if (ebl_section_strip_p (ebl, ehdr, &shdr_info[cnt].shdr,
- shdr_info[cnt].name, remove_comment,
- remove_debug))
+ if (remove_shdrs ? !(shdr_info[cnt].shdr.sh_flags & SHF_ALLOC)
+ : ebl_section_strip_p (ebl, ehdr, &shdr_info[cnt].shdr,
+ shdr_info[cnt].name, remove_comment,
+ remove_debug))
{
/* For now assume this section will be removed. */
shdr_info[cnt].idx = 0;
@@ -968,7 +979,7 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
goto fail_close;
/* Create the reference to the file with the debug info. */
- if (debug_fname != NULL)
+ if (debug_fname != NULL && !remove_shdrs)
{
/* Add the section header string table section name. */
shdr_info[cnt].se = ebl_strtabadd (shst, ".gnu_debuglink", 15);
@@ -1578,15 +1589,6 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
we can actually write out the debug file. */
if (debug_fname != NULL)
{
- uint32_t debug_crc;
- Elf_Data debug_crc_data =
- {
- .d_type = ELF_T_WORD,
- .d_buf = &debug_crc,
- .d_size = sizeof (debug_crc),
- .d_version = EV_CURRENT
- };
-
/* Finally write the file. */
if (unlikely (elf_update (debugelf, ELF_C_WRITE) == -1))
{
@@ -1609,21 +1611,33 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
/* The temporary file does not exist anymore. */
tmp_debug_fname = NULL;
- /* Compute the checksum which we will add to the executable. */
- if (crc32_file (debug_fd, &debug_crc) != 0)
+ if (!remove_shdrs)
{
- error (0, errno,
- gettext ("while computing checksum for debug information"));
- unlink (debug_fname);
- result = 1;
- goto fail_close;
- }
+ uint32_t debug_crc;
+ Elf_Data debug_crc_data =
+ {
+ .d_type = ELF_T_WORD,
+ .d_buf = &debug_crc,
+ .d_size = sizeof (debug_crc),
+ .d_version = EV_CURRENT
+ };
+
+ /* Compute the checksum which we will add to the executable. */
+ if (crc32_file (debug_fd, &debug_crc) != 0)
+ {
+ error (0, errno, gettext ("\
+while computing checksum for debug information"));
+ unlink (debug_fname);
+ result = 1;
+ goto fail_close;
+ }
- /* Store it in the debuglink section data. */
- if (unlikely (gelf_xlatetof (newelf, &debuglink_crc_data,
- &debug_crc_data, ehdr->e_ident[EI_DATA])
- != &debuglink_crc_data))
- INTERNAL_ERROR (fname);
+ /* Store it in the debuglink section data. */
+ if (unlikely (gelf_xlatetof (newelf, &debuglink_crc_data,
+ &debug_crc_data, ehdr->e_ident[EI_DATA])
+ != &debuglink_crc_data))
+ INTERNAL_ERROR (fname);
+ }
}
/* Finally finish the ELF header. Fill in the fields not handled by
@@ -1639,6 +1653,7 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
newehdr->e_entry = ehdr->e_entry;
newehdr->e_flags = ehdr->e_flags;
newehdr->e_phoff = ehdr->e_phoff;
+
/* We need to position the section header table. */
const size_t offsize = gelf_fsize (elf, ELF_T_OFF, 1, EV_CURRENT);
newehdr->e_shoff = ((shdr_info[shdridx].shdr.sh_offset
@@ -1692,6 +1707,53 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
result = 1;
}
+ if (remove_shdrs)
+ {
+ /* libelf can't cope without the section headers being properly intact.
+ So we just let it write them normally, and then we nuke them later. */
+
+ if (newehdr->e_ident[EI_CLASS] == ELFCLASS32)
+ {
+ assert (offsetof (Elf32_Ehdr, e_shentsize) + sizeof (Elf32_Half)
+ == offsetof (Elf32_Ehdr, e_shnum));
+ assert (offsetof (Elf32_Ehdr, e_shnum) + sizeof (Elf32_Half)
+ == offsetof (Elf32_Ehdr, e_shstrndx));
+ const Elf32_Off zero_off = 0;
+ const Elf32_Half zero[3] = { 0, 0, SHN_UNDEF };
+ if (pwrite_retry (fd, &zero_off, sizeof zero_off,
+ offsetof (Elf32_Ehdr, e_shoff)) != sizeof zero_off
+ || (pwrite_retry (fd, zero, sizeof zero,
+ offsetof (Elf32_Ehdr, e_shentsize))
+ != sizeof zero)
+ || ftruncate64 (fd, shdr_info[shdridx].shdr.sh_offset) < 0)
+ {
+ error (0, errno, gettext ("while writing '%s'"),
+ fname);
+ result = 1;
+ }
+ }
+ else
+ {
+ assert (offsetof (Elf64_Ehdr, e_shentsize) + sizeof (Elf64_Half)
+ == offsetof (Elf64_Ehdr, e_shnum));
+ assert (offsetof (Elf64_Ehdr, e_shnum) + sizeof (Elf64_Half)
+ == offsetof (Elf64_Ehdr, e_shstrndx));
+ const Elf64_Off zero_off = 0;
+ const Elf64_Half zero[3] = { 0, 0, SHN_UNDEF };
+ if (pwrite_retry (fd, &zero_off, sizeof zero_off,
+ offsetof (Elf64_Ehdr, e_shoff)) != sizeof zero_off
+ || (pwrite_retry (fd, zero, sizeof zero,
+ offsetof (Elf64_Ehdr, e_shentsize))
+ != sizeof zero)
+ || ftruncate64 (fd, shdr_info[shdridx].shdr.sh_offset) < 0)
+ {
+ error (0, errno, gettext ("while writing '%s'"),
+ fname);
+ result = 1;
+ }
+ }
+ }
+
fail_close:
if (shdr_info != NULL)
{
diff --git a/elfutils/tests/ChangeLog b/elfutils/tests/ChangeLog
index 0176fb49..9ba08acb 100644
--- a/elfutils/tests/ChangeLog
+++ b/elfutils/tests/ChangeLog
@@ -1,3 +1,46 @@
+2011-01-12 Roland McGrath <roland@redhat.com>
+
+ * run-prelink-addr-test.sh: Make symlinks to find .debug files
+ corresponding to .noshdrs files.
+
+2011-01-11 Josh Stone <jistone@redhat.com>
+
+ * run-prelink-addr-test.sh: Add testfile54, 32 and 64-bit.
+ * testfile54-32.so.bz2, testfile54-32.so.debug.bz2,
+ testfile54-32.prelink.so.bz2, testfile54-32.noshdrs.so.bz2,
+ testfile54-64.so.bz2, testfile54-64.so.debug.bz2,
+ testfile54-64.prelink.so.bz2, testfile54-64.noshdrs.so.bz2: New.
+ * Makefile.am (EXTRA_DIST): Add and update all.
+
+ * run-prelink-addr-test.sh: Run 32 and 64-bit testfile53 tests.
+ * testfile53.bz2, testfile53.debug.bz2,
+ testfile53.prelink.bz2: Deleted, so...
+ * testfile53-64.bz2, testfile53-64.debug.bz2,
+ testfile53-64.prelink.bz2: Recreated with 64-bit names.
+ * testfile53-32.bz2, testfile53-32.debug.bz2,
+ testfile53-32.prelink.bz2: New in 32-bit.
+ * Makefile.am (EXTRA_DIST): Add and update all.
+
+ * run-prelink-addr-test.sh: Run 32 and 64-bit testfile52 tests.
+ * testfile52.so.bz2, testfile52.so.debug.bz2,
+ testfile52.prelink.so.bz2: Deleted, so...
+ * testfile52-32.so.bz2, testfile52-32.so.debug.bz2,
+ testfile52-32.prelink.so.bz2: Recreated with 32-bit names.
+ * testfile52-32.noshdrs.so.bz2: New data file, stripped of headers.
+ * testfile52-64.so.bz2, testfile52-64.so.debug.bz2,
+ testfile52-64.prelink.so.bz2, testfile52-64.noshdrs.so.bz2: New files.
+ * Makefile.am (EXTRA_DIST): Add and update all.
+
+2011-01-10 Josh Stone <jistone@redhat.com>
+
+ * run-prelink-addr-test.sh: New test for prelinked addrs.
+ * Makefile.am (TESTS, EXTRA_DIST): Add it.
+ * testfile52.so.bz2, testfile52.so.debug.bz2: New data files.
+ * testfile52.prelink.so.bz2: New data file, shows REL->RELA.
+ * testfile53.bz2, testfile53.debug.bz2: New data files.
+ * testfile53.prelink.bz2: New data file, shows ET_EXEC remap.
+ * Makefile.am (EXTRA_DIST): Add them.
+
2010-06-04 Roland McGrath <roland@redhat.com>
* run-unstrip-test.sh: Also test modifying the file in place.
diff --git a/elfutils/tests/Makefile.am b/elfutils/tests/Makefile.am
index 008008ac..04805f05 100644
--- a/elfutils/tests/Makefile.am
+++ b/elfutils/tests/Makefile.am
@@ -83,7 +83,7 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \
run-dwfl-bug-offline-rel.sh run-dwfl-addr-sect.sh \
run-disasm-x86.sh run-disasm-x86-64.sh \
run-early-offscn.sh run-dwarf-getmacros.sh \
- run-test-flag-nobits.sh
+ run-test-flag-nobits.sh run-prelink-addr-test.sh
# run-show-ciefde.sh
if !STANDALONE
@@ -139,7 +139,19 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
testfile44.S.bz2 testfile44.expect.bz2 run-disasm-x86.sh \
testfile45.S.bz2 testfile45.expect.bz2 run-disasm-x86-64.sh \
testfile46.bz2 testfile47.bz2 testfile48.bz2 testfile48.debug.bz2 \
- testfile49.bz2 testfile50.bz2 testfile51.bz2
+ testfile49.bz2 testfile50.bz2 testfile51.bz2 \
+ run-prelink-addr-test.sh \
+ testfile52-32.so.bz2 testfile52-32.so.debug.bz2 \
+ testfile52-32.prelink.so.bz2 testfile52-32.noshdrs.so.bz2 \
+ testfile52-64.so.bz2 testfile52-64.so.debug.bz2 \
+ testfile52-64.prelink.so.bz2 testfile52-64.noshdrs.so.bz2 \
+ testfile53-32.bz2 testfile53-32.debug.bz2 \
+ testfile53-32.prelink.bz2 testfile53-64.bz2 \
+ testfile53-64.debug.bz2 testfile53-64.prelink.bz2 \
+ testfile54-32.so.bz2 testfile54-32.so.debug.bz2 \
+ testfile54-32.prelink.so.bz2 testfile54-32.noshdrs.so.bz2 \
+ testfile54-64.so.bz2 testfile54-64.so.debug.bz2 \
+ testfile54-64.prelink.so.bz2 testfile54-64.noshdrs.so.bz2
installed_TESTS_ENVIRONMENT = libdir=$(DESTDIR)$(libdir) \
bindir=$(DESTDIR)$(bindir) \
diff --git a/elfutils/tests/Makefile.in b/elfutils/tests/Makefile.in
index 930b3157..f4969825 100644
--- a/elfutils/tests/Makefile.in
+++ b/elfutils/tests/Makefile.in
@@ -80,8 +80,8 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile$(EXEEXT) \
dwfl-bug-fd-leak$(EXEEXT) dwfl-bug-report$(EXEEXT) \
run-dwfl-bug-offline-rel.sh run-dwfl-addr-sect.sh \
run-disasm-x86.sh run-disasm-x86-64.sh run-early-offscn.sh \
- run-dwarf-getmacros.sh run-test-flag-nobits.sh $(am__EXEEXT_1) \
- $(am__EXEEXT_3)
+ run-dwarf-getmacros.sh run-test-flag-nobits.sh \
+ run-prelink-addr-test.sh $(am__EXEEXT_1) $(am__EXEEXT_3)
# run-show-ciefde.sh
@STANDALONE_FALSE@am__append_5 = msg_tst sha1-tst
@STANDALONE_FALSE@am__append_6 = msg_tst sha1-tst
@@ -522,7 +522,19 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
testfile44.S.bz2 testfile44.expect.bz2 run-disasm-x86.sh \
testfile45.S.bz2 testfile45.expect.bz2 run-disasm-x86-64.sh \
testfile46.bz2 testfile47.bz2 testfile48.bz2 testfile48.debug.bz2 \
- testfile49.bz2 testfile50.bz2 testfile51.bz2
+ testfile49.bz2 testfile50.bz2 testfile51.bz2 \
+ run-prelink-addr-test.sh \
+ testfile52-32.so.bz2 testfile52-32.so.debug.bz2 \
+ testfile52-32.prelink.so.bz2 testfile52-32.noshdrs.so.bz2 \
+ testfile52-64.so.bz2 testfile52-64.so.debug.bz2 \
+ testfile52-64.prelink.so.bz2 testfile52-64.noshdrs.so.bz2 \
+ testfile53-32.bz2 testfile53-32.debug.bz2 \
+ testfile53-32.prelink.bz2 testfile53-64.bz2 \
+ testfile53-64.debug.bz2 testfile53-64.prelink.bz2 \
+ testfile54-32.so.bz2 testfile54-32.so.debug.bz2 \
+ testfile54-32.prelink.so.bz2 testfile54-32.noshdrs.so.bz2 \
+ testfile54-64.so.bz2 testfile54-64.so.debug.bz2 \
+ testfile54-64.prelink.so.bz2 testfile54-64.noshdrs.so.bz2
installed_TESTS_ENVIRONMENT = libdir=$(DESTDIR)$(libdir) \
bindir=$(DESTDIR)$(bindir) \
diff --git a/elfutils/tests/run-prelink-addr-test.sh b/elfutils/tests/run-prelink-addr-test.sh
new file mode 100755
index 00000000..b7e32889
--- /dev/null
+++ b/elfutils/tests/run-prelink-addr-test.sh
@@ -0,0 +1,216 @@
+#! /bin/sh
+# Copyright (C) 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
+# it under the terms of the GNU General Public License as published by the
+# Free Software Foundation; version 2 of the License.
+#
+# Red Hat elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with Red Hat elfutils; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
+#
+# Red Hat elfutils is an included package of the Open Invention Network.
+# An included package of the Open Invention Network is a package for which
+# Open Invention Network licensees cross-license their patents. No patent
+# license is granted, either expressly or impliedly, by designation as an
+# included package. Should you wish to participate in the Open Invention
+# Network licensing program, please visit www.openinventionnetwork.com
+# <http://www.openinventionnetwork.com>.
+
+. $srcdir/test-subr.sh
+
+
+# testfile52.c:
+# #include <stdlib.h>
+# int foo() { exit(0); }
+#
+# gcc -m32 -g -shared testfile52-32.c -o testfile52-32.so
+# eu-strip -f testfile52-32.so.debug testfile52-32.so
+# cp testfile52-32.so testfile52-32.prelink.so
+# prelink -N testfile52-32.prelink.so
+# cp testfile52-32.so testfile52-32.noshdrs.so
+# prelink -r 0x42000000 testfile52-32.noshdrs.so
+# eu-strip --remove-comment --strip-sections testfile52-32.noshdrs.so
+
+testfiles testfile52-32.so testfile52-32.so.debug
+testfiles testfile52-32.prelink.so testfile52-32.noshdrs.so
+tempfiles testmaps52-32 testfile52-32.noshdrs.so.debug
+ln -s testfile52-32.so.debug testfile52-32.noshdrs.so.debug
+
+cat > testmaps52-32 <<EOF
+00111000-00112000 r-xp 00000000 fd:01 1 `pwd`/testfile52-32.so
+00112000-00113000 rw-p 00000000 fd:01 1 `pwd`/testfile52-32.so
+41000000-41001000 r-xp 00000000 fd:01 2 `pwd`/testfile52-32.prelink.so
+41001000-41002000 rw-p 00000000 fd:01 2 `pwd`/testfile52-32.prelink.so
+42000000-42001000 r-xp 00000000 fd:01 3 `pwd`/testfile52-32.noshdrs.so
+42001000-42002000 rw-p 00000000 fd:01 3 `pwd`/testfile52-32.noshdrs.so
+EOF
+
+# Prior to commit 1743d7f, libdwfl would fail on the second address,
+# because it didn't notice that prelink added a 0x20-byte offset from
+# what the .debug file reports.
+testrun_compare ../src/addr2line -S -M testmaps52-32 \
+ 0x11140c 0x4100042d 0x4200040e <<\EOF
+foo
+/home/jistone/src/elfutils/tests/testfile52-32.c:2
+foo+0x1
+/home/jistone/src/elfutils/tests/testfile52-32.c:2
+foo+0x2
+/home/jistone/src/elfutils/tests/testfile52-32.c:2
+EOF
+
+# Repeat testfile52 for -m64. The particular REL>RELA issue doesn't exist, but
+# we'll make sure the rest works anyway.
+testfiles testfile52-64.so testfile52-64.so.debug
+testfiles testfile52-64.prelink.so testfile52-64.noshdrs.so
+tempfiles testmaps52-64 testfile52-64.noshdrs.so.debug
+ln -s testfile52-64.so.debug testfile52-64.noshdrs.so.debug
+
+cat > testmaps52-64 <<EOF
+1000000000-1000001000 r-xp 00000000 fd:11 1 `pwd`/testfile52-64.so
+1000001000-1000200000 ---p 00001000 fd:11 1 `pwd`/testfile52-64.so
+1000200000-1000201000 rw-p 00000000 fd:11 1 `pwd`/testfile52-64.so
+3000000000-3000001000 r-xp 00000000 fd:11 2 `pwd`/testfile52-64.prelink.so
+3000001000-3000200000 ---p 00001000 fd:11 2 `pwd`/testfile52-64.prelink.so
+3000200000-3000201000 rw-p 00000000 fd:11 2 `pwd`/testfile52-64.prelink.so
+3800000000-3800001000 r-xp 00000000 fd:11 3 `pwd`/testfile52-64.noshdrs.so
+3800001000-3800200000 ---p 00001000 fd:11 3 `pwd`/testfile52-64.noshdrs.so
+3800200000-3800201000 rw-p 00000000 fd:11 3 `pwd`/testfile52-64.noshdrs.so
+EOF
+
+testrun_compare ../src/addr2line -S -M testmaps52-64 \
+ 0x100000056c 0x300000056d 0x380000056e <<\EOF
+foo
+/home/jistone/src/elfutils/tests/testfile52-64.c:2
+foo+0x1
+/home/jistone/src/elfutils/tests/testfile52-64.c:2
+foo+0x2
+/home/jistone/src/elfutils/tests/testfile52-64.c:2
+EOF
+
+
+# testfile53.c:
+# char foo[0x1000];
+# int main() { return 0; }
+#
+# gcc -m32 -g testfile53-32.c -o testfile53-32
+# eu-strip -f testfile53-32.debug testfile53-32
+# cp testfile53-32 testfile53-32.prelink
+# prelink -N testfile53-32.prelink
+testfiles testfile53-32 testfile53-32.debug testfile53-32.prelink
+
+testrun_compare ../src/addr2line -S -e testfile53-32 0x8048394 0x8048395 <<\EOF
+main
+/home/jistone/src/elfutils/tests/testfile53-32.c:2
+main+0x1
+/home/jistone/src/elfutils/tests/testfile53-32.c:2
+EOF
+
+# prelink shuffled some of the sections, but .text is in the same place.
+testrun_compare ../src/addr2line -S -e testfile53-32.prelink 0x8048396 0x8048397 <<\EOF
+main+0x2
+/home/jistone/src/elfutils/tests/testfile53-32.c:2
+main+0x3
+/home/jistone/src/elfutils/tests/testfile53-32.c:2
+EOF
+
+# Repeat testfile53 in 64-bit, except use foo[0x800] to achieve the same
+# prelink section shuffling.
+testfiles testfile53-64 testfile53-64.debug testfile53-64.prelink
+
+testrun_compare ../src/addr2line -S -e testfile53-64 0x400474 0x400475 <<\EOF
+main
+/home/jistone/src/elfutils/tests/testfile53-64.c:2
+main+0x1
+/home/jistone/src/elfutils/tests/testfile53-64.c:2
+EOF
+
+testrun_compare ../src/addr2line -S -e testfile53-64.prelink 0x400476 0x400477 <<\EOF
+main+0x2
+/home/jistone/src/elfutils/tests/testfile53-64.c:2
+main+0x3
+/home/jistone/src/elfutils/tests/testfile53-64.c:2
+EOF
+
+
+# testfile54.c:
+# extern void * stdin;
+# static void * pstdin = &stdin;
+# void * const foo = &pstdin;
+#
+# gcc -m32 -g -shared -nostartfiles testfile54-32.c -o testfile54-32.so
+# eu-strip -f testfile54-32.so.debug testfile54-32.so
+# cp testfile54-32.so testfile54-32.prelink.so
+# prelink -N testfile54-32.prelink.so
+# cp testfile54-32.so testfile54-32.noshdrs.so
+# prelink -r 0x42000000 testfile54-32.noshdrs.so
+# eu-strip --remove-comment --strip-sections testfile54-32.noshdrs.so
+testfiles testfile54-32.so testfile54-32.so.debug
+testfiles testfile54-32.prelink.so testfile54-32.noshdrs.so
+tempfiles testmaps54-32
+
+# Note we have no testfile54-32.noshdrs.so.debug link here, so
+# this is testing finding the symbols in .dynsym via PT_DYNAMIC.
+
+cat > testmaps54-32 <<EOF
+00111000-00112000 r--p 00000000 fd:01 1 `pwd`/testfile54-32.so
+00112000-00113000 rw-p 00000000 fd:01 1 `pwd`/testfile54-32.so
+41000000-41001000 r--p 00000000 fd:01 2 `pwd`/testfile54-32.prelink.so
+41001000-41002000 rw-p 00000000 fd:01 2 `pwd`/testfile54-32.prelink.so
+42000000-42001000 r--p 00000000 fd:01 3 `pwd`/testfile54-32.noshdrs.so
+42001000-42002000 rw-p 00000000 fd:01 3 `pwd`/testfile54-32.noshdrs.so
+EOF
+
+testrun_compare ../src/addr2line -S -M testmaps54-32 \
+ 0x1111fc 0x1122a4 0x410001fd 0x410012a5 0x420001fe <<\EOF
+foo
+??:0
+pstdin
+??:0
+foo+0x1
+??:0
+pstdin+0x1
+??:0
+foo+0x2
+??:0
+EOF
+
+# Repeat testfile64 in 64-bit
+testfiles testfile54-64.so testfile54-64.so.debug
+testfiles testfile54-64.prelink.so testfile54-64.noshdrs.so
+tempfiles testmaps54-64
+
+# Note we have no testfile54-64.noshdrs.so.debug link here, so
+# this is testing finding the symbols in .dynsym via PT_DYNAMIC.
+
+cat > testmaps54-64 <<EOF
+1000000000-1000001000 r--p 00000000 fd:11 1 `pwd`/testfile54-64.so
+1000001000-1000200000 ---p 00001000 fd:11 1 `pwd`/testfile54-64.so
+1000200000-1000201000 rw-p 00000000 fd:11 1 `pwd`/testfile54-64.so
+3000000000-3000001000 r--p 00000000 fd:11 2 `pwd`/testfile54-64.prelink.so
+3000001000-3000200000 ---p 00001000 fd:11 2 `pwd`/testfile54-64.prelink.so
+3000200000-3000201000 rw-p 00000000 fd:11 2 `pwd`/testfile54-64.prelink.so
+3800000000-3800001000 r--p 00000000 fd:11 3 `pwd`/testfile54-64.noshdrs.so
+3800001000-3800200000 ---p 00001000 fd:11 3 `pwd`/testfile54-64.noshdrs.so
+3800200000-3800201000 rw-p 00000000 fd:11 3 `pwd`/testfile54-64.noshdrs.so
+EOF
+
+testrun_compare ../src/addr2line -S -M testmaps54-64 \
+ 0x10000002f8 0x1000200448 0x30000002f9 0x3000200449 0x38000002fa <<\EOF
+foo
+??:0
+pstdin
+??:0
+foo+0x1
+??:0
+pstdin+0x1
+??:0
+foo+0x2
+??:0
+EOF
diff --git a/elfutils/tests/testfile52-32.noshdrs.so.bz2 b/elfutils/tests/testfile52-32.noshdrs.so.bz2
new file mode 100755
index 00000000..01d27424
--- /dev/null
+++ b/elfutils/tests/testfile52-32.noshdrs.so.bz2
Binary files differ
diff --git a/elfutils/tests/testfile52-32.prelink.so.bz2 b/elfutils/tests/testfile52-32.prelink.so.bz2
new file mode 100755
index 00000000..ccb9ae32
--- /dev/null
+++ b/elfutils/tests/testfile52-32.prelink.so.bz2
Binary files differ
diff --git a/elfutils/tests/testfile52-32.so.bz2 b/elfutils/tests/testfile52-32.so.bz2
new file mode 100755
index 00000000..2a5b56ea
--- /dev/null
+++ b/elfutils/tests/testfile52-32.so.bz2
Binary files differ
diff --git a/elfutils/tests/testfile52-32.so.debug.bz2 b/elfutils/tests/testfile52-32.so.debug.bz2
new file mode 100755
index 00000000..818b36d5
--- /dev/null
+++ b/elfutils/tests/testfile52-32.so.debug.bz2
Binary files differ
diff --git a/elfutils/tests/testfile52-64.noshdrs.so.bz2 b/elfutils/tests/testfile52-64.noshdrs.so.bz2
new file mode 100755
index 00000000..5ca310f0
--- /dev/null
+++ b/elfutils/tests/testfile52-64.noshdrs.so.bz2
Binary files differ
diff --git a/elfutils/tests/testfile52-64.prelink.so.bz2 b/elfutils/tests/testfile52-64.prelink.so.bz2
new file mode 100755
index 00000000..8cb8f482
--- /dev/null
+++ b/elfutils/tests/testfile52-64.prelink.so.bz2
Binary files differ
diff --git a/elfutils/tests/testfile52-64.so.bz2 b/elfutils/tests/testfile52-64.so.bz2
new file mode 100755
index 00000000..8009f07c
--- /dev/null
+++ b/elfutils/tests/testfile52-64.so.bz2
Binary files differ
diff --git a/elfutils/tests/testfile52-64.so.debug.bz2 b/elfutils/tests/testfile52-64.so.debug.bz2
new file mode 100755
index 00000000..4397788f
--- /dev/null
+++ b/elfutils/tests/testfile52-64.so.debug.bz2
Binary files differ
diff --git a/elfutils/tests/testfile53-32.bz2 b/elfutils/tests/testfile53-32.bz2
new file mode 100755
index 00000000..7bf48d9f
--- /dev/null
+++ b/elfutils/tests/testfile53-32.bz2
Binary files differ
diff --git a/elfutils/tests/testfile53-32.debug.bz2 b/elfutils/tests/testfile53-32.debug.bz2
new file mode 100755
index 00000000..79ea566d
--- /dev/null
+++ b/elfutils/tests/testfile53-32.debug.bz2
Binary files differ
diff --git a/elfutils/tests/testfile53-32.prelink.bz2 b/elfutils/tests/testfile53-32.prelink.bz2
new file mode 100755
index 00000000..8e05abf0
--- /dev/null
+++ b/elfutils/tests/testfile53-32.prelink.bz2
Binary files differ
diff --git a/elfutils/tests/testfile53-64.bz2 b/elfutils/tests/testfile53-64.bz2
new file mode 100755
index 00000000..235a7631
--- /dev/null
+++ b/elfutils/tests/testfile53-64.bz2
Binary files differ
diff --git a/elfutils/tests/testfile53-64.debug.bz2 b/elfutils/tests/testfile53-64.debug.bz2
new file mode 100755
index 00000000..675c6eaf
--- /dev/null
+++ b/elfutils/tests/testfile53-64.debug.bz2
Binary files differ
diff --git a/elfutils/tests/testfile53-64.prelink.bz2 b/elfutils/tests/testfile53-64.prelink.bz2
new file mode 100755
index 00000000..853aba78
--- /dev/null
+++ b/elfutils/tests/testfile53-64.prelink.bz2
Binary files differ
diff --git a/elfutils/tests/testfile54-32.noshdrs.so.bz2 b/elfutils/tests/testfile54-32.noshdrs.so.bz2
new file mode 100755
index 00000000..846bc91e
--- /dev/null
+++ b/elfutils/tests/testfile54-32.noshdrs.so.bz2
Binary files differ
diff --git a/elfutils/tests/testfile54-32.prelink.so.bz2 b/elfutils/tests/testfile54-32.prelink.so.bz2
new file mode 100755
index 00000000..85c8526c
--- /dev/null
+++ b/elfutils/tests/testfile54-32.prelink.so.bz2
Binary files differ
diff --git a/elfutils/tests/testfile54-32.so.bz2 b/elfutils/tests/testfile54-32.so.bz2
new file mode 100755
index 00000000..4bc4fa37
--- /dev/null
+++ b/elfutils/tests/testfile54-32.so.bz2
Binary files differ
diff --git a/elfutils/tests/testfile54-32.so.debug.bz2 b/elfutils/tests/testfile54-32.so.debug.bz2
new file mode 100755
index 00000000..79dd614d
--- /dev/null
+++ b/elfutils/tests/testfile54-32.so.debug.bz2
Binary files differ
diff --git a/elfutils/tests/testfile54-64.noshdrs.so.bz2 b/elfutils/tests/testfile54-64.noshdrs.so.bz2
new file mode 100755
index 00000000..3da726a6
--- /dev/null
+++ b/elfutils/tests/testfile54-64.noshdrs.so.bz2
Binary files differ
diff --git a/elfutils/tests/testfile54-64.prelink.so.bz2 b/elfutils/tests/testfile54-64.prelink.so.bz2
new file mode 100755
index 00000000..e296a1d9
--- /dev/null
+++ b/elfutils/tests/testfile54-64.prelink.so.bz2
Binary files differ
diff --git a/elfutils/tests/testfile54-64.so.bz2 b/elfutils/tests/testfile54-64.so.bz2
new file mode 100755
index 00000000..6072bf19
--- /dev/null
+++ b/elfutils/tests/testfile54-64.so.bz2
Binary files differ
diff --git a/elfutils/tests/testfile54-64.so.debug.bz2 b/elfutils/tests/testfile54-64.so.debug.bz2
new file mode 100755
index 00000000..6b45390e
--- /dev/null
+++ b/elfutils/tests/testfile54-64.so.debug.bz2
Binary files differ
diff --git a/elfutils/version.h b/elfutils/version.h
index f53c42a0..687236d9 100644
--- a/elfutils/version.h
+++ b/elfutils/version.h
@@ -50,7 +50,7 @@
#ifndef _ELFUTILS_VERSION_H
#define _ELFUTILS_VERSION_H 1
-#define _ELFUTILS_VERSION 150
+#define _ELFUTILS_VERSION 151
#define _ELFUTILS_PREREQ(major, minor) \
(_ELFUTILS_VERSION >= ((major) * 1000 + (minor)))