diff --git a/.gitignore b/.gitignore index 2d8d81a..1762deb 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /elfutils-0.156.tar.bz2 +/elfutils-0.157.tar.bz2 diff --git a/elfutils-0.156-abi_cfi-ppc-s390-arm.patch b/elfutils-0.156-abi_cfi-ppc-s390-arm.patch deleted file mode 100644 index 52ccd2d..0000000 --- a/elfutils-0.156-abi_cfi-ppc-s390-arm.patch +++ /dev/null @@ -1,497 +0,0 @@ -commit ed9d2cad539eef89abac0490bbcbf647758905e3 -Author: Jan Kratochvil -Date: Tue Aug 27 22:49:36 2013 +0200 - - backends: Hook abi_cfi for ppc and s390. - - Signed-off-by: Jan Kratochvil - Signed-off-by: Mark Wielaard - -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 , 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 . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+ -+#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 , 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 . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+ -+#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 -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 - -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 . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+ -+#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 , 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@ diff --git a/elfutils-0.156-et_dyn-kernels.patch b/elfutils-0.156-et_dyn-kernels.patch deleted file mode 100644 index 8638df4..0000000 --- a/elfutils-0.156-et_dyn-kernels.patch +++ /dev/null @@ -1,47 +0,0 @@ -commit 16fa414aff02365534b7bbeab281c731b9c4497d -Author: Mark Wielaard -Date: Thu Aug 22 13:45:16 2013 +0200 - - libdwfl/linux-kernel-modules.c (report_kernel): Pass add_p_vaddr as true. - - On some architectures (e.g. x86_64) the vmlinux is ET_EXEC, while on - others (e.g. ppc64) it is ET_DYN. In both cases the phdr p_vaddr will - be non-zero. We want the image to be placed as if it was ET_DYN, so - pass true for add_p_vaddr which will do the right thing (in combination - with a zero base) in either case. - - Signed-off-by: Mark Wielaard - -diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog -index 88bdfc6..90ba686 100644 ---- a/libdwfl/ChangeLog -+++ b/libdwfl/ChangeLog -@@ -1,3 +1,8 @@ -+2013-08-25 Mark Wielaard -+ -+ * linux-kernel-modules.c (report_kernel): Pass add_p_vaddr as true -+ to dwfl_report_elf. -+ - 2013-07-25 Jan Kratochvil - - * dwfl_segment_report_module.c (dwfl_segment_report_module): Check for -diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c -index dec1a59..fe01028 100644 ---- a/libdwfl/linux-kernel-modules.c -+++ b/libdwfl/linux-kernel-modules.c -@@ -216,8 +216,14 @@ report_kernel (Dwfl *dwfl, const char **release, - - if (report) - { -+ /* Note that on some architectures (e.g. x86_64) the vmlinux -+ is ET_EXEC, while on others (e.g. ppc64) it is ET_DYN. -+ In both cases the phdr p_vaddr load address will be non-zero. -+ We want the image to be placed as if it was ET_DYN, so -+ pass true for add_p_vaddr which will do the right thing -+ (in combination with a zero base) in either case. */ - Dwfl_Module *mod = INTUSE(dwfl_report_elf) (dwfl, KERNEL_MODNAME, -- fname, fd, 0, false); -+ fname, fd, 0, true); - if (mod == NULL) - result = -1; - else diff --git a/elfutils-portability.patch b/elfutils-portability.patch index 414255a..434baac 100644 --- a/elfutils-portability.patch +++ b/elfutils-portability.patch @@ -1,102 +1,3 @@ ---- elfutils/ChangeLog -+++ elfutils/ChangeLog -@@ -46,6 +46,8 @@ - - 2012-01-24 Mark Wielaard - -+ * configure.ac: Wrap AC_COMPILE_IFELSE sources in AC_LANG_SOURCE. -+ - * COPYING: Fix address. Updated version from gnulib. - - 2012-01-23 Mark Wielaard -@@ -64,6 +66,9 @@ - - 2011-10-08 Mike Frysinger - -+ * configure.ac (--disable-werror): Handle it, controlling BUILD_WERROR -+ automake option. -+ - * configure.ac: Fix use of AC_ARG_ENABLE to handle $enableval correctly. - - 2011-10-02 Ulrich Drepper -@@ -85,6 +90,10 @@ - - * configure.ac (LOCALEDIR, DATADIRNAME): Removed. - -+2009-11-22 Roland McGrath -+ -+ * configure.ac: Use sed and expr instead of modern bash extensions. -+ - 2009-09-21 Ulrich Drepper - - * configure.ac: Update for more modern autoconf. -@@ -93,6 +102,10 @@ - - * configure.ac (zip_LIBS): Check for liblzma too. - -+2009-08-17 Roland McGrath -+ -+ * configure.ac: Check for -fgnu89-inline; add it to WEXTRA if it works. -+ - 2009-04-19 Roland McGrath - - * configure.ac (eu_version): Round down here, not in version.h macros. -@@ -104,6 +117,8 @@ - - 2009-01-23 Roland McGrath - -+ * configure.ac: Check for __builtin_popcount. -+ - * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3. - - * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of -@@ -184,6 +199,10 @@ - * configure.ac: Add dummy automake conditional to get dependencies - for non-generic linker right. See src/Makefile.am. - -+2005-11-22 Roland McGrath -+ -+ * configure.ac: Check for --as-needed linker option. -+ - 2005-11-18 Roland McGrath - - * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable. -@@ -231,6 +250,17 @@ - * Makefile.am (all_SUBDIRS): Add libdwfl. - * configure.ac: Write libdwfl/Makefile. - -+2005-05-31 Roland McGrath -+ -+ * configure.ac (WEXTRA): Check for -Wextra and set this substitution. -+ -+ * configure.ac: Check for struct stat st_?tim members. -+ * src/strip.c (process_file): Use st_?time if st_?tim are not there. -+ -+ * configure.ac: Check for futimes function. -+ * src/strip.c (handle_elf) [! HAVE_FUTIMES]: Use utimes instead. -+ (handle_ar) [! HAVE_FUTIMES]: Likewise. -+ - 2005-05-19 Roland McGrath - - * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros. ---- elfutils/Makefile.in -+++ elfutils/Makefile.in -@@ -256,6 +256,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -285,6 +286,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = @VERSION@ -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ --- elfutils/backends/ChangeLog +++ elfutils/backends/ChangeLog @@ -188,6 +188,10 @@ @@ -193,9 +94,90 @@ $(textrel_check) libebl_i386.so: $(cpu_i386) +--- elfutils/ChangeLog ++++ elfutils/ChangeLog +@@ -38,6 +38,8 @@ + + 2012-01-24 Mark Wielaard + ++ * configure.ac: Wrap AC_COMPILE_IFELSE sources in AC_LANG_SOURCE. ++ + * COPYING: Fix address. Updated version from gnulib. + + 2012-01-23 Mark Wielaard +@@ -56,6 +58,9 @@ + + 2011-10-08 Mike Frysinger + ++ * configure.ac (--disable-werror): Handle it, controlling BUILD_WERROR ++ automake option. ++ + * configure.ac: Fix use of AC_ARG_ENABLE to handle $enableval correctly. + + 2011-10-02 Ulrich Drepper +@@ -77,6 +82,10 @@ + + * configure.ac (LOCALEDIR, DATADIRNAME): Removed. + ++2009-11-22 Roland McGrath ++ ++ * configure.ac: Use sed and expr instead of modern bash extensions. ++ + 2009-09-21 Ulrich Drepper + + * configure.ac: Update for more modern autoconf. +@@ -85,6 +94,10 @@ + + * configure.ac (zip_LIBS): Check for liblzma too. + ++2009-08-17 Roland McGrath ++ ++ * configure.ac: Check for -fgnu89-inline; add it to WEXTRA if it works. ++ + 2009-04-19 Roland McGrath + + * configure.ac (eu_version): Round down here, not in version.h macros. +@@ -96,6 +109,8 @@ + + 2009-01-23 Roland McGrath + ++ * configure.ac: Check for __builtin_popcount. ++ + * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3. + + * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of +@@ -176,6 +191,10 @@ + * configure.ac: Add dummy automake conditional to get dependencies + for non-generic linker right. See src/Makefile.am. + ++2005-11-22 Roland McGrath ++ ++ * configure.ac: Check for --as-needed linker option. ++ + 2005-11-18 Roland McGrath + + * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable. +@@ -223,6 +242,17 @@ + * Makefile.am (all_SUBDIRS): Add libdwfl. + * configure.ac: Write libdwfl/Makefile. + ++2005-05-31 Roland McGrath ++ ++ * configure.ac (WEXTRA): Check for -Wextra and set this substitution. ++ ++ * configure.ac: Check for struct stat st_?tim members. ++ * src/strip.c (process_file): Use st_?time if st_?tim are not there. ++ ++ * configure.ac: Check for futimes function. ++ * src/strip.c (handle_elf) [! HAVE_FUTIMES]: Use utimes instead. ++ (handle_ar) [! HAVE_FUTIMES]: Likewise. ++ + 2005-05-19 Roland McGrath + + * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros. --- elfutils/config/ChangeLog +++ elfutils/config/ChangeLog -@@ -27,6 +27,10 @@ +@@ -23,6 +23,10 @@ * known-dwarf.awk: Use gawk. @@ -206,24 +188,6 @@ 2010-07-02 Ulrich Drepper * elfutils.spec.in: Add more BuildRequires. ---- elfutils/config/Makefile.in -+++ elfutils/config/Makefile.in -@@ -140,6 +140,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -169,6 +170,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = @VERSION@ -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ --- elfutils/config/eu.am +++ elfutils/config/eu.am @@ -1,6 +1,6 @@ @@ -257,6 +221,24 @@ if MUDFLAP AM_CFLAGS += -fmudflap libmudflap = -lmudflap +--- elfutils/config/Makefile.in ++++ elfutils/config/Makefile.in +@@ -140,6 +140,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -169,6 +170,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ --- elfutils/config.h.in +++ elfutils/config.h.in @@ -6,6 +6,9 @@ @@ -615,6 +597,26 @@ 2005-04-30 Ulrich Drepper * Makefile.am: Use -ffunction-sections for xmalloc.c. +--- elfutils/lib/eu-config.h ++++ elfutils/lib/eu-config.h +@@ -162,6 +162,17 @@ asm (".section predict_data, \"aw\"; .pr + /* This macro is used by the tests conditionalize for standalone building. */ + #define ELFUTILS_HEADER(name) + ++#ifndef HAVE_BUILTIN_POPCOUNT ++# define __builtin_popcount hakmem_popcount ++static inline unsigned int __attribute__ ((unused)) ++hakmem_popcount (unsigned int x) ++{ ++ /* HAKMEM 169 */ ++ unsigned int n = x - ((x >> 1) & 033333333333) - ((x >> 2) & 011111111111); ++ return ((n + (n >> 3)) & 030707070707) % 63; ++} ++#endif /* HAVE_BUILTIN_POPCOUNT */ ++ + + #ifdef SHARED + # define OLD_VERSION(name, version) \ --- elfutils/lib/Makefile.in +++ elfutils/lib/Makefile.in @@ -82,7 +82,8 @@ host_triplet = @host@ @@ -656,26 +658,6 @@ @MUDFLAP_FALSE@libmudflap = @MUDFLAP_TRUE@libmudflap = -lmudflap COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\ ---- elfutils/lib/eu-config.h -+++ elfutils/lib/eu-config.h -@@ -162,6 +162,17 @@ asm (".section predict_data, \"aw\"; .pr - /* This macro is used by the tests conditionalize for standalone building. */ - #define ELFUTILS_HEADER(name) - -+#ifndef HAVE_BUILTIN_POPCOUNT -+# define __builtin_popcount hakmem_popcount -+static inline unsigned int __attribute__ ((unused)) -+hakmem_popcount (unsigned int x) -+{ -+ /* HAKMEM 169 */ -+ unsigned int n = x - ((x >> 1) & 033333333333) - ((x >> 2) & 011111111111); -+ return ((n + (n >> 3)) & 030707070707) % 63; -+} -+#endif /* HAVE_BUILTIN_POPCOUNT */ -+ - - #ifdef SHARED - # define OLD_VERSION(name, version) \ --- elfutils/libasm/ChangeLog +++ elfutils/libasm/ChangeLog @@ -75,6 +75,11 @@ @@ -768,6 +750,16 @@ 2005-02-15 Ulrich Drepper * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. +--- elfutils/libcpu/i386_disasm.c ++++ elfutils/libcpu/i386_disasm.c +@@ -822,6 +822,7 @@ i386_disasm (const uint8_t **startp, con + + default: + assert (! "INVALID not handled"); ++ abort (); + } + } + else --- elfutils/libcpu/Makefile.in +++ elfutils/libcpu/Makefile.in @@ -84,7 +84,8 @@ DIST_COMMON = $(top_srcdir)/config/eu.am @@ -809,16 +801,6 @@ @MUDFLAP_FALSE@libmudflap = @MUDFLAP_TRUE@libmudflap = -lmudflap COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\ ---- elfutils/libcpu/i386_disasm.c -+++ elfutils/libcpu/i386_disasm.c -@@ -822,6 +822,7 @@ i386_disasm (const uint8_t **startp, con - - default: - assert (! "INVALID not handled"); -+ abort (); - } - } - else --- elfutils/libdw/ChangeLog +++ elfutils/libdw/ChangeLog @@ -177,6 +177,10 @@ @@ -855,6 +837,34 @@ * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to formref offset. +--- elfutils/libdw/dwarf_begin_elf.c ++++ elfutils/libdw/dwarf_begin_elf.c +@@ -48,6 +48,14 @@ + #if USE_ZLIB + # include + # define crc32 loser_crc32 ++# ifndef be64toh ++# include ++# if __BYTE_ORDER == __LITTLE_ENDIAN ++# define be64toh(x) bswap_64 (x) ++# else ++# define be64toh(x) (x) ++# endif ++# endif + # include + # undef crc32 + #endif +--- elfutils/libdw/libdw.h ++++ elfutils/libdw/libdw.h +@@ -831,7 +831,7 @@ extern Dwarf_OOM dwarf_new_oom_handler ( + + + /* Inline optimizations. */ +-#ifdef __OPTIMIZE__ ++#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2) + /* Return attribute code of given attribute. */ + __libdw_extern_inline unsigned int + dwarf_whatattr (Dwarf_Attribute *attr) --- elfutils/libdw/Makefile.in +++ elfutils/libdw/Makefile.in @@ -84,8 +84,9 @@ DIST_COMMON = $(top_srcdir)/config/eu.am @@ -898,37 +908,9 @@ @MUDFLAP_FALSE@libmudflap = @MUDFLAP_TRUE@libmudflap = -lmudflap COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage $(no_mudflap.os),\ ---- elfutils/libdw/dwarf_begin_elf.c -+++ elfutils/libdw/dwarf_begin_elf.c -@@ -48,6 +48,14 @@ - #if USE_ZLIB - # include - # define crc32 loser_crc32 -+# ifndef be64toh -+# include -+# if __BYTE_ORDER == __LITTLE_ENDIAN -+# define be64toh(x) bswap_64 (x) -+# else -+# define be64toh(x) (x) -+# endif -+# endif - # include - # undef crc32 - #endif ---- elfutils/libdw/libdw.h -+++ elfutils/libdw/libdw.h -@@ -831,7 +831,7 @@ extern Dwarf_OOM dwarf_new_oom_handler ( - - - /* Inline optimizations. */ --#ifdef __OPTIMIZE__ -+#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2) - /* Return attribute code of given attribute. */ - __libdw_extern_inline unsigned int - dwarf_whatattr (Dwarf_Attribute *attr) --- elfutils/libdwfl/ChangeLog +++ elfutils/libdwfl/ChangeLog -@@ -1659,6 +1659,11 @@ +@@ -1624,6 +1624,11 @@ 2005-07-21 Roland McGrath @@ -1090,6 +1072,46 @@ 2005-05-08 Roland McGrath * elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now. +--- elfutils/libelf/common.h ++++ elfutils/libelf/common.h +@@ -139,7 +139,7 @@ libelf_release_all (Elf *elf) + (Var) = (sizeof (Var) == 1 \ + ? (unsigned char) (Var) \ + : (sizeof (Var) == 2 \ +- ? bswap_16 (Var) \ ++ ? (unsigned short int) bswap_16 (Var) \ + : (sizeof (Var) == 4 \ + ? bswap_32 (Var) \ + : bswap_64 (Var)))) +@@ -148,7 +148,7 @@ libelf_release_all (Elf *elf) + (Dst) = (sizeof (Var) == 1 \ + ? (unsigned char) (Var) \ + : (sizeof (Var) == 2 \ +- ? bswap_16 (Var) \ ++ ? (unsigned short int) bswap_16 (Var) \ + : (sizeof (Var) == 4 \ + ? bswap_32 (Var) \ + : bswap_64 (Var)))) +--- elfutils/libelf/gnuhash_xlate.h ++++ elfutils/libelf/gnuhash_xlate.h +@@ -1,5 +1,5 @@ + /* Conversion functions for versioning information. +- Copyright (C) 2006, 2007 Red Hat, Inc. ++ Copyright (C) 2006-2011 Red Hat, Inc. + This file is part of elfutils. + Written by Ulrich Drepper , 2006. + +@@ -68,7 +68,9 @@ elf_cvt_gnuhash (void *dest, const void + dest32 = (Elf32_Word *) &dest64[bitmask_words]; + while (len >= 4) + { +- *dest32++ = bswap_32 (*src32++); ++ *dest32 = bswap_32 (*src32); ++ ++dest32; ++ ++src32; + len -= 4; + } + } --- elfutils/libelf/Makefile.in +++ elfutils/libelf/Makefile.in @@ -84,11 +84,12 @@ DIST_COMMON = $(top_srcdir)/config/eu.am @@ -1146,46 +1168,6 @@ @MUDFLAP_FALSE@libelf_so_SOURCES = noinst_HEADERS = elf.h abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \ version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h ---- elfutils/libelf/common.h -+++ elfutils/libelf/common.h -@@ -139,7 +139,7 @@ libelf_release_all (Elf *elf) - (Var) = (sizeof (Var) == 1 \ - ? (unsigned char) (Var) \ - : (sizeof (Var) == 2 \ -- ? bswap_16 (Var) \ -+ ? (unsigned short int) bswap_16 (Var) \ - : (sizeof (Var) == 4 \ - ? bswap_32 (Var) \ - : bswap_64 (Var)))) -@@ -148,7 +148,7 @@ libelf_release_all (Elf *elf) - (Dst) = (sizeof (Var) == 1 \ - ? (unsigned char) (Var) \ - : (sizeof (Var) == 2 \ -- ? bswap_16 (Var) \ -+ ? (unsigned short int) bswap_16 (Var) \ - : (sizeof (Var) == 4 \ - ? bswap_32 (Var) \ - : bswap_64 (Var)))) ---- elfutils/libelf/gnuhash_xlate.h -+++ elfutils/libelf/gnuhash_xlate.h -@@ -1,5 +1,5 @@ - /* Conversion functions for versioning information. -- Copyright (C) 2006, 2007 Red Hat, Inc. -+ Copyright (C) 2006-2011 Red Hat, Inc. - This file is part of elfutils. - Written by Ulrich Drepper , 2006. - -@@ -68,7 +68,9 @@ elf_cvt_gnuhash (void *dest, const void - dest32 = (Elf32_Word *) &dest64[bitmask_words]; - while (len >= 4) - { -- *dest32++ = bswap_32 (*src32++); -+ *dest32 = bswap_32 (*src32); -+ ++dest32; -+ ++src32; - len -= 4; - } - } --- elfutils/m4/Makefile.in +++ elfutils/m4/Makefile.in @@ -139,6 +139,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -1204,6 +1186,39 @@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +--- elfutils/Makefile.in ++++ elfutils/Makefile.in +@@ -256,6 +256,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -285,6 +286,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +--- elfutils/src/addr2line.c ++++ elfutils/src/addr2line.c +@@ -448,10 +448,10 @@ handle_address (const char *string, Dwfl + bool parsed = false; + int i, j; + char *name = NULL; +- if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2 ++ if (sscanf (string, "(%a[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2 + && string[i] == '\0') + parsed = adjust_to_section (name, &addr, dwfl); +- switch (sscanf (string, "%m[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j)) ++ switch (sscanf (string, "%a[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j)) + { + default: + break; --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog @@ -766,8 +766,16 @@ @@ -1287,6 +1302,38 @@ 2005-05-30 Roland McGrath * readelf.c (print_debug_line_section): Print section offset of each +--- elfutils/src/findtextrel.c ++++ elfutils/src/findtextrel.c +@@ -496,7 +496,11 @@ ptrcompare (const void *p1, const void * + + + static void +-check_rel (size_t nsegments, struct segments segments[nsegments], ++check_rel (size_t nsegments, struct segments segments[ ++#if __GNUC__ >= 4 ++ nsegments ++#endif ++ ], + GElf_Addr addr, Elf *elf, Elf_Scn *symscn, Dwarf *dw, + const char *fname, bool more_than_one, void **knownsrcs) + { +--- elfutils/src/ld.h ++++ elfutils/src/ld.h +@@ -1114,6 +1114,7 @@ extern bool dynamically_linked_p (void); + + /* Checked whether the symbol is undefined and referenced from a DSO. */ + extern bool linked_from_dso_p (struct scninfo *scninfo, size_t symidx); ++#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2) + #ifdef __GNUC_STDC_INLINE__ + __attribute__ ((__gnu_inline__)) + #endif +@@ -1131,5 +1132,6 @@ linked_from_dso_p (struct scninfo *scnin + + return sym->defined && sym->in_dso; + } ++#endif /* Optimizing and not GCC 4.2. */ + + #endif /* ld.h */ --- elfutils/src/Makefile.am +++ elfutils/src/Makefile.am @@ -95,6 +95,9 @@ addr2line_no_Wformat = yes @@ -1391,61 +1438,20 @@ ld_LDFLAGS = -rdynamic elflint_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl findtextrel_LDADD = $(libdw) $(libelf) $(libmudflap) ---- elfutils/src/addr2line.c -+++ elfutils/src/addr2line.c -@@ -448,10 +448,10 @@ handle_address (const char *string, Dwfl - bool parsed = false; - int i, j; - char *name = NULL; -- if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2 -+ if (sscanf (string, "(%a[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2 - && string[i] == '\0') - parsed = adjust_to_section (name, &addr, dwfl); -- switch (sscanf (string, "%m[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j)) -+ switch (sscanf (string, "%a[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j)) - { - default: - break; ---- elfutils/src/findtextrel.c -+++ elfutils/src/findtextrel.c -@@ -496,7 +496,11 @@ ptrcompare (const void *p1, const void * - - - static void --check_rel (size_t nsegments, struct segments segments[nsegments], -+check_rel (size_t nsegments, struct segments segments[ -+#if __GNUC__ >= 4 -+ nsegments -+#endif -+ ], - GElf_Addr addr, Elf *elf, Elf_Scn *symscn, Dwarf *dw, - const char *fname, bool more_than_one, void **knownsrcs) - { ---- elfutils/src/ld.h -+++ elfutils/src/ld.h -@@ -1114,6 +1114,7 @@ extern bool dynamically_linked_p (void); - - /* Checked whether the symbol is undefined and referenced from a DSO. */ - extern bool linked_from_dso_p (struct scninfo *scninfo, size_t symidx); -+#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2) - #ifdef __GNUC_STDC_INLINE__ - __attribute__ ((__gnu_inline__)) - #endif -@@ -1131,5 +1132,6 @@ linked_from_dso_p (struct scninfo *scnin - - return sym->defined && sym->in_dso; - } -+#endif /* Optimizing and not GCC 4.2. */ - - #endif /* ld.h */ --- elfutils/src/readelf.c +++ elfutils/src/readelf.c -@@ -4170,10 +4170,12 @@ listptr_base (struct listptr *p) - return base; - } +@@ -4150,6 +4150,8 @@ struct listptr + #define listptr_offset_size(p) ((p)->dwarf64 ? 8 : 4) + #define listptr_address_size(p) ((p)->addr64 ? 8 : 4) +static const char *listptr_name; + + static Dwarf_Addr + listptr_base (struct listptr *p) + { +@@ -4171,9 +4173,9 @@ listptr_base (struct listptr *p) + } + static int -compare_listptr (const void *a, const void *b, void *arg) +compare_listptr (const void *a, const void *b) @@ -1571,7 +1577,7 @@ cannot set access and modification date of '%s'"), fname); --- elfutils/tests/ChangeLog +++ elfutils/tests/ChangeLog -@@ -652,6 +652,8 @@ +@@ -647,6 +647,8 @@ 2008-01-21 Roland McGrath @@ -1580,7 +1586,7 @@ * testfile45.S.bz2: Add tests for cltq, cqto. * testfile45.expect.bz2: Adjust. -@@ -1360,6 +1362,11 @@ +@@ -1355,6 +1357,11 @@ * Makefile.am (TESTS): Add run-elflint-test.sh. (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2. @@ -1592,6 +1598,17 @@ 2005-05-24 Ulrich Drepper * get-files.c (main): Use correct format specifier. +--- elfutils/tests/line2addr.c ++++ elfutils/tests/line2addr.c +@@ -124,7 +124,7 @@ main (int argc, char *argv[]) + { + struct args a = { .arg = argv[cnt] }; + +- switch (sscanf (a.arg, "%m[^:]:%d", &a.file, &a.line)) ++ switch (sscanf (a.arg, "%a[^:]:%d", &a.file, &a.line)) + { + default: + case 0: --- elfutils/tests/Makefile.in +++ elfutils/tests/Makefile.in @@ -80,14 +80,15 @@ host_triplet = @host@ @@ -1614,15 +1631,13 @@ check_PROGRAMS = arextract$(EXEEXT) arsymtest$(EXEEXT) \ newfile$(EXEEXT) saridx$(EXEEXT) scnnames$(EXEEXT) \ sectiondump$(EXEEXT) showptable$(EXEEXT) update1$(EXEEXT) \ -@@ -140,14 +141,14 @@ TESTS = run-arextract.sh run-arsymtest.s - run-macro-test.sh run-elf_cntl_gelf_getshdr.sh \ - run-test-archive64.sh run-readelf-vmcoreinfo.sh \ +@@ -142,13 +143,13 @@ run-readelf-mixed-corenote.sh run-dwfllines.sh \ -- run-dwfl-report-elf-align.sh $(am__EXEEXT_1) $(am__append_7) \ -- $(am__EXEEXT_3) $(am__append_10) + run-dwfl-report-elf-align.sh run-addr2line-test.sh \ + run-addr2line-i-test.sh run-varlocs.sh $(am__EXEEXT_1) \ +- $(am__append_7) $(am__EXEEXT_3) $(am__append_10) -@STANDALONE_FALSE@am__append_5 = msg_tst md5-sha1-test -+ run-dwfl-report-elf-align.sh $(am__EXEEXT_1) $(am__append_8) \ -+ $(am__EXEEXT_3) $(am__append_11) ++ $(am__append_8) $(am__EXEEXT_3) $(am__append_11) @STANDALONE_FALSE@am__append_6 = msg_tst md5-sha1-test -@LZMA_TRUE@am__append_7 = run-readelf-s.sh run-dwflsyms.sh -@HAVE_LIBASM_TRUE@am__append_8 = $(asm_TESTS) @@ -1676,14 +1691,3 @@ @TESTS_RPATH_FALSE@tests_rpath = no @TESTS_RPATH_TRUE@tests_rpath = yes asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \ ---- elfutils/tests/line2addr.c -+++ elfutils/tests/line2addr.c -@@ -124,7 +124,7 @@ main (int argc, char *argv[]) - { - struct args a = { .arg = argv[cnt] }; - -- switch (sscanf (a.arg, "%m[^:]:%d", &a.file, &a.line)) -+ switch (sscanf (a.arg, "%a[^:]:%d", &a.file, &a.line)) - { - default: - case 0: diff --git a/elfutils-robustify.patch b/elfutils-robustify.patch index fa43af2..8359a9b 100644 --- a/elfutils-robustify.patch +++ b/elfutils-robustify.patch @@ -1,6 +1,6 @@ --- elfutils/libdwfl/ChangeLog +++ elfutils/libdwfl/ChangeLog -@@ -291,6 +291,11 @@ +@@ -256,6 +256,11 @@ * dwfl_module_getdwarf.c (open_elf): Clear errno before CBFAIL. Reported by Kurt Roeckx . @@ -408,46 +408,6 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; ---- elfutils/libelf/gelf_getrel.c -+++ elfutils/libelf/gelf_getrel.c -@@ -1,5 +1,5 @@ - /* Get REL relocation information at given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of elfutils. - Written by Ulrich Drepper , 2000. - -@@ -50,12 +50,6 @@ gelf_getrel (data, ndx, dst) - if (data_scn == NULL) - return NULL; - -- if (unlikely (ndx < 0)) -- { -- __libelf_seterrno (ELF_E_INVALID_INDEX); -- return NULL; -- } -- - if (unlikely (data_scn->d.d_type != ELF_T_REL)) - { - __libelf_seterrno (ELF_E_INVALID_HANDLE); -@@ -72,7 +66,7 @@ gelf_getrel (data, ndx, dst) - if (scn->elf->class == ELFCLASS32) - { - /* We have to convert the data. */ -- if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf32_Rel, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - result = NULL; -@@ -92,7 +86,7 @@ gelf_getrel (data, ndx, dst) - { - /* Simply copy the data after we made sure we are actually getting - correct data. */ -- if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - result = NULL; --- elfutils/libelf/gelf_getrela.c +++ elfutils/libelf/gelf_getrela.c @@ -1,5 +1,5 @@ @@ -488,6 +448,46 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); result = NULL; +--- elfutils/libelf/gelf_getrel.c ++++ elfutils/libelf/gelf_getrel.c +@@ -1,5 +1,5 @@ + /* Get REL relocation information at given index. +- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. ++ Copyright (C) 2000-2009 Red Hat, Inc. + This file is part of elfutils. + Written by Ulrich Drepper , 2000. + +@@ -50,12 +50,6 @@ gelf_getrel (data, ndx, dst) + if (data_scn == NULL) + return NULL; + +- if (unlikely (ndx < 0)) +- { +- __libelf_seterrno (ELF_E_INVALID_INDEX); +- return NULL; +- } +- + if (unlikely (data_scn->d.d_type != ELF_T_REL)) + { + __libelf_seterrno (ELF_E_INVALID_HANDLE); +@@ -72,7 +66,7 @@ gelf_getrel (data, ndx, dst) + if (scn->elf->class == ELFCLASS32) + { + /* We have to convert the data. */ +- if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf32_Rel, &data_scn->d)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + result = NULL; +@@ -92,7 +86,7 @@ gelf_getrel (data, ndx, dst) + { + /* Simply copy the data after we made sure we are actually getting + correct data. */ +- if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + result = NULL; --- elfutils/libelf/gelf_getsym.c +++ elfutils/libelf/gelf_getsym.c @@ -1,5 +1,5 @@ @@ -678,46 +678,6 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); return 0; ---- elfutils/libelf/gelf_update_rel.c -+++ elfutils/libelf/gelf_update_rel.c -@@ -1,5 +1,5 @@ - /* Update REL relocation information at given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of elfutils. - Written by Ulrich Drepper , 2000. - -@@ -47,12 +47,6 @@ gelf_update_rel (Elf_Data *dst, int ndx, - if (dst == NULL) - return 0; - -- if (unlikely (ndx < 0)) -- { -- __libelf_seterrno (ELF_E_INVALID_INDEX); -- return 0; -- } -- - if (unlikely (data_scn->d.d_type != ELF_T_REL)) - { - /* The type of the data better should match. */ -@@ -78,7 +72,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, - } - - /* Check whether we have to resize the data buffer. */ -- if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf32_Rel, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; -@@ -93,7 +87,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, - else - { - /* Check whether we have to resize the data buffer. */ -- if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; --- elfutils/libelf/gelf_update_rela.c +++ elfutils/libelf/gelf_update_rela.c @@ -1,5 +1,5 @@ @@ -758,6 +718,46 @@ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; +--- elfutils/libelf/gelf_update_rel.c ++++ elfutils/libelf/gelf_update_rel.c +@@ -1,5 +1,5 @@ + /* Update REL relocation information at given index. +- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. ++ Copyright (C) 2000-2009 Red Hat, Inc. + This file is part of elfutils. + Written by Ulrich Drepper , 2000. + +@@ -47,12 +47,6 @@ gelf_update_rel (Elf_Data *dst, int ndx, + if (dst == NULL) + return 0; + +- if (unlikely (ndx < 0)) +- { +- __libelf_seterrno (ELF_E_INVALID_INDEX); +- return 0; +- } +- + if (unlikely (data_scn->d.d_type != ELF_T_REL)) + { + /* The type of the data better should match. */ +@@ -78,7 +72,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, + } + + /* Check whether we have to resize the data buffer. */ +- if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf32_Rel, &data_scn->d)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; +@@ -93,7 +87,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, + else + { + /* Check whether we have to resize the data buffer. */ +- if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size)) ++ if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d)) + { + __libelf_seterrno (ELF_E_INVALID_INDEX); + goto out; --- elfutils/libelf/gelf_update_sym.c +++ elfutils/libelf/gelf_update_sym.c @@ -1,5 +1,5 @@ diff --git a/elfutils.spec b/elfutils.spec index 16c06f7..5e82e21 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 5 +Version: 0.157 +%global baserelease 1 URL: https://fedorahosted.org/elfutils/ %global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/ License: GPLv3+ and (GPLv2+ or LGPLv3+) @@ -46,9 +46,6 @@ Source: %{?source_url}%{name}-%{version}.tar.bz2 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} %else @@ -212,9 +209,6 @@ sed -i.scanf-m -e 's/%m/%a/g' src/addr2line.c tests/line2addr.c %endif %endif -%patch3 -p1 -b .et_dyn-kernel -%patch4 -p1 -b .abi_cfi - find . -name \*.sh ! -perm -0100 -print | xargs chmod +x %build @@ -329,6 +323,11 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/libelf.a %changelog +* Mon Sep 30 2013 Mark Wielaard 0.157-1 +- Update to 0.157. +- Remove elfutils-0.156-abi_cfi-ppc-s390-arm.patch. +- Remove elfutils-0.156-et_dyn-kernels.patch. + * Fri Sep 06 2013 Mark Wielaard 0.156-5 - Add elfutils-0.156-abi_cfi-ppc-s390-arm.patch. Sets up initial CFI return register, CFA location expression and diff --git a/sources b/sources index 5ffe5fe..4699c5e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f3b5cbb63b0757f571c6cc109df4c55b elfutils-0.156.tar.bz2 +0f6746a55f0bc26558f0c162fe137fa1 elfutils-0.157.tar.bz2