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).
This commit is contained in:
parent
d0217a5719
commit
921351cf39
497
elfutils-0.156-abi_cfi-ppc-s390-arm.patch
Normal file
497
elfutils-0.156-abi_cfi-ppc-s390-arm.patch
Normal file
@ -0,0 +1,497 @@
|
|||||||
|
commit ed9d2cad539eef89abac0490bbcbf647758905e3
|
||||||
|
Author: Jan Kratochvil <jan.kratochvil@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@redhat.com>
|
||||||
|
Signed-off-by: Mark Wielaard <mjw@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@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@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@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@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@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@./$(DEPDIR)/alpha_symbol.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arm_attrs.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arm_auxv.Po@am__quote@
|
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arm_cfi.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arm_corenote.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arm_init.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arm_regs.Po@am__quote@
|
||||||
|
@@ -567,12 +572,14 @@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc64_symbol.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc_attrs.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc_auxv.Po@am__quote@
|
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc_cfi.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc_corenote.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc_init.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc_regs.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc_retval.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc_symbol.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc_syscall.Po@am__quote@
|
||||||
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_cfi.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_corenote.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_init.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_regs.Po@am__quote@
|
@ -1,7 +1,7 @@
|
|||||||
Name: elfutils
|
Name: elfutils
|
||||||
Summary: A collection of utilities and DSOs to handle compiled objects
|
Summary: A collection of utilities and DSOs to handle compiled objects
|
||||||
Version: 0.156
|
Version: 0.156
|
||||||
%global baserelease 4
|
%global baserelease 5
|
||||||
URL: https://fedorahosted.org/elfutils/
|
URL: https://fedorahosted.org/elfutils/
|
||||||
%global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/
|
%global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/
|
||||||
License: GPLv3+ and (GPLv2+ or LGPLv3+)
|
License: GPLv3+ and (GPLv2+ or LGPLv3+)
|
||||||
@ -47,6 +47,7 @@ Patch1: %{?source_url}elfutils-robustify.patch
|
|||||||
Patch2: %{?source_url}elfutils-portability.patch
|
Patch2: %{?source_url}elfutils-portability.patch
|
||||||
|
|
||||||
Patch3: elfutils-0.156-et_dyn-kernels.patch
|
Patch3: elfutils-0.156-et_dyn-kernels.patch
|
||||||
|
Patch4: elfutils-0.156-abi_cfi-ppc-s390-arm.patch
|
||||||
|
|
||||||
%if !%{compat}
|
%if !%{compat}
|
||||||
Release: %{baserelease}%{?dist}
|
Release: %{baserelease}%{?dist}
|
||||||
@ -212,6 +213,7 @@ sed -i.scanf-m -e 's/%m/%a/g' src/addr2line.c tests/line2addr.c
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%patch3 -p1 -b .et_dyn-kernel
|
%patch3 -p1 -b .et_dyn-kernel
|
||||||
|
%patch4 -p1 -b .abi_cfi
|
||||||
|
|
||||||
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
||||||
|
|
||||||
@ -327,6 +329,11 @@ rm -rf ${RPM_BUILD_ROOT}
|
|||||||
%{_libdir}/libelf.a
|
%{_libdir}/libelf.a
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Sep 06 2013 Mark Wielaard <mjw@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@redhat.com> 0.156-4
|
* Mon Aug 26 2013 Mark Wielaard <mjw@redhat.com> 0.156-4
|
||||||
- Add elfutils-0.156-et_dyn-kernels.patch.
|
- Add elfutils-0.156-et_dyn-kernels.patch.
|
||||||
Fixes an issue on ppc64 with systemtap kernel address placement.
|
Fixes an issue on ppc64 with systemtap kernel address placement.
|
||||||
|
Loading…
Reference in New Issue
Block a user