diff options
21 files changed, 735 insertions, 1771 deletions
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.163/arm_func_value.patch b/meta/recipes-devtools/elfutils/elfutils-0.163/arm_func_value.patch deleted file mode 100644 index 2fe4df68b7..0000000000 --- a/meta/recipes-devtools/elfutils/elfutils-0.163/arm_func_value.patch +++ /dev/null @@ -1,165 +0,0 @@ -From: Mark Wielaard <mjw@redhat.com> -Date: Sun, 15 Jun 2014 11:30:35 +0200 -Subject: libebl: Add sym_func_value hook. - -The ARM EABI says that the zero bit of function symbol st_value indicates -whether the symbol points to a THUMB or ARM function. Add a new ebl hook -to adjust the st_value in such a case so that we get the actual value that -the symbol points to. It isn't easily possible to reuse the existing -resolve_sym_value for this purpose, so we end up with another hook that -can be used from dwfl_module_getsym and elflint. - -Rebase arm_func_value.patch from 0.159 to 0.160 -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - backends/arm_init.c | 1 + - backends/arm_symbol.c | 8 ++++++++ - libdwfl/dwfl_module_getsym.c | 2 +- - libebl/Makefile.am | 3 ++- - libebl/ebl-hooks.h | 3 +++ - libebl/eblsymfuncval.c | 43 ++++++++++++++++++++++++++++++++++++++++++ - libebl/libebl.h | 11 +++++++++++ - 7 files changed, 69 insertions(+), 2 deletions(-) - -diff --git a/backends/arm_init.c b/backends/arm_init.c -index 7171186..9f03630 100644 ---- a/backends/arm_init.c -+++ b/backends/arm_init.c -@@ -78,6 +78,7 @@ arm_init (elf, machine, eh, ehlen) - eh->return_value_location = arm_return_value_location_hard; - HOOK (eh, abi_cfi); - HOOK (eh, check_reloc_target_type); -+ HOOK (eh, sym_func_value); - HOOK (eh, symbol_type_name); - - /* We only unwind the core integer registers. */ -diff --git a/backends/arm_symbol.c b/backends/arm_symbol.c -index da4a50a..ccea03b 100644 ---- a/backends/arm_symbol.c -+++ b/backends/arm_symbol.c -@@ -130,6 +130,14 @@ arm_check_reloc_target_type (Ebl *ebl __attribute__ ((unused)), Elf64_Word sh_ty - return sh_type == SHT_ARM_EXIDX; - } - -+/* ARM EABI says that the low bit indicates whether the function -+ symbol value is a THUMB function or not. Mask it off. */ -+GElf_Addr -+arm_sym_func_value (Ebl *ebl __attribute__ ((unused)), GElf_Addr val) -+{ -+ return val & ~(GElf_Addr)1; -+} -+ - const char * - arm_symbol_type_name (int type, - char *buf __attribute__ ((unused)), -diff --git a/libdwfl/dwfl_module_getsym.c b/libdwfl/dwfl_module_getsym.c -index 42d2b67..fb192d7 100644 ---- a/libdwfl/dwfl_module_getsym.c -+++ b/libdwfl/dwfl_module_getsym.c -@@ -119,7 +119,7 @@ __libdwfl_getsym (Dwfl_Module *mod, int ndx, GElf_Sym *sym, GElf_Addr *addr, - descriptors). */ - - char *ident; -- GElf_Addr st_value = sym->st_value & ebl_func_addr_mask (mod->ebl); -+ GElf_Addr st_value = ebl_sym_func_value (mod->ebl, sym->st_value); - *resolved = false; - if (! adjust_st_value && mod->e_type != ET_REL && alloc - && (GELF_ST_TYPE (sym->st_info) == STT_FUNC -diff --git a/libebl/Makefile.am b/libebl/Makefile.am -index ec4477b..889c21b 100644 ---- a/libebl/Makefile.am -+++ b/libebl/Makefile.am -@@ -55,7 +55,8 @@ gen_SOURCES = eblopenbackend.c eblclosebackend.c eblstrtab.c \ - eblsysvhashentrysize.c eblauxvinfo.c eblcheckobjattr.c \ - ebl_check_special_section.c ebl_syscall_abi.c eblabicfi.c \ - eblstother.c eblinitreg.c ebldwarftoregno.c eblnormalizepc.c \ -- eblunwind.c eblresolvesym.c eblcheckreloctargettype.c -+ eblunwind.c eblresolvesym.c eblcheckreloctargettype.c \ -+ eblsymfuncval.c - - libebl_a_SOURCES = $(gen_SOURCES) - -diff --git a/libebl/ebl-hooks.h b/libebl/ebl-hooks.h -index 2e31446..9df945d 100644 ---- a/libebl/ebl-hooks.h -+++ b/libebl/ebl-hooks.h -@@ -191,5 +191,8 @@ bool EBLHOOK(unwind) (Ebl *ebl, Dwarf_Addr pc, ebl_tid_registers_t *setfunc, - (e.g. function descriptor resolving) */ - bool EBLHOOK(resolve_sym_value) (Ebl *ebl, GElf_Addr *addr); - -+/* Returns the real value of a symbol function address or offset. */ -+GElf_Addr EBLHOOK(sym_func_value) (Ebl *ebl, GElf_Addr val); -+ - /* Destructor for ELF backend handle. */ - void EBLHOOK(destr) (struct ebl *); -diff --git a/libebl/eblsymfuncval.c b/libebl/eblsymfuncval.c -new file mode 100644 -index 0000000..c0b322f ---- /dev/null -+++ b/libebl/eblsymfuncval.c -@@ -0,0 +1,43 @@ -+/* Turn a symbol function value into a real function address or offset. -+ Copyright (C) 2014 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 <libeblP.h> -+#include <assert.h> -+ -+GElf_Addr -+ebl_sym_func_value (Ebl *ebl, GElf_Addr val) -+{ -+ if (ebl == NULL || ebl->sym_func_value == NULL) -+ return val; -+ -+ return ebl->sym_func_value (ebl, val); -+} -diff --git a/libebl/libebl.h b/libebl/libebl.h -index 7dbf460..96c076b 100644 ---- a/libebl/libebl.h -+++ b/libebl/libebl.h -@@ -472,6 +472,17 @@ extern bool ebl_unwind (Ebl *ebl, Dwarf_Addr pc, ebl_tid_registers_t *setfunc, - extern bool ebl_resolve_sym_value (Ebl *ebl, GElf_Addr *addr) - __nonnull_attribute__ (2); - -+/* Returns the real value of a symbol function address or offset -+ (e.g. when the st_value contains some flag bits that need to be -+ masked off). This is different from ebl_resolve_sym_value which -+ only works for actual symbol addresses (in non-ET_REL files) that -+ might resolve to an address in a different section. -+ ebl_sym_func_value is called to turn the given value into the a -+ real address or offset (the original value might not be a real -+ address). This works for both ET_REL when the value is a section -+ offset or ET_EXEC or ET_DYN symbol values, which are addresses. */ -+extern GElf_Addr ebl_sym_func_value (Ebl *ebl, GElf_Addr val); -+ - #ifdef __cplusplus - } - #endif diff --git a/meta/recipes-devtools/elfutils/elfutils-0.163/arm_unwind_ret_mask.patch b/meta/recipes-devtools/elfutils/elfutils-0.163/arm_unwind_ret_mask.patch deleted file mode 100644 index 8abb36bb49..0000000000 --- a/meta/recipes-devtools/elfutils/elfutils-0.163/arm_unwind_ret_mask.patch +++ /dev/null @@ -1,83 +0,0 @@ -From: Mark Wielaard <mjw@redhat.com> -Date: Sun, 15 Jun 2014 12:30:02 +0200 -Subject: libebl: Add ebl_unwind_ret_mask. - -Another ARM oddity. A return value address in an unwind will contain an -extra bit to indicate whether to return to a regular ARM or THUMB function. -Add a new ebl function to return a mask to use to get the actual return -address during an unwind ebl_unwind_ret_mask. - -Rebase arm_unwind_ret_mask.patch from 0.159 to 0.160 - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - backends/arm_init.c | 3 +++ - libebl/eblinitreg.c | 8 ++++++++ - libebl/libebl.h | 4 ++++ - libebl/libeblP.h | 6 ++++++ - 4 files changed, 21 insertions(+) - -diff --git a/backends/arm_init.c b/backends/arm_init.c -index 2266829..f8df042 100644 ---- a/backends/arm_init.c -+++ b/backends/arm_init.c -@@ -87,5 +87,8 @@ arm_init (elf, machine, eh, ehlen) - /* Bit zero encodes whether an function address is THUMB or ARM. */ - eh->func_addr_mask = ~(GElf_Addr)1; - -+ /* Bit zero encodes whether to return to a THUMB or ARM function. */ -+ eh->unwind_ret_mask = ~(GElf_Addr)1; -+ - return MODVERSION; - } -diff --git a/libebl/eblinitreg.c b/libebl/eblinitreg.c -index 5729b3c..ca681c0 100644 ---- a/libebl/eblinitreg.c -+++ b/libebl/eblinitreg.c -@@ -56,3 +56,11 @@ ebl_func_addr_mask (Ebl *ebl) - return ((ebl == NULL || ebl->func_addr_mask == 0) - ? ~(GElf_Addr)0 : ebl->func_addr_mask); - } -+ -+GElf_Addr -+ebl_unwind_ret_mask (Ebl *ebl) -+{ -+ return ((ebl == NULL || ebl->unwind_ret_mask == 0) -+ ? ~(GElf_Addr)0 : ebl->unwind_ret_mask); -+} -+ -diff --git a/libebl/libebl.h b/libebl/libebl.h -index 40cf635..be70027 100644 ---- a/libebl/libebl.h -+++ b/libebl/libebl.h -@@ -420,6 +420,10 @@ extern size_t ebl_frame_nregs (Ebl *ebl) - tables) is needed. */ - extern GElf_Addr ebl_func_addr_mask (Ebl *ebl); - -+/* Mask to use for unwind return address in case the architecture adds -+ some extra non-address bits to it. */ -+extern GElf_Addr ebl_unwind_ret_mask (Ebl *ebl); -+ - /* Convert *REGNO as is in DWARF to a lower range suitable for - Dwarf_Frame->REGS indexing. */ - extern bool ebl_dwarf_to_regno (Ebl *ebl, unsigned *regno) -diff --git a/libebl/libeblP.h b/libebl/libeblP.h -index dbd67f3..e18ace6 100644 ---- a/libebl/libeblP.h -+++ b/libebl/libeblP.h -@@ -70,6 +70,12 @@ struct ebl - otherwise it should be the actual mask to use. */ - GElf_Addr func_addr_mask; - -+ /* Mask to use to get the return address from an unwind in case the -+ architecture adds some extra non-address bits to it. When not -+ initialized (0) then ebl_unwind_ret_mask will return ~0, otherwise -+ it should be the actual mask to use. */ -+ GElf_Addr unwind_ret_mask; -+ - /* Function descriptor load address and table as used by - ebl_resolve_sym_value if available for this arch. */ - GElf_Addr fd_addr; --- -1.9.1 - diff --git a/meta/recipes-devtools/elfutils/elfutils-0.163/non_linux.patch b/meta/recipes-devtools/elfutils/elfutils-0.163/non_linux.patch deleted file mode 100644 index 35b1b389fb..0000000000 --- a/meta/recipes-devtools/elfutils/elfutils-0.163/non_linux.patch +++ /dev/null @@ -1,35 +0,0 @@ -Index: elfutils-0.159/libdwfl/linux-pid-attach.c -=================================================================== ---- elfutils-0.159.orig/libdwfl/linux-pid-attach.c -+++ elfutils-0.159/libdwfl/linux-pid-attach.c -@@ -393,6 +393,16 @@ pid_getthread (Dwfl *dwfl __attribute__ - return false; - } - -+bool -+internal_function -+__libdwfl_ptrace_attach (pid_t tid __attribute__ ((unused)), -+ bool *tid_was_stoppedp __attribute__ ((unused))) -+{ -+ errno = ENOSYS; -+ __libdwfl_seterrno (DWFL_E_ERRNO); -+ return false; -+} -+ - static bool - pid_memory_read (Dwfl *dwfl __attribute__ ((unused)), - Dwarf_Addr addr __attribute__ ((unused)), -@@ -419,6 +429,13 @@ pid_detach (Dwfl *dwfl __attribute__ ((u - { - } - -+void -+internal_function -+__libdwfl_ptrace_detach (pid_t tid __attribute__ ((unused)), -+ bool tid_was_stopped __attribute__ ((unused))) -+{ -+} -+ - static void - pid_thread_detach (Dwfl_Thread *thread __attribute__ ((unused)), - void *thread_arg __attribute__ ((unused))) diff --git a/meta/recipes-devtools/elfutils/elfutils-0.163/redhat-portability.diff b/meta/recipes-devtools/elfutils/elfutils-0.163/redhat-portability.diff deleted file mode 100644 index a0ff07d397..0000000000 --- a/meta/recipes-devtools/elfutils/elfutils-0.163/redhat-portability.diff +++ /dev/null @@ -1,1021 +0,0 @@ -Rebase to 1.162 - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - ChangeLog | 30 +++++++++++++++++++++ - backends/ChangeLog | 12 +++++++++ - backends/Makefile.am | 2 +- - config/ChangeLog | 4 +++ - config/eu.am | 14 +++++++--- - configure.ac | 61 +++++++++++++++++++++++++++++++++++++++++-- - lib/ChangeLog | 8 ++++++ - lib/eu-config.h | 10 +++++++ - libasm/ChangeLog | 5 ++++ - libcpu/ChangeLog | 8 ++++++ - libcpu/i386_disasm.c | 1 + - libdw/ChangeLog | 13 +++++++++ - libdw/dwarf_begin_elf.c | 8 ++++++ - libdw/libdw.h | 2 +- - libdwfl/ChangeLog | 20 ++++++++++++++ - libdwfl/linux-core-attach.c | 29 ++++++++++++++++++++ - libdwfl/linux-pid-attach.c | 14 ++++++++++ - libebl/ChangeLog | 5 ++++ - libelf/ChangeLog | 10 +++++++ - libelf/common.h | 4 +-- - libelf/gnuhash_xlate.h | 6 +++-- - src/ChangeLog | 30 +++++++++++++++++++++ - src/Makefile.am | 5 ++++ - src/addr2line.c | 4 +-- - src/findtextrel.c | 6 ++++- - src/ld.h | 2 ++ - src/readelf.c | 15 +++++++---- - src/strings.c | 11 ++++++++ - src/strip.c | 6 +++++ - tests/ChangeLog | 14 ++++++++++ - tests/Makefile.am | 1 + - tests/backtrace.c | 1 + - tests/line2addr.c | 2 +- - 33 files changed, 343 insertions(+), 20 deletions(-) - -diff --git a/ChangeLog b/ChangeLog -index d829783..89bfd24 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -253,6 +253,8 @@ - - 2012-01-24 Mark Wielaard <mjw@redhat.com> - -+ * configure.ac: Wrap AC_COMPILE_IFELSE sources in AC_LANG_SOURCE. -+ - * COPYING: Fix address. Updated version from gnulib. - - 2012-01-23 Mark Wielaard <mjw@redhat.com> -@@ -271,6 +273,9 @@ - - 2011-10-08 Mike Frysinger <vapier@gentoo.org> - -+ * 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 <drepper@gmail.com> -@@ -292,6 +297,10 @@ - - * configure.ac (LOCALEDIR, DATADIRNAME): Removed. - -+2009-11-22 Roland McGrath <roland@redhat.com> -+ -+ * configure.ac: Use sed and expr instead of modern bash extensions. -+ - 2009-09-21 Ulrich Drepper <drepper@redhat.com> - - * configure.ac: Update for more modern autoconf. -@@ -300,6 +309,10 @@ - - * configure.ac (zip_LIBS): Check for liblzma too. - -+2009-08-17 Roland McGrath <roland@redhat.com> -+ -+ * configure.ac: Check for -fgnu89-inline; add it to WEXTRA if it works. -+ - 2009-04-19 Roland McGrath <roland@redhat.com> - - * configure.ac (eu_version): Round down here, not in version.h macros. -@@ -311,6 +324,8 @@ - - 2009-01-23 Roland McGrath <roland@redhat.com> - -+ * 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 -@@ -391,6 +406,10 @@ - * configure.ac: Add dummy automake conditional to get dependencies - for non-generic linker right. See src/Makefile.am. - -+2005-11-22 Roland McGrath <roland@redhat.com> -+ -+ * configure.ac: Check for --as-needed linker option. -+ - 2005-11-18 Roland McGrath <roland@redhat.com> - - * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable. -@@ -438,6 +457,17 @@ - * Makefile.am (all_SUBDIRS): Add libdwfl. - * configure.ac: Write libdwfl/Makefile. - -+2005-05-31 Roland McGrath <roland@redhat.com> -+ -+ * 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 <roland@redhat.com> - - * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros. -diff --git a/backends/ChangeLog b/backends/ChangeLog -index fe61d9c..9599623 100644 ---- a/backends/ChangeLog -+++ b/backends/ChangeLog -@@ -498,6 +498,10 @@ - * ppc_attrs.c (ppc_check_object_attribute): Handle tag - GNU_Power_ABI_Struct_Return. - -+2009-01-23 Roland McGrath <roland@redhat.com> -+ -+ * Makefile.am (libebl_%.so): Use $(LD_AS_NEEDED). -+ - 2008-10-04 Ulrich Drepper <drepper@redhat.com> - - * i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and -@@ -825,6 +829,11 @@ - * sparc_init.c: Likewise. - * x86_64_init.c: Likewise. - -+2005-11-22 Roland McGrath <roland@redhat.com> -+ -+ * Makefile.am (LD_AS_NEEDED): New variable, substituted by configure. -+ (libebl_%.so rule): Use it in place of -Wl,--as-needed. -+ - 2005-11-19 Roland McGrath <roland@redhat.com> - - * ppc64_reloc.def: REL30 -> ADDR30. -@@ -847,6 +856,9 @@ - * Makefile.am (uninstall): Don't try to remove $(pkgincludedir). - (CLEANFILES): Add libebl_$(m).so. - -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - * ppc_reloc.def: Update bits per Alan Modra <amodra@bigpond.net.au>. - * ppc64_reloc.def: Likewise. - -diff --git a/backends/Makefile.am b/backends/Makefile.am -index 21d7bd2..fe920c9 100644 ---- a/backends/Makefile.am -+++ b/backends/Makefile.am -@@ -119,7 +119,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw) - $(LINK) -shared -o $(@:.map=.so) \ - -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \ - -Wl,--version-script,$(@:.so=.map) \ -- -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) -+ -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) - @$(textrel_check) - - libebl_i386.so: $(cpu_i386) -diff --git a/config/ChangeLog b/config/ChangeLog -index 64b58e1..63b3e90 100644 ---- a/config/ChangeLog -+++ b/config/ChangeLog -@@ -106,6 +106,10 @@ - - * known-dwarf.awk: Use gawk. - -+2011-10-08 Mike Frysinger <vapier@gentoo.org> -+ -+ * eu.am [BUILD_WERROR]: Conditionalize -Werror use on this. -+ - 2010-07-02 Ulrich Drepper <drepper@redhat.com> - - * elfutils.spec.in: Add more BuildRequires. -diff --git a/config/eu.am b/config/eu.am -index 70d32de..65af085 100644 ---- a/config/eu.am -+++ b/config/eu.am -@@ -1,6 +1,6 @@ - ## Common automake fragments for elfutils subdirectory makefiles. - ## --## Copyright (C) 2010, 2014 Red Hat, Inc. -+## Copyright (C) 2010-2011, 2014 Red Hat, Inc. - ## - ## This file is part of elfutils. - ## -@@ -29,6 +29,9 @@ - ## not, see <http://www.gnu.org/licenses/>. - ## - -+WEXTRA = @WEXTRA@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ -+ - DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"' - AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. - -@@ -38,12 +41,17 @@ STACK_USAGE_WARNING=-Wstack-usage=262144 - else - STACK_USAGE_WARNING= - endif --AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ -+AM_CFLAGS = -std=gnu99 -Wall -Wshadow \ - $(if $($(*F)_no_Werror),,-Werror) \ -- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ -+ $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \ -+ $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \ - $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ - $($(*F)_CFLAGS) - -+if BUILD_WERROR -+AM_CFLAGS += $(if $($(*F)_no_Werror),,-Werror) -+endif -+ - COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) - - DEFS.os = -DPIC -DSHARED -diff --git a/configure.ac b/configure.ac -index bc9ff56..27a1ef3 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -106,6 +106,55 @@ CFLAGS="$old_CFLAGS"]) - AS_IF([test "x$ac_cv_c99" != xyes], - AC_MSG_ERROR([gcc with GNU99 support required])) - -+AC_CACHE_CHECK([for -Wextra option to $CC], ac_cv_cc_wextra, [dnl -+old_CFLAGS="$CFLAGS" -+CFLAGS="$CFLAGS -Wextra" -+AC_COMPILE_IFELSE([AC_LANG_SOURCE([void foo (void) { }])], -+ ac_cv_cc_wextra=yes, ac_cv_cc_wextra=no) -+CFLAGS="$old_CFLAGS"]) -+AC_SUBST(WEXTRA) -+AS_IF([test "x$ac_cv_cc_wextra" = xyes], [WEXTRA=-Wextra], [WEXTRA=-W]) -+ -+AC_CACHE_CHECK([for -fgnu89-inline option to $CC], ac_cv_cc_gnu89_inline, [dnl -+old_CFLAGS="$CFLAGS" -+CFLAGS="$CFLAGS -fgnu89-inline -Werror" -+AC_COMPILE_IFELSE([AC_LANG_SOURCE([ -+void foo (void) -+{ -+ inline void bar (void) {} -+ bar (); -+} -+extern inline void baz (void) {} -+])], ac_cv_cc_gnu89_inline=yes, ac_cv_cc_gnu89_inline=no) -+CFLAGS="$old_CFLAGS"]) -+AS_IF([test "x$ac_cv_cc_gnu89_inline" = xyes], -+ [WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"]) -+ -+AC_CACHE_CHECK([for --as-needed linker option], -+ ac_cv_as_needed, [dnl -+cat > conftest.c <<EOF -+int main (void) { return 0; } -+EOF -+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -+ -fPIC -shared -o conftest.so conftest.c -+ -Wl,--as-needed 1>&AS_MESSAGE_LOG_FD]) -+then -+ ac_cv_as_needed=yes -+else -+ ac_cv_as_needed=no -+fi -+rm -f conftest*]) -+AS_IF([test "x$ac_cv_as_needed" = xyes], -+ [LD_AS_NEEDED=-Wl,--as-needed], [LD_AS_NEEDED=]) -+AC_SUBST(LD_AS_NEEDED) -+ -+AC_CACHE_CHECK([for __builtin_popcount], ac_cv_popcount, [dnl -+AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[exit (__builtin_popcount (127));]])], -+ ac_cv_popcount=yes, ac_cv_popcount=no)]) -+AS_IF([test "x$ac_cv_popcount" = xyes], -+ [AC_DEFINE([HAVE_BUILTIN_POPCOUNT], [1], [Have __builtin_popcount.])]) -+ -+ - AC_CACHE_CHECK([for __thread support], ac_cv_tls, [dnl - # Use the same flags that we use for our DSOs, so the test is representative. - # Some old compiler/linker/libc combinations fail some ways and not others. -@@ -122,7 +171,10 @@ static __thread int a; int foo (int b) { return a + b; }]], - CFLAGS="$save_CFLAGS" - LDFLAGS="$save_LDFLAGS"]) - AS_IF([test "x$ac_cv_tls" != xyes], -- AC_MSG_ERROR([__thread support required])) -+ [AS_IF([test "$use_locks" = yes], -+ [AC_MSG_ERROR([--enable-thread-safety requires __thread support])], -+ [AC_DEFINE([__thread], [/* empty: no multi-thread support */], -+ [Stubbed out if missing compiler support.])])]) - - dnl This test must come as early as possible after the compiler configuration - dnl tests, because the choice of the file model can (in principle) affect -@@ -224,6 +276,11 @@ AM_CONDITIONAL(USE_VALGRIND, test "$use_valgrind" = yes) - AM_CONDITIONAL(BUILD_STATIC, [dnl - test "$use_gprof" = yes -o "$use_gcov" = yes]) - -+AC_ARG_ENABLE([werror], -+AS_HELP_STRING([--disable-werror],[do not build with -Werror]), -+ [enable_werror=$enableval], [enable_werror=yes]) -+AM_CONDITIONAL(BUILD_WERROR, test "$enable_werror" = yes) -+ - AC_ARG_ENABLE([tests-rpath], - AS_HELP_STRING([--enable-tests-rpath],[build $ORIGIN-using rpath into tests]), - [tests_use_rpath=$enableval], [tests_use_rpath=no]) -@@ -388,7 +445,7 @@ case "$eu_version" in - esac - - # Round up to the next release API (x.y) version. --eu_version=$(( (eu_version + 999) / 1000 )) -+eu_version=`expr \( $eu_version + 999 \) / 1000` - - dnl Unique ID for this build. - MODVERSION="Build for ${LIBEBL_SUBDIR} ${eu_version} ${ac_cv_build}" -diff --git a/lib/ChangeLog b/lib/ChangeLog -index d04bf17..720c98d 100644 ---- a/lib/ChangeLog -+++ b/lib/ChangeLog -@@ -73,6 +73,9 @@ - - 2009-01-23 Roland McGrath <roland@redhat.com> - -+ * eu-config.h [! HAVE_BUILTIN_POPCOUNT] -+ (__builtin_popcount): New inline function. -+ - * eu-config.h: Add multiple inclusion protection. - - 2009-01-17 Ulrich Drepper <drepper@redhat.com> -@@ -129,6 +132,11 @@ - * Makefile.am (libeu_a_SOURCES): Add it. - * system.h: Declare crc32_file. - -+2005-02-07 Roland McGrath <roland@redhat.com> -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-04-30 Ulrich Drepper <drepper@redhat.com> - - * Makefile.am: Use -ffunction-sections for xmalloc.c. -diff --git a/lib/eu-config.h b/lib/eu-config.h -index 400cdc6..872f6bc 100644 ---- a/lib/eu-config.h -+++ b/lib/eu-config.h -@@ -163,6 +163,16 @@ asm (".section predict_data, \"aw\"; .previous\n" - /* This macro is used by the tests conditionalize for standalone building. */ - #define ELFUTILS_HEADER(name) <lib##name.h> - -+#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 SYMBOL_VERSIONING - # define OLD_VERSION(name, version) \ -diff --git a/libasm/ChangeLog b/libasm/ChangeLog -index 9b25af9..32b9fd0 100644 ---- a/libasm/ChangeLog -+++ b/libasm/ChangeLog -@@ -87,6 +87,11 @@ - * asm_error.c: Add new error ASM_E_IOERROR. - * libasmP.h: Add ASM_E_IOERROR definition. - -+2005-05-31 Roland McGrath <roland@redhat.com> -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-02-15 Ulrich Drepper <drepper@redhat.com> - - * Makefile.am (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. -diff --git a/libcpu/ChangeLog b/libcpu/ChangeLog -index a20f440..5ea23b7 100644 ---- a/libcpu/ChangeLog -+++ b/libcpu/ChangeLog -@@ -51,6 +51,9 @@ - - 2009-01-23 Roland McGrath <roland@redhat.com> - -+ * i386_disasm.c (i386_disasm): Add abort after assert-constant for old -+ compilers that don't realize it's noreturn. -+ - * Makefile.am (i386_parse_CFLAGS): Use quotes around command - substitution that can produce leading whitespace. - -@@ -380,6 +383,11 @@ - * defs/i386.doc: New file. - * defs/x86_64: New file. - -+2005-04-04 Roland McGrath <roland@redhat.com> -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it instead of -Wextra. -+ - 2005-02-15 Ulrich Drepper <drepper@redhat.com> - - * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. -diff --git a/libcpu/i386_disasm.c b/libcpu/i386_disasm.c -index 832241f..c7a0df0 100644 ---- a/libcpu/i386_disasm.c -+++ b/libcpu/i386_disasm.c -@@ -822,6 +822,7 @@ i386_disasm (const uint8_t **startp, const uint8_t *end, GElf_Addr addr, - - default: - assert (! "INVALID not handled"); -+ abort (); - } - } - else -diff --git a/libdw/ChangeLog b/libdw/ChangeLog -index 487e34a..06c737b 100644 ---- a/libdw/ChangeLog -+++ b/libdw/ChangeLog -@@ -889,6 +889,10 @@ - - * Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk. - -+2011-07-20 Mark Wielaard <mjw@redhat.com> -+ -+ * dwarf_begin_elf.c: Add fallback for be64toh if not defined. -+ - 2011-07-14 Mark Wielaard <mjw@redhat.com> - - * libdw.h (dwarf_offdie): Fix documentation to mention .debug_info. -@@ -1248,6 +1252,10 @@ - - * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too. - -+2009-08-17 Roland McGrath <roland@redhat.com> -+ -+ * libdw.h: Disable extern inlines for GCC 4.2. -+ - 2009-08-10 Roland McGrath <roland@redhat.com> - - * dwarf_getscopevar.c: Use dwarf_diename. -@@ -2016,6 +2024,11 @@ - - 2005-05-31 Roland McGrath <roland@redhat.com> - -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ -+2005-05-31 Roland McGrath <roland@redhat.com> -+ - * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to - formref offset. - -diff --git a/libdw/dwarf_begin_elf.c b/libdw/dwarf_begin_elf.c -index 4e0d590..a6616a1 100644 ---- a/libdw/dwarf_begin_elf.c -+++ b/libdw/dwarf_begin_elf.c -@@ -47,6 +47,14 @@ - #if USE_ZLIB - # include <endian.h> - # define crc32 loser_crc32 -+# ifndef be64toh -+# include <byteswap.h> -+# if __BYTE_ORDER == __LITTLE_ENDIAN -+# define be64toh(x) bswap_64 (x) -+# else -+# define be64toh(x) (x) -+# endif -+# endif - # include <zlib.h> - # undef crc32 - #endif -diff --git a/libdw/libdw.h b/libdw/libdw.h -index 473e1a2..5a511cd 100644 ---- a/libdw/libdw.h -+++ b/libdw/libdw.h -@@ -1004,7 +1004,7 @@ extern Dwarf_OOM dwarf_new_oom_handler (Dwarf *dbg, Dwarf_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) -diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog -index a5253e2..59abfac 100644 ---- a/libdwfl/ChangeLog -+++ b/libdwfl/ChangeLog -@@ -704,6 +704,21 @@ - (dwfl_module_addrsym) (i_to_symfile): New function. - (dwfl_module_addrsym) (search_table): Use it. - -+2013-11-09 Jan Kratochvil <jan.kratochvil@redhat.com> -+ -+ Older OS compatibility bits. -+ * linux-core-attach.c (be64toh, le64toh, be32toh, le32toh): Provide -+ fallbacks if not defined by system. -+ -+2013-11-09 Jan Kratochvil <jan.kratochvil@redhat.com> -+ -+ Handle T-stopped detach for old kernels. -+ * linux-pid-attach.c (struct pid_arg): New field stopped. -+ (ptrace_attach): New parameter stoppedp. Set it appropriately. -+ (pid_set_initial_registers): Pass the new field. -+ (pid_thread_detach): Handle the case of STOPPED for old kernels. -+ (__libdwfl_attach_state_for_pid): Initialize STOPPED. -+ - 2013-11-07 Jan Kratochvil <jan.kratochvil@redhat.com> - Mark Wielaard <mjw@redhat.com> - -@@ -2469,6 +2484,11 @@ - - 2005-07-21 Roland McGrath <roland@redhat.com> - -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ -+2005-07-21 Roland McGrath <roland@redhat.com> -+< |
