From 84d96bac339716d7ac4d90688c552896815bacd8 Mon Sep 17 00:00:00 2001
From: Mark Hatle <mhatle@windriver.com>
Date: Wed, 18 Aug 2010 15:23:50 -0700
Subject: elfutils: Add GNU_HASH support to elf*_xlatetof

Add GNU_HASH and LIB types to the size table used by elf*_xlatetof in order
to avoid a divide by zero error.
Signed-off-by: Mark Hatle <mhatle@windriver.com>
---
 .../elfutils/elfutils-0.148/elfutils-fsize.patch   | 37 ++++++++++++++++++++++
 meta/packages/elfutils/elfutils_0.148.bb           |  3 +-
 2 files changed, 39 insertions(+), 1 deletion(-)
 create mode 100644 meta/packages/elfutils/elfutils-0.148/elfutils-fsize.patch

(limited to 'meta')

diff --git a/meta/packages/elfutils/elfutils-0.148/elfutils-fsize.patch b/meta/packages/elfutils/elfutils-0.148/elfutils-fsize.patch
new file mode 100644
index 000000000..9cf9cef52
--- /dev/null
+++ b/meta/packages/elfutils/elfutils-0.148/elfutils-fsize.patch
@@ -0,0 +1,37 @@
+The ELF_T_LIB and ELF_T_GNUHASH sizes were missing from fsize table.
+
+This could cause a failure in the elf*_xlatetof function.
+
+diff -ur elfutils-0.148.orig/libelf/exttypes.h elfutils-0.148/libelf/exttypes.h
+--- elfutils-0.148.orig/libelf/exttypes.h	2009-01-08 12:56:37.000000000 -0800
++++ elfutils-0.148/libelf/exttypes.h	2010-08-18 14:00:33.000000000 -0700
+@@ -94,6 +94,7 @@
+ Vernaux32 (Ext_);
+ Syminfo32 (Ext_);
+ Move32 (Ext_);
++Lib32 (Ext_);
+ auxv_t32 (Ext_);
+ 
+ Ehdr64 (Ext_);
+@@ -110,6 +111,7 @@
+ Vernaux64 (Ext_);
+ Syminfo64 (Ext_);
+ Move64 (Ext_);
++Lib64 (Ext_);
+ auxv_t64 (Ext_);
+ 
+ #undef START
+diff -ur elfutils-0.148.orig/libelf/gelf_fsize.c elfutils-0.148/libelf/gelf_fsize.c
+--- elfutils-0.148.orig/libelf/gelf_fsize.c	2009-01-08 12:56:37.000000000 -0800
++++ elfutils-0.148/libelf/gelf_fsize.c	2010-08-18 14:11:57.000000000 -0700
+@@ -87,7 +87,9 @@
+       [ELF_T_NHDR]	= sizeof (ElfW2(LIBELFBITS, Ext_Nhdr)),		      \
+       [ELF_T_SYMINFO]	= sizeof (ElfW2(LIBELFBITS, Ext_Syminfo)),	      \
+       [ELF_T_MOVE]	= sizeof (ElfW2(LIBELFBITS, Ext_Move)),		      \
+-      [ELF_T_AUXV]	= sizeof (ElfW2(LIBELFBITS, Ext_auxv_t))
++      [ELF_T_LIB]	= sizeof (ElfW2(LIBELFBITS, Ext_Lib)),		      \
++      [ELF_T_AUXV]	= sizeof (ElfW2(LIBELFBITS, Ext_auxv_t)),	      \
++      [ELF_T_GNUHASH]	= ELFW2(LIBELFBITS, FSZ_WORD)
+       TYPE_SIZES (32)
+     },
+     [ELFCLASS64 - 1] = {
diff --git a/meta/packages/elfutils/elfutils_0.148.bb b/meta/packages/elfutils/elfutils_0.148.bb
index 3922222f4..18887e4b9 100644
--- a/meta/packages/elfutils/elfutils_0.148.bb
+++ b/meta/packages/elfutils/elfutils_0.148.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3\
                     file://EXCEPTION;md5=570adcb0c1218ab57f2249c67d0ce417"
 DEPENDS = "libtool"
 
-PR = "r0"
+PR = "r1"
 
 SRC_URI = "https://fedorahosted.org/releases/e/l/elfutils/elfutils-${PV}.tar.bz2"
 
@@ -23,6 +23,7 @@ SRC_URI += "\
         file://do-autoreconf.diff \
         file://testsuite-ignore-elflint.diff \
         file://elf_additions.diff \
+	file://elfutils-fsize.patch \
 "
 
 # The buildsystem wants to generate 2 .h files from source using a binary it just built,
-- 
cgit v1.2.3