diff options
Diffstat (limited to 'source/l/elfutils')
-rw-r--r-- | source/l/elfutils/elfutils-0.163-unstrip-shf_info_link.patch | 91 | ||||
-rw-r--r-- | source/l/elfutils/elfutils-portability-0.163.patch | 2108 | ||||
-rwxr-xr-x | source/l/elfutils/elfutils.SlackBuild | 142 | ||||
-rw-r--r-- | source/l/elfutils/slack-desc | 19 |
4 files changed, 2360 insertions, 0 deletions
diff --git a/source/l/elfutils/elfutils-0.163-unstrip-shf_info_link.patch b/source/l/elfutils/elfutils-0.163-unstrip-shf_info_link.patch new file mode 100644 index 00000000..e3a27ff0 --- /dev/null +++ b/source/l/elfutils/elfutils-0.163-unstrip-shf_info_link.patch @@ -0,0 +1,91 @@ +commit f9fc50c3eced243c0648fb0fbfe2c9877c25e1e4 +Author: Mark Wielaard <mjw@redhat.com> +Date: Wed Jul 29 17:51:27 2015 +0200 + + unstrip: Handle debuginfo files with missing SHF_INFO_LINK section flags. + + With GCC 5 there might be a .rela.plt section with SHF_INFO_LINK set. + Buggy binutils objdump might strip it from the section in the debug file. + Ignore such differences for relocation sections and put the flag back + if necessary. + + Also improve the error message a little by only discarding the already + matched sections if there is an prelink undo section. Otherwise we will + report all sections as not matching if the file wasn't prelinked instead + of just the non-matching sections. + + New testfiles generated by gcc5 and binutils objdump added. + + Signed-off-by: Mark Wielaard <mjw@redhat.com> + +diff --git a/src/unstrip.c b/src/unstrip.c +index 4a8e5fa..8833094 100644 +--- a/src/unstrip.c ++++ b/src/unstrip.c +@@ -867,12 +867,28 @@ compare_symbols_output (const void *a, const void *b) + + #undef CMP + ++/* Return true if the flags of the sections match, ignoring the SHF_INFO_LINK ++ flag if the section contains relocation information. */ ++static bool ++sections_flags_match (Elf64_Xword sh_flags1, Elf64_Xword sh_flags2, ++ Elf64_Word sh_type) ++{ ++ if (sh_type == SHT_REL || sh_type == SHT_RELA) ++ { ++ sh_flags1 &= ~SHF_INFO_LINK; ++ sh_flags2 &= ~SHF_INFO_LINK; ++ } ++ ++ return sh_flags1 == sh_flags2; ++} ++ + /* Return true iff the flags, size, and name match. */ + static bool + sections_match (const struct section *sections, size_t i, + const GElf_Shdr *shdr, const char *name) + { +- return (sections[i].shdr.sh_flags == shdr->sh_flags ++ return (sections_flags_match (sections[i].shdr.sh_flags, shdr->sh_flags, ++ sections[i].shdr.sh_type) + && (sections[i].shdr.sh_size == shdr->sh_size + || (sections[i].shdr.sh_size < shdr->sh_size + && section_can_shrink (§ions[i].shdr))) +@@ -930,10 +946,6 @@ find_alloc_sections_prelink (Elf *debug, Elf_Data *debug_shstrtab, + struct section *sections, + size_t nalloc, size_t nsections) + { +- /* Clear assignments that might have been bogus. */ +- for (size_t i = 0; i < nalloc; ++i) +- sections[i].outscn = NULL; +- + Elf_Scn *undo = NULL; + for (size_t i = nalloc; i < nsections; ++i) + { +@@ -952,6 +964,10 @@ find_alloc_sections_prelink (Elf *debug, Elf_Data *debug_shstrtab, + size_t undo_nalloc = 0; + if (undo != NULL) + { ++ /* Clear assignments that might have been bogus. */ ++ for (size_t i = 0; i < nalloc; ++i) ++ sections[i].outscn = NULL; ++ + Elf_Data *undodata = elf_rawdata (undo, NULL); + ELF_CHECK (undodata != NULL, + _("cannot read '.gnu.prelink_undo' section: %s")); +@@ -1500,6 +1516,14 @@ more sections in stripped file than debug file -- arguments reversed?")); + shdr_mem.sh_size = sec->shdr.sh_size; + shdr_mem.sh_info = sec->shdr.sh_info; + shdr_mem.sh_link = sec->shdr.sh_link; ++ ++ /* Buggy binutils objdump might have stripped the SHF_INFO_LINK ++ put it back if necessary. */ ++ if ((sec->shdr.sh_type == SHT_REL || sec->shdr.sh_type == SHT_RELA) ++ && sec->shdr.sh_flags != shdr_mem.sh_flags ++ && (sec->shdr.sh_flags & SHF_INFO_LINK) != 0) ++ shdr_mem.sh_flags |= SHF_INFO_LINK; ++ + if (sec->shdr.sh_link != SHN_UNDEF) + shdr_mem.sh_link = ndx_section[sec->shdr.sh_link - 1]; + if (shdr_mem.sh_flags & SHF_INFO_LINK) diff --git a/source/l/elfutils/elfutils-portability-0.163.patch b/source/l/elfutils/elfutils-portability-0.163.patch new file mode 100644 index 00000000..f347ed1a --- /dev/null +++ b/source/l/elfutils/elfutils-portability-0.163.patch @@ -0,0 +1,2108 @@ +diffelfutils/backends/ChangeLog git-portable/backends/ChangeLog +--- elfutils/backends/ChangeLog ++++ elfutils/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. + +diffelfutils/backends/Makefile.am git-portable/backends/Makefile.am +--- elfutils/backends/Makefile.am ++++ elfutils/backends/Makefile.am +@@ -119,7 +119,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a + $(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) +diffelfutils/backends/Makefile.in git-portable/backends/Makefile.in +--- elfutils/backends/Makefile.in ++++ elfutils/backends/Makefile.in +@@ -90,7 +90,8 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING + subdir = backends + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -300,6 +301,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@ +@@ -331,6 +333,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@ +@@ -398,14 +401,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr + + # Warn about stack usage of more than 256K = 262144 bytes. + @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144 +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ +- $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ +- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ +- $($(*F)_CFLAGS) +- ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ ++ $($(*F)_no_Werror),,-Werror) $(if \ ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \ ++ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ ++ $($(*F)_CFLAGS) $(am__append_1) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) +-DEFS.os = -DPIC -DSHARED $(am__append_1) ++DEFS.os = -DPIC -DSHARED $(am__append_2) + CLEANFILES = *.gcno *.gcda $(foreach m,$(modules), libebl_$(m).map \ + libebl_$(m).so $(am_libebl_$(m)_pic_a_OBJECTS)) + textrel_msg = echo "WARNING: TEXTREL found in '$@'" +@@ -912,7 +915,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a + $(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) +diffelfutils/ChangeLog git-portable/ChangeLog +--- elfutils/ChangeLog ++++ elfutils/ChangeLog +@@ -258,6 +258,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> +@@ -276,6 +278,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> +@@ -297,6 +302,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. +@@ -305,6 +314,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. +@@ -316,6 +329,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 +@@ -396,6 +411,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. +@@ -443,6 +462,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. +diffelfutils/config/ChangeLog git-portable/config/ChangeLog +--- elfutils/config/ChangeLog ++++ elfutils/config/ChangeLog +@@ -110,6 +110,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. +diffelfutils/config/eu.am git-portable/config/eu.am +--- elfutils/config/eu.am ++++ elfutils/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 +diffelfutils/config/Makefile.in git-portable/config/Makefile.in +--- elfutils/config/Makefile.in ++++ elfutils/config/Makefile.in +@@ -160,6 +160,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@ +@@ -191,6 +192,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@ +diffelfutils/config.h.in git-portable/config.h.in +--- elfutils/config.h.in ++++ elfutils/config.h.in +@@ -6,6 +6,12 @@ + /* Should ar and ranlib use -D behavior by default? */ + #undef DEFAULT_AR_DETERMINISTIC + ++/* Have __builtin_popcount. */ ++#undef HAVE_BUILTIN_POPCOUNT ++ ++/* Define to 1 if you have the `futimens' function. */ ++#undef HAVE_FUTIMENS ++ + /* Define to 1 if you have the <inttypes.h> header file. */ + #undef HAVE_INTTYPES_H + +@@ -105,4 +111,7 @@ + /* Define for large files, on AIX-style hosts. */ + #undef _LARGE_FILES + ++/* Stubbed out if missing compiler support. */ ++#undef __thread ++ + #include <eu-config.h> +diffelfutils/configure git-portable/configure +--- elfutils/configure ++++ elfutils/configure +@@ -672,6 +672,8 @@ ZLIB_TRUE + LIBEBL_SUBDIR + TESTS_RPATH_FALSE + TESTS_RPATH_TRUE ++BUILD_WERROR_FALSE ++BUILD_WERROR_TRUE + BUILD_STATIC_FALSE + BUILD_STATIC_TRUE + USE_VALGRIND_FALSE +@@ -687,6 +689,8 @@ NEVER_TRUE + base_cpu + NATIVE_LD_FALSE + NATIVE_LD_TRUE ++LD_AS_NEEDED ++WEXTRA + NM + READELF + ac_ct_AR +@@ -807,6 +811,7 @@ enable_gprof + enable_gcov + enable_sanitize_undefined + enable_valgrind ++enable_werror + enable_tests_rpath + enable_libebl_subdir + with_zlib +@@ -1467,6 +1472,7 @@ Optional Features: + --enable-sanitize-undefined + Use gcc undefined behaviour sanitizer + --enable-valgrind run all tests under valgrind ++ --disable-werror do not build with -Werror + --enable-tests-rpath build $ORIGIN-using rpath into tests + --enable-libebl-subdir=DIR + install libebl_CPU modules in $(libdir)/DIR +@@ -1665,6 +1671,73 @@ fi + + } # ac_fn_c_try_link + ++# ac_fn_c_check_func LINENO FUNC VAR ++# ---------------------------------- ++# Tests whether FUNC exists, setting the cache variable VAR accordingly ++ac_fn_c_check_func () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 ++$as_echo_n "checking for $2... " >&6; } ++if eval \${$3+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++/* Define $2 to an innocuous variant, in case <limits.h> declares $2. ++ For example, HP-UX 11i <limits.h> declares gettimeofday. */ ++#define $2 innocuous_$2 ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $2 (); below. ++ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since ++ <limits.h> exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include <limits.h> ++#else ++# include <assert.h> ++#endif ++ ++#undef $2 ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char $2 (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined __stub_$2 || defined __stub___$2 ++choke me ++#endif ++ ++int ++main () ++{ ++return $2 (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ eval "$3=yes" ++else ++ eval "$3=no" ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++eval ac_res=\$$3 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ ++} # ac_fn_c_check_func ++ + # ac_fn_c_try_run LINENO + # ---------------------- + # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +@@ -4825,6 +4898,18 @@ else + fi + + ++for ac_func in futimens ++do : ++ ac_fn_c_check_func "$LINENO" "futimens" "ac_cv_func_futimens" ++if test "x$ac_cv_func_futimens" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_FUTIMENS 1 ++_ACEOF ++ ++fi ++done ++ ++ + # We use -std=gnu99 but have explicit checks for some language constructs + # and GNU extensions since some compilers claim GNU99 support, but don't + # really support all language extensions. In particular we need +@@ -4873,6 +4958,130 @@ if test "x$ac_cv_c99" != xyes; then : + as_fn_error $? "gcc with GNU99 support required" "$LINENO" 5 + fi + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wextra option to $CC" >&5 ++$as_echo_n "checking for -Wextra option to $CC... " >&6; } ++if ${ac_cv_cc_wextra+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ old_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -Wextra" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++void foo (void) { } ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_cc_wextra=yes ++else ++ ac_cv_cc_wextra=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++CFLAGS="$old_CFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_wextra" >&5 ++$as_echo "$ac_cv_cc_wextra" >&6; } ++ ++if test "x$ac_cv_cc_wextra" = xyes; then : ++ WEXTRA=-Wextra ++else ++ WEXTRA=-W ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fgnu89-inline option to $CC" >&5 ++$as_echo_n "checking for -fgnu89-inline option to $CC... " >&6; } ++if ${ac_cv_cc_gnu89_inline+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ old_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -fgnu89-inline -Werror" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++void foo (void) ++{ ++ inline void bar (void) {} ++ bar (); ++} ++extern inline void baz (void) {} ++ ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_cc_gnu89_inline=yes ++else ++ ac_cv_cc_gnu89_inline=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++CFLAGS="$old_CFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_gnu89_inline" >&5 ++$as_echo "$ac_cv_cc_gnu89_inline" >&6; } ++if test "x$ac_cv_cc_gnu89_inline" = xyes; then : ++ WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline" ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --as-needed linker option" >&5 ++$as_echo_n "checking for --as-needed linker option... " >&6; } ++if ${ac_cv_as_needed+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat > conftest.c <<EOF ++int main (void) { return 0; } ++EOF ++if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS ++ -fPIC -shared -o conftest.so conftest.c ++ -Wl,--as-needed 1>&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; } ++then ++ ac_cv_as_needed=yes ++else ++ ac_cv_as_needed=no ++fi ++rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_as_needed" >&5 ++$as_echo "$ac_cv_as_needed" >&6; } ++if test "x$ac_cv_as_needed" = xyes; then : ++ LD_AS_NEEDED=-Wl,--as-needed ++else ++ LD_AS_NEEDED= ++fi ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_popcount" >&5 ++$as_echo_n "checking for __builtin_popcount... " >&6; } ++if ${ac_cv_popcount+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++exit (__builtin_popcount (127)); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_popcount=yes ++else ++ ac_cv_popcount=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_popcount" >&5 ++$as_echo "$ac_cv_popcount" >&6; } ++if test "x$ac_cv_popcount" = xyes; then : ++ ++$as_echo "#define HAVE_BUILTIN_POPCOUNT 1" >>confdefs.h ++ ++fi ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __thread support" >&5 + $as_echo_n "checking for __thread support... " >&6; } + if ${ac_cv_tls+:} false; then : +@@ -4910,7 +5119,13 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5 + $as_echo "$ac_cv_tls" >&6; } + if test "x$ac_cv_tls" != xyes; then : +- as_fn_error $? "__thread support required" "$LINENO" 5 ++ if test "$use_locks" = yes; then : ++ as_fn_error $? "--enable-thread-safety requires __thread support" "$LINENO" 5 ++else ++ ++$as_echo "#define __thread /* empty: no multi-thread support */" >>confdefs.h ++ ++fi + fi + + # Check whether --enable-largefile was given. +@@ -5318,6 +5533,22 @@ else + fi + + ++# Check whether --enable-werror was given. ++if test "${enable_werror+set}" = set; then : ++ enableval=$enable_werror; enable_werror=$enableval ++else ++ enable_werror=yes ++fi ++ ++ if test "$enable_werror" = yes; then ++ BUILD_WERROR_TRUE= ++ BUILD_WERROR_FALSE='#' ++else ++ BUILD_WERROR_TRUE='#' ++ BUILD_WERROR_FALSE= ++fi ++ ++ + # Check whether --enable-tests-rpath was given. + if test "${enable_tests_rpath+set}" = set; then : + enableval=$enable_tests_rpath; tests_use_rpath=$enableval +@@ -6199,7 +6430,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` + + MODVERSION="Build for ${LIBEBL_SUBDIR} ${eu_version} ${ac_cv_build}" + +@@ -7088,6 +7319,10 @@ if test -z "${BUILD_STATIC_TRUE}" && tes + as_fn_error $? "conditional \"BUILD_STATIC\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi ++if test -z "${BUILD_WERROR_TRUE}" && test -z "${BUILD_WERROR_FALSE}"; then ++ as_fn_error $? "conditional \"BUILD_WERROR\" was never defined. ++Usually this means the macro was only invoked conditionally." "$LINENO" 5 ++fi + if test -z "${TESTS_RPATH_TRUE}" && test -z "${TESTS_RPATH_FALSE}"; then + as_fn_error $? "conditional \"TESTS_RPATH\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 +diffelfutils/configure.ac git-portable/configure.ac +--- elfutils/configure.ac ++++ elfutils/configure.ac +@@ -73,6 +73,8 @@ m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) + AC_CHECK_TOOL([READELF], [readelf]) + AC_CHECK_TOOL([NM], [nm]) + ++AC_CHECK_FUNCS([futimens]) ++ + # We use -std=gnu99 but have explicit checks for some language constructs + # and GNU extensions since some compilers claim GNU99 support, but don't + # really support all language extensions. In particular we need +@@ -106,6 +108,54 @@ 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 +172,10 @@ static __thread int a; int foo (int 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 +277,11 @@ AM_CONDITIONAL(USE_VALGRIND, test "$use_ + 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 +446,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}" +diffelfutils/lib/ChangeLog git-portable/lib/ChangeLog +--- elfutils/lib/ChangeLog ++++ elfutils/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. +diffelfutils/lib/eu-config.h git-portable/lib/eu-config.h +--- elfutils/lib/eu-config.h ++++ elfutils/lib/eu-config.h +@@ -163,6 +163,17 @@ asm (".section predict_data, \"aw\"; .pr + /* 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) \ +diffelfutils/lib/Makefile.in git-portable/lib/Makefile.in +--- elfutils/lib/Makefile.in ++++ elfutils/lib/Makefile.in +@@ -89,7 +89,8 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING + subdir = lib + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -212,6 +213,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@ +@@ -243,6 +245,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@ +@@ -309,13 +312,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr + + # Warn about stack usage of more than 256K = 262144 bytes. + @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144 +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \ ++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) -fpic ++ $($(*F)_CFLAGS) $(am__append_1) -fpic + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) +-DEFS.os = -DPIC -DSHARED $(am__append_1) ++DEFS.os = -DPIC -DSHARED $(am__append_2) + CLEANFILES = *.gcno *.gcda + textrel_msg = echo "WARNING: TEXTREL found in '$@'" + @FATAL_TEXTREL_FALSE@textrel_found = $(textrel_msg) +diffelfutils/libasm/ChangeLog git-portable/libasm/ChangeLog +--- elfutils/libasm/ChangeLog ++++ elfutils/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. +diffelfutils/libasm/Makefile.in git-portable/libasm/Makefile.in +--- elfutils/libasm/Makefile.in ++++ elfutils/libasm/Makefile.in +@@ -90,9 +90,10 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING + noinst_PROGRAMS = $(am__EXEEXT_1) +-@USE_LOCKS_TRUE@am__append_2 = -lpthread ++@USE_LOCKS_TRUE@am__append_3 = -lpthread + subdir = libasm + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -263,6 +264,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@ +@@ -294,6 +296,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -361,14 +364,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr + + # Warn about stack usage of more than 256K = 262144 bytes. + @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144 +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ +- $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ +- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ +- $($(*F)_CFLAGS) +- ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ ++ $($(*F)_no_Werror),,-Werror) $(if \ ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \ ++ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ ++ $($(*F)_CFLAGS) $(am__append_1) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) +-DEFS.os = -DPIC -DSHARED $(am__append_1) ++DEFS.os = -DPIC -DSHARED $(am__append_2) + CLEANFILES = *.gcno *.gcda $(am_libasm_pic_a_OBJECTS) \ + libasm.so.$(VERSION) + textrel_msg = echo "WARNING: TEXTREL found in '$@'" +@@ -395,7 +398,7 @@ libasm_a_SOURCES = asm_begin.c asm_abort + + libasm_pic_a_SOURCES = + am_libasm_pic_a_OBJECTS = $(libasm_a_SOURCES:.c=.os) +-libasm_so_LDLIBS = $(am__append_2) ++libasm_so_LDLIBS = $(am__append_3) + libasm_so_SOURCES = + noinst_HEADERS = libasmP.h symbolhash.h + EXTRA_DIST = libasm.map +diffelfutils/libcpu/ChangeLog git-portable/libcpu/ChangeLog +--- elfutils/libcpu/ChangeLog ++++ elfutils/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. +diffelfutils/libcpu/i386_disasm.c git-portable/libcpu/i386_disasm.c +--- 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 +diffelfutils/libcpu/Makefile.in git-portable/libcpu/Makefile.in +--- elfutils/libcpu/Makefile.in ++++ elfutils/libcpu/Makefile.in +@@ -90,7 +90,8 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING + @MAINTAINER_MODE_TRUE@noinst_PROGRAMS = i386_gendis$(EXEEXT) + subdir = libcpu + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +@@ -238,6 +239,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.$(<F:lex.l=) +@@ -269,6 +271,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@ +@@ -336,13 +339,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr + + # Warn about stack usage of more than 256K = 262144 bytes. + @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144 +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \ ++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) -fpic -fdollars-in-identifiers ++ $($(*F)_CFLAGS) $(am__append_1) -fpic -fdollars-in-identifiers + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) +-DEFS.os = -DPIC -DSHARED $(am__append_1) ++DEFS.os = -DPIC -DSHARED $(am__append_2) + CLEANFILES = *.gcno *.gcda $(foreach P,i386 x86_64,$P_defs \ + $P.mnemonics) + textrel_msg = echo "WARNING: TEXTREL found in '$@'" +diffelfutils/libdw/ChangeLog git-portable/libdw/ChangeLog +--- elfutils/libdw/ChangeLog ++++ elfutils/libdw/ChangeLog +@@ -904,6 +904,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. +@@ -1263,6 +1267,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. +@@ -2031,6 +2039,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. + +diffelfutils/libdw/dwarf_begin_elf.c git-portable/libdw/dwarf_begin_elf.c +--- elfutils/libdw/dwarf_begin_elf.c ++++ elfutils/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 +diffelfutils/libdw/libdw.h git-portable/libdw/libdw.h +--- elfutils/libdw/libdw.h ++++ elfutils/libdw/libdw.h +@@ -1004,7 +1004,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) +diffelfutils/libdw/Makefile.in git-portable/libdw/Makefile.in +--- elfutils/libdw/Makefile.in ++++ elfutils/libdw/Makefile.in +@@ -90,8 +90,9 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING +-@BUILD_STATIC_TRUE@am__append_2 = -fpic ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING ++@BUILD_STATIC_TRUE@am__append_3 = -fpic + noinst_PROGRAMS = $(am__EXEEXT_1) + subdir = libdw + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +@@ -312,6 +313,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@ +@@ -343,6 +345,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -409,13 +412,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr + + # Warn about stack usage of more than 256K = 262144 bytes. + @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144 +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \ ++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) $(am__append_2) ++ $($(*F)_CFLAGS) $(am__append_1) $(am__append_3) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) +-DEFS.os = -DPIC -DSHARED $(am__append_1) ++DEFS.os = -DPIC -DSHARED $(am__append_2) + CLEANFILES = *.gcno *.gcda + textrel_msg = echo "WARNING: TEXTREL found in '$@'" + @FATAL_TEXTREL_FALSE@textrel_found = $(textrel_msg) +diffelfutils/libdwelf/Makefile.in git-portable/libdwelf/Makefile.in +--- elfutils/libdwelf/Makefile.in ++++ elfutils/libdwelf/Makefile.in +@@ -89,7 +89,8 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING + subdir = libdwelf + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -242,6 +243,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@ +@@ -273,6 +275,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -340,14 +343,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr + + # Warn about stack usage of more than 256K = 262144 bytes. + @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144 +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ +- $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ +- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ +- $($(*F)_CFLAGS) +- ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ ++ $($(*F)_no_Werror),,-Werror) $(if \ ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \ ++ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ ++ $($(*F)_CFLAGS) $(am__append_1) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) +-DEFS.os = -DPIC -DSHARED $(am__append_1) ++DEFS.os = -DPIC -DSHARED $(am__append_2) + CLEANFILES = *.gcno *.gcda $(am_libdwelf_pic_a_OBJECTS) + textrel_msg = echo "WARNING: TEXTREL found in '$@'" + @FATAL_TEXTREL_FALSE@textrel_found = $(textrel_msg) +diffelfutils/libdwfl/ChangeLog git-portable/libdwfl/ChangeLog +--- elfutils/libdwfl/ChangeLog ++++ elfutils/libdwfl/ChangeLog +@@ -713,6 +713,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> + +@@ -2478,6 +2493,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> ++ + * Makefile.am (noinst_HEADERS): Add loc2c.c. + + * test2.c (main): Check sscanf result to quiet warning. +diffelfutils/libdwfl/linux-core-attach.c git-portable/libdwfl/linux-core-attach.c +--- elfutils/libdwfl/linux-core-attach.c ++++ elfutils/libdwfl/linux-core-attach.c +@@ -29,6 +29,35 @@ + #include "libdwflP.h" + #include <fcntl.h> + #include "system.h" ++#include <endian.h> ++#include <byteswap.h> ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++# ifndef be64toh ++# define be64toh(x) bswap_64 (x) ++# endif ++# ifndef le64toh ++# define le64toh(x) (x) ++# endif ++# ifndef be32toh ++# define be32toh(x) bswap_32 (x) ++# endif ++# ifndef le32toh ++# define le32toh(x) (x) ++# endif ++#else ++# ifndef be64toh ++# define be64toh(x) (x) ++# endif ++# ifndef le64toh ++# define le64toh(x) bswap_64 (x) ++# endif ++# ifndef be32toh ++# define be32toh(x) (x) ++# endif ++# ifndef le32toh ++# define le32toh(x) bswap_32 (x) ++# endif ++#endif + + #include "../libdw/memory-access.h" + +diffelfutils/libdwfl/linux-pid-attach.c git-portable/libdwfl/linux-pid-attach.c +--- elfutils/libdwfl/linux-pid-attach.c ++++ elfutils/libdwfl/linux-pid-attach.c +@@ -255,6 +255,11 @@ void + internal_function + __libdwfl_ptrace_detach (pid_t tid, bool tid_was_stopped) + { ++ // Older kernels (tested kernel-2.6.18-348.12.1.el5.x86_64) need special ++ // handling of the detachment to keep the process State: T (stopped). ++ if (tid_was_stopped) ++ syscall (__NR_tkill, tid, SIGSTOP); ++ + /* This handling is needed only on older Linux kernels such as + 2.6.32-358.23.2.el6.ppc64. Later kernels such as + 3.11.7-200.fc19.x86_64 remember the T (stopped) state +@@ -262,6 +267,15 @@ __libdwfl_ptrace_detach (pid_t tid, bool + PTRACE_DETACH. */ + ptrace (PTRACE_DETACH, tid, NULL, + (void *) (intptr_t) (tid_was_stopped ? SIGSTOP : 0)); ++ ++ if (tid_was_stopped) ++ { ++ // Wait till the SIGSTOP settles down. ++ int i; ++ for (i = 0; i < 100000; i++) ++ if (linux_proc_pid_is_stopped (tid)) ++ break; ++ } + } + + static void +diffelfutils/libdwfl/Makefile.in git-portable/libdwfl/Makefile.in +--- elfutils/libdwfl/Makefile.in ++++ elfutils/libdwfl/Makefile.in +@@ -89,10 +89,11 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING +-@ZLIB_TRUE@am__append_2 = gzip.c +-@BZLIB_TRUE@am__append_3 = bzip2.c +-@LZMA_TRUE@am__append_4 = lzma.c ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING ++@ZLIB_TRUE@am__append_3 = gzip.c ++@BZLIB_TRUE@am__append_4 = bzip2.c ++@LZMA_TRUE@am__append_5 = lzma.c + subdir = libdwfl + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -301,6 +302,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@ +@@ -332,6 +334,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -399,14 +402,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr + + # Warn about stack usage of more than 256K = 262144 bytes. + @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144 +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ +- $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ +- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ +- $($(*F)_CFLAGS) +- ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ ++ $($(*F)_no_Werror),,-Werror) $(if \ ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \ ++ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ ++ $($(*F)_CFLAGS) $(am__append_1) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) +-DEFS.os = -DPIC -DSHARED $(am__append_1) ++DEFS.os = -DPIC -DSHARED $(am__append_2) + CLEANFILES = *.gcno *.gcda $(am_libdwfl_pic_a_OBJECTS) + textrel_msg = echo "WARNING: TEXTREL found in '$@'" + @FATAL_TEXTREL_FALSE@textrel_found = $(textrel_msg) +@@ -435,8 +438,8 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_en + dwfl_module_register_names.c dwfl_segment_report_module.c \ + link_map.c core-file.c open.c image-header.c dwfl_frame.c \ + frame_unwind.c dwfl_frame_pc.c linux-pid-attach.c \ +- linux-core-attach.c dwfl_frame_regs.c $(am__append_2) \ +- $(am__append_3) $(am__append_4) ++ linux-core-attach.c dwfl_frame_regs.c $(am__append_3) \ ++ $(am__append_4) $(am__append_5) + libdwfl = $(libdw) + libdw = ../libdw/libdw.so + libelf = ../libelf/libelf.so +diffelfutils/libebl/ChangeLog git-portable/libebl/ChangeLog +--- elfutils/libebl/ChangeLog ++++ elfutils/libebl/ChangeLog +@@ -785,6 +785,11 @@ + * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency + tracking works right. + ++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-21 Ulrich Drepper <drepper@redhat.com> + + * libebl_x86_64.map: Add x86_64_core_note. +diffelfutils/libebl/Makefile.in git-portable/libebl/Makefile.in +--- elfutils/libebl/Makefile.in ++++ elfutils/libebl/Makefile.in +@@ -89,7 +89,8 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING + subdir = libebl + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -264,6 +265,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@ +@@ -295,6 +297,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -362,13 +365,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr + + # Warn about stack usage of more than 256K = 262144 bytes. + @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144 +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \ ++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) -fpic ++ $($(*F)_CFLAGS) $(am__append_1) -fpic + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) +-DEFS.os = -DPIC -DSHARED $(am__append_1) ++DEFS.os = -DPIC -DSHARED $(am__append_2) + CLEANFILES = *.gcno *.gcda $(am_libebl_pic_a_OBJECTS) + textrel_msg = echo "WARNING: TEXTREL found in '$@'" + @FATAL_TEXTREL_FALSE@textrel_found = $(textrel_msg) +diffelfutils/libelf/ChangeLog git-portable/libelf/ChangeLog +--- elfutils/libelf/ChangeLog ++++ elfutils/libelf/ChangeLog +@@ -412,6 +412,11 @@ + + * elf-knowledge.h (SECTION_STRIP_P): Remove < SHT_NUM check. + ++2011-03-10 Roland McGrath <roland@redhat.com> ++ ++ * gnuhash_xlate.h (elf_cvt_gnuhash): Avoid post-increment in bswap_32 ++ argument, since some implementations are buggy macros. ++ + 2011-02-26 Mark Wielaard <mjw@redhat.com> + + * elf_end.c (elf_end): Call rwlock_unlock before rwlock_fini. +@@ -1089,6 +1094,11 @@ + + * elf.h: Update from glibc. + ++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-08 Roland McGrath <roland@redhat.com> + + * elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now. +diffelfutils/libelf/common.h git-portable/libelf/common.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)))) +diffelfutils/libelf/gnuhash_xlate.h git-portable/libelf/gnuhash_xlate.h +--- 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 <drepper@redhat.com>, 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; + } + } +diffelfutils/libelf/Makefile.in git-portable/libelf/Makefile.in +--- elfutils/libelf/Makefile.in ++++ elfutils/libelf/Makefile.in +@@ -90,10 +90,11 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING +-@BUILD_STATIC_TRUE@am__append_2 = -fpic ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING ++@BUILD_STATIC_TRUE@am__append_3 = -fpic + noinst_PROGRAMS = $(am__EXEEXT_1) +-@USE_LOCKS_TRUE@am__append_3 = -lpthread ++@USE_LOCKS_TRUE@am__append_4 = -lpthread + subdir = libelf + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -305,6 +306,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@ +@@ -336,6 +338,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -401,13 +404,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr + + # Warn about stack usage of more than 256K = 262144 bytes. + @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144 +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \ ++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) $(am__append_2) ++ $($(*F)_CFLAGS) $(am__append_1) $(am__append_3) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) +-DEFS.os = -DPIC -DSHARED $(am__append_1) ++DEFS.os = -DPIC -DSHARED $(am__append_2) + CLEANFILES = *.gcno *.gcda $(am_libelf_pic_a_OBJECTS) \ + libelf.so.$(VERSION) + textrel_msg = echo "WARNING: TEXTREL found in '$@'" +@@ -470,7 +474,7 @@ libelf_a_SOURCES = elf_version.c elf_has + + libelf_pic_a_SOURCES = + am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os) +-libelf_so_LDLIBS = $(am__append_3) ++libelf_so_LDLIBS = $(am__append_4) + 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 +diffelfutils/m4/Makefile.in git-portable/m4/Makefile.in +--- elfutils/m4/Makefile.in ++++ elfutils/m4/Makefile.in +@@ -159,6 +159,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@ +@@ -190,6 +191,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@ +diffelfutils/Makefile.in git-portable/Makefile.in +--- elfutils/Makefile.in ++++ elfutils/Makefile.in +@@ -277,6 +277,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@ +@@ -308,6 +309,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@ +diffelfutils/src/addr2line.c git-portable/src/addr2line.c +--- elfutils/src/addr2line.c ++++ elfutils/src/addr2line.c +@@ -622,10 +622,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; +diffelfutils/src/ar.c git-portable/src/ar.c +--- elfutils/src/ar.c ++++ elfutils/src/ar.c +@@ -685,7 +685,14 @@ do_oper_extract (int oper, const char *a + tv[1].tv_sec = arhdr->ar_date; + tv[1].tv_nsec = 0; + ++#ifdef HAVE_FUTIMENS + if (unlikely (futimens (xfd, tv) != 0)) ++#else ++ struct timeval times[2]; ++ TIMESPEC_TO_TIMEVAL (×[0], &tv[0]); ++ TIMESPEC_TO_TIMEVAL (×[1], &tv[1]); ++ if (unlikely (futimes (xfd, times) != 0)) ++#endif + { + error (0, errno, + gettext ("cannot change modification time of %s"), +diffelfutils/src/ChangeLog git-portable/src/ChangeLog +--- elfutils/src/ChangeLog ++++ elfutils/src/ChangeLog +@@ -1626,8 +1626,16 @@ + * readelf.c (attr_callback): Use print_block only when we don't use + print_ops. + ++2009-08-17 Roland McGrath <roland@redhat.com> ++ ++ * ld.h: Disable extern inlines for GCC 4.2. ++ + 2009-08-14 Roland McGrath <roland@redhat.com> + ++ * strings.c (read_block): Conditionalize posix_fadvise use ++ on [POSIX_FADV_SEQUENTIAL]. ++ From Petr Salinger <Petr.Salinger@seznam.cz>. ++ + * ar.c (do_oper_extract): Use pathconf instead of statfs. + + 2009-08-01 Ulrich Drepper <drepper@redhat.com> +@@ -1791,6 +1799,8 @@ + * readelf.c (print_debug_frame_section): Use t instead of j formats + for ptrdiff_t OFFSET. + ++ * addr2line.c (handle_address): Use %a instead of %m for compatibility. ++ + 2009-01-21 Ulrich Drepper <drepper@redhat.com> + + * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section +@@ -1974,6 +1984,11 @@ + that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really + is valid in RELRO. + ++2008-03-01 Roland McGrath <roland@redhat.com> ++ ++ * readelf.c (dump_archive_index): Tweak portability hack ++ to match [__GNUC__ < 4] too. ++ + 2008-02-29 Roland McGrath <roland@redhat.com> + + * readelf.c (print_attributes): Add a cast. +@@ -2225,6 +2240,8 @@ + + * readelf.c (hex_dump): Fix rounding error in whitespace calculation. + ++ * Makefile.am (readelf_no_Werror): New variable. ++ + 2007-10-15 Roland McGrath <roland@redhat.com> + + * make-debug-archive.in: New file. +@@ -2664,6 +2681,10 @@ + * elflint.c (valid_e_machine): Add EM_ALPHA. + Reported by Christian Aichinger <Greek0@gmx.net>. + ++ * strings.c (map_file): Define POSIX_MADV_SEQUENTIAL to ++ MADV_SEQUENTIAL if undefined. Don't call posix_madvise ++ if neither is defined. ++ + 2006-08-08 Ulrich Drepper <drepper@redhat.com> + + * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. +@@ -2740,6 +2761,10 @@ + * Makefile.am: Add hacks to create dependency files for non-generic + linker. + ++2006-04-05 Roland McGrath <roland@redhat.com> ++ ++ * strings.c (MAP_POPULATE): Define to 0 if undefined. ++ + 2006-06-12 Ulrich Drepper <drepper@redhat.com> + + * ldgeneric.c (ld_generic_generate_sections): Don't create .interp +@@ -3088,6 +3113,11 @@ + * readelf.c (print_debug_loc_section): Fix indentation for larger + address size. + ++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-30 Roland McGrath <roland@redhat.com> + + * readelf.c (print_debug_line_section): Print section offset of each +diffelfutils/src/findtextrel.c git-portable/src/findtextrel.c +--- elfutils/src/findtextrel.c ++++ elfutils/src/findtextrel.c +@@ -503,7 +503,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) + { +diffelfutils/src/ld.h git-portable/src/ld.h +--- 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 */ +diffelfutils/src/Makefile.am git-portable/src/Makefile.am +--- elfutils/src/Makefile.am ++++ elfutils/src/Makefile.am +@@ -90,6 +90,11 @@ endif + ldgeneric_no_Wunused = yes + ldgeneric_no_Wstack_usage = yes + ++# Buggy old compilers or libc headers. ++readelf_no_Werror = yes ++strings_no_Werror = yes ++addr2line_no_Wformat = yes ++ + # Bad, bad stack usage... + readelf_no_Wstack_usage = yes + nm_no_Wstack_usage = yes +diffelfutils/src/Makefile.in git-portable/src/Makefile.in +--- elfutils/src/Makefile.in ++++ elfutils/src/Makefile.in +@@ -91,7 +91,8 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING + bin_PROGRAMS = readelf$(EXEEXT) nm$(EXEEXT) size$(EXEEXT) \ + strip$(EXEEXT) ld$(EXEEXT) elflint$(EXEEXT) \ + findtextrel$(EXEEXT) addr2line$(EXEEXT) elfcmp$(EXEEXT) \ +@@ -100,9 +101,9 @@ bin_PROGRAMS = readelf$(EXEEXT) nm$(EXEE + @NATIVE_LD_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1) + # We never build this library but we need to get the dependency files + # of all the linker backends that might be used in a non-generic linker. +-@NEVER_TRUE@am__append_2 = libdummy.a ++@NEVER_TRUE@am__append_3 = libdummy.a + # -ldl is always needed for libebl. +-@NATIVE_LD_TRUE@am__append_3 = libld_elf.a ++@NATIVE_LD_TRUE@am__append_4 = libld_elf.a + @NATIVE_LD_TRUE@am_libld_elf_i386_pic_a_OBJECTS = + subdir = src + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +@@ -172,7 +173,7 @@ am_ld_OBJECTS = ld.$(OBJEXT) ldgeneric.$ + versionhash.$(OBJEXT) + ld_OBJECTS = $(am_ld_OBJECTS) + ld_DEPENDENCIES = $(libebl) $(libelf) $(libeu) $(am__DEPENDENCIES_1) \ +- $(am__append_3) ++ $(am__append_4) + ld_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ld_LDFLAGS) $(LDFLAGS) -o \ + $@ + am_libld_elf_i386_so_OBJECTS = +@@ -361,6 +362,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@ +@@ -392,6 +394,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@ +@@ -460,14 +463,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr + + # Warn about stack usage of more than 256K = 262144 bytes. + @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144 +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ +- $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ +- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ +- $($(*F)_CFLAGS) +- ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ ++ $($(*F)_no_Werror),,-Werror) $(if \ ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \ ++ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ ++ $($(*F)_CFLAGS) $(am__append_1) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) +-DEFS.os = -DPIC -DSHARED $(am__append_1) ++DEFS.os = -DPIC -DSHARED $(am__append_2) + CLEANFILES = *.gcno *.gcda make-debug-archive none_ld.os \ + $(ld_modules:.c=.os) *.gconv + textrel_msg = echo "WARNING: TEXTREL found in '$@'" +@@ -480,8 +483,8 @@ AM_LFLAGS = -Pld -olex.yy.c + native_ld = @native_ld@ + ld_dsos = libld_elf_i386_pic.a + @NATIVE_LD_FALSE@noinst_LIBRARIES = libld_elf.a libar.a $(ld_dsos) \ +-@NATIVE_LD_FALSE@ $(am__append_2) +-@NATIVE_LD_TRUE@noinst_LIBRARIES = libld_elf.a libar.a $(am__append_2) ++@NATIVE_LD_FALSE@ $(am__append_3) ++@NATIVE_LD_TRUE@noinst_LIBRARIES = libld_elf.a libar.a $(am__append_3) + @NATIVE_LD_TRUE@native_ld_cflags = -DBASE_ELF_NAME=elf_$(base_cpu) + @NEVER_TRUE@libdummy_a_SOURCES = i386_ld.c + ld_SOURCES = ld.c ldgeneric.c ldlex.l ldscript.y symbolhash.c sectionhash.c \ +@@ -509,6 +512,11 @@ libeu = ../lib/libeu.a + ldgeneric_no_Wunused = yes + ldgeneric_no_Wstack_usage = yes + ++# Buggy old compilers or libc headers. ++readelf_no_Werror = yes ++strings_no_Werror = yes ++addr2line_no_Wformat = yes ++ + # Bad, bad stack usage... + readelf_no_Wstack_usage = yes + nm_no_Wstack_usage = yes +@@ -528,7 +536,7 @@ nm_LDADD = $(libdw) $(libebl) $(libelf) + size_LDADD = $(libelf) $(libeu) $(argp_LDADD) + strip_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl + ld_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl \ +- $(am__append_3) ++ $(am__append_4) + ld_LDFLAGS = -rdynamic + elflint_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl + findtextrel_LDADD = $(libdw) $(libelf) $(argp_LDADD) +diffelfutils/src/readelf.c git-portable/src/readelf.c +--- elfutils/src/readelf.c ++++ elfutils/src/readelf.c +@@ -4366,10 +4366,12 @@ listptr_base (struct listptr *p) + return base; + } + ++static const char *listptr_name; ++ + static int +-compare_listptr (const void *a, const void *b, void *arg) ++compare_listptr (const void *a, const void *b) + { +- const char *name = arg; ++ const char *const name = listptr_name; + struct listptr *p1 = (void *) a; + struct listptr *p2 = (void *) b; + +@@ -4465,8 +4467,11 @@ static void + sort_listptr (struct listptr_table *table, const char *name) + { + if (table->n > 0) +- qsort_r (table->table, table->n, sizeof table->table[0], +- &compare_listptr, (void *) name); ++ { ++ listptr_name = name; ++ qsort (table->table, table->n, sizeof table->table[0], ++ &compare_listptr); ++ } + } + + static bool +@@ -9563,7 +9568,7 @@ dump_archive_index (Elf *elf, const char + if (unlikely (elf_rand (elf, as_off) == 0) + || unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf)) + == NULL)) +-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7) ++#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7) || __GNUC__ < 4 + while (1) + #endif + error (EXIT_FAILURE, 0, +diffelfutils/src/strings.c git-portable/src/strings.c +--- elfutils/src/strings.c ++++ elfutils/src/strings.c +@@ -43,6 +43,10 @@ + + #include <system.h> + ++#ifndef MAP_POPULATE ++# define MAP_POPULATE 0 ++#endif ++ + + /* Prototypes of local functions. */ + static int read_fd (int fd, const char *fname, off64_t fdlen); +@@ -489,8 +493,13 @@ map_file (int fd, off64_t start_off, off + fd, start_off); + if (mem != MAP_FAILED) + { ++#if !defined POSIX_MADV_SEQUENTIAL && defined MADV_SEQUENTIAL ++# define POSIX_MADV_SEQUENTIAL MADV_SEQUENTIAL ++#endif ++#ifdef POSIX_MADV_SEQUENTIAL + /* We will go through the mapping sequentially. */ + (void) posix_madvise (mem, map_size, POSIX_MADV_SEQUENTIAL); ++#endif + break; + } + if (errno != EINVAL && errno != ENOMEM) +@@ -581,9 +590,11 @@ read_block (int fd, const char *fname, o + elfmap_off = from & ~(ps - 1); + elfmap_base = elfmap = map_file (fd, elfmap_off, fdlen, &elfmap_size); + ++#ifdef POSIX_FADV_SEQUENTIAL + if (unlikely (elfmap == MAP_FAILED)) + /* Let the kernel know we are going to read everything in sequence. */ + (void) posix_fadvise (fd, 0, 0, POSIX_FADV_SEQUENTIAL); ++#endif + } + + if (unlikely (elfmap == MAP_FAILED)) +diffelfutils/src/strip.c git-portable/src/strip.c +--- elfutils/src/strip.c ++++ elfutils/src/strip.c +@@ -2191,7 +2191,14 @@ while computing checksum for debug infor + /* If requested, preserve the timestamp. */ + if (tvp != NULL) + { ++#ifdef HAVE_FUTIMENS + if (futimens (fd, tvp) != 0) ++#else ++ struct timeval times[2]; ++ TIMESPEC_TO_TIMEVAL (×[0], &tvp[0]); ++ TIMESPEC_TO_TIMEVAL (×[1], &tvp[1]); ++ if (futimes (fd, times) != 0) ++#endif + { + error (0, errno, gettext ("\ + cannot set access and modification date of '%s'"), +@@ -2263,7 +2270,14 @@ handle_ar (int fd, Elf *elf, const char + + if (tvp != NULL) + { ++#ifdef HAVE_FUTIMENS + if (unlikely (futimens (fd, tvp) != 0)) ++#else ++ struct timeval times[2]; ++ TIMESPEC_TO_TIMEVAL (×[0], &tvp[0]); ++ TIMESPEC_TO_TIMEVAL (×[1], &tvp[1]); ++ if (unlikely (futimes (fd, times) != 0)) ++#endif + { + error (0, errno, gettext ("\ + cannot set access and modification date of '%s'"), fname); +diffelfutils/tests/backtrace.c git-portable/tests/backtrace.c +--- elfutils/tests/backtrace.c ++++ elfutils/tests/backtrace.c +@@ -36,6 +36,7 @@ + #include <fcntl.h> + #include <string.h> + #include <argp.h> ++#include <sys/syscall.h> + #include ELFUTILS_HEADER(dwfl) + + #ifndef __linux__ +diffelfutils/tests/ChangeLog git-portable/tests/ChangeLog +--- elfutils/tests/ChangeLog ++++ elfutils/tests/ChangeLog +@@ -614,6 +614,13 @@ + + 2013-12-02 Jan Kratochvil <jan.kratochvil@redhat.com> + ++ Handle T-stopped detach for old kernels. ++ * backtrace.c: Include sys/syscall.h. ++ (linux_proc_pid_is_stopped): New function. ++ (ptrace_detach_stopped): Handle old kernels. ++ ++2013-12-02 Jan Kratochvil <jan.kratochvil@redhat.com> ++ + * Makefile.am (check_PROGRAMS): Add backtrace, backtrace-child, + backtrace-data and backtrace-dwarf. + (BUILT_SOURCES, clean-local, backtrace-child-biarch): New. +@@ -1478,6 +1485,8 @@ + + 2008-01-21 Roland McGrath <roland@redhat.com> + ++ * line2addr.c (main): Revert last change. ++ + * testfile45.S.bz2: Add tests for cltq, cqto. + * testfile45.expect.bz2: Adjust. + +@@ -2186,6 +2195,11 @@ + * Makefile.am (TESTS): Add run-elflint-test.sh. + (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2. + ++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-24 Ulrich Drepper <drepper@redhat.com> + + * get-files.c (main): Use correct format specifier. +diffelfutils/tests/line2addr.c git-portable/tests/line2addr.c +--- 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: +diffelfutils/tests/Makefile.am git-portable/tests/Makefile.am +--- elfutils/tests/Makefile.am ++++ elfutils/tests/Makefile.am +@@ -382,6 +382,7 @@ get_lines_LDADD = $(libdw) $(libelf) + get_files_LDADD = $(libdw) $(libelf) + get_aranges_LDADD = $(libdw) $(libelf) + allfcts_LDADD = $(libdw) $(libelf) ++line2addr_no_Wformat = yes + line2addr_LDADD = $(libdw) $(argp_LDADD) + addrscopes_LDADD = $(libdw) $(argp_LDADD) + funcscopes_LDADD = $(libdw) $(argp_LDADD) +diffelfutils/tests/Makefile.in git-portable/tests/Makefile.in +--- elfutils/tests/Makefile.in ++++ elfutils/tests/Makefile.in +@@ -87,14 +87,15 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING +-@STANDALONE_FALSE@am__append_2 = -I$(top_srcdir)/libasm -I$(top_srcdir)/libdw \ ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING ++@STANDALONE_FALSE@am__append_3 = -I$(top_srcdir)/libasm -I$(top_srcdir)/libdw \ + @STANDALONE_FALSE@ -I$(top_srcdir)/libdwfl -I$(top_srcdir)/libdwelf \ + @STANDALONE_FALSE@ -I$(top_srcdir)/libebl -I$(top_srcdir)/libelf \ + @STANDALONE_FALSE@ -I$(top_srcdir)/lib -I.. + +-@STANDALONE_FALSE@am__append_3 = -Wl,-rpath-link,../libasm:../libdw:../libelf +-@TESTS_RPATH_TRUE@am__append_4 = -Wl,-rpath,$(BUILD_RPATH) ++@STANDALONE_FALSE@am__append_4 = -Wl,-rpath-link,../libasm:../libdw:../libelf ++@TESTS_RPATH_TRUE@am__append_5 = -Wl,-rpath,$(BUILD_RPATH) + check_PROGRAMS = arextract$(EXEEXT) arsymtest$(EXEEXT) \ + newfile$(EXEEXT) saridx$(EXEEXT) scnnames$(EXEEXT) \ + sectiondump$(EXEEXT) showptable$(EXEEXT) update1$(EXEEXT) \ +@@ -123,7 +124,7 @@ check_PROGRAMS = arextract$(EXEEXT) arsy + aggregate_size$(EXEEXT) vdsosyms$(EXEEXT) getsrc_die$(EXEEXT) \ + strptr$(EXEEXT) newdata$(EXEEXT) elfstrtab$(EXEEXT) \ + $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_4) +-@BIARCH_TRUE@am__append_5 = backtrace-child-biarch ++@BIARCH_TRUE@am__append_6 = backtrace-child-biarch + TESTS = run-arextract.sh run-arsymtest.sh newfile$(EXEEXT) \ + test-nlist$(EXEEXT) update1$(EXEEXT) update2$(EXEEXT) \ + update3$(EXEEXT) update4$(EXEEXT) run-show-die-info.sh \ +@@ -173,14 +174,14 @@ TESTS = run-arextract.sh run-arsymtest.s + run-allfcts-multi.sh run-deleted.sh run-linkmap-cut.sh \ + run-aggregate-size.sh vdsosyms$(EXEEXT) run-readelf-A.sh \ + run-getsrc-die.sh run-strptr.sh newdata$(EXEEXT) \ +- elfstrtab$(EXEEXT) $(am__EXEEXT_2) $(am__append_8) \ +- $(am__append_9) $(am__EXEEXT_4) +-@STANDALONE_FALSE@am__append_6 = msg_tst md5-sha1-test ++ elfstrtab$(EXEEXT) $(am__EXEEXT_2) $(am__append_9) \ ++ $(am__append_10) $(am__EXEEXT_4) + @STANDALONE_FALSE@am__append_7 = msg_tst md5-sha1-test +-@LZMA_TRUE@am__append_8 = run-readelf-s.sh run-dwflsyms.sh +-@ZLIB_TRUE@am__append_9 = run-readelf-zdebug.sh +-@HAVE_LIBASM_TRUE@am__append_10 = $(asm_TESTS) ++@STANDALONE_FALSE@am__append_8 = msg_tst md5-sha1-test ++@LZMA_TRUE@am__append_9 = run-readelf-s.sh run-dwflsyms.sh ++@ZLIB_TRUE@am__append_10 = run-readelf-zdebug.sh + @HAVE_LIBASM_TRUE@am__append_11 = $(asm_TESTS) ++@HAVE_LIBASM_TRUE@am__append_12 = $(asm_TESTS) + subdir = tests + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -830,6 +831,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@ +@@ -861,6 +863,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@ +@@ -921,26 +924,26 @@ top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + zip_LIBS = @zip_LIBS@ +-AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_2) ++AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_3) + @ADD_STACK_USAGE_WARNING_FALSE@STACK_USAGE_WARNING = + + # Warn about stack usage of more than 256K = 262144 bytes. + @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144 +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ +- $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ +- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ +- $($(*F)_CFLAGS) +- ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ ++ $($(*F)_no_Werror),,-Werror) $(if \ ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \ ++ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ ++ $($(*F)_CFLAGS) $(am__append_1) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) +-DEFS.os = -DPIC -DSHARED $(am__append_1) ++DEFS.os = -DPIC -DSHARED $(am__append_2) + CLEANFILES = *.gcno *.gcda + textrel_msg = echo "WARNING: TEXTREL found in '$@'" + @FATAL_TEXTREL_FALSE@textrel_found = $(textrel_msg) + @FATAL_TEXTREL_TRUE@textrel_found = $(textrel_msg); exit 1 + textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then $(textrel_found); fi + BUILD_RPATH = \$$ORIGIN/../libasm:\$$ORIGIN/../libdw:\$$ORIGIN/../backends:\$$ORIGIN/../libelf +-AM_LDFLAGS = $(am__append_3) $(am__append_4) ++AM_LDFLAGS = $(am__append_4) $(am__append_5) + @TESTS_RPATH_FALSE@tests_rpath = no + @TESTS_RPATH_TRUE@tests_rpath = yes + asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \ +@@ -1167,6 +1170,7 @@ get_lines_LDADD = $(libdw) $(libelf) + get_files_LDADD = $(libdw) $(libelf) + get_aranges_LDADD = $(libdw) $(libelf) + allfcts_LDADD = $(libdw) $(libelf) ++line2addr_no_Wformat = yes + line2addr_LDADD = $(libdw) $(argp_LDADD) + addrscopes_LDADD = $(libdw) $(argp_LDADD) + funcscopes_LDADD = $(libdw) $(argp_LDADD) diff --git a/source/l/elfutils/elfutils.SlackBuild b/source/l/elfutils/elfutils.SlackBuild new file mode 100755 index 00000000..d7853d06 --- /dev/null +++ b/source/l/elfutils/elfutils.SlackBuild @@ -0,0 +1,142 @@ +#!/bin/sh + +# Copyright 2010, 2011, 2014, 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +PKGNAM=elfutils +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i586 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1 +cd $PKGNAM-$VERSION + +zcat $CWD/elfutils-0.163-unstrip-shf_info_link.patch | patch -p1 --verbose || exit 1 +zcat $CWD/elfutils-portability-0.163.patch | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --program-prefix=eu- \ + --build=$ARCH-slackware-linux + +# Build: +make $NUMJOBS || make || exit 1 + +# Install: +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS CONTRIBUTING COPYING* ChangeLog GPG-KEY \ + INSTALL* NEWS NOTES README* THANKS TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/elfutils/slack-desc b/source/l/elfutils/slack-desc new file mode 100644 index 00000000..ad242d72 --- /dev/null +++ b/source/l/elfutils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +elfutils: elfutils (ELF object file access library and utilities) +elfutils: +elfutils: Elfutils is a collection of utilities, including stack (to show +elfutils: backtraces), nm (for listing symbols from object files), size +elfutils: (for listing the section sizes of an object or archive file), +elfutils: strip (for discarding symbols), readelf (to see the raw ELF file +elfutils: structures), and elflint (to check for well-formed ELF files). +elfutils: +elfutils: Project home: http://fedorahosted.org/releases/e/l/elfutils/ +elfutils: +elfutils: |