[elfutils] 0.156-5 - Add elfutils-0.156-abi_cfi-ppc-s390-arm.patch.

Mark Wielaard mjw at fedoraproject.org
Fri Sep 6 09:55:00 UTC 2013


commit 921351cf39ebb6f5826c51838ef2c9e185dfdc3d
Author: Mark Wielaard <mjw at redhat.com>
Date:   Fri Sep 6 11:10:10 2013 +0200

    0.156-5 - Add elfutils-0.156-abi_cfi-ppc-s390-arm.patch.
    
    Sets up initial CFI return register, CFA location expression and
    register rules for PPC, S390 and ARM (dwarf_cfi_addrframe support).

 elfutils-0.156-abi_cfi-ppc-s390-arm.patch |  497 +++++++++++++++++++++++++++++
 elfutils.spec                             |    9 +-
 2 files changed, 505 insertions(+), 1 deletions(-)
---
diff --git a/elfutils-0.156-abi_cfi-ppc-s390-arm.patch b/elfutils-0.156-abi_cfi-ppc-s390-arm.patch
new file mode 100644
index 0000000..52ccd2d
--- /dev/null
+++ b/elfutils-0.156-abi_cfi-ppc-s390-arm.patch
@@ -0,0 +1,497 @@
+commit ed9d2cad539eef89abac0490bbcbf647758905e3
+Author: Jan Kratochvil <jan.kratochvil at redhat.com>
+Date:   Tue Aug 27 22:49:36 2013 +0200
+
+    backends: Hook abi_cfi for ppc and s390.
+    
+    Signed-off-by: Jan Kratochvil <jan.kratochvil at redhat.com>
+    Signed-off-by: Mark Wielaard <mjw at redhat.com>
+
+diff --git a/backends/Makefile.am b/backends/Makefile.am
+index 1923702..ec022b0 100644
+--- a/backends/Makefile.am
++++ b/backends/Makefile.am
+@@ -1,6 +1,6 @@
+ ## Process this file with automake to create Makefile.in
+ ##
+-## Copyright (C) 2000-2010 Red Hat, Inc.
++## Copyright (C) 2000-2010, 2013 Red Hat, Inc.
+ ## Copyright (C) 2012 Tilera Corporation
+ ## This file is part of elfutils.
+ ##
+@@ -85,17 +85,19 @@ libebl_sparc_pic_a_SOURCES = $(sparc_SRCS)
+ am_libebl_sparc_pic_a_OBJECTS = $(sparc_SRCS:.c=.os)
+ 
+ ppc_SRCS = ppc_init.c ppc_symbol.c ppc_retval.c ppc_regs.c \
+-	   ppc_corenote.c ppc_auxv.c ppc_attrs.c ppc_syscall.c
++	   ppc_corenote.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \
++	   ppc_cfi.c
+ libebl_ppc_pic_a_SOURCES = $(ppc_SRCS)
+ am_libebl_ppc_pic_a_OBJECTS = $(ppc_SRCS:.c=.os)
+ 
+ ppc64_SRCS = ppc64_init.c ppc64_symbol.c ppc64_retval.c \
+-	     ppc64_corenote.c ppc_regs.c ppc_auxv.c ppc_attrs.c ppc_syscall.c
++	     ppc64_corenote.c ppc_regs.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \
++	     ppc_cfi.c
+ libebl_ppc64_pic_a_SOURCES = $(ppc64_SRCS)
+ am_libebl_ppc64_pic_a_OBJECTS = $(ppc64_SRCS:.c=.os)
+ 
+ s390_SRCS = s390_init.c s390_symbol.c s390_regs.c s390_retval.c \
+-	    s390_corenote.c s390x_corenote.c
++	    s390_corenote.c s390x_corenote.c s390_cfi.c
+ libebl_s390_pic_a_SOURCES = $(s390_SRCS)
+ am_libebl_s390_pic_a_OBJECTS = $(s390_SRCS:.c=.os)
+ 
+diff --git a/backends/ppc64_init.c b/backends/ppc64_init.c
+index 90d4f2b..1435875 100644
+--- a/backends/ppc64_init.c
++++ b/backends/ppc64_init.c
+@@ -1,5 +1,5 @@
+ /* Initialization of PPC64 specific backend library.
+-   Copyright (C) 2004, 2005, 2006, 2007, 2008 Red Hat, Inc.
++   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2013 Red Hat, Inc.
+    This file is part of elfutils.
+    Written by Ulrich Drepper <drepper at redhat.com>, 2004.
+ 
+@@ -64,6 +64,7 @@ ppc64_init (elf, machine, eh, ehlen)
+   HOOK (eh, syscall_abi);
+   HOOK (eh, core_note);
+   HOOK (eh, auxv_info);
++  HOOK (eh, abi_cfi);
+ 
+   return MODVERSION;
+ }
+diff --git a/backends/ppc_cfi.c b/backends/ppc_cfi.c
+new file mode 100644
+index 0000000..6a4f461
+--- /dev/null
++++ b/backends/ppc_cfi.c
+@@ -0,0 +1,77 @@
++/* ppc ABI-specified defaults for DWARF CFI.
++   Copyright (C) 2012, 2013 Red Hat, Inc.
++   This file is part of elfutils.
++
++   This file is free software; you can redistribute it and/or modify
++   it under the terms of either
++
++     * the GNU Lesser General Public License as published by the Free
++       Software Foundation; either version 3 of the License, or (at
++       your option) any later version
++
++   or
++
++     * the GNU General Public License as published by the Free
++       Software Foundation; either version 2 of the License, or (at
++       your option) any later version
++
++   or both in parallel, as here.
++
++   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 copies of the GNU General Public License and
++   the GNU Lesser General Public License along with this program.  If
++   not, see <http://www.gnu.org/licenses/>.  */
++
++#ifdef HAVE_CONFIG_H
++# include <config.h>
++#endif
++
++#include <dwarf.h>
++
++#define BACKEND ppc_
++#include "libebl_CPU.h"
++
++int
++ppc_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info)
++{
++  static const uint8_t abi_cfi[] =
++    {
++      /* This instruction is provided in every CIE.  It is not repeated here:
++	 DW_CFA_def_cfa, ULEB128_7 (1), ULEB128_7 (0)  */
++      /* r1 is assumed to be restored from cfa adress,
++	 r1 acts as a stack frame pointer.  */
++      DW_CFA_val_expression, ULEB128_7 (1), ULEB128_7 (1), DW_OP_nop,
++      /* lr is not callee-saved but it needs to be preserved as it is pre-set
++	 by the caller.  */
++      DW_CFA_same_value, ULEB128_7 (65), /* lr */
++
++      /* Callee-saved regs.  */
++#define SV(n) DW_CFA_same_value, ULEB128_7 (n)
++      SV (2),			/* r2 is TOC pointer.  */
++      SV (13),			/* Reserved as system thread id (is it for CFI?).  */
++      /* r14-r31 are non-volatile registers.  */
++      SV (14), SV (15), SV (16), SV (17), SV (18), SV (19), SV (20), SV (21),
++      SV (22), SV (23), SV (24), SV (25), SV (26), SV (27), SV (28), SV (29),
++      SV (30), SV (31)
++      /* VMX registers v20-v31 and vrsave are non-volatile but they are
++	 assigned DWARF registers 1144-1156 (v20-v31) which is outside of the
++	 CFI supported range.  */
++#undef SV
++    };
++
++  abi_info->initial_instructions = abi_cfi;
++  abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi];
++  abi_info->data_alignment_factor = ebl->class == ELFCLASS64 ? 8 : 4;
++
++  abi_info->return_address_register = 65;
++
++  return 0;
++}
++
++__typeof (ppc_abi_cfi)
++     ppc64_abi_cfi
++     __attribute__ ((alias ("ppc_abi_cfi")));
+diff --git a/backends/ppc_init.c b/backends/ppc_init.c
+index 6054007..004c601 100644
+--- a/backends/ppc_init.c
++++ b/backends/ppc_init.c
+@@ -1,5 +1,5 @@
+ /* Initialization of PPC specific backend library.
+-   Copyright (C) 2004, 2005, 2006, 2007, 2008 Red Hat, Inc.
++   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2013 Red Hat, Inc.
+    This file is part of elfutils.
+    Written by Ulrich Drepper <drepper at redhat.com>, 2004.
+ 
+@@ -64,6 +64,7 @@ ppc_init (elf, machine, eh, ehlen)
+   HOOK (eh, core_note);
+   HOOK (eh, auxv_info);
+   HOOK (eh, check_object_attribute);
++  HOOK (eh, abi_cfi);
+ 
+   return MODVERSION;
+ }
+diff --git a/backends/s390_cfi.c b/backends/s390_cfi.c
+new file mode 100644
+index 0000000..cb49486
+--- /dev/null
++++ b/backends/s390_cfi.c
+@@ -0,0 +1,65 @@
++/* s390 ABI-specified defaults for DWARF CFI.
++   Copyright (C) 2012, 2013 Red Hat, Inc.
++   This file is part of elfutils.
++
++   This file is free software; you can redistribute it and/or modify
++   it under the terms of either
++
++     * the GNU Lesser General Public License as published by the Free
++       Software Foundation; either version 3 of the License, or (at
++       your option) any later version
++
++   or
++
++     * the GNU General Public License as published by the Free
++       Software Foundation; either version 2 of the License, or (at
++       your option) any later version
++
++   or both in parallel, as here.
++
++   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 copies of the GNU General Public License and
++   the GNU Lesser General Public License along with this program.  If
++   not, see <http://www.gnu.org/licenses/>.  */
++
++#ifdef HAVE_CONFIG_H
++# include <config.h>
++#endif
++
++#include <dwarf.h>
++
++#define BACKEND s390_
++#include "libebl_CPU.h"
++
++int
++s390_abi_cfi (Ebl *ebl, Dwarf_CIE *abi_info)
++{
++  static const uint8_t abi_cfi[] =
++    {
++      /* This instruction is provided in every CIE.  It is not repeated here:
++	 DW_CFA_def_cfa, ULEB128_7 (15), ULEB128_7 (96)  */
++      /* r14 is not callee-saved but it needs to be preserved as it is pre-set
++	 by the caller.  */
++      DW_CFA_same_value, ULEB128_7 (14), /* r14 */
++
++      /* Callee-saved regs.  */
++#define SV(n) DW_CFA_same_value, ULEB128_7 (n)
++      SV (6), SV (7), SV (8), SV (9), SV (10),		       /* r6-r13, r15 */
++      SV (11), SV (12), SV (13), SV (15),
++      SV (16 + 8), SV (16 + 9), SV (16 + 10), SV (16 + 11),    /* f8-f15 */
++      SV (16 + 12), SV (16 + 13), SV (16 + 14), SV (16 + 15)
++#undef SV
++    };
++
++  abi_info->initial_instructions = abi_cfi;
++  abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi];
++  abi_info->data_alignment_factor = ebl->class == ELFCLASS64 ? 8 : 4;
++
++  abi_info->return_address_register = 14;
++
++  return 0;
++}
+diff --git a/backends/s390_init.c b/backends/s390_init.c
+index 91fe4b8..630a2ee 100644
+--- a/backends/s390_init.c
++++ b/backends/s390_init.c
+@@ -1,5 +1,5 @@
+ /* Initialization of S/390 specific backend library.
+-   Copyright (C) 2005, 2006 Red Hat, Inc.
++   Copyright (C) 2005, 2006, 2013 Red Hat, Inc.
+    This file is part of elfutils.
+ 
+    This file is free software; you can redistribute it and/or modify
+@@ -61,6 +61,7 @@ s390_init (elf, machine, eh, ehlen)
+     eh->core_note = s390x_core_note;
+   else
+     HOOK (eh, core_note);
++  HOOK (eh, abi_cfi);
+ 
+   /* Only the 64-bit format uses the incorrect hash table entry size.  */
+   if (eh->class == ELFCLASS64)
+
+commit 92e47d616d15beec31c406ce254e639faa8fac2b
+Author: Mark Wielaard <mjw at redhat.com>
+Date:   Mon Sep 2 16:46:50 2013 +0200
+
+    backends: Hook abi_cfi for arm.
+    
+    New arm_abi_cfi that defines initial CFA, rules for callee-saved regs,
+    including VFP ones and return register.
+    
+    Note the DWARF abi extension for ARM says that "registers intentionally
+    unused" should also be initialized as if by DW_CFA_same_value.  The
+    example given is "an integer-only function might be included in one
+    executable file for targets with VFP and another for targets without".
+    We don't currently do this yet. See the DWARF and calling convention
+    documents:
+    
+    DWARF for the ARM Architecture ABI r2.09
+    http://infocenter.arm.com/help/topic/com.arm.doc.ihi0040b/IHI0040B_aadwarf.pdf
+    
+    Procedure Call Standard for the ARM Architecture ABI r2.09
+    http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042e/IHI0042E_aapcs.pdf
+    
+    Signed-off-by: Mark Wielaard <mjw at redhat.com>
+
+diff --git a/backends/Makefile.am b/backends/Makefile.am
+index ec022b0..557ed87 100644
+--- a/backends/Makefile.am
++++ b/backends/Makefile.am
+@@ -75,7 +75,7 @@ libebl_alpha_pic_a_SOURCES = $(alpha_SRCS)
+ am_libebl_alpha_pic_a_OBJECTS = $(alpha_SRCS:.c=.os)
+ 
+ arm_SRCS = arm_init.c arm_symbol.c arm_regs.c arm_corenote.c \
+-	   arm_auxv.c arm_attrs.c arm_retval.c
++	   arm_auxv.c arm_attrs.c arm_retval.c arm_cfi.c
+ libebl_arm_pic_a_SOURCES = $(arm_SRCS)
+ am_libebl_arm_pic_a_OBJECTS = $(arm_SRCS:.c=.os)
+ 
+diff --git a/backends/arm_cfi.c b/backends/arm_cfi.c
+new file mode 100644
+index 0000000..e0cc44b
+--- /dev/null
++++ b/backends/arm_cfi.c
+@@ -0,0 +1,87 @@
++/* arm ABI-specified defaults for DWARF CFI.
++   Copyright (C) 2013 Red Hat, Inc.
++   This file is part of elfutils.
++
++   This file is free software; you can redistribute it and/or modify
++   it under the terms of either
++
++     * the GNU Lesser General Public License as published by the Free
++       Software Foundation; either version 3 of the License, or (at
++       your option) any later version
++
++   or
++
++     * the GNU General Public License as published by the Free
++       Software Foundation; either version 2 of the License, or (at
++       your option) any later version
++
++   or both in parallel, as here.
++
++   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 copies of the GNU General Public License and
++   the GNU Lesser General Public License along with this program.  If
++   not, see <http://www.gnu.org/licenses/>.  */
++
++#ifdef HAVE_CONFIG_H
++# include <config.h>
++#endif
++
++#include <dwarf.h>
++
++#define BACKEND arm_
++#include "libebl_CPU.h"
++
++
++/* ABI-specified state of DWARF CFI based on:
++
++   "DWARF for the ARM Architecture ABI r2.09"
++http://infocenter.arm.com/help/topic/com.arm.doc.ihi0040b/IHI0040B_aadwarf.pdf
++
++   "Procedure Call Standard for the ARM Architecture ABI r2.09"
++http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042e/IHI0042E_aapcs.pdf
++*/
++
++int
++arm_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info)
++{
++  static const uint8_t abi_cfi[] =
++    {
++      /* The initial Canonical Frame Address is the value of the
++         Stack Pointer (r13) as setup in the previous frame. */
++      DW_CFA_def_cfa, ULEB128_7 (13), ULEB128_7 (0),
++
++#define SV(n) DW_CFA_same_value, ULEB128_7 (n)
++      /* Callee-saved regs r4-r8, r10, r11.  */
++      SV (4), SV (5), SV (6), SV (7), SV (8), SV (10), SV (11),
++
++      /* The link register contains the return address setup by caller.  */
++      SV (14),
++      DW_CFA_register, ULEB128_7 (15), ULEB128_7 (14), /* pc = lr */
++#undef SV
++
++      /* VFP S16-S31/D8-D15/Q4-Q7 are callee saved.
++         And uleb128 encoded with two bytes.  */
++#define ULEB128_8_2(x) ((x & 0x7f) | 0x80), 0x02
++#define SV(n) DW_CFA_same_value, ULEB128_8_2 (n)
++      SV (264), SV (265), SV (266), SV (267),
++      SV (268), SV (269), SV (270), SV (271),
++
++      /* XXX Note: registers intentionally unused by the program,
++	 for example as a consequence of the procedure call standard
++	 should be initialized as if by DW_CFA_same_value.  */
++    };
++#undef ULEB128_8_2
++#undef SV
++
++  abi_info->initial_instructions = abi_cfi;
++  abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi];
++  abi_info->data_alignment_factor = 4;
++
++  abi_info->return_address_register = 15; /* pc.  */
++
++  return 0;
++}
+diff --git a/backends/arm_init.c b/backends/arm_init.c
+index 38bd4eb..cf661ce 100644
+--- a/backends/arm_init.c
++++ b/backends/arm_init.c
+@@ -1,5 +1,5 @@
+ /* Initialization of Arm specific backend library.
+-   Copyright (C) 2002, 2005, 2009 Red Hat, Inc.
++   Copyright (C) 2002, 2005, 2009, 2013 Red Hat, Inc.
+    This file is part of elfutils.
+    Written by Ulrich Drepper <drepper at redhat.com>, 2002.
+ 
+@@ -62,6 +62,7 @@ arm_init (elf, machine, eh, ehlen)
+   HOOK (eh, auxv_info);
+   HOOK (eh, check_object_attribute);
+   HOOK (eh, return_value_location);
++  HOOK (eh, abi_cfi);
+ 
+   return MODVERSION;
+ }
+diff -ur elfutils-0.156.orig/backends/Makefile.in elfutils-0.156/backends/Makefile.in
+--- elfutils-0.156.orig/backends/Makefile.in	2013-09-06 11:11:44.972085797 +0200
++++ elfutils-0.156/backends/Makefile.in	2013-09-06 11:47:12.552642640 +0200
+@@ -112,7 +112,7 @@
+ libebl_arm_pic_a_LIBADD =
+ am__objects_2 = arm_init.$(OBJEXT) arm_symbol.$(OBJEXT) \
+ 	arm_regs.$(OBJEXT) arm_corenote.$(OBJEXT) arm_auxv.$(OBJEXT) \
+-	arm_attrs.$(OBJEXT) arm_retval.$(OBJEXT)
++	arm_attrs.$(OBJEXT) arm_retval.$(OBJEXT) arm_cfi.$(OBJEXT)
+ libebl_arm_pic_a_OBJECTS = $(am_libebl_arm_pic_a_OBJECTS)
+ libebl_i386_pic_a_AR = $(AR) $(ARFLAGS)
+ libebl_i386_pic_a_LIBADD =
+@@ -131,19 +131,21 @@
+ am__objects_5 = ppc64_init.$(OBJEXT) ppc64_symbol.$(OBJEXT) \
+ 	ppc64_retval.$(OBJEXT) ppc64_corenote.$(OBJEXT) \
+ 	ppc_regs.$(OBJEXT) ppc_auxv.$(OBJEXT) ppc_attrs.$(OBJEXT) \
+-	ppc_syscall.$(OBJEXT)
++	ppc_syscall.$(OBJEXT) ppc_cfi.$(OBJEXT)
+ libebl_ppc64_pic_a_OBJECTS = $(am_libebl_ppc64_pic_a_OBJECTS)
+ libebl_ppc_pic_a_AR = $(AR) $(ARFLAGS)
+ libebl_ppc_pic_a_LIBADD =
+ am__objects_6 = ppc_init.$(OBJEXT) ppc_symbol.$(OBJEXT) \
+ 	ppc_retval.$(OBJEXT) ppc_regs.$(OBJEXT) ppc_corenote.$(OBJEXT) \
+-	ppc_auxv.$(OBJEXT) ppc_attrs.$(OBJEXT) ppc_syscall.$(OBJEXT)
++	ppc_auxv.$(OBJEXT) ppc_attrs.$(OBJEXT) ppc_syscall.$(OBJEXT) \
++	ppc_cfi.$(OBJEXT)
+ libebl_ppc_pic_a_OBJECTS = $(am_libebl_ppc_pic_a_OBJECTS)
+ libebl_s390_pic_a_AR = $(AR) $(ARFLAGS)
+ libebl_s390_pic_a_LIBADD =
+ am__objects_7 = s390_init.$(OBJEXT) s390_symbol.$(OBJEXT) \
+ 	s390_regs.$(OBJEXT) s390_retval.$(OBJEXT) \
+-	s390_corenote.$(OBJEXT) s390x_corenote.$(OBJEXT)
++	s390_corenote.$(OBJEXT) s390x_corenote.$(OBJEXT) \
++	s390_cfi.$(OBJEXT)
+ libebl_s390_pic_a_OBJECTS = $(am_libebl_s390_pic_a_OBJECTS)
+ libebl_sh_pic_a_AR = $(AR) $(ARFLAGS)
+ libebl_sh_pic_a_LIBADD =
+@@ -405,7 +407,7 @@
+ libebl_alpha_pic_a_SOURCES = $(alpha_SRCS)
+ am_libebl_alpha_pic_a_OBJECTS = $(alpha_SRCS:.c=.os)
+ arm_SRCS = arm_init.c arm_symbol.c arm_regs.c arm_corenote.c \
+-	   arm_auxv.c arm_attrs.c arm_retval.c
++	   arm_auxv.c arm_attrs.c arm_retval.c arm_cfi.c
+ 
+ libebl_arm_pic_a_SOURCES = $(arm_SRCS)
+ am_libebl_arm_pic_a_OBJECTS = $(arm_SRCS:.c=.os)
+@@ -415,17 +417,19 @@
+ libebl_sparc_pic_a_SOURCES = $(sparc_SRCS)
+ am_libebl_sparc_pic_a_OBJECTS = $(sparc_SRCS:.c=.os)
+ ppc_SRCS = ppc_init.c ppc_symbol.c ppc_retval.c ppc_regs.c \
+-	   ppc_corenote.c ppc_auxv.c ppc_attrs.c ppc_syscall.c
++	   ppc_corenote.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \
++	   ppc_cfi.c
+ 
+ libebl_ppc_pic_a_SOURCES = $(ppc_SRCS)
+ am_libebl_ppc_pic_a_OBJECTS = $(ppc_SRCS:.c=.os)
+ ppc64_SRCS = ppc64_init.c ppc64_symbol.c ppc64_retval.c \
+-	     ppc64_corenote.c ppc_regs.c ppc_auxv.c ppc_attrs.c ppc_syscall.c
++	     ppc64_corenote.c ppc_regs.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \
++	     ppc_cfi.c
+ 
+ libebl_ppc64_pic_a_SOURCES = $(ppc64_SRCS)
+ am_libebl_ppc64_pic_a_OBJECTS = $(ppc64_SRCS:.c=.os)
+ s390_SRCS = s390_init.c s390_symbol.c s390_regs.c s390_retval.c \
+-	    s390_corenote.c s390x_corenote.c
++	    s390_corenote.c s390x_corenote.c s390_cfi.c
+ 
+ libebl_s390_pic_a_SOURCES = $(s390_SRCS)
+ am_libebl_s390_pic_a_OBJECTS = $(s390_SRCS:.c=.os)
+@@ -544,6 +548,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/alpha_symbol.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/arm_attrs.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/arm_auxv.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/arm_cfi.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/arm_corenote.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/arm_init.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/arm_regs.Po at am__quote@
+@@ -567,12 +572,14 @@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ppc64_symbol.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ppc_attrs.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ppc_auxv.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ppc_cfi.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ppc_corenote.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ppc_init.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ppc_regs.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ppc_retval.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ppc_symbol.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ppc_syscall.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/s390_cfi.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/s390_corenote.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/s390_init.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/s390_regs.Po at am__quote@
diff --git a/elfutils.spec b/elfutils.spec
index 76b810d..16c06f7 100644
--- a/elfutils.spec
+++ b/elfutils.spec
@@ -1,7 +1,7 @@
 Name: elfutils
 Summary: A collection of utilities and DSOs to handle compiled objects
 Version: 0.156
-%global baserelease 4
+%global baserelease 5
 URL: https://fedorahosted.org/elfutils/
 %global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/
 License: GPLv3+ and (GPLv2+ or LGPLv3+)
@@ -47,6 +47,7 @@ Patch1: %{?source_url}elfutils-robustify.patch
 Patch2: %{?source_url}elfutils-portability.patch
 
 Patch3: elfutils-0.156-et_dyn-kernels.patch
+Patch4: elfutils-0.156-abi_cfi-ppc-s390-arm.patch
 
 %if !%{compat}
 Release: %{baserelease}%{?dist}
@@ -212,6 +213,7 @@ sed -i.scanf-m -e 's/%m/%a/g' src/addr2line.c tests/line2addr.c
 %endif
 
 %patch3 -p1 -b .et_dyn-kernel
+%patch4 -p1 -b .abi_cfi
 
 find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
 
@@ -327,6 +329,11 @@ rm -rf ${RPM_BUILD_ROOT}
 %{_libdir}/libelf.a
 
 %changelog
+* Fri Sep 06 2013 Mark Wielaard <mjw at redhat.com> 0.156-5
+- Add elfutils-0.156-abi_cfi-ppc-s390-arm.patch.
+  Sets up initial CFI return register, CFA location expression and
+  register rules for PPC, S390 and ARM (dwarf_cfi_addrframe support).
+
 * Mon Aug 26 2013 Mark Wielaard <mjw at redhat.com> 0.156-4
 - Add elfutils-0.156-et_dyn-kernels.patch.
   Fixes an issue on ppc64 with systemtap kernel address placement.


More information about the scm-commits mailing list