SHA256
1
0
forked from pool/elfutils

Accepting request 206934 from Base:System

update to 0.157, see ChangeLog (forwarded request 206750 from jones_tony)

OBS-URL: https://build.opensuse.org/request/show/206934
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/elfutils?expand=0&rev=40
This commit is contained in:
Tomáš Chvátal 2013-11-15 07:37:03 +00:00 committed by Git OBS Bridge
commit a42d9e7b8a
8 changed files with 437 additions and 775 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:68444a4526416ffd68852ec3c6a40ceddcca46538297322405319884c5d30ed8
size 2477883

3
elfutils-0.157.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4fadc9c0c19d02fb6d2bdfee65f20ddbecba398d3f714e2b6c42ffc4615cce85
size 2624207

View File

@ -1,203 +0,0 @@
Index: elfutils-0.155/config/config.guess
===================================================================
--- elfutils-0.155.orig/config/config.guess
+++ elfutils-0.155/config/config.guess
@@ -17,9 +17,7 @@ timestamp='2012-01-01'
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -202,6 +200,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
exit ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -279,7 +281,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
- exit ;;
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
exit ;;
@@ -863,6 +868,13 @@ EOF
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
+ aarch64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
@@ -1196,6 +1208,9 @@ EOF
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
echo i586-pc-haiku
exit ;;
+ x86_64:Haiku:*:*)
+ echo x86_64-unknown-haiku
+ exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
@@ -1251,7 +1266,10 @@ EOF
NEO-?:NONSTOP_KERNEL:*:*)
echo neo-tandem-nsk${UNAME_RELEASE}
exit ;;
- NSE-?:NONSTOP_KERNEL:*:*)
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSE-*:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
NSR-?:NONSTOP_KERNEL:*:*)
@@ -1320,11 +1338,11 @@ EOF
i*86:AROS:*:*)
echo ${UNAME_MACHINE}-pc-aros
exit ;;
+ x86_64:VMkernel:*:*)
+ echo ${UNAME_MACHINE}-unknown-esx
+ exit ;;
esac
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
eval $set_cc_for_build
cat >$dummy.c <<EOF
#ifdef _SEQUENT_
Index: elfutils-0.155/config/config.sub
===================================================================
--- elfutils-0.155.orig/config/config.sub
+++ elfutils-0.155/config/config.sub
@@ -21,9 +21,7 @@ timestamp='2012-01-01'
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -223,6 +221,12 @@ case $os in
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
+ -lynx*178)
+ os=-lynxos178
+ ;;
+ -lynx*5)
+ os=-lynxos5
+ ;;
-lynx*)
os=-lynxos
;;
@@ -341,6 +345,21 @@ case $basic_machine in
basic_machine=armel-unknown
;;
+ strongarm | thumb | xscale)
+ basic_machine=arm-unknown
+ ;;
+ xgate)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ xscaleeb)
+ basic_machine=armeb-unknown
+ ;;
+
+ xscaleel)
+ basic_machine=armel-unknown
+ ;;
+
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
@@ -818,6 +837,10 @@ case $basic_machine in
basic_machine=i386-pc
os=-msys
;;
+ msys)
+ basic_machine=i386-pc
+ os=-msys
+ ;;
mvs)
basic_machine=i370-ibm
os=-mvs
@@ -826,6 +849,10 @@ case $basic_machine in
basic_machine=le32-unknown
os=-nacl
;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
@@ -896,6 +923,12 @@ case $basic_machine in
nse-tandem)
basic_machine=nse-tandem
;;
+ neo-tandem)
+ basic_machine=neo-tandem
+ ;;
+ nse-tandem)
+ basic_machine=nse-tandem
+ ;;
nsr-tandem)
basic_machine=nsr-tandem
;;
@@ -1078,6 +1111,9 @@ case $basic_machine in
strongarm-* | thumb-*)
basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
sun2)
basic_machine=m68000-sun
;;
@@ -1208,6 +1244,9 @@ case $basic_machine in
xscale-* | xscalee[bl]-*)
basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
;;
+ xscale-* | xscalee[bl]-*)
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ;;
ymp)
basic_machine=ymp-cray
os=-unicos
@@ -1490,6 +1529,8 @@ case $os in
;;
-nacl*)
;;
+ -nacl*)
+ ;;
-none)
;;
*)

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,6 @@
Index: elfutils-0.155/libdwfl/ChangeLog --- elfutils/libdwfl/ChangeLog
=================================================================== +++ elfutils/libdwfl/ChangeLog
--- elfutils-0.155.orig/libdwfl/ChangeLog @@ -256,6 +256,11 @@
+++ elfutils-0.155/libdwfl/ChangeLog
@@ -52,6 +52,11 @@
* dwfl_module_getdwarf.c (open_elf): Clear errno before CBFAIL. * dwfl_module_getdwarf.c (open_elf): Clear errno before CBFAIL.
Reported by Kurt Roeckx <kurt@roeckx.be>. Reported by Kurt Roeckx <kurt@roeckx.be>.
@ -14,10 +12,8 @@ Index: elfutils-0.155/libdwfl/ChangeLog
2011-02-11 Roland McGrath <roland@redhat.com> 2011-02-11 Roland McGrath <roland@redhat.com>
* linux-kernel-modules.c (try_kernel_name): Try .gz, .bz2, .xz * linux-kernel-modules.c (try_kernel_name): Try .gz, .bz2, .xz
Index: elfutils-0.155/libdwfl/relocate.c --- elfutils/libdwfl/relocate.c
=================================================================== +++ elfutils/libdwfl/relocate.c
--- elfutils-0.155.orig/libdwfl/relocate.c
+++ elfutils-0.155/libdwfl/relocate.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Relocate debug information. /* Relocate debug information.
- Copyright (C) 2005-2010 Red Hat, Inc. - Copyright (C) 2005-2010 Red Hat, Inc.
@ -25,7 +21,7 @@ Index: elfutils-0.155/libdwfl/relocate.c
This file is part of elfutils. This file is part of elfutils.
This file is free software; you can redistribute it and/or modify This file is free software; you can redistribute it and/or modify
@@ -457,7 +457,10 @@ relocate_section (Dwfl_Module *mod, Elf @@ -456,7 +456,10 @@ relocate_section (Dwfl_Module *mod, Elf
} }
} }
@ -37,7 +33,7 @@ Index: elfutils-0.155/libdwfl/relocate.c
size_t complete = 0; size_t complete = 0;
if (shdr->sh_type == SHT_REL) if (shdr->sh_type == SHT_REL)
for (size_t relidx = 0; !result && relidx < nrels; ++relidx) for (size_t relidx = 0; !result && relidx < nrels; ++relidx)
@@ -559,7 +562,7 @@ relocate_section (Dwfl_Module *mod, Elf @@ -558,7 +561,7 @@ relocate_section (Dwfl_Module *mod, Elf
nrels = next; nrels = next;
} }
@ -46,11 +42,9 @@ Index: elfutils-0.155/libdwfl/relocate.c
gelf_update_shdr (scn, shdr); gelf_update_shdr (scn, shdr);
} }
Index: elfutils-0.155/libelf/ChangeLog --- elfutils/libelf/ChangeLog
=================================================================== +++ elfutils/libelf/ChangeLog
--- elfutils-0.155.orig/libelf/ChangeLog @@ -715,10 +715,53 @@
+++ elfutils-0.155/libelf/ChangeLog
@@ -708,10 +708,53 @@
If section content hasn't been read yet, do it before looking for the 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. block size. If no section data present, infer size of section header.
@ -104,10 +98,8 @@ Index: elfutils-0.155/libelf/ChangeLog
2005-05-09 Ulrich Drepper <drepper@redhat.com> 2005-05-09 Ulrich Drepper <drepper@redhat.com>
* elf.h: Update from glibc. * elf.h: Update from glibc.
Index: elfutils-0.155/libelf/elf32_getphdr.c --- elfutils/libelf/elf32_getphdr.c
=================================================================== +++ elfutils/libelf/elf32_getphdr.c
--- elfutils-0.155.orig/libelf/elf32_getphdr.c
+++ elfutils-0.155/libelf/elf32_getphdr.c
@@ -93,6 +93,16 @@ __elfw2(LIBELFBITS,getphdr_wrlock) (elf) @@ -93,6 +93,16 @@ __elfw2(LIBELFBITS,getphdr_wrlock) (elf)
if (elf->map_address != NULL) if (elf->map_address != NULL)
@ -125,10 +117,8 @@ Index: elfutils-0.155/libelf/elf32_getphdr.c
/* All the data is already mapped. Use it. */ /* All the data is already mapped. Use it. */
void *file_phdr = ((char *) elf->map_address void *file_phdr = ((char *) elf->map_address
+ elf->start_offset + ehdr->e_phoff); + elf->start_offset + ehdr->e_phoff);
Index: elfutils-0.155/libelf/elf32_getshdr.c --- elfutils/libelf/elf32_getshdr.c
=================================================================== +++ elfutils/libelf/elf32_getshdr.c
--- elfutils-0.155.orig/libelf/elf32_getshdr.c
+++ elfutils-0.155/libelf/elf32_getshdr.c
@@ -60,7 +60,8 @@ load_shdr_wrlock (Elf_Scn *scn) @@ -60,7 +60,8 @@ load_shdr_wrlock (Elf_Scn *scn)
goto out; goto out;
@ -156,10 +146,8 @@ Index: elfutils-0.155/libelf/elf32_getshdr.c
ElfW2(LIBELFBITS,Shdr) *notcvt; ElfW2(LIBELFBITS,Shdr) *notcvt;
/* All the data is already mapped. If we could use it /* All the data is already mapped. If we could use it
Index: elfutils-0.155/libelf/elf32_newphdr.c --- elfutils/libelf/elf32_newphdr.c
=================================================================== +++ elfutils/libelf/elf32_newphdr.c
--- elfutils-0.155.orig/libelf/elf32_newphdr.c
+++ elfutils-0.155/libelf/elf32_newphdr.c
@@ -114,6 +114,12 @@ elfw2(LIBELFBITS,newphdr) (elf, count) @@ -114,6 +114,12 @@ elfw2(LIBELFBITS,newphdr) (elf, count)
|| count == PN_XNUM || count == PN_XNUM
|| elf->state.ELFW(elf,LIBELFBITS).phdr == NULL) || elf->state.ELFW(elf,LIBELFBITS).phdr == NULL)
@ -173,10 +161,8 @@ Index: elfutils-0.155/libelf/elf32_newphdr.c
/* Allocate a new program header with the appropriate number of /* Allocate a new program header with the appropriate number of
elements. */ elements. */
result = (ElfW2(LIBELFBITS,Phdr) *) result = (ElfW2(LIBELFBITS,Phdr) *)
Index: elfutils-0.155/libelf/elf32_updatefile.c --- elfutils/libelf/elf32_updatefile.c
=================================================================== +++ elfutils/libelf/elf32_updatefile.c
--- elfutils-0.155.orig/libelf/elf32_updatefile.c
+++ elfutils-0.155/libelf/elf32_updatefile.c
@@ -202,6 +202,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf @@ -202,6 +202,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf
/* Write all the sections. Well, only those which are modified. */ /* Write all the sections. Well, only those which are modified. */
if (shnum > 0) if (shnum > 0)
@ -198,10 +184,8 @@ Index: elfutils-0.155/libelf/elf32_updatefile.c
off_t shdr_offset = elf->start_offset + ehdr->e_shoff; off_t shdr_offset = elf->start_offset + ehdr->e_shoff;
#if EV_NUM != 2 #if EV_NUM != 2
xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR]; xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR];
Index: elfutils-0.155/libelf/elf_begin.c --- elfutils/libelf/elf_begin.c
=================================================================== +++ elfutils/libelf/elf_begin.c
--- elfutils-0.155.orig/libelf/elf_begin.c
+++ elfutils-0.155/libelf/elf_begin.c
@@ -144,7 +144,8 @@ get_shnum (void *map_address, unsigned c @@ -144,7 +144,8 @@ get_shnum (void *map_address, unsigned c
if (unlikely (result == 0) && ehdr.e32->e_shoff != 0) if (unlikely (result == 0) && ehdr.e32->e_shoff != 0)
@ -267,10 +251,20 @@ Index: elfutils-0.155/libelf/elf_begin.c
elf->state.elf64.shdr elf->state.elf64.shdr
= (Elf64_Shdr *) ((char *) ehdr + ehdr->e_shoff); = (Elf64_Shdr *) ((char *) ehdr + ehdr->e_shoff);
Index: elfutils-0.155/libelf/elf_getshdrstrndx.c --- elfutils/libelf/elf_getarsym.c
=================================================================== +++ elfutils/libelf/elf_getarsym.c
--- elfutils-0.155.orig/libelf/elf_getshdrstrndx.c @@ -183,6 +183,9 @@ elf_getarsym (elf, ptr)
+++ elfutils-0.155/libelf/elf_getshdrstrndx.c size_t index_size = atol (tmpbuf);
if (SARMAG + sizeof (struct ar_hdr) + index_size > elf->maximum_size
+#if SIZE_MAX <= 4294967295U
+ || n >= SIZE_MAX / sizeof (Elf_Arsym)
+#endif
|| n * w > index_size)
{
/* This index table cannot be right since it does not fit into
--- elfutils/libelf/elf_getshdrstrndx.c
+++ elfutils/libelf/elf_getshdrstrndx.c
@@ -104,10 +104,25 @@ elf_getshdrstrndx (elf, dst) @@ -104,10 +104,25 @@ elf_getshdrstrndx (elf, dst)
if (elf->map_address != NULL if (elf->map_address != NULL
&& elf->state.elf32.ehdr->e_ident[EI_DATA] == MY_ELFDATA && elf->state.elf32.ehdr->e_ident[EI_DATA] == MY_ELFDATA
@ -329,10 +323,8 @@ Index: elfutils-0.155/libelf/elf_getshdrstrndx.c
else else
{ {
/* We avoid reading in all the section headers. Just read /* We avoid reading in all the section headers. Just read
Index: elfutils-0.155/libelf/elf_newscn.c --- elfutils/libelf/elf_newscn.c
=================================================================== +++ elfutils/libelf/elf_newscn.c
--- elfutils-0.155.orig/libelf/elf_newscn.c
+++ elfutils-0.155/libelf/elf_newscn.c
@@ -83,10 +83,18 @@ elf_newscn (elf) @@ -83,10 +83,18 @@ elf_newscn (elf)
else else
{ {
@ -353,10 +345,8 @@ Index: elfutils-0.155/libelf/elf_newscn.c
newp = (Elf_ScnList *) calloc (sizeof (Elf_ScnList) newp = (Elf_ScnList *) calloc (sizeof (Elf_ScnList)
+ ((elf->state.elf.scnincr *= 2) + ((elf->state.elf.scnincr *= 2)
* sizeof (Elf_Scn)), 1); * sizeof (Elf_Scn)), 1);
Index: elfutils-0.155/libelf/gelf_getdyn.c --- elfutils/libelf/gelf_getdyn.c
=================================================================== +++ elfutils/libelf/gelf_getdyn.c
--- elfutils-0.155.orig/libelf/gelf_getdyn.c
+++ elfutils-0.155/libelf/gelf_getdyn.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Get information from dynamic table at the given index. /* Get information from dynamic table at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
@ -382,10 +372,8 @@ Index: elfutils-0.155/libelf/gelf_getdyn.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
goto out; goto out;
Index: elfutils-0.155/libelf/gelf_getlib.c --- elfutils/libelf/gelf_getlib.c
=================================================================== +++ elfutils/libelf/gelf_getlib.c
--- elfutils-0.155.orig/libelf/gelf_getlib.c
+++ elfutils-0.155/libelf/gelf_getlib.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Get library from table at the given index. /* Get library from table at the given index.
- Copyright (C) 2004 Red Hat, Inc. - Copyright (C) 2004 Red Hat, Inc.
@ -402,10 +390,8 @@ Index: elfutils-0.155/libelf/gelf_getlib.c
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
else else
{ {
Index: elfutils-0.155/libelf/gelf_getmove.c --- elfutils/libelf/gelf_getmove.c
=================================================================== +++ elfutils/libelf/gelf_getmove.c
--- elfutils-0.155.orig/libelf/gelf_getmove.c
+++ elfutils-0.155/libelf/gelf_getmove.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Get move structure at the given index. /* Get move structure at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
@ -422,10 +408,8 @@ Index: elfutils-0.155/libelf/gelf_getmove.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
goto out; goto out;
Index: elfutils-0.155/libelf/gelf_getrela.c --- elfutils/libelf/gelf_getrela.c
=================================================================== +++ elfutils/libelf/gelf_getrela.c
--- elfutils-0.155.orig/libelf/gelf_getrela.c
+++ elfutils-0.155/libelf/gelf_getrela.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Get RELA relocation information at given index. /* Get RELA relocation information at given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
@ -464,10 +448,8 @@ Index: elfutils-0.155/libelf/gelf_getrela.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
result = NULL; result = NULL;
Index: elfutils-0.155/libelf/gelf_getrel.c --- elfutils/libelf/gelf_getrel.c
=================================================================== +++ elfutils/libelf/gelf_getrel.c
--- elfutils-0.155.orig/libelf/gelf_getrel.c
+++ elfutils-0.155/libelf/gelf_getrel.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Get REL relocation information at given index. /* Get REL relocation information at given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
@ -506,10 +488,8 @@ Index: elfutils-0.155/libelf/gelf_getrel.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
result = NULL; result = NULL;
Index: elfutils-0.155/libelf/gelf_getsym.c --- elfutils/libelf/gelf_getsym.c
=================================================================== +++ elfutils/libelf/gelf_getsym.c
--- elfutils-0.155.orig/libelf/gelf_getsym.c
+++ elfutils-0.155/libelf/gelf_getsym.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Get symbol information from symbol table at the given index. /* Get symbol information from symbol table at the given index.
- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc. - Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
@ -535,10 +515,8 @@ Index: elfutils-0.155/libelf/gelf_getsym.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
goto out; goto out;
Index: elfutils-0.155/libelf/gelf_getsyminfo.c --- elfutils/libelf/gelf_getsyminfo.c
=================================================================== +++ elfutils/libelf/gelf_getsyminfo.c
--- elfutils-0.155.orig/libelf/gelf_getsyminfo.c
+++ elfutils-0.155/libelf/gelf_getsyminfo.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Get additional symbol information from symbol table at the given index. /* Get additional symbol information from symbol table at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
@ -555,10 +533,8 @@ Index: elfutils-0.155/libelf/gelf_getsyminfo.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
goto out; goto out;
Index: elfutils-0.155/libelf/gelf_getsymshndx.c --- elfutils/libelf/gelf_getsymshndx.c
=================================================================== +++ elfutils/libelf/gelf_getsymshndx.c
--- elfutils-0.155.orig/libelf/gelf_getsymshndx.c
+++ elfutils-0.155/libelf/gelf_getsymshndx.c
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
/* Get symbol information and separate section index from symbol table /* Get symbol information and separate section index from symbol table
at the given index. at the given index.
@ -594,10 +570,8 @@ Index: elfutils-0.155/libelf/gelf_getsymshndx.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
goto out; goto out;
Index: elfutils-0.155/libelf/gelf_getversym.c --- elfutils/libelf/gelf_getversym.c
=================================================================== +++ elfutils/libelf/gelf_getversym.c
--- elfutils-0.155.orig/libelf/gelf_getversym.c
+++ elfutils-0.155/libelf/gelf_getversym.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Get symbol version information at the given index. /* Get symbol version information at the given index.
- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc. - Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
@ -614,10 +588,8 @@ Index: elfutils-0.155/libelf/gelf_getversym.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
result = NULL; result = NULL;
Index: elfutils-0.155/libelf/gelf_update_dyn.c --- elfutils/libelf/gelf_update_dyn.c
=================================================================== +++ elfutils/libelf/gelf_update_dyn.c
--- elfutils-0.155.orig/libelf/gelf_update_dyn.c
+++ elfutils-0.155/libelf/gelf_update_dyn.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Update information in dynamic table at the given index. /* Update information in dynamic table at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
@ -656,10 +628,8 @@ Index: elfutils-0.155/libelf/gelf_update_dyn.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
goto out; goto out;
Index: elfutils-0.155/libelf/gelf_update_lib.c --- elfutils/libelf/gelf_update_lib.c
=================================================================== +++ elfutils/libelf/gelf_update_lib.c
--- elfutils-0.155.orig/libelf/gelf_update_lib.c
+++ elfutils-0.155/libelf/gelf_update_lib.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Update library in table at the given index. /* Update library in table at the given index.
- Copyright (C) 2004 Red Hat, Inc. - Copyright (C) 2004 Red Hat, Inc.
@ -689,10 +659,8 @@ Index: elfutils-0.155/libelf/gelf_update_lib.c
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
else else
{ {
Index: elfutils-0.155/libelf/gelf_update_move.c --- elfutils/libelf/gelf_update_move.c
=================================================================== +++ elfutils/libelf/gelf_update_move.c
--- elfutils-0.155.orig/libelf/gelf_update_move.c
+++ elfutils-0.155/libelf/gelf_update_move.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Update move structure at the given index. /* Update move structure at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
@ -710,10 +678,8 @@ Index: elfutils-0.155/libelf/gelf_update_move.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
return 0; return 0;
Index: elfutils-0.155/libelf/gelf_update_rela.c --- elfutils/libelf/gelf_update_rela.c
=================================================================== +++ elfutils/libelf/gelf_update_rela.c
--- elfutils-0.155.orig/libelf/gelf_update_rela.c
+++ elfutils-0.155/libelf/gelf_update_rela.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Update RELA relocation information at given index. /* Update RELA relocation information at given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
@ -752,10 +718,8 @@ Index: elfutils-0.155/libelf/gelf_update_rela.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
goto out; goto out;
Index: elfutils-0.155/libelf/gelf_update_rel.c --- elfutils/libelf/gelf_update_rel.c
=================================================================== +++ elfutils/libelf/gelf_update_rel.c
--- elfutils-0.155.orig/libelf/gelf_update_rel.c
+++ elfutils-0.155/libelf/gelf_update_rel.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Update REL relocation information at given index. /* Update REL relocation information at given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
@ -794,10 +758,8 @@ Index: elfutils-0.155/libelf/gelf_update_rel.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
goto out; goto out;
Index: elfutils-0.155/libelf/gelf_update_sym.c --- elfutils/libelf/gelf_update_sym.c
=================================================================== +++ elfutils/libelf/gelf_update_sym.c
--- elfutils-0.155.orig/libelf/gelf_update_sym.c
+++ elfutils-0.155/libelf/gelf_update_sym.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Update symbol information in symbol table at the given index. /* Update symbol information in symbol table at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
@ -836,10 +798,8 @@ Index: elfutils-0.155/libelf/gelf_update_sym.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
goto out; goto out;
Index: elfutils-0.155/libelf/gelf_update_syminfo.c --- elfutils/libelf/gelf_update_syminfo.c
=================================================================== +++ elfutils/libelf/gelf_update_syminfo.c
--- elfutils-0.155.orig/libelf/gelf_update_syminfo.c
+++ elfutils-0.155/libelf/gelf_update_syminfo.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Update additional symbol information in symbol table at the given index. /* Update additional symbol information in symbol table at the given index.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
@ -869,10 +829,8 @@ Index: elfutils-0.155/libelf/gelf_update_syminfo.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
goto out; goto out;
Index: elfutils-0.155/libelf/gelf_update_symshndx.c --- elfutils/libelf/gelf_update_symshndx.c
=================================================================== +++ elfutils/libelf/gelf_update_symshndx.c
--- elfutils-0.155.orig/libelf/gelf_update_symshndx.c
+++ elfutils-0.155/libelf/gelf_update_symshndx.c
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
/* Update symbol information and section index in symbol table at the /* Update symbol information and section index in symbol table at the
given index. given index.
@ -912,10 +870,8 @@ Index: elfutils-0.155/libelf/gelf_update_symshndx.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
goto out; goto out;
Index: elfutils-0.155/libelf/gelf_update_versym.c --- elfutils/libelf/gelf_update_versym.c
=================================================================== +++ elfutils/libelf/gelf_update_versym.c
--- elfutils-0.155.orig/libelf/gelf_update_versym.c
+++ elfutils-0.155/libelf/gelf_update_versym.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* Update symbol version information. /* Update symbol version information.
- Copyright (C) 2001, 2002 Red Hat, Inc. - Copyright (C) 2001, 2002 Red Hat, Inc.
@ -933,10 +889,8 @@ Index: elfutils-0.155/libelf/gelf_update_versym.c
{ {
__libelf_seterrno (ELF_E_INVALID_INDEX); __libelf_seterrno (ELF_E_INVALID_INDEX);
return 0; return 0;
Index: elfutils-0.155/libelf/libelfP.h --- elfutils/libelf/libelfP.h
=================================================================== +++ elfutils/libelf/libelfP.h
--- elfutils-0.155.orig/libelf/libelfP.h
+++ elfutils-0.155/libelf/libelfP.h
@@ -587,4 +587,8 @@ extern uint32_t __libelf_crc32 (uint32_t @@ -587,4 +587,8 @@ extern uint32_t __libelf_crc32 (uint32_t
/* Align offset to 4 bytes as needed for note name and descriptor data. */ /* Align offset to 4 bytes as needed for note name and descriptor data. */
#define NOTE_ALIGN(n) (((n) + 3) & -4U) #define NOTE_ALIGN(n) (((n) + 3) & -4U)
@ -946,11 +900,9 @@ Index: elfutils-0.155/libelf/libelfP.h
+ unlikely ((data)->d_size / sizeof (type) <= (unsigned int) (ndx)) + unlikely ((data)->d_size / sizeof (type) <= (unsigned int) (ndx))
+ +
#endif /* libelfP.h */ #endif /* libelfP.h */
Index: elfutils-0.155/src/ChangeLog --- elfutils/src/ChangeLog
=================================================================== +++ elfutils/src/ChangeLog
--- elfutils-0.155.orig/src/ChangeLog @@ -504,6 +504,12 @@
+++ elfutils-0.155/src/ChangeLog
@@ -344,6 +344,12 @@
* readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature. * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature.
@ -963,7 +915,7 @@ Index: elfutils-0.155/src/ChangeLog
2011-02-11 Roland McGrath <roland@redhat.com> 2011-02-11 Roland McGrath <roland@redhat.com>
* elfcmp.c (verbose): New variable. * elfcmp.c (verbose): New variable.
@@ -2081,6 +2087,16 @@ @@ -2216,6 +2222,16 @@
object symbols or symbols with unknown type. object symbols or symbols with unknown type.
(check_rel): Likewise. (check_rel): Likewise.
@ -980,7 +932,7 @@ Index: elfutils-0.155/src/ChangeLog
2005-06-08 Roland McGrath <roland@redhat.com> 2005-06-08 Roland McGrath <roland@redhat.com>
* readelf.c (print_ops): Add consts. * readelf.c (print_ops): Add consts.
@@ -2131,6 +2147,19 @@ @@ -2261,6 +2277,19 @@
* readelf.c (dwarf_tag_string): Add new tags. * readelf.c (dwarf_tag_string): Add new tags.
@ -1000,10 +952,8 @@ Index: elfutils-0.155/src/ChangeLog
2005-05-08 Roland McGrath <roland@redhat.com> 2005-05-08 Roland McGrath <roland@redhat.com>
* strip.c (handle_elf): Don't translate hash and versym data formats, * strip.c (handle_elf): Don't translate hash and versym data formats,
Index: elfutils-0.155/src/elflint.c --- elfutils/src/elflint.c
=================================================================== +++ elfutils/src/elflint.c
--- elfutils-0.155.orig/src/elflint.c
+++ elfutils-0.155/src/elflint.c
@@ -123,6 +123,10 @@ static uint32_t shstrndx; @@ -123,6 +123,10 @@ static uint32_t shstrndx;
/* Array to count references in section groups. */ /* Array to count references in section groups. */
static int *scnref; static int *scnref;
@ -1077,7 +1027,7 @@ Index: elfutils-0.155/src/elflint.c
} }
if (sym->st_shndx == SHN_XINDEX) if (sym->st_shndx == SHN_XINDEX)
@@ -1032,9 +1042,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e @@ -1040,9 +1050,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
{ {
GElf_Shdr rcshdr_mem; GElf_Shdr rcshdr_mem;
const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem); const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem);
@ -1091,7 +1041,7 @@ Index: elfutils-0.155/src/elflint.c
{ {
/* Found the dynamic section. Look through it. */ /* Found the dynamic section. Look through it. */
Elf_Data *d = elf_getdata (scn, NULL); Elf_Data *d = elf_getdata (scn, NULL);
@@ -1044,7 +1056,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e @@ -1052,7 +1064,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
{ {
GElf_Dyn dyn_mem; GElf_Dyn dyn_mem;
GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem); GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem);
@ -1102,7 +1052,7 @@ Index: elfutils-0.155/src/elflint.c
if (dyn->d_tag == DT_RELCOUNT) if (dyn->d_tag == DT_RELCOUNT)
{ {
@@ -1058,7 +1072,9 @@ section [%2d] '%s': DT_RELCOUNT used for @@ -1066,7 +1080,9 @@ section [%2d] '%s': DT_RELCOUNT used for
/* Does the number specified number of relative /* Does the number specified number of relative
relocations exceed the total number of relocations exceed the total number of
relocations? */ relocations? */
@ -1113,7 +1063,7 @@ Index: elfutils-0.155/src/elflint.c
ERROR (gettext ("\ ERROR (gettext ("\
section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"), section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"),
idx, section_name (ebl, idx), idx, section_name (ebl, idx),
@@ -1218,7 +1234,8 @@ section [%2d] '%s': no relocations for m @@ -1226,7 +1242,8 @@ section [%2d] '%s': no relocations for m
} }
} }
@ -1123,7 +1073,7 @@ Index: elfutils-0.155/src/elflint.c
ERROR (gettext (reltype == ELF_T_RELA ? "\ ERROR (gettext (reltype == ELF_T_RELA ? "\
section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\ section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\
section [%2d] '%s': section entry size does not match ElfXX_Rel\n"), section [%2d] '%s': section entry size does not match ElfXX_Rel\n"),
@@ -1441,7 +1458,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G @@ -1449,7 +1466,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G
Elf_Data *symdata = elf_getdata (symscn, NULL); Elf_Data *symdata = elf_getdata (symscn, NULL);
enum load_state state = state_undecided; enum load_state state = state_undecided;
@ -1133,7 +1083,7 @@ Index: elfutils-0.155/src/elflint.c
{ {
GElf_Rela rela_mem; GElf_Rela rela_mem;
GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem); GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem);
@@ -1491,7 +1509,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE @@ -1499,7 +1517,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE
Elf_Data *symdata = elf_getdata (symscn, NULL); Elf_Data *symdata = elf_getdata (symscn, NULL);
enum load_state state = state_undecided; enum load_state state = state_undecided;
@ -1143,7 +1093,7 @@ Index: elfutils-0.155/src/elflint.c
{ {
GElf_Rel rel_mem; GElf_Rel rel_mem;
GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem); GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem);
@@ -1590,7 +1609,8 @@ section [%2d] '%s': referenced as string @@ -1598,7 +1617,8 @@ section [%2d] '%s': referenced as string
shdr->sh_link, section_name (ebl, shdr->sh_link), shdr->sh_link, section_name (ebl, shdr->sh_link),
idx, section_name (ebl, idx)); idx, section_name (ebl, idx));
@ -1153,7 +1103,7 @@ Index: elfutils-0.155/src/elflint.c
ERROR (gettext ("\ ERROR (gettext ("\
section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"), section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"),
idx, section_name (ebl, idx)); idx, section_name (ebl, idx));
@@ -1600,7 +1620,7 @@ section [%2d] '%s': section entry size d @@ -1608,7 +1628,7 @@ section [%2d] '%s': section entry size d
idx, section_name (ebl, idx)); idx, section_name (ebl, idx));
bool non_null_warned = false; bool non_null_warned = false;
@ -1162,7 +1112,7 @@ Index: elfutils-0.155/src/elflint.c
{ {
GElf_Dyn dyn_mem; GElf_Dyn dyn_mem;
GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem); GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem);
@@ -1872,6 +1892,8 @@ section [%2d] '%s': entry size does not @@ -1880,6 +1900,8 @@ section [%2d] '%s': entry size does not
idx, section_name (ebl, idx)); idx, section_name (ebl, idx));
if (symshdr != NULL if (symshdr != NULL
@ -1171,7 +1121,7 @@ Index: elfutils-0.155/src/elflint.c
&& (shdr->sh_size / shdr->sh_entsize && (shdr->sh_size / shdr->sh_entsize
< symshdr->sh_size / symshdr->sh_entsize)) < symshdr->sh_size / symshdr->sh_entsize))
ERROR (gettext ("\ ERROR (gettext ("\
@@ -1898,6 +1920,12 @@ section [%2d] '%s': extended section ind @@ -1906,6 +1928,12 @@ section [%2d] '%s': extended section ind
} }
Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL); Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL);
@ -1184,7 +1134,7 @@ Index: elfutils-0.155/src/elflint.c
if (*((Elf32_Word *) data->d_buf) != 0) if (*((Elf32_Word *) data->d_buf) != 0)
ERROR (gettext ("symbol 0 should have zero extended section index\n")); ERROR (gettext ("symbol 0 should have zero extended section index\n"));
@@ -1940,7 +1968,7 @@ section [%2d] '%s': hash table section i @@ -1948,7 +1976,7 @@ section [%2d] '%s': hash table section i
size_t maxidx = nchain; size_t maxidx = nchain;
@ -1193,7 +1143,7 @@ Index: elfutils-0.155/src/elflint.c
{ {
size_t symsize = symshdr->sh_size / symshdr->sh_entsize; size_t symsize = symshdr->sh_size / symshdr->sh_entsize;
@@ -1951,18 +1979,28 @@ section [%2d] '%s': hash table section i @@ -1959,18 +1987,28 @@ section [%2d] '%s': hash table section i
maxidx = symsize; maxidx = symsize;
} }
@ -1224,7 +1174,7 @@ Index: elfutils-0.155/src/elflint.c
} }
@@ -1992,18 +2030,28 @@ section [%2d] '%s': hash table section i @@ -2000,18 +2038,28 @@ section [%2d] '%s': hash table section i
maxidx = symsize; maxidx = symsize;
} }
@ -1256,7 +1206,7 @@ Index: elfutils-0.155/src/elflint.c
} }
@@ -2028,7 +2076,7 @@ section [%2d] '%s': bitmask size not pow @@ -2036,7 +2084,7 @@ section [%2d] '%s': bitmask size not pow
if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)) if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))
{ {
ERROR (gettext ("\ ERROR (gettext ("\
@ -1265,7 +1215,7 @@ Index: elfutils-0.155/src/elflint.c
idx, section_name (ebl, idx), (long int) shdr->sh_size, idx, section_name (ebl, idx), (long int) shdr->sh_size,
(long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))); (long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)));
return; return;
@@ -2700,8 +2748,9 @@ section [%2d] '%s' refers in sh_link to @@ -2708,8 +2756,9 @@ section [%2d] '%s' refers in sh_link to
/* The number of elements in the version symbol table must be the /* The number of elements in the version symbol table must be the
same as the number of symbols. */ same as the number of symbols. */
@ -1277,11 +1227,9 @@ Index: elfutils-0.155/src/elflint.c
ERROR (gettext ("\ ERROR (gettext ("\
section [%2d] '%s' has different number of entries than symbol table [%2d] '%s'\n"), section [%2d] '%s' has different number of entries than symbol table [%2d] '%s'\n"),
idx, section_name (ebl, idx), idx, section_name (ebl, idx),
Index: elfutils-0.155/src/readelf.c --- elfutils/src/readelf.c
=================================================================== +++ elfutils/src/readelf.c
--- elfutils-0.155.orig/src/readelf.c @@ -1363,6 +1363,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
+++ elfutils-0.155/src/readelf.c
@@ -1189,6 +1189,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
Elf32_Word *grpref = (Elf32_Word *) data->d_buf; Elf32_Word *grpref = (Elf32_Word *) data->d_buf;
GElf_Sym sym_mem; GElf_Sym sym_mem;
@ -1290,7 +1238,7 @@ Index: elfutils-0.155/src/readelf.c
printf ((grpref[0] & GRP_COMDAT) printf ((grpref[0] & GRP_COMDAT)
? ngettext ("\ ? ngettext ("\
\nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n", \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n",
@@ -1201,8 +1203,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G @@ -1375,8 +1377,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
data->d_size / sizeof (Elf32_Word) - 1), data->d_size / sizeof (Elf32_Word) - 1),
elf_ndxscn (scn), elf_ndxscn (scn),
elf_strptr (ebl->elf, shstrndx, shdr->sh_name), elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
@ -1301,7 +1249,7 @@ Index: elfutils-0.155/src/readelf.c
?: gettext ("<INVALID SYMBOL>"), ?: gettext ("<INVALID SYMBOL>"),
data->d_size / sizeof (Elf32_Word) - 1); data->d_size / sizeof (Elf32_Word) - 1);
@@ -1353,10 +1355,12 @@ static void @@ -1527,10 +1529,12 @@ static void
handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
{ {
int class = gelf_getclass (ebl->elf); int class = gelf_getclass (ebl->elf);
@ -1315,7 +1263,7 @@ Index: elfutils-0.155/src/readelf.c
/* Get the data of the section. */ /* Get the data of the section. */
data = elf_getdata (scn, NULL); data = elf_getdata (scn, NULL);
@@ -1368,21 +1372,26 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, @@ -1542,21 +1546,26 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn,
error (EXIT_FAILURE, 0, error (EXIT_FAILURE, 0,
gettext ("cannot get section header string table index")); gettext ("cannot get section header string table index"));
@ -1348,7 +1296,7 @@ Index: elfutils-0.155/src/readelf.c
{ {
GElf_Dyn dynmem; GElf_Dyn dynmem;
GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dynmem); GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dynmem);
@@ -1531,7 +1540,8 @@ static void @@ -1705,7 +1714,8 @@ static void
handle_relocs_rel (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr) handle_relocs_rel (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
{ {
int class = gelf_getclass (ebl->elf); int class = gelf_getclass (ebl->elf);
@ -1358,7 +1306,7 @@ Index: elfutils-0.155/src/readelf.c
/* Get the data of the section. */ /* Get the data of the section. */
Elf_Data *data = elf_getdata (scn, NULL); Elf_Data *data = elf_getdata (scn, NULL);
@@ -1717,7 +1727,8 @@ static void @@ -1891,7 +1901,8 @@ static void
handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr) handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
{ {
int class = gelf_getclass (ebl->elf); int class = gelf_getclass (ebl->elf);
@ -1368,7 +1316,7 @@ Index: elfutils-0.155/src/readelf.c
/* Get the data of the section. */ /* Get the data of the section. */
Elf_Data *data = elf_getdata (scn, NULL); Elf_Data *data = elf_getdata (scn, NULL);
@@ -1964,6 +1975,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G @@ -2138,6 +2149,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
error (EXIT_FAILURE, 0, error (EXIT_FAILURE, 0,
gettext ("cannot get section header string table index")); gettext ("cannot get section header string table index"));
@ -1382,7 +1330,7 @@ Index: elfutils-0.155/src/readelf.c
/* Now we can compute the number of entries in the section. */ /* Now we can compute the number of entries in the section. */
unsigned int nsyms = data->d_size / (class == ELFCLASS32 unsigned int nsyms = data->d_size / (class == ELFCLASS32
? sizeof (Elf32_Sym) ? sizeof (Elf32_Sym)
@@ -1974,15 +1992,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G @@ -2148,15 +2166,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
nsyms), nsyms),
(unsigned int) elf_ndxscn (scn), (unsigned int) elf_ndxscn (scn),
elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms); elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms);
@ -1399,7 +1347,7 @@ Index: elfutils-0.155/src/readelf.c
fputs_unlocked (class == ELFCLASS32 fputs_unlocked (class == ELFCLASS32
? gettext ("\ ? gettext ("\
@@ -2218,7 +2233,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, @@ -2392,7 +2407,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn,
error (EXIT_FAILURE, 0, error (EXIT_FAILURE, 0,
gettext ("cannot get section header string table index")); gettext ("cannot get section header string table index"));
@ -1414,7 +1362,7 @@ Index: elfutils-0.155/src/readelf.c
printf (ngettext ("\ printf (ngettext ("\
\nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
"\ "\
@@ -2229,9 +2250,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, @@ -2403,9 +2424,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn,
class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
shdr->sh_offset, shdr->sh_offset,
(unsigned int) shdr->sh_link, (unsigned int) shdr->sh_link,
@ -1425,7 +1373,7 @@ Index: elfutils-0.155/src/readelf.c
unsigned int offset = 0; unsigned int offset = 0;
for (int cnt = shdr->sh_info; --cnt >= 0; ) for (int cnt = shdr->sh_info; --cnt >= 0; )
@@ -2284,8 +2303,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G @@ -2458,8 +2477,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
error (EXIT_FAILURE, 0, error (EXIT_FAILURE, 0,
gettext ("cannot get section header string table index")); gettext ("cannot get section header string table index"));
@ -1441,7 +1389,7 @@ Index: elfutils-0.155/src/readelf.c
printf (ngettext ("\ printf (ngettext ("\
\nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
"\ "\
@@ -2297,9 +2322,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G @@ -2471,9 +2496,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
shdr->sh_offset, shdr->sh_offset,
(unsigned int) shdr->sh_link, (unsigned int) shdr->sh_link,
@ -1452,7 +1400,7 @@ Index: elfutils-0.155/src/readelf.c
unsigned int offset = 0; unsigned int offset = 0;
for (int cnt = shdr->sh_info; --cnt >= 0; ) for (int cnt = shdr->sh_info; --cnt >= 0; )
@@ -2561,25 +2584,30 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G @@ -2735,25 +2758,30 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G
filename = NULL; filename = NULL;
} }
@ -1490,7 +1438,7 @@ Index: elfutils-0.155/src/readelf.c
{ {
if (cnt % 2 == 0) if (cnt % 2 == 0)
printf ("\n %4d:", cnt); printf ("\n %4d:", cnt);
@@ -2628,7 +2656,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, @@ -2802,7 +2830,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt) for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt)
++counts[lengths[cnt]]; ++counts[lengths[cnt]];
@ -1509,7 +1457,7 @@ Index: elfutils-0.155/src/readelf.c
printf (ngettext ("\ printf (ngettext ("\
\nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", \nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
"\ "\
@@ -2641,9 +2679,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, @@ -2815,9 +2853,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
shdr->sh_addr, shdr->sh_addr,
shdr->sh_offset, shdr->sh_offset,
(unsigned int) shdr->sh_link, (unsigned int) shdr->sh_link,
@ -1520,7 +1468,7 @@ Index: elfutils-0.155/src/readelf.c
if (extrastr != NULL) if (extrastr != NULL)
fputs (extrastr, stdout); fputs (extrastr, stdout);
@@ -2903,7 +2939,8 @@ print_liblist (Ebl *ebl) @@ -3077,7 +3113,8 @@ print_liblist (Ebl *ebl)
if (shdr != NULL && shdr->sh_type == SHT_GNU_LIBLIST) if (shdr != NULL && shdr->sh_type == SHT_GNU_LIBLIST)
{ {
@ -1530,7 +1478,7 @@ Index: elfutils-0.155/src/readelf.c
printf (ngettext ("\ printf (ngettext ("\
\nLibrary list section [%2zu] '%s' at offset %#0" PRIx64 " contains %d entry:\n", \nLibrary list section [%2zu] '%s' at offset %#0" PRIx64 " contains %d entry:\n",
"\ "\
@@ -4168,6 +4205,16 @@ print_debug_aranges_section (Dwfl_Module @@ -4397,6 +4434,16 @@ print_decoded_aranges_section (Ebl *ebl,
return; return;
} }
@ -1547,11 +1495,9 @@ Index: elfutils-0.155/src/readelf.c
printf (ngettext ("\ printf (ngettext ("\
\nDWARF section [%2zu] '%s' at offset %#" PRIx64 " contains %zu entry:\n", \nDWARF section [%2zu] '%s' at offset %#" PRIx64 " contains %zu entry:\n",
"\ "\
Index: elfutils-0.155/src/strip.c --- elfutils/src/strip.c
=================================================================== +++ elfutils/src/strip.c
--- elfutils-0.155.orig/src/strip.c @@ -565,6 +565,11 @@ handle_elf (int fd, Elf *elf, const char
+++ elfutils-0.155/src/strip.c
@@ -580,6 +580,11 @@ handle_elf (int fd, Elf *elf, const char
goto fail_close; goto fail_close;
} }
@ -1563,7 +1509,7 @@ Index: elfutils-0.155/src/strip.c
/* Storage for section information. We leave room for two more /* Storage for section information. We leave room for two more
entries since we unconditionally create a section header string entries since we unconditionally create a section header string
table. Maybe some weird tool created an ELF file without one. table. Maybe some weird tool created an ELF file without one.
@@ -601,7 +606,7 @@ handle_elf (int fd, Elf *elf, const char @@ -586,7 +591,7 @@ handle_elf (int fd, Elf *elf, const char
{ {
/* This should always be true (i.e., there should not be any /* This should always be true (i.e., there should not be any
holes in the numbering). */ holes in the numbering). */
@ -1572,7 +1518,7 @@ Index: elfutils-0.155/src/strip.c
shdr_info[cnt].scn = scn; shdr_info[cnt].scn = scn;
@@ -614,6 +619,7 @@ handle_elf (int fd, Elf *elf, const char @@ -599,6 +604,7 @@ handle_elf (int fd, Elf *elf, const char
shdr_info[cnt].shdr.sh_name); shdr_info[cnt].shdr.sh_name);
if (shdr_info[cnt].name == NULL) if (shdr_info[cnt].name == NULL)
{ {
@ -1580,7 +1526,7 @@ Index: elfutils-0.155/src/strip.c
error (0, 0, gettext ("illformed file '%s'"), fname); error (0, 0, gettext ("illformed file '%s'"), fname);
goto fail_close; goto fail_close;
} }
@@ -623,6 +629,8 @@ handle_elf (int fd, Elf *elf, const char @@ -608,6 +614,8 @@ handle_elf (int fd, Elf *elf, const char
/* Remember the shdr.sh_link value. */ /* Remember the shdr.sh_link value. */
shdr_info[cnt].old_sh_link = shdr_info[cnt].shdr.sh_link; shdr_info[cnt].old_sh_link = shdr_info[cnt].shdr.sh_link;
@ -1589,7 +1535,7 @@ Index: elfutils-0.155/src/strip.c
/* Sections in files other than relocatable object files which /* Sections in files other than relocatable object files which
are not loaded can be freely moved by us. In relocatable are not loaded can be freely moved by us. In relocatable
@@ -635,7 +643,7 @@ handle_elf (int fd, Elf *elf, const char @@ -620,7 +628,7 @@ handle_elf (int fd, Elf *elf, const char
appropriate reference. */ appropriate reference. */
if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX)) if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX))
{ {
@ -1598,7 +1544,7 @@ Index: elfutils-0.155/src/strip.c
shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt; shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt;
} }
else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP)) else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP))
@@ -652,7 +660,12 @@ handle_elf (int fd, Elf *elf, const char @@ -637,7 +645,12 @@ handle_elf (int fd, Elf *elf, const char
for (inner = 1; for (inner = 1;
inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word); inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word);
++inner) ++inner)
@ -1611,7 +1557,7 @@ Index: elfutils-0.155/src/strip.c
if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0)) if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0))
/* If the section group contains only one element and this /* If the section group contains only one element and this
@@ -663,7 +676,7 @@ handle_elf (int fd, Elf *elf, const char @@ -648,7 +661,7 @@ handle_elf (int fd, Elf *elf, const char
} }
else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym)) else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym))
{ {
@ -1620,7 +1566,7 @@ Index: elfutils-0.155/src/strip.c
shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt; shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt;
} }
@@ -671,7 +684,7 @@ handle_elf (int fd, Elf *elf, const char @@ -656,7 +669,7 @@ handle_elf (int fd, Elf *elf, const char
discarded right away. */ discarded right away. */
if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0) if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0)
{ {
@ -1629,7 +1575,7 @@ Index: elfutils-0.155/src/strip.c
if (shdr_info[shdr_info[cnt].group_idx].idx == 0) if (shdr_info[shdr_info[cnt].group_idx].idx == 0)
{ {
@@ -747,10 +760,14 @@ handle_elf (int fd, Elf *elf, const char @@ -732,10 +745,14 @@ handle_elf (int fd, Elf *elf, const char
{ {
/* If a relocation section is marked as being removed make /* If a relocation section is marked as being removed make
sure the section it is relocating is removed, too. */ sure the section it is relocating is removed, too. */
@ -1647,7 +1593,7 @@ Index: elfutils-0.155/src/strip.c
/* If a group section is marked as being removed make /* If a group section is marked as being removed make
sure all the sections it contains are being removed, too. */ sure all the sections it contains are being removed, too. */
@@ -794,7 +811,7 @@ handle_elf (int fd, Elf *elf, const char @@ -779,7 +796,7 @@ handle_elf (int fd, Elf *elf, const char
if (shdr_info[cnt].symtab_idx != 0 if (shdr_info[cnt].symtab_idx != 0
&& shdr_info[shdr_info[cnt].symtab_idx].data == NULL) && shdr_info[shdr_info[cnt].symtab_idx].data == NULL)
{ {
@ -1656,7 +1602,7 @@ Index: elfutils-0.155/src/strip.c
shdr_info[shdr_info[cnt].symtab_idx].data shdr_info[shdr_info[cnt].symtab_idx].data
= elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
@@ -834,6 +851,9 @@ handle_elf (int fd, Elf *elf, const char @@ -819,6 +836,9 @@ handle_elf (int fd, Elf *elf, const char
else if (scnidx == SHN_XINDEX) else if (scnidx == SHN_XINDEX)
scnidx = xndx; scnidx = xndx;
@ -1666,7 +1612,7 @@ Index: elfutils-0.155/src/strip.c
if (shdr_info[scnidx].idx == 0) if (shdr_info[scnidx].idx == 0)
/* This symbol table has a real symbol in /* This symbol table has a real symbol in
a discarded section. So preserve the a discarded section. So preserve the
@@ -864,12 +884,16 @@ handle_elf (int fd, Elf *elf, const char @@ -849,12 +869,16 @@ handle_elf (int fd, Elf *elf, const char
} }
/* Handle references through sh_info. */ /* Handle references through sh_info. */
@ -1685,7 +1631,7 @@ Index: elfutils-0.155/src/strip.c
/* Mark the section as investigated. */ /* Mark the section as investigated. */
shdr_info[cnt].idx = 2; shdr_info[cnt].idx = 2;
@@ -1010,7 +1034,7 @@ handle_elf (int fd, Elf *elf, const char @@ -995,7 +1019,7 @@ handle_elf (int fd, Elf *elf, const char
error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"), error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"),
elf_errmsg (-1)); elf_errmsg (-1));
@ -1694,7 +1640,7 @@ Index: elfutils-0.155/src/strip.c
/* Add this name to the section header string table. */ /* Add this name to the section header string table. */
shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0); shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0);
@@ -1047,7 +1071,7 @@ handle_elf (int fd, Elf *elf, const char @@ -1032,7 +1056,7 @@ handle_elf (int fd, Elf *elf, const char
error (EXIT_FAILURE, 0, error (EXIT_FAILURE, 0,
gettext ("while create section header section: %s"), gettext ("while create section header section: %s"),
elf_errmsg (-1)); elf_errmsg (-1));
@ -1703,7 +1649,7 @@ Index: elfutils-0.155/src/strip.c
shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn); shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn);
if (shdr_info[cnt].data == NULL) if (shdr_info[cnt].data == NULL)
@@ -1103,7 +1127,7 @@ handle_elf (int fd, Elf *elf, const char @@ -1089,7 +1113,7 @@ handle_elf (int fd, Elf *elf, const char
error (EXIT_FAILURE, 0, error (EXIT_FAILURE, 0,
gettext ("while create section header section: %s"), gettext ("while create section header section: %s"),
elf_errmsg (-1)); elf_errmsg (-1));
@ -1712,7 +1658,7 @@ Index: elfutils-0.155/src/strip.c
/* Finalize the string table and fill in the correct indices in the /* Finalize the string table and fill in the correct indices in the
section headers. */ section headers. */
@@ -1193,20 +1217,20 @@ handle_elf (int fd, Elf *elf, const char @@ -1179,20 +1203,20 @@ handle_elf (int fd, Elf *elf, const char
shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
NULL); NULL);
@ -1736,7 +1682,7 @@ Index: elfutils-0.155/src/strip.c
>= shdr_info[cnt].data->d_size / elsize); >= shdr_info[cnt].data->d_size / elsize);
} }
@@ -1261,7 +1285,7 @@ handle_elf (int fd, Elf *elf, const char @@ -1247,7 +1271,7 @@ handle_elf (int fd, Elf *elf, const char
sec = shdr_info[sym->st_shndx].idx; sec = shdr_info[sym->st_shndx].idx;
else else
{ {
@ -1745,7 +1691,7 @@ Index: elfutils-0.155/src/strip.c
sec = shdr_info[xshndx].idx; sec = shdr_info[xshndx].idx;
} }
@@ -1282,7 +1306,7 @@ handle_elf (int fd, Elf *elf, const char @@ -1268,7 +1292,7 @@ handle_elf (int fd, Elf *elf, const char
nxshndx = sec; nxshndx = sec;
} }
@ -1754,7 +1700,7 @@ Index: elfutils-0.155/src/strip.c
if ((inner != destidx || nshndx != sym->st_shndx if ((inner != destidx || nshndx != sym->st_shndx
|| (shndxdata != NULL && nxshndx != xshndx)) || (shndxdata != NULL && nxshndx != xshndx))
@@ -1309,9 +1333,11 @@ handle_elf (int fd, Elf *elf, const char @@ -1295,9 +1319,11 @@ handle_elf (int fd, Elf *elf, const char
{ {
size_t sidx = (sym->st_shndx != SHN_XINDEX size_t sidx = (sym->st_shndx != SHN_XINDEX
? sym->st_shndx : xshndx); ? sym->st_shndx : xshndx);
@ -1769,7 +1715,7 @@ Index: elfutils-0.155/src/strip.c
} }
} }
@@ -1499,11 +1525,11 @@ handle_elf (int fd, Elf *elf, const char @@ -1485,11 +1511,11 @@ handle_elf (int fd, Elf *elf, const char
{ {
GElf_Sym sym_mem; GElf_Sym sym_mem;
GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem); GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);
@ -1783,7 +1729,7 @@ Index: elfutils-0.155/src/strip.c
size_t hidx = elf_hash (name) % nbucket; size_t hidx = elf_hash (name) % nbucket;
if (bucket[hidx] == 0) if (bucket[hidx] == 0)
@@ -1522,8 +1548,8 @@ handle_elf (int fd, Elf *elf, const char @@ -1508,8 +1534,8 @@ handle_elf (int fd, Elf *elf, const char
else else
{ {
/* Alpha and S390 64-bit use 64-bit SHT_HASH entries. */ /* Alpha and S390 64-bit use 64-bit SHT_HASH entries. */
@ -1794,7 +1740,7 @@ Index: elfutils-0.155/src/strip.c
Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf; Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf;
@@ -1553,11 +1579,11 @@ handle_elf (int fd, Elf *elf, const char @@ -1539,11 +1565,11 @@ handle_elf (int fd, Elf *elf, const char
{ {
GElf_Sym sym_mem; GElf_Sym sym_mem;
GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem); GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);

View File

@ -1,38 +0,0 @@
Index: elfutils-0.155/src/ar.c
===================================================================
--- elfutils-0.155.orig/src/ar.c
+++ elfutils-0.155/src/ar.c
@@ -461,7 +461,7 @@ do_oper_extract (int oper, const char *a
long int instance)
{
bool found[argc];
- memset (found, '\0', sizeof (found));
+ memset (found, '\0', sizeof (bool) * argc);
size_t name_max = 0;
inline bool should_truncate_fname (void)
@@ -919,7 +919,7 @@ do_oper_delete (const char *arfname, cha
long int instance)
{
bool *found = alloca (sizeof (bool) * argc);
- memset (found, '\0', sizeof (found));
+ memset (found, '\0', sizeof (bool) * argc);
/* List of the files we keep. */
struct armem *to_copy = NULL;
Index: elfutils-0.155/src/nm.c
===================================================================
--- elfutils-0.155.orig/src/nm.c
+++ elfutils-0.155/src/nm.c
@@ -769,8 +769,9 @@ show_symbols_sysv (Ebl *ebl, GElf_Word s
gelf_getshdr (scn, &shdr_mem)->sh_name);
if (unlikely (name == NULL))
{
- name = alloca (sizeof "[invalid sh_name 0x12345678]");
- snprintf (name, sizeof name, "[invalid sh_name %#" PRIx32 "]",
+ size_t len = sizeof "[invalid sh_name 0x12345678]";
+ name = alloca (len);
+ snprintf (name, len, "[invalid sh_name %#" PRIx32 "]",
gelf_getshdr (scn, &shdr_mem)->sh_name);
}
scnnames[elf_ndxscn (scn)] = name;

View File

@ -1,3 +1,39 @@
-------------------------------------------------------------------
Wed Nov 13 12:12:20 UTC 2013 - sweet_f_a@gmx.de
- update to 0.157:
libdw: Add new functions dwarf_getlocations, dwarf_getlocation_attr
and dwarf_getlocation_die.
readelf: Show contents of NT_SIGINFO and NT_FILE core notes.
addr2line: Support -i, --inlines output option.
backends: abi_cfi hook for arm, ppc and s390.
- update to 0.156:
lib: New macro COMPAT_VERSION_NEWPROTO.
libdw: Handle GNU extension opcodes in dwarf_getlocation.
libdwfl: Fix STB_GLOBAL over STB_WEAK preference in dwfl_module_addrsym.
Add minisymtab support.
Add parameter add_p_vaddr to dwfl_report_elf.
Use DT_DEBUG library search first.
libebl: Handle new core note types in EBL.
backends: Interpret NT_ARM_VFP.
Implement core file registers parsing for s390/s390x.
readelf: Add --elf-section input option to inspect an embedded ELF file.
Add -U, --unresolved-address-offsets output control.
Add --debug-dump=decodedline support.
Accept version 8 .gdb_index section format.
Adjust output formatting width.
When highpc is in constant form print it also as address.
Display raw .debug_aranges. Use libdw only for decodedaranges.
elflint: Add __bss_start__ to the list of allowed symbols.
tests: Add configure --enable-valgrind option to run all tests under valgrind.
Enable automake parallel-tests for make check.
translations: Updated Polish translation.
Updates for Automake 1.13.
- remove elfutils-aarch64.patch and elfutils-sizeof-pointer-memaccess.patch
(fixed by upstream)
- rebase elfutils-robustify.patch and elfutils-portability.patch, they are
provided by ustream
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Jun 18 16:05:13 UTC 2013 - schwab@suse.de Tue Jun 18 16:05:13 UTC 2013 - schwab@suse.de

View File

@ -17,7 +17,7 @@
Name: elfutils Name: elfutils
Version: 0.155 Version: 0.157
Release: 0 Release: 0
Summary: Higher-level library to access ELF Summary: Higher-level library to access ELF
License: SUSE-GPL-2.0-with-OSI-exception License: SUSE-GPL-2.0-with-OSI-exception
@ -26,16 +26,14 @@ Url: http://elfutils.fedorahosted.org
Source: https://fedorahosted.org/releases/e/l/%{name}/%{version}/%{name}-%{version}.tar.bz2 Source: https://fedorahosted.org/releases/e/l/%{name}/%{version}/%{name}-%{version}.tar.bz2
Source1: README-BEFORE-ADDING-PATCHES Source1: README-BEFORE-ADDING-PATCHES
Source2: baselibs.conf Source2: baselibs.conf
Patch1: elfutils-portability.patch Patch1: https://fedorahosted.org/releases/e/l/%{name}/%{version}/elfutils-portability.patch
Patch2: elfutils-robustify.patch Patch2: https://fedorahosted.org/releases/e/l/%{name}/%{version}/elfutils-robustify.patch
Patch3: elfutils-no-po-test-build.diff Patch3: elfutils-no-po-test-build.diff
Patch4: libebl-prototype-fix.diff Patch4: libebl-prototype-fix.diff
Patch5: elfutils-uninitialized.diff Patch5: elfutils-uninitialized.diff
Patch6: elfutils-0.137-dwarf-header-check-fix.diff Patch6: elfutils-0.137-dwarf-header-check-fix.diff
Patch7: elfutils-0.148-dont-crash.diff Patch7: elfutils-0.148-dont-crash.diff
Patch8: elfutils-revert-portability-scanf.patch Patch8: elfutils-revert-portability-scanf.patch
Patch9: elfutils-aarch64.patch
Patch10: elfutils-sizeof-pointer-memaccess.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: bison BuildRequires: bison
BuildRequires: flex BuildRequires: flex
@ -146,8 +144,6 @@ to develop applications that require these.
%patch6 -p1 %patch6 -p1
%patch7 -p1 %patch7 -p1
%patch8 -p1 -R %patch8 -p1 -R
%patch9 -p1
%patch10 -p1
%build %build
# Change DATE/TIME macros to use last change time of elfutils.changes # Change DATE/TIME macros to use last change time of elfutils.changes