0.168-1 - New upstream release from https://sourceware.org/elfutils/
This commit is contained in:
parent
d3c2ef0ac8
commit
af747cd683
1
.gitignore
vendored
1
.gitignore
vendored
@ -8,3 +8,4 @@
|
||||
/elfutils-0.165.tar.bz2
|
||||
/elfutils-0.166.tar.bz2
|
||||
/elfutils-0.167.tar.bz2
|
||||
/elfutils-0.168.tar.bz2
|
||||
|
@ -1,50 +0,0 @@
|
||||
From 836a16fe5b5bab4a3afe2c991c104652775ce3a3 Mon Sep 17 00:00:00 2001
|
||||
From: David Abdurachmanov <davidlt@cern.ch>
|
||||
Date: Mon, 11 Apr 2016 16:00:57 +0200
|
||||
Subject: [PATCH] elfcmp: fix self-comparison error with GCC 6
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Noticed with Fedora 24 Alpha, gcc (GCC) 6.0.0 20160406
|
||||
(Red Hat 6.0.0-0.20).
|
||||
|
||||
elfcmp.c: In function ‘main’:
|
||||
elfcmp.c:364:199: error: self-comparison always evaluates
|
||||
to false [-Werror=tautological-compare]
|
||||
if (unlikely (name1 == NULL || name2 == NULL
|
||||
|
||||
Signed-off-by: David Abdurachmanov <davidlt@cern.ch>
|
||||
---
|
||||
src/ChangeLog | 4 ++++
|
||||
src/elfcmp.c | 2 +-
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/ChangeLog b/src/ChangeLog
|
||||
index f74b5dc..bdc9d13 100644
|
||||
--- a/src/ChangeLog
|
||||
+++ b/src/ChangeLog
|
||||
@@ -1,3 +1,7 @@
|
||||
+2016-04-11 David Abdurachmanov <davidlt@cern.ch>
|
||||
+
|
||||
+ * elfcmp.c (main): Fix self-comparison error with GCC 6.
|
||||
+
|
||||
2016-03-21 Mark Wielaard <mjw@redhat.com>
|
||||
|
||||
* nm.c (show_symbols): Check for malloc size argument overflow.
|
||||
diff --git a/src/elfcmp.c b/src/elfcmp.c
|
||||
index 852b92f..7b5d39c 100644
|
||||
--- a/src/elfcmp.c
|
||||
+++ b/src/elfcmp.c
|
||||
@@ -368,7 +368,7 @@ main (int argc, char *argv[])
|
||||
&& sym1->st_shndx != SHN_UNDEF)
|
||||
|| sym1->st_info != sym2->st_info
|
||||
|| sym1->st_other != sym2->st_other
|
||||
- || sym1->st_shndx != sym1->st_shndx))
|
||||
+ || sym1->st_shndx != sym2->st_shndx))
|
||||
{
|
||||
// XXX Do we want to allow reordered symbol tables?
|
||||
symtab_mismatch:
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,92 +0,0 @@
|
||||
commit 7bf4b63a4980788e6c1969cae02f0483e79c069f
|
||||
Author: Mark Wielaard <mjw@redhat.com>
|
||||
Date: Thu Oct 6 16:06:32 2016 +0200
|
||||
|
||||
strip: Don't remove real symbols from allocated symbol tables.
|
||||
|
||||
Having a symbol in an allocated symbol table (like .dynsym) that
|
||||
points to an unallocated section is wrong. Traditionally strip
|
||||
has removed such symbols if they are section or group symbols.
|
||||
But removing a real symbol from an allocate symbol table is hard
|
||||
and probably a mistake. Really removing it means rewriting the
|
||||
dynamic segment and hash sections. Since we don't do that, don't
|
||||
remove the symbol (and corrupt the ELF file). Do warn and set
|
||||
the symbol section to SHN_UNDEF.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1380961
|
||||
|
||||
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
||||
|
||||
diff --git a/src/ChangeLog b/src/ChangeLog
|
||||
index e5b3b20..70d11f2 100644
|
||||
--- a/src/ChangeLog
|
||||
+++ b/src/ChangeLog
|
||||
@@ -1,3 +1,8 @@
|
||||
+2016-10-06 Mark Wielaard <mjw@redhat.com>
|
||||
+
|
||||
+ * strip.c (handle_elf): Don't remove real symbols from allocated
|
||||
+ symbol tables.
|
||||
+
|
||||
2016-08-25 Mark Wielaard <mjw@redhat.com>
|
||||
|
||||
* strip.c (handle_elf): Recompress with ELF_CHF_FORCE.
|
||||
diff --git a/src/strip.c b/src/strip.c
|
||||
index da093e9..819b67e 100644
|
||||
--- a/src/strip.c
|
||||
+++ b/src/strip.c
|
||||
@@ -1341,15 +1341,12 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
|
||||
|
||||
/* Get the full section index, if necessary from the
|
||||
XINDEX table. */
|
||||
- if (sym->st_shndx != SHN_XINDEX)
|
||||
- sec = shdr_info[sym->st_shndx].idx;
|
||||
- else
|
||||
- {
|
||||
- elf_assert (shndxdata != NULL
|
||||
- && shndxdata->d_buf != NULL);
|
||||
-
|
||||
- sec = shdr_info[xshndx].idx;
|
||||
- }
|
||||
+ if (sym->st_shndx == SHN_XINDEX)
|
||||
+ elf_assert (shndxdata != NULL
|
||||
+ && shndxdata->d_buf != NULL);
|
||||
+ size_t sidx = (sym->st_shndx != SHN_XINDEX
|
||||
+ ? sym->st_shndx : xshndx);
|
||||
+ sec = shdr_info[sidx].idx;
|
||||
|
||||
if (sec != 0)
|
||||
{
|
||||
@@ -1387,6 +1384,24 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
|
||||
shdr_info[cnt].shdr.sh_info = destidx - 1;
|
||||
}
|
||||
}
|
||||
+ else if ((shdr_info[cnt].shdr.sh_flags & SHF_ALLOC) != 0
|
||||
+ && GELF_ST_TYPE (sym->st_info) != STT_SECTION
|
||||
+ && shdr_info[sidx].shdr.sh_type != SHT_GROUP)
|
||||
+ {
|
||||
+ /* Removing a real symbol from an allocated
|
||||
+ symbol table is hard and probably a
|
||||
+ mistake. Really removing it means
|
||||
+ rewriting the dynamic segment and hash
|
||||
+ sections. Just warn and set the symbol
|
||||
+ section to UNDEF. */
|
||||
+ error (0, 0,
|
||||
+ gettext ("Cannot remove symbol [%zd] from allocated symbol table [%zd]"), inner, cnt);
|
||||
+ sym->st_shndx = SHN_UNDEF;
|
||||
+ if (gelf_update_sym (shdr_info[cnt].data, destidx,
|
||||
+ sym) == 0)
|
||||
+ INTERNAL_ERROR (fname);
|
||||
+ shdr_info[cnt].newsymidx[inner] = destidx++;
|
||||
+ }
|
||||
else if (debug_fname != NULL
|
||||
&& shdr_info[cnt].debug_data == NULL)
|
||||
/* The symbol points to a section that is discarded
|
||||
@@ -1394,8 +1409,6 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
|
||||
this is a section or group signature symbol
|
||||
for a section which has been removed. */
|
||||
{
|
||||
- size_t sidx = (sym->st_shndx != SHN_XINDEX
|
||||
- ? sym->st_shndx : xshndx);
|
||||
elf_assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION
|
||||
|| ((shdr_info[sidx].shdr.sh_type
|
||||
== SHT_GROUP)
|
@ -1,9 +1,9 @@
|
||||
Name: elfutils
|
||||
Summary: A collection of utilities and DSOs to handle compiled objects
|
||||
Version: 0.167
|
||||
%global baserelease 2
|
||||
URL: https://fedorahosted.org/elfutils/
|
||||
%global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/
|
||||
Summary: A collection of utilities and DSOs to handle ELF files and DWARF data
|
||||
Version: 0.168
|
||||
%global baserelease 1
|
||||
URL: http://elfutils.org/
|
||||
%global source_url ftp://sourceware.org/pub/elfutils/%{version}/
|
||||
License: GPLv3+ and (GPLv2+ or LGPLv3+)
|
||||
Group: Development/Tools
|
||||
|
||||
@ -20,7 +20,6 @@ Release: %{baserelease}%{?dist}
|
||||
Source: %{?source_url}%{name}-%{version}.tar.bz2
|
||||
|
||||
# Patches
|
||||
Patch1: elfutils-0.167-strip-alloc-symbol.patch
|
||||
|
||||
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
||||
Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
||||
@ -164,7 +163,6 @@ profiling) of processes.
|
||||
%setup -q
|
||||
|
||||
# Apply patches
|
||||
%patch1 -p1 -b .strip_alloc_sym
|
||||
|
||||
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
||||
|
||||
@ -295,6 +293,13 @@ rm -rf ${RPM_BUILD_ROOT}
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Dec 28 2016 Mark Wielaard <mark@klomp.org> - 0.168-1
|
||||
- New upstream release from new home https://sourceware.org/elfutils/
|
||||
- Resolves:
|
||||
- #1396092 Please implement eu-readelf --symbols[=SECTION]
|
||||
- #1388057 memory allocation failure in allocate_elf
|
||||
- #1387584 memory allocation failure in __libelf_set_rawdata_wrlock
|
||||
|
||||
* Fri Oct 7 2016 Mark Wielaard <mjw@redhat.com> - 0.167-2
|
||||
- Add elfutils-0.167-strip-alloc-symbol.patch (#1380961)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user