From 8b25322fcc328cb3519dc5d6d92ea41111adce68 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: May 31 2016 08:05:34 +0000 Subject: import devtoolset-4-elfutils-0.166-1.el7 --- diff --git a/.devtoolset-4-elfutils.metadata b/.devtoolset-4-elfutils.metadata index 1d0ecc4..33bb06f 100644 --- a/.devtoolset-4-elfutils.metadata +++ b/.devtoolset-4-elfutils.metadata @@ -1 +1 @@ -7931b4961364a8a17c708138c70c552ae2881227 SOURCES/elfutils-0.163.tar.bz2 +00b678e1182c331ea75af982d666bbc38ef8b055 SOURCES/elfutils-0.166.tar.bz2 diff --git a/.gitignore b/.gitignore index b8778a8..860bb9a 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/elfutils-0.163.tar.bz2 +SOURCES/elfutils-0.166.tar.bz2 diff --git a/SOURCES/elfutils-0.163-dts.patch b/SOURCES/elfutils-0.163-dts.patch deleted file mode 100644 index 0ef1850..0000000 --- a/SOURCES/elfutils-0.163-dts.patch +++ /dev/null @@ -1,1163 +0,0 @@ -diff --git a/backends/Makefile.am b/backends/Makefile.am -index 21d7bd2..35156b2 100644 ---- a/backends/Makefile.am -+++ b/backends/Makefile.am -@@ -40,11 +40,37 @@ libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \ - libebl_ppc64_pic.a libebl_s390_pic.a libebl_tilegx_pic.a - noinst_LIBRARIES = $(libebl_pic) - noinst_DATA = $(libebl_pic:_pic.a=.so) -+lib_LIBRARIES = libebl_static_pic.a - - - libelf = ../libelf/libelf.so - libdw = ../libdw/libdw.so - -+# The following is minimal set of backends that we link with libdw to -+# avoid dlopen. Note repeats files below because some backends reuse -+# each others files. -+static_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \ -+ i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \ -+ i386_initreg.c \ -+ x86_64_init.c x86_64_symbol.c x86_64_corenote.c x86_64_cfi.c \ -+ x86_64_retval.c x86_64_regs.c x86_64_syscall.c \ -+ x86_64_initreg.c x32_corenote.c \ -+ ia64_init.c ia64_symbol.c ia64_regs.c ia64_retval.c \ -+ aarch64_init.c aarch64_regs.c aarch64_symbol.c \ -+ aarch64_corenote.c aarch64_retval.c aarch64_cfi.c \ -+ aarch64_initreg.c \ -+ ppc_init.c ppc_symbol.c ppc_retval.c ppc_regs.c \ -+ ppc_corenote.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \ -+ ppc_cfi.c ppc_initreg.c \ -+ ppc64_init.c ppc64_symbol.c ppc64_retval.c ppc64_corenote.c \ -+ ppc64_resolve_sym.c \ -+ s390_init.c s390_symbol.c s390_regs.c s390_retval.c \ -+ s390_corenote.c s390x_corenote.c s390_cfi.c s390_initreg.c \ -+ s390_unwind.c -+ -+libebl_static_pic_a_SOURCES = $(static_SRCS) -+am_libebl_static_pic_a_OBJECTS = $(static_SRCS:.c=.os) -+ - i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \ - i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \ - i386_initreg.c -diff --git a/libasm/Makefile.am b/libasm/Makefile.am -index 6ea2a8e..0ac4ac6 100644 ---- a/libasm/Makefile.am -+++ b/libasm/Makefile.am -@@ -38,6 +38,7 @@ noinst_LIBRARIES = libasm_pic.a - noinst_PROGRAMS = $(noinst_LIBRARIES:_pic.a=.so) - pkginclude_HEADERS = libasm.h - -+libasm_a_CFLAGS = -fpic -fvisibility=hidden $(AM_CFLAGS) - libasm_a_SOURCES = asm_begin.c asm_abort.c asm_end.c asm_error.c \ - asm_getelf.c asm_newscn.c asm_newscn_ingrp.c \ - asm_newsubscn.c asm_newsym.c asm_newcomsym.c \ -diff --git a/libcpu/Makefile.am b/libcpu/Makefile.am -index 3beccf3..1d845e4 100644 ---- a/libcpu/Makefile.am -+++ b/libcpu/Makefile.am -@@ -36,9 +36,11 @@ LEX_OUTPUT_ROOT = lex.$(destr (ebl); - -- /* Close the dynamically loaded object. */ -- if (ebl->dlhandle != NULL) -- (void) dlclose (ebl->dlhandle); -- - /* Free the resources. */ - free (ebl); - } -diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c -index 2766e7b..d551bda 100644 ---- a/libebl/eblopenbackend.c -+++ b/libebl/eblopenbackend.c -@@ -41,6 +41,13 @@ - - #include - -+const char *i386_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); -+const char *x86_64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); -+const char *ppc_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); -+const char *ppc64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); -+const char *ia64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); -+const char *s390_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); -+const char *aarch64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); - - /* This table should contain the complete list of architectures as far - as the ELF specification is concerned. */ -@@ -48,7 +55,7 @@ - arrays to avoid relocations. */ - static const struct - { -- const char *dsoname; -+ ebl_bhinit_t initptr; - const char *emulation; - const char *prefix; - int prefix_len; -@@ -57,81 +64,81 @@ static const struct - int data; - } machines[] = - { -- { "i386", "elf_i386", "i386", 4, EM_386, ELFCLASS32, ELFDATA2LSB }, -- { "ia64", "elf_ia64", "ia64", 4, EM_IA_64, ELFCLASS64, ELFDATA2LSB }, -- { "alpha", "elf_alpha", "alpha", 5, EM_ALPHA, ELFCLASS64, ELFDATA2LSB }, -- { "x86_64", "elf_x86_64", "x86_64", 6, EM_X86_64, ELFCLASS64, ELFDATA2LSB }, -- { "ppc", "elf_ppc", "ppc", 3, EM_PPC, ELFCLASS32, ELFDATA2MSB }, -- { "ppc64", "elf_ppc64", "ppc64", 5, EM_PPC64, ELFCLASS64, ELFDATA2MSB }, -- { "tilegx", "elf_tilegx", "tilegx", 6, EM_TILEGX, ELFCLASS64, ELFDATA2LSB }, -+ { i386_init, "elf_i386", "i386", 4, EM_386, ELFCLASS32, ELFDATA2LSB }, -+ { ia64_init, "elf_ia64", "ia64", 4, EM_IA_64, ELFCLASS64, ELFDATA2LSB }, -+ { NULL, "elf_alpha", "alpha", 5, EM_ALPHA, ELFCLASS64, ELFDATA2LSB }, -+ { x86_64_init, "elf_x86_64", "x86_64", 6, EM_X86_64, ELFCLASS64, ELFDATA2LSB }, -+ { ppc_init, "elf_ppc", "ppc", 3, EM_PPC, ELFCLASS32, ELFDATA2MSB }, -+ { ppc64_init, "elf_ppc64", "ppc64", 5, EM_PPC64, ELFCLASS64, ELFDATA2MSB }, -+ { NULL, "elf_tilegx", "tilegx", 6, EM_TILEGX, ELFCLASS64, ELFDATA2LSB }, - // XXX class and machine fields need to be filled in for all archs. -- { "sh", "elf_sh", "sh", 2, EM_SH, 0, 0 }, -- { "arm", "ebl_arm", "arm", 3, EM_ARM, 0, 0 }, -- { "sparc", "elf_sparcv9", "sparc", 5, EM_SPARCV9, 0, 0 }, -- { "sparc", "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 }, -- { "sparc", "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 }, -- { "s390", "ebl_s390", "s390", 4, EM_S390, 0, 0 }, -- -- { "m32", "elf_m32", "m32", 3, EM_M32, 0, 0 }, -- { "m68k", "elf_m68k", "m68k", 4, EM_68K, 0, 0 }, -- { "m88k", "elf_m88k", "m88k", 4, EM_88K, 0, 0 }, -- { "i860", "elf_i860", "i860", 4, EM_860, 0, 0 }, -- { "s370", "ebl_s370", "s370", 4, EM_S370, 0, 0 }, -- { "parisc", "elf_parisc", "parisc", 6, EM_PARISC, 0, 0 }, -- { "vpp500", "elf_vpp500", "vpp500", 5, EM_VPP500, 0, 0 }, -- { "sparc", "elf_v8plus", "v8plus", 6, EM_SPARC32PLUS, 0, 0 }, -- { "i960", "elf_i960", "i960", 4, EM_960, 0, 0 }, -- { "v800", "ebl_v800", "v800", 4, EM_V800, 0, 0 }, -- { "fr20", "ebl_fr20", "fr20", 4, EM_FR20, 0, 0 }, -- { "rh32", "ebl_rh32", "rh32", 4, EM_RH32, 0, 0 }, -- { "rce", "ebl_rce", "rce", 3, EM_RCE, 0, 0 }, -- { "tricore", "elf_tricore", "tricore", 7, EM_TRICORE, 0, 0 }, -- { "arc", "elf_arc", "arc", 3, EM_ARC, 0, 0 }, -- { "h8", "elf_h8_300", "h8_300", 6, EM_H8_300, 0, 0 }, -- { "h8", "elf_h8_300h", "h8_300h", 6, EM_H8_300H, 0, 0 }, -- { "h8", "elf_h8s", "h8s", 6, EM_H8S, 0, 0 }, -- { "h8", "elf_h8_500", "h8_500", 6, EM_H8_500, 0, 0 }, -- { "coldfire", "elf_coldfire", "coldfire", 8, EM_COLDFIRE, 0, 0 }, -- { "m68k", "elf_68hc12", "68hc12", 6, EM_68HC12, 0, 0 }, -- { "mma", "elf_mma", "mma", 3, EM_MMA, 0, 0 }, -- { "pcp", "elf_pcp", "pcp", 3, EM_PCP, 0, 0 }, -- { "ncpu", "elf_ncpu", "ncpu", 4, EM_NCPU, 0, 0 }, -- { "ndr1", "elf_ndr1", "ndr1", 4, EM_NDR1, 0, 0 }, -- { "starcore", "elf_starcore", "starcore", 8, EM_STARCORE, 0, 0 }, -- { "me16", "elf_me16", "em16", 4, EM_ME16, 0, 0 }, -- { "st100", "elf_st100", "st100", 5, EM_ST100, 0, 0 }, -- { "tinyj", "elf_tinyj", "tinyj", 5, EM_TINYJ, 0, 0 }, -- { "pdsp", "elf_pdsp", "pdsp", 4, EM_PDSP, 0, 0 }, -- { "fx66", "elf_fx66", "fx66", 4, EM_FX66, 0, 0 }, -- { "st9plus", "elf_st9plus", "st9plus", 7, EM_ST9PLUS, 0, 0 }, -- { "st7", "elf_st7", "st7", 3, EM_ST7, 0, 0 }, -- { "m68k", "elf_68hc16", "68hc16", 6, EM_68HC16, 0, 0 }, -- { "m68k", "elf_68hc11", "68hc11", 6, EM_68HC11, 0, 0 }, -- { "m68k", "elf_68hc08", "68hc08", 6, EM_68HC08, 0, 0 }, -- { "m68k", "elf_68hc05", "68hc05", 6, EM_68HC05, 0, 0 }, -- { "svx", "elf_svx", "svx", 3, EM_SVX, 0, 0 }, -- { "st19", "elf_st19", "st19", 4, EM_ST19, 0, 0 }, -- { "vax", "elf_vax", "vax", 3, EM_VAX, 0, 0 }, -- { "cris", "elf_cris", "cris", 4, EM_CRIS, 0, 0 }, -- { "javelin", "elf_javelin", "javelin", 7, EM_JAVELIN, 0, 0 }, -- { "firepath", "elf_firepath", "firepath", 8, EM_FIREPATH, 0, 0 }, -- { "zsp", "elf_zsp", "zsp", 3, EM_ZSP, 0, 0 }, -- { "mmix", "elf_mmix", "mmix", 4, EM_MMIX, 0, 0 }, -- { "hunay", "elf_huany", "huany", 5, EM_HUANY, 0, 0 }, -- { "prism", "elf_prism", "prism", 5, EM_PRISM, 0, 0 }, -- { "avr", "elf_avr", "avr", 3, EM_AVR, 0, 0 }, -- { "fr30", "elf_fr30", "fr30", 4, EM_FR30, 0, 0 }, -- { "dv10", "elf_dv10", "dv10", 4, EM_D10V, 0, 0 }, -- { "dv30", "elf_dv30", "dv30", 4, EM_D30V, 0, 0 }, -- { "v850", "elf_v850", "v850", 4, EM_V850, 0, 0 }, -- { "m32r", "elf_m32r", "m32r", 4, EM_M32R, 0, 0 }, -- { "mn10300", "elf_mn10300", "mn10300", 7, EM_MN10300, 0, 0 }, -- { "mn10200", "elf_mn10200", "mn10200", 7, EM_MN10200, 0, 0 }, -- { "pj", "elf_pj", "pj", 2, EM_PJ, 0, 0 }, -- { "openrisc", "elf_openrisc", "openrisc", 8, EM_OPENRISC, 0, 0 }, -- { "arc", "elf_arc_a5", "arc_a5", 6, EM_ARC_A5, 0, 0 }, -- { "xtensa", "elf_xtensa", "xtensa", 6, EM_XTENSA, 0, 0 }, -- { "aarch64", "elf_aarch64", "aarch64", 7, EM_AARCH64, ELFCLASS64, 0 }, -+ { NULL, "elf_sh", "sh", 2, EM_SH, 0, 0 }, -+ { NULL, "ebl_arm", "arm", 3, EM_ARM, 0, 0 }, -+ { NULL, "elf_sparcv9", "sparc", 5, EM_SPARCV9, 0, 0 }, -+ { NULL, "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 }, -+ { NULL, "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 }, -+ { s390_init, "ebl_s390", "s390", 4, EM_S390, 0, 0 }, -+ -+ { NULL, "elf_m32", "m32", 3, EM_M32, 0, 0 }, -+ { NULL, "elf_m68k", "m68k", 4, EM_68K, 0, 0 }, -+ { NULL, "elf_m88k", "m88k", 4, EM_88K, 0, 0 }, -+ { NULL, "elf_i860", "i860", 4, EM_860, 0, 0 }, -+ { NULL, "ebl_s370", "s370", 4, EM_S370, 0, 0 }, -+ { NULL, "elf_parisc", "parisc", 6, EM_PARISC, 0, 0 }, -+ { NULL, "elf_vpp500", "vpp500", 5, EM_VPP500, 0, 0 }, -+ { NULL, "elf_v8plus", "v8plus", 6, EM_SPARC32PLUS, 0, 0 }, -+ { NULL, "elf_i960", "i960", 4, EM_960, 0, 0 }, -+ { NULL, "ebl_v800", "v800", 4, EM_V800, 0, 0 }, -+ { NULL, "ebl_fr20", "fr20", 4, EM_FR20, 0, 0 }, -+ { NULL, "ebl_rh32", "rh32", 4, EM_RH32, 0, 0 }, -+ { NULL, "ebl_rce", "rce", 3, EM_RCE, 0, 0 }, -+ { NULL, "elf_tricore", "tricore", 7, EM_TRICORE, 0, 0 }, -+ { NULL, "elf_arc", "arc", 3, EM_ARC, 0, 0 }, -+ { NULL, "elf_h8_300", "h8_300", 6, EM_H8_300, 0, 0 }, -+ { NULL, "elf_h8_300h", "h8_300h", 6, EM_H8_300H, 0, 0 }, -+ { NULL, "elf_h8s", "h8s", 6, EM_H8S, 0, 0 }, -+ { NULL, "elf_h8_500", "h8_500", 6, EM_H8_500, 0, 0 }, -+ { NULL, "elf_coldfire", "coldfire", 8, EM_COLDFIRE, 0, 0 }, -+ { NULL, "elf_68hc12", "68hc12", 6, EM_68HC12, 0, 0 }, -+ { NULL, "elf_mma", "mma", 3, EM_MMA, 0, 0 }, -+ { NULL, "elf_pcp", "pcp", 3, EM_PCP, 0, 0 }, -+ { NULL, "elf_ncpu", "ncpu", 4, EM_NCPU, 0, 0 }, -+ { NULL, "elf_ndr1", "ndr1", 4, EM_NDR1, 0, 0 }, -+ { NULL, "elf_starcore", "starcore", 8, EM_STARCORE, 0, 0 }, -+ { NULL, "elf_me16", "em16", 4, EM_ME16, 0, 0 }, -+ { NULL, "elf_st100", "st100", 5, EM_ST100, 0, 0 }, -+ { NULL, "elf_tinyj", "tinyj", 5, EM_TINYJ, 0, 0 }, -+ { NULL, "elf_pdsp", "pdsp", 4, EM_PDSP, 0, 0 }, -+ { NULL, "elf_fx66", "fx66", 4, EM_FX66, 0, 0 }, -+ { NULL, "elf_st9plus", "st9plus", 7, EM_ST9PLUS, 0, 0 }, -+ { NULL, "elf_st7", "st7", 3, EM_ST7, 0, 0 }, -+ { NULL, "elf_68hc16", "68hc16", 6, EM_68HC16, 0, 0 }, -+ { NULL, "elf_68hc11", "68hc11", 6, EM_68HC11, 0, 0 }, -+ { NULL, "elf_68hc08", "68hc08", 6, EM_68HC08, 0, 0 }, -+ { NULL, "elf_68hc05", "68hc05", 6, EM_68HC05, 0, 0 }, -+ { NULL, "elf_svx", "svx", 3, EM_SVX, 0, 0 }, -+ { NULL, "elf_st19", "st19", 4, EM_ST19, 0, 0 }, -+ { NULL, "elf_vax", "vax", 3, EM_VAX, 0, 0 }, -+ { NULL, "elf_cris", "cris", 4, EM_CRIS, 0, 0 }, -+ { NULL, "elf_javelin", "javelin", 7, EM_JAVELIN, 0, 0 }, -+ { NULL, "elf_firepath", "firepath", 8, EM_FIREPATH, 0, 0 }, -+ { NULL, "elf_zsp", "zsp", 3, EM_ZSP, 0, 0 }, -+ { NULL, "elf_mmix", "mmix", 4, EM_MMIX, 0, 0 }, -+ { NULL, "elf_huany", "huany", 5, EM_HUANY, 0, 0 }, -+ { NULL, "elf_prism", "prism", 5, EM_PRISM, 0, 0 }, -+ { NULL, "elf_avr", "avr", 3, EM_AVR, 0, 0 }, -+ { NULL, "elf_fr30", "fr30", 4, EM_FR30, 0, 0 }, -+ { NULL, "elf_dv10", "dv10", 4, EM_D10V, 0, 0 }, -+ { NULL, "elf_dv30", "dv30", 4, EM_D30V, 0, 0 }, -+ { NULL, "elf_v850", "v850", 4, EM_V850, 0, 0 }, -+ { NULL, "elf_m32r", "m32r", 4, EM_M32R, 0, 0 }, -+ { NULL, "elf_mn10300", "mn10300", 7, EM_MN10300, 0, 0 }, -+ { NULL, "elf_mn10200", "mn10200", 7, EM_MN10200, 0, 0 }, -+ { NULL, "elf_pj", "pj", 2, EM_PJ, 0, 0 }, -+ { NULL, "elf_openrisc", "openrisc", 8, EM_OPENRISC, 0, 0 }, -+ { NULL, "elf_arc_a5", "arc_a5", 6, EM_ARC_A5, 0, 0 }, -+ { NULL, "elf_xtensa", "xtensa", 6, EM_XTENSA, 0, 0 }, -+ { aarch64_init, "elf_aarch64", "aarch64", 7, EM_AARCH64, ELFCLASS64, 0 }, - }; - #define nmachines (sizeof (machines) / sizeof (machines[0])) - -@@ -321,46 +328,17 @@ openbackend (elf, emulation, machine) - #endif - #define ORIGINDIR "$ORIGIN/../$LIB/" LIBEBL_SUBDIR "/" - -- /* Give it a try. At least the machine type matches. First -- try to load the module. */ -- char dsoname[100]; -- strcpy (stpcpy (stpcpy (dsoname, ORIGINDIR "libebl_"), -- machines[cnt].dsoname), -- ".so"); -- -- void *h = dlopen (dsoname, RTLD_LAZY); -- if (h == NULL) -- { -- strcpy (stpcpy (stpcpy (dsoname, "libebl_"), -- machines[cnt].dsoname), -- ".so"); -- h = dlopen (dsoname, RTLD_LAZY); -- } -- -- /* Try without an explicit path. */ -- if (h != NULL) -+ ebl_bhinit_t initp = machines[cnt].initptr; -+ if (1) - { -- /* We managed to load the object. Now see whether the -- initialization function likes our file. */ - static const char version[] = MODVERSION; - const char *modversion; -- ebl_bhinit_t initp; -- -- // We use a static number to help the compiler see we don't -- // overflow the stack with an arbitrary number. -- assert (machines[cnt].prefix_len <= MAX_PREFIX_LEN); -- char symname[MAX_PREFIX_LEN + sizeof "_init"]; -- -- strcpy (mempcpy (symname, machines[cnt].prefix, -- machines[cnt].prefix_len), "_init"); -- -- initp = (ebl_bhinit_t) dlsym (h, symname); - if (initp != NULL - && (modversion = initp (elf, machine, result, sizeof (Ebl))) - && strcmp (version, modversion) == 0) - { - /* We found a module to handle our file. */ -- result->dlhandle = h; -+ result->dlhandle = NULL; - result->elf = elf; - - /* A few entries are mandatory. */ -@@ -369,9 +347,6 @@ openbackend (elf, emulation, machine) - - return result; - } -- -- /* Not the module we need. */ -- (void) dlclose (h); - } - - /* We cannot find a DSO but the emulation/machine ID matches. -diff --git a/libelf/Makefile.am b/libelf/Makefile.am -index afcb2aa..e10ba1e 100644 ---- a/libelf/Makefile.am -+++ b/libelf/Makefile.am -@@ -41,6 +41,7 @@ include_HEADERS = libelf.h gelf.h nlist.h - - pkginclude_HEADERS = elf-knowledge.h - -+libelf_a_CFLAGS = -fpic -fvisibility=hidden $(AM_CFLAGS) - libelf_a_SOURCES = elf_version.c elf_hash.c elf_error.c elf_fill.c \ - elf_begin.c elf_next.c elf_rand.c elf_end.c elf_kind.c \ - gelf_getclass.c elf_getbase.c elf_getident.c \ -diff --git a/src/Makefile.am b/src/Makefile.am -index cd2755b..f498cec 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -79,7 +79,8 @@ libasm = ../libasm/libasm.so - libdw = ../libdw/libdw.so - libelf = ../libelf/libelf.so - endif --libebl = ../libebl/libebl.a -+libebl = ../libebl/libebl.a ../backends/libebl_static_pic.a ../libcpu/libcpu_static_pic.a -+libdw_static = ../libdw/libdw_static_pic.a - libeu = ../lib/libeu.a - - if DEMANGLE -@@ -103,22 +104,23 @@ ranlib_no_Wstack_usage = yes - ar_no_Wstack_usage = yes - unstrip_no_Wstack_usage = yes - -+ - readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl - nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl \ - $(demanglelib) - size_LDADD = $(libelf) $(libeu) $(argp_LDADD) --strip_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl --ld_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl -+strip_LDADD = $(libebl) $(libdw_static) $(libelf) $(libeu) $(argp_LDADD) -ldl -+ld_LDADD = $(libebl) $(libdw_static) $(libelf) $(libeu) $(argp_LDADD) -ldl - if NATIVE_LD - # -ldl is always needed for libebl. - ld_LDADD += libld_elf.a - endif - ld_LDFLAGS = -rdynamic --elflint_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl -+elflint_LDADD = $(libebl) $(libdw_static) $(libelf) $(libeu) $(argp_LDADD) -ldl - findtextrel_LDADD = $(libdw) $(libelf) $(argp_LDADD) - addr2line_LDADD = $(libdw) $(libelf) $(argp_LDADD) $(demanglelib) --elfcmp_LDADD = $(libebl) $(libelf) $(argp_LDADD) -ldl --objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl -+elfcmp_LDADD = $(libebl) $(libdw_static) $(libelf) $(argp_LDADD) -ldl -+objdump_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) $(libeu) $(argp_LDADD) -ldl - ranlib_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) - strings_LDADD = $(libelf) $(libeu) $(argp_LDADD) - ar_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 55241c7..8174a55 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -354,7 +354,8 @@ libdw = ../libdw/libdw.so - libelf = ../libelf/libelf.so - libasm = ../libasm/libasm.so - endif --libebl = ../libebl/libebl.a -+libebl = ../libebl/libebl.a ../backends/libebl_static_pic.a ../libcpu/libcpu_static_pic.a -+libdw_static = ../libdw/libdw_static_pic.a - libeu = ../lib/libeu.a - endif !STANDALONE - -@@ -373,8 +374,8 @@ early_offscn_LDADD = $(libelf) - ecp_LDADD = $(libelf) - update1_LDADD = $(libelf) - update2_LDADD = $(libelf) --update3_LDADD = $(libebl) $(libelf) --update4_LDADD = $(libebl) $(libelf) -+update3_LDADD = $(libebl) $(libdw_static) $(libelf) -+update4_LDADD = $(libebl) $(libdw_static) $(libelf) - show_die_info_LDADD = $(libdw) $(libelf) - get_pubnames_LDADD = $(libdw) $(libelf) - show_abbrev_LDADD = $(libdw) $(libelf) -@@ -382,6 +383,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) -@@ -389,15 +391,15 @@ funcretval_LDADD = $(libdw) $(argp_LDADD) - allregs_LDADD = $(libdw) $(argp_LDADD) - find_prologues_LDADD = $(libdw) $(argp_LDADD) - #show_ciefde_LDADD = ../libdwarf/libdwarf.so $(libelf) --asm_tst1_LDADD = $(libasm) $(libebl) $(libelf) -ldl --asm_tst2_LDADD = $(libasm) $(libebl) $(libelf) -ldl --asm_tst3_LDADD = $(libasm) $(libebl) $(libelf) -ldl --asm_tst4_LDADD = $(libasm) $(libebl) $(libelf) -ldl --asm_tst5_LDADD = $(libasm) $(libebl) $(libelf) -ldl --asm_tst6_LDADD = $(libasm) $(libebl) $(libelf) -ldl --asm_tst7_LDADD = $(libasm) $(libebl) $(libelf) -ldl --asm_tst8_LDADD = $(libasm) $(libebl) $(libelf) -ldl --asm_tst9_LDADD = $(libasm) $(libebl) $(libelf) -ldl -+asm_tst1_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl -+asm_tst2_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl -+asm_tst3_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl -+asm_tst4_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl -+asm_tst5_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl -+asm_tst6_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl -+asm_tst7_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl -+asm_tst8_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl -+asm_tst9_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl - dwflmodtest_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD) -ldl - rdwrmmap_LDADD = $(libelf) - dwfl_bug_addr_overflow_LDADD = $(libdw) $(libebl) $(libelf) -ldl -@@ -412,7 +414,7 @@ dwarf_getstring_LDADD = $(libdw) - addrcfi_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD) -ldl - test_flag_nobits_LDADD = $(libelf) - rerequest_tag_LDADD = $(libdw) --alldts_LDADD = $(libebl) $(libelf) -+alldts_LDADD = $(libebl) $(libdw_static) $(libelf) - md5_sha1_test_LDADD = $(libeu) - typeiter_LDADD = $(libdw) $(libelf) - typeiter2_LDADD = $(libdw) $(libelf) -diff --git a/tests/run-addrcfi.sh b/tests/run-addrcfi.sh -index c864eea..2691091 100755 ---- a/tests/run-addrcfi.sh -+++ b/tests/run-addrcfi.sh -@@ -3521,82 +3521,6 @@ testrun_compare ${abs_builddir}/addrcfi -e testfiles390x 0x0000000080000510 <<\E - handle_cfi no CFI (.debug_frame): no error - EOF - --# EM_ARM (function bar 0x00008510) --# Note. Only in .debug_frame, the .eh_frame is actually empty. --# Same as s390 and ppc above. --testfiles testfilearm --testrun_compare ${abs_builddir}/addrcfi -e testfilearm 0x00008510 <<\EOF --dwarf_cfi_addrframe (.eh_frame): no matching address range --.debug_frame has 0x8510 => [0x8510, 0x8524): -- return address in reg14 -- CFA location expression: bregx(13) -- integer reg0 (r0): undefined -- integer reg1 (r1): undefined -- integer reg2 (r2): undefined -- integer reg3 (r3): undefined -- integer reg4 (r4): same_value -- integer reg5 (r5): same_value -- integer reg6 (r6): same_value -- integer reg7 (r7): same_value -- integer reg8 (r8): same_value -- integer reg9 (r9): undefined -- integer reg10 (r10): same_value -- integer reg11 (r11): same_value -- integer reg12 (r12): undefined -- integer reg13 (sp): location expression: call_frame_cfa stack_value -- integer reg14 (lr): same_value -- integer reg15 (pc): location expression: regx(14) -- FPA reg16 (f0): undefined -- FPA reg17 (f1): undefined -- FPA reg18 (f2): undefined -- FPA reg19 (f3): undefined -- FPA reg20 (f4): undefined -- FPA reg21 (f5): undefined -- FPA reg22 (f6): undefined -- FPA reg23 (f7): undefined -- FPA reg96 (f0): undefined -- FPA reg97 (f1): undefined -- FPA reg98 (f2): undefined -- FPA reg99 (f3): undefined -- FPA reg100 (f4): undefined -- FPA reg101 (f5): undefined -- FPA reg102 (f6): undefined -- FPA reg103 (f7): undefined -- integer reg128 (spsr): undefined -- VFP reg256 (d0): undefined -- VFP reg257 (d1): undefined -- VFP reg258 (d2): undefined -- VFP reg259 (d3): undefined -- VFP reg260 (d4): undefined -- VFP reg261 (d5): undefined -- VFP reg262 (d6): undefined -- VFP reg263 (d7): undefined -- VFP reg264 (d8): same_value -- VFP reg265 (d9): same_value -- VFP reg266 (d10): same_value -- VFP reg267 (d11): same_value -- VFP reg268 (d12): same_value -- VFP reg269 (d13): same_value -- VFP reg270 (d14): same_value -- VFP reg271 (d15): same_value -- VFP reg272 (d16): undefined -- VFP reg273 (d17): undefined -- VFP reg274 (d18): undefined -- VFP reg275 (d19): undefined -- VFP reg276 (d20): undefined -- VFP reg277 (d21): undefined -- VFP reg278 (d22): undefined -- VFP reg279 (d23): undefined -- VFP reg280 (d24): undefined -- VFP reg281 (d25): undefined -- VFP reg282 (d26): undefined -- VFP reg283 (d27): undefined -- VFP reg284 (d28): undefined -- VFP reg285 (d29): undefined -- VFP reg286 (d30): undefined -- VFP reg287 (d31): undefined --EOF -- - # EM_AARCH64 (function bar 0x400550) - # Same as arm, 390 and ppc above. - # Note missing coverage in .eh_frame. -diff --git a/tests/run-allregs.sh b/tests/run-allregs.sh -index 1f86429..544c759 100755 ---- a/tests/run-allregs.sh -+++ b/tests/run-allregs.sh -@@ -2344,387 +2344,6 @@ control registers: - 65: %pswa (pswa), address 64 bits - EOF - --regs_test testfile30 <<\EOF --integer registers: -- 0: %g0 (g0), signed 32 bits -- 1: %g1 (g1), signed 32 bits -- 2: %g2 (g2), signed 32 bits -- 3: %g3 (g3), signed 32 bits -- 4: %g4 (g4), signed 32 bits -- 5: %g5 (g5), signed 32 bits -- 6: %g6 (g6), signed 32 bits -- 7: %g7 (g7), signed 32 bits -- 8: %o0 (o0), signed 32 bits -- 9: %o1 (o1), signed 32 bits -- 10: %o2 (o2), signed 32 bits -- 11: %o3 (o3), signed 32 bits -- 12: %o4 (o4), signed 32 bits -- 13: %o5 (o5), signed 32 bits -- 14: %o6 (o6), address 32 bits -- 15: %o7 (o7), signed 32 bits -- 16: %l0 (l0), signed 32 bits -- 17: %l1 (l1), signed 32 bits -- 18: %l2 (l2), signed 32 bits -- 19: %l3 (l3), signed 32 bits -- 20: %l4 (l4), signed 32 bits -- 21: %l5 (l5), signed 32 bits -- 22: %l6 (l6), signed 32 bits -- 23: %l7 (l7), signed 32 bits -- 24: %i0 (i0), signed 32 bits -- 25: %i1 (i1), signed 32 bits -- 26: %i2 (i2), signed 32 bits -- 27: %i3 (i3), signed 32 bits -- 28: %i4 (i4), signed 32 bits -- 29: %i5 (i5), signed 32 bits -- 30: %i6 (i6), address 32 bits -- 31: %i7 (i7), signed 32 bits --FPU registers: -- 32: %f0 (f0), float 32 bits -- 33: %f1 (f1), float 32 bits -- 34: %f2 (f2), float 32 bits -- 35: %f3 (f3), float 32 bits -- 36: %f4 (f4), float 32 bits -- 37: %f5 (f5), float 32 bits -- 38: %f6 (f6), float 32 bits -- 39: %f7 (f7), float 32 bits -- 40: %f8 (f8), float 32 bits -- 41: %f9 (f9), float 32 bits -- 42: %f10 (f10), float 32 bits -- 43: %f11 (f11), float 32 bits -- 44: %f12 (f12), float 32 bits -- 45: %f13 (f13), float 32 bits -- 46: %f14 (f14), float 32 bits -- 47: %f15 (f15), float 32 bits -- 48: %f16 (f16), float 32 bits -- 49: %f17 (f17), float 32 bits -- 50: %f18 (f18), float 32 bits -- 51: %f19 (f19), float 32 bits -- 52: %f20 (f20), float 32 bits -- 53: %f21 (f21), float 32 bits -- 54: %f22 (f22), float 32 bits -- 55: %f23 (f23), float 32 bits -- 56: %f24 (f24), float 32 bits -- 57: %f25 (f25), float 32 bits -- 58: %f26 (f26), float 32 bits -- 59: %f27 (f27), float 32 bits -- 60: %f28 (f28), float 32 bits -- 61: %f29 (f29), float 32 bits -- 62: %f30 (f30), float 32 bits -- 63: %f31 (f31), float 32 bits --control registers: -- 64: %y (y), unsigned 32 bits -- 65: %psr (psr), unsigned 32 bits -- 66: %wim (wim), unsigned 32 bits -- 67: %tbr (tbr), unsigned 32 bits -- 68: %pc (pc), address 32 bits -- 69: %npc (npc), address 32 bits -- 70: %fsr (fsr), unsigned 32 bits -- 71: %csr (csr), unsigned 32 bits --EOF -- --regs_test testfile31 <<\EOF --integer registers: -- 0: %g0 (g0), signed 64 bits -- 1: %g1 (g1), signed 64 bits -- 2: %g2 (g2), signed 64 bits -- 3: %g3 (g3), signed 64 bits -- 4: %g4 (g4), signed 64 bits -- 5: %g5 (g5), signed 64 bits -- 6: %g6 (g6), signed 64 bits -- 7: %g7 (g7), signed 64 bits -- 8: %o0 (o0), signed 64 bits -- 9: %o1 (o1), signed 64 bits -- 10: %o2 (o2), signed 64 bits -- 11: %o3 (o3), signed 64 bits -- 12: %o4 (o4), signed 64 bits -- 13: %o5 (o5), signed 64 bits -- 14: %o6 (o6), address 64 bits -- 15: %o7 (o7), signed 64 bits -- 16: %l0 (l0), signed 64 bits -- 17: %l1 (l1), signed 64 bits -- 18: %l2 (l2), signed 64 bits -- 19: %l3 (l3), signed 64 bits -- 20: %l4 (l4), signed 64 bits -- 21: %l5 (l5), signed 64 bits -- 22: %l6 (l6), signed 64 bits -- 23: %l7 (l7), signed 64 bits -- 24: %i0 (i0), signed 64 bits -- 25: %i1 (i1), signed 64 bits -- 26: %i2 (i2), signed 64 bits -- 27: %i3 (i3), signed 64 bits -- 28: %i4 (i4), signed 64 bits -- 29: %i5 (i5), signed 64 bits -- 30: %i6 (i6), address 64 bits -- 31: %i7 (i7), signed 64 bits --FPU registers: -- 32: %f0 (f0), float 32 bits -- 33: %f1 (f1), float 32 bits -- 34: %f2 (f2), float 32 bits -- 35: %f3 (f3), float 32 bits -- 36: %f4 (f4), float 32 bits -- 37: %f5 (f5), float 32 bits -- 38: %f6 (f6), float 32 bits -- 39: %f7 (f7), float 32 bits -- 40: %f8 (f8), float 32 bits -- 41: %f9 (f9), float 32 bits -- 42: %f10 (f10), float 32 bits -- 43: %f11 (f11), float 32 bits -- 44: %f12 (f12), float 32 bits -- 45: %f13 (f13), float 32 bits -- 46: %f14 (f14), float 32 bits -- 47: %f15 (f15), float 32 bits -- 48: %f16 (f16), float 32 bits -- 49: %f17 (f17), float 32 bits -- 50: %f18 (f18), float 32 bits -- 51: %f19 (f19), float 32 bits -- 52: %f20 (f20), float 32 bits -- 53: %f21 (f21), float 32 bits -- 54: %f22 (f22), float 32 bits -- 55: %f23 (f23), float 32 bits -- 56: %f24 (f24), float 32 bits -- 57: %f25 (f25), float 32 bits -- 58: %f26 (f26), float 32 bits -- 59: %f27 (f27), float 32 bits -- 60: %f28 (f28), float 32 bits -- 61: %f29 (f29), float 32 bits -- 62: %f30 (f30), float 32 bits -- 63: %f31 (f31), float 32 bits -- 64: %f32 (f32), float 64 bits -- 65: %f34 (f34), float 64 bits -- 66: %f36 (f36), float 64 bits -- 67: %f38 (f38), float 64 bits -- 68: %f40 (f40), float 64 bits -- 69: %f42 (f42), float 64 bits -- 70: %f44 (f44), float 64 bits -- 71: %f46 (f46), float 64 bits -- 72: %f48 (f48), float 64 bits -- 73: %f50 (f50), float 64 bits -- 74: %f52 (f52), float 64 bits -- 75: %f54 (f54), float 64 bits -- 76: %f56 (f56), float 64 bits -- 77: %f58 (f58), float 64 bits -- 78: %f60 (f60), float 64 bits -- 79: %f62 (f62), float 64 bits --control registers: -- 80: %pc (pc), address 64 bits -- 81: %npc (npc), address 64 bits -- 82: %state (state), unsigned 64 bits -- 83: %fsr (fsr), unsigned 64 bits -- 84: %fprs (fprs), unsigned 64 bits -- 85: %y (y), unsigned 64 bits --EOF -- --regs_test testfile10 <<\EOF --integer registers: -- 0: $v0 (v0), signed 64 bits -- 1: $t0 (t0), signed 64 bits -- 2: $t1 (t1), signed 64 bits -- 3: $t2 (t2), signed 64 bits -- 4: $t3 (t3), signed 64 bits -- 5: $t4 (t4), signed 64 bits -- 6: $t5 (t5), signed 64 bits -- 7: $t6 (t6), signed 64 bits -- 8: $t7 (t7), signed 64 bits -- 9: $s0 (s0), signed 64 bits -- 10: $s1 (s1), signed 64 bits -- 11: $s2 (s2), signed 64 bits -- 12: $s3 (s3), signed 64 bits -- 13: $s4 (s4), signed 64 bits -- 14: $s5 (s5), signed 64 bits -- 15: $s6 (s6), signed 64 bits -- 16: $a0 (a0), signed 64 bits -- 17: $a1 (a1), signed 64 bits -- 18: $a2 (a2), signed 64 bits -- 19: $a3 (a3), signed 64 bits -- 20: $a4 (a4), signed 64 bits -- 21: $a5 (a5), signed 64 bits -- 22: $t8 (t8), signed 64 bits -- 23: $t9 (t9), signed 64 bits -- 24: $t10 (t10), signed 64 bits -- 25: $t11 (t11), signed 64 bits -- 26: $ra (ra), address 64 bits -- 27: $t12 (t12), signed 64 bits -- 28: $at (at), signed 64 bits -- 29: $gp (gp), address 64 bits -- 30: $sp (sp), address 64 bits -- 31: $zero (zero), signed 64 bits -- 64: $pc (pc), address 64 bits -- 66: $unique (unique), address 64 bits --FPU registers: -- 32: $f0 (f0), float 64 bits -- 33: $f1 (f1), float 64 bits -- 34: $f2 (f2), float 64 bits -- 35: $f3 (f3), float 64 bits -- 36: $f4 (f4), float 64 bits -- 37: $f5 (f5), float 64 bits -- 38: $f6 (f6), float 64 bits -- 39: $f7 (f7), float 64 bits -- 40: $f8 (f8), float 64 bits -- 41: $f9 (f9), float 64 bits -- 42: $f10 (f10), float 64 bits -- 43: $f11 (f11), float 64 bits -- 44: $f12 (f12), float 64 bits -- 45: $f13 (f13), float 64 bits -- 46: $f14 (f14), float 64 bits -- 47: $f15 (f15), float 64 bits -- 48: $f16 (f16), float 64 bits -- 49: $f17 (f17), float 64 bits -- 50: $f18 (f18), float 64 bits -- 51: $f19 (f19), float 64 bits -- 52: $f20 (f20), float 64 bits -- 53: $f21 (f21), float 64 bits -- 54: $f22 (f22), float 64 bits -- 55: $f23 (f23), float 64 bits -- 56: $f24 (f24), float 64 bits -- 57: $f25 (f25), float 64 bits -- 58: $f26 (f26), float 64 bits -- 59: $f27 (f27), float 64 bits -- 60: $f28 (f28), float 64 bits -- 61: $f29 (f29), float 64 bits -- 62: $f30 (f30), float 64 bits -- 63: $fpcr (fpcr), unsigned 64 bits --EOF -- --regs_test testfile60 <<\EOF --integer registers: -- 0: r0 (r0), signed 64 bits -- 1: r1 (r1), signed 64 bits -- 2: r2 (r2), signed 64 bits -- 3: r3 (r3), signed 64 bits -- 4: r4 (r4), signed 64 bits -- 5: r5 (r5), signed 64 bits -- 6: r6 (r6), signed 64 bits -- 7: r7 (r7), signed 64 bits -- 8: r8 (r8), signed 64 bits -- 9: r9 (r9), signed 64 bits -- 10: r10 (r10), signed 64 bits -- 11: r11 (r11), signed 64 bits -- 12: r12 (r12), signed 64 bits -- 13: r13 (r13), signed 64 bits -- 14: r14 (r14), signed 64 bits -- 15: r15 (r15), signed 64 bits -- 16: r16 (r16), signed 64 bits -- 17: r17 (r17), signed 64 bits -- 18: r18 (r18), signed 64 bits -- 19: r19 (r19), signed 64 bits -- 20: r20 (r20), signed 64 bits -- 21: r21 (r21), signed 64 bits -- 22: r22 (r22), signed 64 bits -- 23: r23 (r23), signed 64 bits -- 24: r24 (r24), signed 64 bits -- 25: r25 (r25), signed 64 bits -- 26: r26 (r26), signed 64 bits -- 27: r27 (r27), signed 64 bits -- 28: r28 (r28), signed 64 bits -- 29: r29 (r29), signed 64 bits -- 30: r30 (r30), signed 64 bits -- 31: r31 (r31), signed 64 bits -- 32: r32 (r32), signed 64 bits -- 33: r33 (r33), signed 64 bits -- 34: r34 (r34), signed 64 bits -- 35: r35 (r35), signed 64 bits -- 36: r36 (r36), signed 64 bits -- 37: r37 (r37), signed 64 bits -- 38: r38 (r38), signed 64 bits -- 39: r39 (r39), signed 64 bits -- 40: r40 (r40), signed 64 bits -- 41: r41 (r41), signed 64 bits -- 42: r42 (r42), signed 64 bits -- 43: r43 (r43), signed 64 bits -- 44: r44 (r44), signed 64 bits -- 45: r45 (r45), signed 64 bits -- 46: r46 (r46), signed 64 bits -- 47: r47 (r47), signed 64 bits -- 48: r48 (r48), signed 64 bits -- 49: r49 (r49), signed 64 bits -- 50: r50 (r50), signed 64 bits -- 51: r51 (r51), signed 64 bits -- 52: r52 (r52), signed 64 bits -- 53: tp (tp), address 64 bits -- 54: sp (sp), address 64 bits -- 55: lr (lr), address 64 bits -- 56: sn (sn), unsigned 64 bits -- 57: idn0 (idn0), unsigned 64 bits -- 58: idn1 (idn1), unsigned 64 bits -- 59: udn0 (udn0), unsigned 64 bits -- 60: udn1 (udn1), unsigned 64 bits -- 61: udn2 (udn2), unsigned 64 bits -- 62: udn3 (udn3), unsigned 64 bits -- 63: zero (zero), unsigned 64 bits -- 64: pc (pc), address 64 bits --EOF -- --regs_test testfile61 <<\EOF --integer registers: -- 0: r0 (r0), signed 32 bits -- 1: r1 (r1), signed 32 bits -- 2: r2 (r2), signed 32 bits -- 3: r3 (r3), signed 32 bits -- 4: r4 (r4), signed 32 bits -- 5: r5 (r5), signed 32 bits -- 6: r6 (r6), signed 32 bits -- 7: r7 (r7), signed 32 bits -- 8: r8 (r8), signed 32 bits -- 9: r9 (r9), signed 32 bits -- 10: r10 (r10), signed 32 bits -- 11: r11 (r11), signed 32 bits -- 12: r12 (r12), signed 32 bits -- 13: sp (sp), address 32 bits -- 14: lr (lr), address 32 bits -- 15: pc (pc), address 32 bits -- 128: spsr (spsr), unsigned 32 bits --FPA registers: -- 16: f0 (f0), float 96 bits -- 17: f1 (f1), float 96 bits -- 18: f2 (f2), float 96 bits -- 19: f3 (f3), float 96 bits -- 20: f4 (f4), float 96 bits -- 21: f5 (f5), float 96 bits -- 22: f6 (f6), float 96 bits -- 23: f7 (f7), float 96 bits -- 96: f0 (f0), float 96 bits -- 97: f1 (f1), float 96 bits -- 98: f2 (f2), float 96 bits -- 99: f3 (f3), float 96 bits -- 100: f4 (f4), float 96 bits -- 101: f5 (f5), float 96 bits -- 102: f6 (f6), float 96 bits -- 103: f7 (f7), float 96 bits --VFP registers: -- 256: d0 (d0), float 64 bits -- 257: d1 (d1), float 64 bits -- 258: d2 (d2), float 64 bits -- 259: d3 (d3), float 64 bits -- 260: d4 (d4), float 64 bits -- 261: d5 (d5), float 64 bits -- 262: d6 (d6), float 64 bits -- 263: d7 (d7), float 64 bits -- 264: d8 (d8), float 64 bits -- 265: d9 (d9), float 64 bits -- 266: d10 (d10), float 64 bits -- 267: d11 (d11), float 64 bits -- 268: d12 (d12), float 64 bits -- 269: d13 (d13), float 64 bits -- 270: d14 (d14), float 64 bits -- 271: d15 (d15), float 64 bits -- 272: d16 (d16), float 64 bits -- 273: d17 (d17), float 64 bits -- 274: d18 (d18), float 64 bits -- 275: d19 (d19), float 64 bits -- 276: d20 (d20), float 64 bits -- 277: d21 (d21), float 64 bits -- 278: d22 (d22), float 64 bits -- 279: d23 (d23), float 64 bits -- 280: d24 (d24), float 64 bits -- 281: d25 (d25), float 64 bits -- 282: d26 (d26), float 64 bits -- 283: d27 (d27), float 64 bits -- 284: d28 (d28), float 64 bits -- 285: d29 (d29), float 64 bits -- 286: d30 (d30), float 64 bits -- 287: d31 (d31), float 64 bits --EOF -- - # See run-readelf-mixed-corenote.sh for instructions to regenerate - # this core file. - regs_test testfile_aarch64_core <<\EOF -diff --git a/tests/run-arextract.sh b/tests/run-arextract.sh -index 44f4a52..0532952 100755 ---- a/tests/run-arextract.sh -+++ b/tests/run-arextract.sh -@@ -26,7 +26,7 @@ if test -f $archive; then - echo -n "Extracting symbols... $ac_c" - - # The files we are looking at. -- for f in ${abs_top_builddir}/libelf/*.o; do -+ for f in ${abs_top_builddir}/libelf/libelf_a-*.o; do - testrun ${abs_builddir}/arextract $archive `basename $f` arextract.test || exit 1 - cmp $f arextract.test || { - echo "Extraction of $1 failed" -diff --git a/tests/run-elflint-test.sh b/tests/run-elflint-test.sh -index 68615b9..25d1195 100755 ---- a/tests/run-elflint-test.sh -+++ b/tests/run-elflint-test.sh -@@ -30,9 +30,6 @@ testrun ${abs_top_builddir}/src/elflint -q testfile32 - testfiles testfile33 - testrun ${abs_top_builddir}/src/elflint -q testfile33 - --testfiles testfile42 --testrun ${abs_top_builddir}/src/elflint -q --gnu-ld testfile42 -- - testfiles testfile46 - testrun ${abs_top_builddir}/src/elflint -q testfile46 - -diff --git a/tests/run-readelf-A.sh b/tests/run-readelf-A.sh -index 6ca9be8..88f87ad 100755 ---- a/tests/run-readelf-A.sh -+++ b/tests/run-readelf-A.sh -@@ -25,32 +25,7 @@ - # - # gcc -m32 -c testfileppc32attrs.s - --testfiles testfilearm testfileppc32attrs.o -- --testrun_compare ${abs_top_builddir}/src/readelf -A testfilearm <<\EOF -- --Object attributes section [27] '.ARM.attributes' of 53 bytes at offset 0x718: -- Owner Size -- aeabi 52 -- File: 42 -- CPU_name: 7-A -- CPU_arch: v7 -- CPU_arch_profile: Application -- ARM_ISA_use: Yes -- THUMB_ISA_use: Thumb-2 -- VFP_arch: VFPv3-D16 -- ABI_PCS_wchar_t: 4 -- ABI_FP_rounding: Needed -- ABI_FP_denormal: Needed -- ABI_FP_exceptions: Needed -- ABI_FP_number_model: IEEE 754 -- ABI_align8_needed: Yes -- ABI_align8_preserved: Yes, except leaf SP -- ABI_enum_size: int -- ABI_HardFP_use: SP and DP -- ABI_VFP_args: VFP registers -- CPU_unaligned_access: v6 --EOF -+testfiles testfileppc32attrs.o - - testrun_compare ${abs_top_builddir}/src/readelf -A testfileppc32attrs.o <<\EOF - -diff --git a/tests/run-readelf-mixed-corenote.sh b/tests/run-readelf-mixed-corenote.sh -index 69d0c02..382ea14 100755 ---- a/tests/run-readelf-mixed-corenote.sh -+++ b/tests/run-readelf-mixed-corenote.sh -@@ -18,73 +18,6 @@ - - . $srcdir/test-subr.sh - --testfiles testfile63 -- --testrun_compare ${abs_top_builddir}/src/readelf -n testfile63 <<\EOF -- --Note segment of 892 bytes at offset 0x274: -- Owner Data size Type -- CORE 148 PRSTATUS -- info.si_signo: 11, info.si_code: 0, info.si_errno: 0, cursig: 11 -- sigpend: <> -- sighold: <> -- pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 -- utime: 0.000000, stime: 0.010000, cutime: 0.000000, cstime: 0.000000 -- orig_r0: -1, fpvalid: 1 -- r0: 1 r1: -1091672508 r2: -1091672500 -- r3: 0 r4: 0 r5: 0 -- r6: 33728 r7: 0 r8: 0 -- r9: 0 r10: -1225703496 r11: -1091672844 -- r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48 -- pc: 0x00008500 spsr: 0x60000010 -- CORE 124 PRPSINFO -- state: 0, sname: R, zomb: 0, nice: 0, flag: 0x00400500 -- uid: 0, gid: 0, pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 -- fname: a.out, psargs: ./a.out -- CORE 144 AUXV -- HWCAP: 0xe8d7 -- PAGESZ: 4096 -- CLKTCK: 100 -- PHDR: 0x8034 -- PHENT: 32 -- PHNUM: 8 -- BASE: 0xb6eee000 -- FLAGS: 0 -- ENTRY: 0x83c0 -- UID: 0 -- EUID: 0 -- GID: 0 -- EGID: 0 -- SECURE: 0 -- RANDOM: 0xbeee674e -- EXECFN: 0xbeee6ff4 -- PLATFORM: 0xbeee675e -- NULL -- CORE 116 FPREGSET -- f0: 0x000000000000000000000000 f1: 0x000000000000000000000000 -- f2: 0x000000000000000000000000 f3: 0x000000000000000000000000 -- f4: 0x000000000000000000000000 f5: 0x000000000000000000000000 -- f6: 0x000000000000000000000000 f7: 0x000000000000000000000000 -- LINUX 260 ARM_VFP -- fpscr: 0x00000000 -- d0: 0x0000000000000000 d1: 0x0000000000000000 -- d2: 0x0000000000000000 d3: 0x0000000000000000 -- d4: 0x0000000000000000 d5: 0x0000000000000000 -- d6: 0x0000000000000000 d7: 0x0000000000000000 -- d8: 0x0000000000000000 d9: 0x0000000000000000 -- d10: 0x0000000000000000 d11: 0x0000000000000000 -- d12: 0x0000000000000000 d13: 0x0000000000000000 -- d14: 0x0000000000000000 d15: 0x0000000000000000 -- d16: 0x0000000000000000 d17: 0x0000000000000000 -- d18: 0x0000000000000000 d19: 0x0000000000000000 -- d20: 0x0000000000000000 d21: 0x0000000000000000 -- d22: 0x0000000000000000 d23: 0x0000000000000000 -- d24: 0x0000000000000000 d25: 0x0000000000000000 -- d26: 0x0000000000000000 d27: 0x0000000000000000 -- d28: 0x0000000000000000 d29: 0x0000000000000000 -- d30: 0x0000000000000000 d31: 0x0000000000000000 --EOF -- - testfiles testfile67 - testrun_compare ${abs_top_builddir}/src/readelf -n testfile67 <<\EOF - diff --git a/SOURCES/elfutils-0.163-unstrip-shf_info_link.patch b/SOURCES/elfutils-0.163-unstrip-shf_info_link.patch deleted file mode 100644 index e3a27ff..0000000 --- a/SOURCES/elfutils-0.163-unstrip-shf_info_link.patch +++ /dev/null @@ -1,91 +0,0 @@ -commit f9fc50c3eced243c0648fb0fbfe2c9877c25e1e4 -Author: Mark Wielaard -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 - -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/SOURCES/elfutils-0.166-dts.patch b/SOURCES/elfutils-0.166-dts.patch new file mode 100644 index 0000000..9b08c0a --- /dev/null +++ b/SOURCES/elfutils-0.166-dts.patch @@ -0,0 +1,1163 @@ +diff --git a/backends/Makefile.am b/backends/Makefile.am +index b16f948..695694a 100644 +--- a/backends/Makefile.am ++++ b/backends/Makefile.am +@@ -40,11 +40,37 @@ libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \ + libebl_ppc64_pic.a libebl_s390_pic.a libebl_tilegx_pic.a + noinst_LIBRARIES = $(libebl_pic) + noinst_DATA = $(libebl_pic:_pic.a=.so) ++lib_LIBRARIES = libebl_static_pic.a + + + libelf = ../libelf/libelf.so + libdw = ../libdw/libdw.so + ++# The following is minimal set of backends that we link with libdw to ++# avoid dlopen. Note repeats files below because some backends reuse ++# each others files. ++static_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \ ++ i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \ ++ i386_initreg.c \ ++ x86_64_init.c x86_64_symbol.c x86_64_corenote.c x86_64_cfi.c \ ++ x86_64_retval.c x86_64_regs.c x86_64_syscall.c \ ++ x86_64_initreg.c x32_corenote.c \ ++ ia64_init.c ia64_symbol.c ia64_regs.c ia64_retval.c \ ++ aarch64_init.c aarch64_regs.c aarch64_symbol.c \ ++ aarch64_corenote.c aarch64_retval.c aarch64_cfi.c \ ++ aarch64_initreg.c \ ++ ppc_init.c ppc_symbol.c ppc_retval.c ppc_regs.c \ ++ ppc_corenote.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \ ++ ppc_cfi.c ppc_initreg.c \ ++ ppc64_init.c ppc64_symbol.c ppc64_retval.c ppc64_corenote.c \ ++ ppc64_resolve_sym.c \ ++ s390_init.c s390_symbol.c s390_regs.c s390_retval.c \ ++ s390_corenote.c s390x_corenote.c s390_cfi.c s390_initreg.c \ ++ s390_unwind.c ++ ++libebl_static_pic_a_SOURCES = $(static_SRCS) ++am_libebl_static_pic_a_OBJECTS = $(static_SRCS:.c=.os) ++ + i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \ + i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \ + i386_initreg.c +diff --git a/libasm/Makefile.am b/libasm/Makefile.am +index a4bf293..64973d1 100644 +--- a/libasm/Makefile.am ++++ b/libasm/Makefile.am +@@ -38,6 +38,7 @@ noinst_LIBRARIES = libasm_pic.a + noinst_PROGRAMS = $(noinst_LIBRARIES:_pic.a=.so) + pkginclude_HEADERS = libasm.h + ++libasm_a_CFLAGS = -fpic -fvisibility=hidden $(AM_CFLAGS) + libasm_a_SOURCES = asm_begin.c asm_abort.c asm_end.c asm_error.c \ + asm_getelf.c asm_newscn.c asm_newscn_ingrp.c \ + asm_newsubscn.c asm_newsym.c asm_newcomsym.c \ +diff --git a/libcpu/Makefile.am b/libcpu/Makefile.am +index f0caaea..4dd2fb4 100644 +--- a/libcpu/Makefile.am ++++ b/libcpu/Makefile.am +@@ -36,9 +36,11 @@ LEX_OUTPUT_ROOT = lex.$(destr (ebl); + +- /* Close the dynamically loaded object. */ +- if (ebl->dlhandle != NULL) +- (void) dlclose (ebl->dlhandle); +- + /* Free the resources. */ + free (ebl); + } +diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c +index 372ef2a..5aec99e 100644 +--- a/libebl/eblopenbackend.c ++++ b/libebl/eblopenbackend.c +@@ -41,6 +41,13 @@ + + #include + ++const char *i386_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); ++const char *x86_64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); ++const char *ppc_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); ++const char *ppc64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); ++const char *ia64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); ++const char *s390_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); ++const char *aarch64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen); + + /* This table should contain the complete list of architectures as far + as the ELF specification is concerned. */ +@@ -48,7 +55,7 @@ + arrays to avoid relocations. */ + static const struct + { +- const char *dsoname; ++ ebl_bhinit_t initptr; + const char *emulation; + const char *prefix; + int prefix_len; +@@ -57,81 +64,81 @@ static const struct + int data; + } machines[] = + { +- { "i386", "elf_i386", "i386", 4, EM_386, ELFCLASS32, ELFDATA2LSB }, +- { "ia64", "elf_ia64", "ia64", 4, EM_IA_64, ELFCLASS64, ELFDATA2LSB }, +- { "alpha", "elf_alpha", "alpha", 5, EM_ALPHA, ELFCLASS64, ELFDATA2LSB }, +- { "x86_64", "elf_x86_64", "x86_64", 6, EM_X86_64, ELFCLASS64, ELFDATA2LSB }, +- { "ppc", "elf_ppc", "ppc", 3, EM_PPC, ELFCLASS32, ELFDATA2MSB }, +- { "ppc64", "elf_ppc64", "ppc64", 5, EM_PPC64, ELFCLASS64, ELFDATA2MSB }, +- { "tilegx", "elf_tilegx", "tilegx", 6, EM_TILEGX, ELFCLASS64, ELFDATA2LSB }, ++ { i386_init, "elf_i386", "i386", 4, EM_386, ELFCLASS32, ELFDATA2LSB }, ++ { ia64_init, "elf_ia64", "ia64", 4, EM_IA_64, ELFCLASS64, ELFDATA2LSB }, ++ { NULL, "elf_alpha", "alpha", 5, EM_ALPHA, ELFCLASS64, ELFDATA2LSB }, ++ { x86_64_init, "elf_x86_64", "x86_64", 6, EM_X86_64, ELFCLASS64, ELFDATA2LSB }, ++ { ppc_init, "elf_ppc", "ppc", 3, EM_PPC, ELFCLASS32, ELFDATA2MSB }, ++ { ppc64_init, "elf_ppc64", "ppc64", 5, EM_PPC64, ELFCLASS64, ELFDATA2MSB }, ++ { NULL, "elf_tilegx", "tilegx", 6, EM_TILEGX, ELFCLASS64, ELFDATA2LSB }, + // XXX class and machine fields need to be filled in for all archs. +- { "sh", "elf_sh", "sh", 2, EM_SH, 0, 0 }, +- { "arm", "ebl_arm", "arm", 3, EM_ARM, 0, 0 }, +- { "sparc", "elf_sparcv9", "sparc", 5, EM_SPARCV9, 0, 0 }, +- { "sparc", "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 }, +- { "sparc", "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 }, +- { "s390", "ebl_s390", "s390", 4, EM_S390, 0, 0 }, +- +- { "m32", "elf_m32", "m32", 3, EM_M32, 0, 0 }, +- { "m68k", "elf_m68k", "m68k", 4, EM_68K, 0, 0 }, +- { "m88k", "elf_m88k", "m88k", 4, EM_88K, 0, 0 }, +- { "i860", "elf_i860", "i860", 4, EM_860, 0, 0 }, +- { "s370", "ebl_s370", "s370", 4, EM_S370, 0, 0 }, +- { "parisc", "elf_parisc", "parisc", 6, EM_PARISC, 0, 0 }, +- { "vpp500", "elf_vpp500", "vpp500", 5, EM_VPP500, 0, 0 }, +- { "sparc", "elf_v8plus", "v8plus", 6, EM_SPARC32PLUS, 0, 0 }, +- { "i960", "elf_i960", "i960", 4, EM_960, 0, 0 }, +- { "v800", "ebl_v800", "v800", 4, EM_V800, 0, 0 }, +- { "fr20", "ebl_fr20", "fr20", 4, EM_FR20, 0, 0 }, +- { "rh32", "ebl_rh32", "rh32", 4, EM_RH32, 0, 0 }, +- { "rce", "ebl_rce", "rce", 3, EM_RCE, 0, 0 }, +- { "tricore", "elf_tricore", "tricore", 7, EM_TRICORE, 0, 0 }, +- { "arc", "elf_arc", "arc", 3, EM_ARC, 0, 0 }, +- { "h8", "elf_h8_300", "h8_300", 6, EM_H8_300, 0, 0 }, +- { "h8", "elf_h8_300h", "h8_300h", 6, EM_H8_300H, 0, 0 }, +- { "h8", "elf_h8s", "h8s", 6, EM_H8S, 0, 0 }, +- { "h8", "elf_h8_500", "h8_500", 6, EM_H8_500, 0, 0 }, +- { "coldfire", "elf_coldfire", "coldfire", 8, EM_COLDFIRE, 0, 0 }, +- { "m68k", "elf_68hc12", "68hc12", 6, EM_68HC12, 0, 0 }, +- { "mma", "elf_mma", "mma", 3, EM_MMA, 0, 0 }, +- { "pcp", "elf_pcp", "pcp", 3, EM_PCP, 0, 0 }, +- { "ncpu", "elf_ncpu", "ncpu", 4, EM_NCPU, 0, 0 }, +- { "ndr1", "elf_ndr1", "ndr1", 4, EM_NDR1, 0, 0 }, +- { "starcore", "elf_starcore", "starcore", 8, EM_STARCORE, 0, 0 }, +- { "me16", "elf_me16", "em16", 4, EM_ME16, 0, 0 }, +- { "st100", "elf_st100", "st100", 5, EM_ST100, 0, 0 }, +- { "tinyj", "elf_tinyj", "tinyj", 5, EM_TINYJ, 0, 0 }, +- { "pdsp", "elf_pdsp", "pdsp", 4, EM_PDSP, 0, 0 }, +- { "fx66", "elf_fx66", "fx66", 4, EM_FX66, 0, 0 }, +- { "st9plus", "elf_st9plus", "st9plus", 7, EM_ST9PLUS, 0, 0 }, +- { "st7", "elf_st7", "st7", 3, EM_ST7, 0, 0 }, +- { "m68k", "elf_68hc16", "68hc16", 6, EM_68HC16, 0, 0 }, +- { "m68k", "elf_68hc11", "68hc11", 6, EM_68HC11, 0, 0 }, +- { "m68k", "elf_68hc08", "68hc08", 6, EM_68HC08, 0, 0 }, +- { "m68k", "elf_68hc05", "68hc05", 6, EM_68HC05, 0, 0 }, +- { "svx", "elf_svx", "svx", 3, EM_SVX, 0, 0 }, +- { "st19", "elf_st19", "st19", 4, EM_ST19, 0, 0 }, +- { "vax", "elf_vax", "vax", 3, EM_VAX, 0, 0 }, +- { "cris", "elf_cris", "cris", 4, EM_CRIS, 0, 0 }, +- { "javelin", "elf_javelin", "javelin", 7, EM_JAVELIN, 0, 0 }, +- { "firepath", "elf_firepath", "firepath", 8, EM_FIREPATH, 0, 0 }, +- { "zsp", "elf_zsp", "zsp", 3, EM_ZSP, 0, 0 }, +- { "mmix", "elf_mmix", "mmix", 4, EM_MMIX, 0, 0 }, +- { "hunay", "elf_huany", "huany", 5, EM_HUANY, 0, 0 }, +- { "prism", "elf_prism", "prism", 5, EM_PRISM, 0, 0 }, +- { "avr", "elf_avr", "avr", 3, EM_AVR, 0, 0 }, +- { "fr30", "elf_fr30", "fr30", 4, EM_FR30, 0, 0 }, +- { "dv10", "elf_dv10", "dv10", 4, EM_D10V, 0, 0 }, +- { "dv30", "elf_dv30", "dv30", 4, EM_D30V, 0, 0 }, +- { "v850", "elf_v850", "v850", 4, EM_V850, 0, 0 }, +- { "m32r", "elf_m32r", "m32r", 4, EM_M32R, 0, 0 }, +- { "mn10300", "elf_mn10300", "mn10300", 7, EM_MN10300, 0, 0 }, +- { "mn10200", "elf_mn10200", "mn10200", 7, EM_MN10200, 0, 0 }, +- { "pj", "elf_pj", "pj", 2, EM_PJ, 0, 0 }, +- { "openrisc", "elf_openrisc", "openrisc", 8, EM_OPENRISC, 0, 0 }, +- { "arc", "elf_arc_a5", "arc_a5", 6, EM_ARC_A5, 0, 0 }, +- { "xtensa", "elf_xtensa", "xtensa", 6, EM_XTENSA, 0, 0 }, +- { "aarch64", "elf_aarch64", "aarch64", 7, EM_AARCH64, ELFCLASS64, 0 }, ++ { NULL, "elf_sh", "sh", 2, EM_SH, 0, 0 }, ++ { NULL, "ebl_arm", "arm", 3, EM_ARM, 0, 0 }, ++ { NULL, "elf_sparcv9", "sparc", 5, EM_SPARCV9, 0, 0 }, ++ { NULL, "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 }, ++ { NULL, "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 }, ++ { s390_init, "ebl_s390", "s390", 4, EM_S390, 0, 0 }, ++ ++ { NULL, "elf_m32", "m32", 3, EM_M32, 0, 0 }, ++ { NULL, "elf_m68k", "m68k", 4, EM_68K, 0, 0 }, ++ { NULL, "elf_m88k", "m88k", 4, EM_88K, 0, 0 }, ++ { NULL, "elf_i860", "i860", 4, EM_860, 0, 0 }, ++ { NULL, "ebl_s370", "s370", 4, EM_S370, 0, 0 }, ++ { NULL, "elf_parisc", "parisc", 6, EM_PARISC, 0, 0 }, ++ { NULL, "elf_vpp500", "vpp500", 5, EM_VPP500, 0, 0 }, ++ { NULL, "elf_v8plus", "v8plus", 6, EM_SPARC32PLUS, 0, 0 }, ++ { NULL, "elf_i960", "i960", 4, EM_960, 0, 0 }, ++ { NULL, "ebl_v800", "v800", 4, EM_V800, 0, 0 }, ++ { NULL, "ebl_fr20", "fr20", 4, EM_FR20, 0, 0 }, ++ { NULL, "ebl_rh32", "rh32", 4, EM_RH32, 0, 0 }, ++ { NULL, "ebl_rce", "rce", 3, EM_RCE, 0, 0 }, ++ { NULL, "elf_tricore", "tricore", 7, EM_TRICORE, 0, 0 }, ++ { NULL, "elf_arc", "arc", 3, EM_ARC, 0, 0 }, ++ { NULL, "elf_h8_300", "h8_300", 6, EM_H8_300, 0, 0 }, ++ { NULL, "elf_h8_300h", "h8_300h", 6, EM_H8_300H, 0, 0 }, ++ { NULL, "elf_h8s", "h8s", 6, EM_H8S, 0, 0 }, ++ { NULL, "elf_h8_500", "h8_500", 6, EM_H8_500, 0, 0 }, ++ { NULL, "elf_coldfire", "coldfire", 8, EM_COLDFIRE, 0, 0 }, ++ { NULL, "elf_68hc12", "68hc12", 6, EM_68HC12, 0, 0 }, ++ { NULL, "elf_mma", "mma", 3, EM_MMA, 0, 0 }, ++ { NULL, "elf_pcp", "pcp", 3, EM_PCP, 0, 0 }, ++ { NULL, "elf_ncpu", "ncpu", 4, EM_NCPU, 0, 0 }, ++ { NULL, "elf_ndr1", "ndr1", 4, EM_NDR1, 0, 0 }, ++ { NULL, "elf_starcore", "starcore", 8, EM_STARCORE, 0, 0 }, ++ { NULL, "elf_me16", "em16", 4, EM_ME16, 0, 0 }, ++ { NULL, "elf_st100", "st100", 5, EM_ST100, 0, 0 }, ++ { NULL, "elf_tinyj", "tinyj", 5, EM_TINYJ, 0, 0 }, ++ { NULL, "elf_pdsp", "pdsp", 4, EM_PDSP, 0, 0 }, ++ { NULL, "elf_fx66", "fx66", 4, EM_FX66, 0, 0 }, ++ { NULL, "elf_st9plus", "st9plus", 7, EM_ST9PLUS, 0, 0 }, ++ { NULL, "elf_st7", "st7", 3, EM_ST7, 0, 0 }, ++ { NULL, "elf_68hc16", "68hc16", 6, EM_68HC16, 0, 0 }, ++ { NULL, "elf_68hc11", "68hc11", 6, EM_68HC11, 0, 0 }, ++ { NULL, "elf_68hc08", "68hc08", 6, EM_68HC08, 0, 0 }, ++ { NULL, "elf_68hc05", "68hc05", 6, EM_68HC05, 0, 0 }, ++ { NULL, "elf_svx", "svx", 3, EM_SVX, 0, 0 }, ++ { NULL, "elf_st19", "st19", 4, EM_ST19, 0, 0 }, ++ { NULL, "elf_vax", "vax", 3, EM_VAX, 0, 0 }, ++ { NULL, "elf_cris", "cris", 4, EM_CRIS, 0, 0 }, ++ { NULL, "elf_javelin", "javelin", 7, EM_JAVELIN, 0, 0 }, ++ { NULL, "elf_firepath", "firepath", 8, EM_FIREPATH, 0, 0 }, ++ { NULL, "elf_zsp", "zsp", 3, EM_ZSP, 0, 0 }, ++ { NULL, "elf_mmix", "mmix", 4, EM_MMIX, 0, 0 }, ++ { NULL, "elf_huany", "huany", 5, EM_HUANY, 0, 0 }, ++ { NULL, "elf_prism", "prism", 5, EM_PRISM, 0, 0 }, ++ { NULL, "elf_avr", "avr", 3, EM_AVR, 0, 0 }, ++ { NULL, "elf_fr30", "fr30", 4, EM_FR30, 0, 0 }, ++ { NULL, "elf_dv10", "dv10", 4, EM_D10V, 0, 0 }, ++ { NULL, "elf_dv30", "dv30", 4, EM_D30V, 0, 0 }, ++ { NULL, "elf_v850", "v850", 4, EM_V850, 0, 0 }, ++ { NULL, "elf_m32r", "m32r", 4, EM_M32R, 0, 0 }, ++ { NULL, "elf_mn10300", "mn10300", 7, EM_MN10300, 0, 0 }, ++ { NULL, "elf_mn10200", "mn10200", 7, EM_MN10200, 0, 0 }, ++ { NULL, "elf_pj", "pj", 2, EM_PJ, 0, 0 }, ++ { NULL, "elf_openrisc", "openrisc", 8, EM_OPENRISC, 0, 0 }, ++ { NULL, "elf_arc_a5", "arc_a5", 6, EM_ARC_A5, 0, 0 }, ++ { NULL, "elf_xtensa", "xtensa", 6, EM_XTENSA, 0, 0 }, ++ { aarch64_init, "elf_aarch64", "aarch64", 7, EM_AARCH64, ELFCLASS64, 0 }, + }; + #define nmachines (sizeof (machines) / sizeof (machines[0])) + +@@ -318,46 +325,17 @@ openbackend (Elf *elf, const char *emulation, GElf_Half machine) + #endif + #define ORIGINDIR "$ORIGIN/../$LIB/" LIBEBL_SUBDIR "/" + +- /* Give it a try. At least the machine type matches. First +- try to load the module. */ +- char dsoname[100]; +- strcpy (stpcpy (stpcpy (dsoname, ORIGINDIR "libebl_"), +- machines[cnt].dsoname), +- ".so"); +- +- void *h = dlopen (dsoname, RTLD_LAZY); +- if (h == NULL) +- { +- strcpy (stpcpy (stpcpy (dsoname, "libebl_"), +- machines[cnt].dsoname), +- ".so"); +- h = dlopen (dsoname, RTLD_LAZY); +- } +- +- /* Try without an explicit path. */ +- if (h != NULL) ++ ebl_bhinit_t initp = machines[cnt].initptr; ++ if (1) + { +- /* We managed to load the object. Now see whether the +- initialization function likes our file. */ + static const char version[] = MODVERSION; + const char *modversion; +- ebl_bhinit_t initp; +- +- // We use a static number to help the compiler see we don't +- // overflow the stack with an arbitrary number. +- assert (machines[cnt].prefix_len <= MAX_PREFIX_LEN); +- char symname[MAX_PREFIX_LEN + sizeof "_init"]; +- +- strcpy (mempcpy (symname, machines[cnt].prefix, +- machines[cnt].prefix_len), "_init"); +- +- initp = (ebl_bhinit_t) dlsym (h, symname); + if (initp != NULL + && (modversion = initp (elf, machine, result, sizeof (Ebl))) + && strcmp (version, modversion) == 0) + { + /* We found a module to handle our file. */ +- result->dlhandle = h; ++ result->dlhandle = NULL; + result->elf = elf; + + /* A few entries are mandatory. */ +@@ -366,9 +344,6 @@ openbackend (Elf *elf, const char *emulation, GElf_Half machine) + + return result; + } +- +- /* Not the module we need. */ +- (void) dlclose (h); + } + + /* We cannot find a DSO but the emulation/machine ID matches. +diff --git a/libelf/Makefile.am b/libelf/Makefile.am +index 167a832..b916f1a 100644 +--- a/libelf/Makefile.am ++++ b/libelf/Makefile.am +@@ -41,6 +41,7 @@ include_HEADERS = libelf.h gelf.h nlist.h + + pkginclude_HEADERS = elf-knowledge.h + ++libelf_a_CFLAGS = -fpic -fvisibility=hidden $(AM_CFLAGS) + libelf_a_SOURCES = elf_version.c elf_hash.c elf_error.c elf_fill.c \ + elf_begin.c elf_next.c elf_rand.c elf_end.c elf_kind.c \ + gelf_getclass.c elf_getbase.c elf_getident.c \ +diff --git a/src/Makefile.am b/src/Makefile.am +index a39df27..9f69956 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -79,7 +79,8 @@ libasm = ../libasm/libasm.so + libdw = ../libdw/libdw.so + libelf = ../libelf/libelf.so + endif +-libebl = ../libebl/libebl.a ++libebl = ../libebl/libebl.a ../backends/libebl_static_pic.a ../libcpu/libcpu_static_pic.a ++libdw_static = ../libdw/libdw_static_pic.a + libeu = ../lib/libeu.a + + if DEMANGLE +@@ -104,22 +105,23 @@ ranlib_no_Wstack_usage = yes + ar_no_Wstack_usage = yes + unstrip_no_Wstack_usage = yes + ++ + readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl + nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl \ + $(demanglelib) + size_LDADD = $(libelf) $(libeu) $(argp_LDADD) +-strip_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl +-ld_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl ++strip_LDADD = $(libebl) $(libdw_static) $(libelf) $(libeu) $(argp_LDADD) -ldl ++ld_LDADD = $(libebl) $(libdw_static) $(libelf) $(libeu) $(argp_LDADD) -ldl + if NATIVE_LD + # -ldl is always needed for libebl. + ld_LDADD += libld_elf.a + endif + ld_LDFLAGS = -rdynamic +-elflint_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl ++elflint_LDADD = $(libebl) $(libdw_static) $(libelf) $(libeu) $(argp_LDADD) -ldl + findtextrel_LDADD = $(libdw) $(libelf) $(argp_LDADD) + addr2line_LDADD = $(libdw) $(libelf) $(argp_LDADD) $(demanglelib) +-elfcmp_LDADD = $(libebl) $(libelf) $(argp_LDADD) -ldl +-objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl ++elfcmp_LDADD = $(libebl) $(libdw_static) $(libelf) $(argp_LDADD) -ldl ++objdump_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) $(libeu) $(argp_LDADD) -ldl + ranlib_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) + strings_LDADD = $(libelf) $(libeu) $(argp_LDADD) + ar_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) +diff --git a/tests/Makefile.am b/tests/Makefile.am +index fedcb39..8643c3d 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -379,7 +379,8 @@ libdw = ../libdw/libdw.so + libelf = ../libelf/libelf.so + libasm = ../libasm/libasm.so + endif +-libebl = ../libebl/libebl.a ++libebl = ../libebl/libebl.a ../backends/libebl_static_pic.a ../libcpu/libcpu_static_pic.a ++libdw_static = ../libdw/libdw_static_pic.a + libeu = ../lib/libeu.a + endif !STANDALONE + +@@ -398,8 +399,8 @@ early_offscn_LDADD = $(libelf) + ecp_LDADD = $(libelf) + update1_LDADD = $(libelf) + update2_LDADD = $(libelf) +-update3_LDADD = $(libebl) $(libelf) +-update4_LDADD = $(libebl) $(libelf) ++update3_LDADD = $(libebl) $(libdw_static) $(libelf) ++update4_LDADD = $(libebl) $(libdw_static) $(libelf) + show_die_info_LDADD = $(libdw) $(libelf) + get_pubnames_LDADD = $(libdw) $(libelf) + show_abbrev_LDADD = $(libdw) $(libelf) +@@ -407,6 +408,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) +@@ -414,15 +416,15 @@ funcretval_LDADD = $(libdw) $(argp_LDADD) + allregs_LDADD = $(libdw) $(argp_LDADD) + find_prologues_LDADD = $(libdw) $(argp_LDADD) + #show_ciefde_LDADD = ../libdwarf/libdwarf.so $(libelf) +-asm_tst1_LDADD = $(libasm) $(libebl) $(libelf) -ldl +-asm_tst2_LDADD = $(libasm) $(libebl) $(libelf) -ldl +-asm_tst3_LDADD = $(libasm) $(libebl) $(libelf) -ldl +-asm_tst4_LDADD = $(libasm) $(libebl) $(libelf) -ldl +-asm_tst5_LDADD = $(libasm) $(libebl) $(libelf) -ldl +-asm_tst6_LDADD = $(libasm) $(libebl) $(libelf) -ldl +-asm_tst7_LDADD = $(libasm) $(libebl) $(libelf) -ldl +-asm_tst8_LDADD = $(libasm) $(libebl) $(libelf) -ldl +-asm_tst9_LDADD = $(libasm) $(libebl) $(libelf) -ldl ++asm_tst1_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl ++asm_tst2_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl ++asm_tst3_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl ++asm_tst4_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl ++asm_tst5_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl ++asm_tst6_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl ++asm_tst7_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl ++asm_tst8_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl ++asm_tst9_LDADD = $(libasm) $(libebl) $(libdw_static) $(libelf) -ldl + dwflmodtest_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD) -ldl + rdwrmmap_LDADD = $(libelf) + dwfl_bug_addr_overflow_LDADD = $(libdw) $(libebl) $(libelf) -ldl +@@ -437,7 +439,7 @@ dwarf_getstring_LDADD = $(libdw) + addrcfi_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD) -ldl + test_flag_nobits_LDADD = $(libelf) + rerequest_tag_LDADD = $(libdw) +-alldts_LDADD = $(libebl) $(libelf) ++alldts_LDADD = $(libebl) $(libdw_static) $(libelf) + md5_sha1_test_LDADD = $(libeu) + typeiter_LDADD = $(libdw) $(libelf) + typeiter2_LDADD = $(libdw) $(libelf) +diff --git a/tests/run-addrcfi.sh b/tests/run-addrcfi.sh +index c864eea..2691091 100755 +--- a/tests/run-addrcfi.sh ++++ b/tests/run-addrcfi.sh +@@ -3521,82 +3521,6 @@ testrun_compare ${abs_builddir}/addrcfi -e testfiles390x 0x0000000080000510 <<\E + handle_cfi no CFI (.debug_frame): no error + EOF + +-# EM_ARM (function bar 0x00008510) +-# Note. Only in .debug_frame, the .eh_frame is actually empty. +-# Same as s390 and ppc above. +-testfiles testfilearm +-testrun_compare ${abs_builddir}/addrcfi -e testfilearm 0x00008510 <<\EOF +-dwarf_cfi_addrframe (.eh_frame): no matching address range +-.debug_frame has 0x8510 => [0x8510, 0x8524): +- return address in reg14 +- CFA location expression: bregx(13) +- integer reg0 (r0): undefined +- integer reg1 (r1): undefined +- integer reg2 (r2): undefined +- integer reg3 (r3): undefined +- integer reg4 (r4): same_value +- integer reg5 (r5): same_value +- integer reg6 (r6): same_value +- integer reg7 (r7): same_value +- integer reg8 (r8): same_value +- integer reg9 (r9): undefined +- integer reg10 (r10): same_value +- integer reg11 (r11): same_value +- integer reg12 (r12): undefined +- integer reg13 (sp): location expression: call_frame_cfa stack_value +- integer reg14 (lr): same_value +- integer reg15 (pc): location expression: regx(14) +- FPA reg16 (f0): undefined +- FPA reg17 (f1): undefined +- FPA reg18 (f2): undefined +- FPA reg19 (f3): undefined +- FPA reg20 (f4): undefined +- FPA reg21 (f5): undefined +- FPA reg22 (f6): undefined +- FPA reg23 (f7): undefined +- FPA reg96 (f0): undefined +- FPA reg97 (f1): undefined +- FPA reg98 (f2): undefined +- FPA reg99 (f3): undefined +- FPA reg100 (f4): undefined +- FPA reg101 (f5): undefined +- FPA reg102 (f6): undefined +- FPA reg103 (f7): undefined +- integer reg128 (spsr): undefined +- VFP reg256 (d0): undefined +- VFP reg257 (d1): undefined +- VFP reg258 (d2): undefined +- VFP reg259 (d3): undefined +- VFP reg260 (d4): undefined +- VFP reg261 (d5): undefined +- VFP reg262 (d6): undefined +- VFP reg263 (d7): undefined +- VFP reg264 (d8): same_value +- VFP reg265 (d9): same_value +- VFP reg266 (d10): same_value +- VFP reg267 (d11): same_value +- VFP reg268 (d12): same_value +- VFP reg269 (d13): same_value +- VFP reg270 (d14): same_value +- VFP reg271 (d15): same_value +- VFP reg272 (d16): undefined +- VFP reg273 (d17): undefined +- VFP reg274 (d18): undefined +- VFP reg275 (d19): undefined +- VFP reg276 (d20): undefined +- VFP reg277 (d21): undefined +- VFP reg278 (d22): undefined +- VFP reg279 (d23): undefined +- VFP reg280 (d24): undefined +- VFP reg281 (d25): undefined +- VFP reg282 (d26): undefined +- VFP reg283 (d27): undefined +- VFP reg284 (d28): undefined +- VFP reg285 (d29): undefined +- VFP reg286 (d30): undefined +- VFP reg287 (d31): undefined +-EOF +- + # EM_AARCH64 (function bar 0x400550) + # Same as arm, 390 and ppc above. + # Note missing coverage in .eh_frame. +diff --git a/tests/run-allregs.sh b/tests/run-allregs.sh +index 1f86429..544c759 100755 +--- a/tests/run-allregs.sh ++++ b/tests/run-allregs.sh +@@ -2344,387 +2344,6 @@ control registers: + 65: %pswa (pswa), address 64 bits + EOF + +-regs_test testfile30 <<\EOF +-integer registers: +- 0: %g0 (g0), signed 32 bits +- 1: %g1 (g1), signed 32 bits +- 2: %g2 (g2), signed 32 bits +- 3: %g3 (g3), signed 32 bits +- 4: %g4 (g4), signed 32 bits +- 5: %g5 (g5), signed 32 bits +- 6: %g6 (g6), signed 32 bits +- 7: %g7 (g7), signed 32 bits +- 8: %o0 (o0), signed 32 bits +- 9: %o1 (o1), signed 32 bits +- 10: %o2 (o2), signed 32 bits +- 11: %o3 (o3), signed 32 bits +- 12: %o4 (o4), signed 32 bits +- 13: %o5 (o5), signed 32 bits +- 14: %o6 (o6), address 32 bits +- 15: %o7 (o7), signed 32 bits +- 16: %l0 (l0), signed 32 bits +- 17: %l1 (l1), signed 32 bits +- 18: %l2 (l2), signed 32 bits +- 19: %l3 (l3), signed 32 bits +- 20: %l4 (l4), signed 32 bits +- 21: %l5 (l5), signed 32 bits +- 22: %l6 (l6), signed 32 bits +- 23: %l7 (l7), signed 32 bits +- 24: %i0 (i0), signed 32 bits +- 25: %i1 (i1), signed 32 bits +- 26: %i2 (i2), signed 32 bits +- 27: %i3 (i3), signed 32 bits +- 28: %i4 (i4), signed 32 bits +- 29: %i5 (i5), signed 32 bits +- 30: %i6 (i6), address 32 bits +- 31: %i7 (i7), signed 32 bits +-FPU registers: +- 32: %f0 (f0), float 32 bits +- 33: %f1 (f1), float 32 bits +- 34: %f2 (f2), float 32 bits +- 35: %f3 (f3), float 32 bits +- 36: %f4 (f4), float 32 bits +- 37: %f5 (f5), float 32 bits +- 38: %f6 (f6), float 32 bits +- 39: %f7 (f7), float 32 bits +- 40: %f8 (f8), float 32 bits +- 41: %f9 (f9), float 32 bits +- 42: %f10 (f10), float 32 bits +- 43: %f11 (f11), float 32 bits +- 44: %f12 (f12), float 32 bits +- 45: %f13 (f13), float 32 bits +- 46: %f14 (f14), float 32 bits +- 47: %f15 (f15), float 32 bits +- 48: %f16 (f16), float 32 bits +- 49: %f17 (f17), float 32 bits +- 50: %f18 (f18), float 32 bits +- 51: %f19 (f19), float 32 bits +- 52: %f20 (f20), float 32 bits +- 53: %f21 (f21), float 32 bits +- 54: %f22 (f22), float 32 bits +- 55: %f23 (f23), float 32 bits +- 56: %f24 (f24), float 32 bits +- 57: %f25 (f25), float 32 bits +- 58: %f26 (f26), float 32 bits +- 59: %f27 (f27), float 32 bits +- 60: %f28 (f28), float 32 bits +- 61: %f29 (f29), float 32 bits +- 62: %f30 (f30), float 32 bits +- 63: %f31 (f31), float 32 bits +-control registers: +- 64: %y (y), unsigned 32 bits +- 65: %psr (psr), unsigned 32 bits +- 66: %wim (wim), unsigned 32 bits +- 67: %tbr (tbr), unsigned 32 bits +- 68: %pc (pc), address 32 bits +- 69: %npc (npc), address 32 bits +- 70: %fsr (fsr), unsigned 32 bits +- 71: %csr (csr), unsigned 32 bits +-EOF +- +-regs_test testfile31 <<\EOF +-integer registers: +- 0: %g0 (g0), signed 64 bits +- 1: %g1 (g1), signed 64 bits +- 2: %g2 (g2), signed 64 bits +- 3: %g3 (g3), signed 64 bits +- 4: %g4 (g4), signed 64 bits +- 5: %g5 (g5), signed 64 bits +- 6: %g6 (g6), signed 64 bits +- 7: %g7 (g7), signed 64 bits +- 8: %o0 (o0), signed 64 bits +- 9: %o1 (o1), signed 64 bits +- 10: %o2 (o2), signed 64 bits +- 11: %o3 (o3), signed 64 bits +- 12: %o4 (o4), signed 64 bits +- 13: %o5 (o5), signed 64 bits +- 14: %o6 (o6), address 64 bits +- 15: %o7 (o7), signed 64 bits +- 16: %l0 (l0), signed 64 bits +- 17: %l1 (l1), signed 64 bits +- 18: %l2 (l2), signed 64 bits +- 19: %l3 (l3), signed 64 bits +- 20: %l4 (l4), signed 64 bits +- 21: %l5 (l5), signed 64 bits +- 22: %l6 (l6), signed 64 bits +- 23: %l7 (l7), signed 64 bits +- 24: %i0 (i0), signed 64 bits +- 25: %i1 (i1), signed 64 bits +- 26: %i2 (i2), signed 64 bits +- 27: %i3 (i3), signed 64 bits +- 28: %i4 (i4), signed 64 bits +- 29: %i5 (i5), signed 64 bits +- 30: %i6 (i6), address 64 bits +- 31: %i7 (i7), signed 64 bits +-FPU registers: +- 32: %f0 (f0), float 32 bits +- 33: %f1 (f1), float 32 bits +- 34: %f2 (f2), float 32 bits +- 35: %f3 (f3), float 32 bits +- 36: %f4 (f4), float 32 bits +- 37: %f5 (f5), float 32 bits +- 38: %f6 (f6), float 32 bits +- 39: %f7 (f7), float 32 bits +- 40: %f8 (f8), float 32 bits +- 41: %f9 (f9), float 32 bits +- 42: %f10 (f10), float 32 bits +- 43: %f11 (f11), float 32 bits +- 44: %f12 (f12), float 32 bits +- 45: %f13 (f13), float 32 bits +- 46: %f14 (f14), float 32 bits +- 47: %f15 (f15), float 32 bits +- 48: %f16 (f16), float 32 bits +- 49: %f17 (f17), float 32 bits +- 50: %f18 (f18), float 32 bits +- 51: %f19 (f19), float 32 bits +- 52: %f20 (f20), float 32 bits +- 53: %f21 (f21), float 32 bits +- 54: %f22 (f22), float 32 bits +- 55: %f23 (f23), float 32 bits +- 56: %f24 (f24), float 32 bits +- 57: %f25 (f25), float 32 bits +- 58: %f26 (f26), float 32 bits +- 59: %f27 (f27), float 32 bits +- 60: %f28 (f28), float 32 bits +- 61: %f29 (f29), float 32 bits +- 62: %f30 (f30), float 32 bits +- 63: %f31 (f31), float 32 bits +- 64: %f32 (f32), float 64 bits +- 65: %f34 (f34), float 64 bits +- 66: %f36 (f36), float 64 bits +- 67: %f38 (f38), float 64 bits +- 68: %f40 (f40), float 64 bits +- 69: %f42 (f42), float 64 bits +- 70: %f44 (f44), float 64 bits +- 71: %f46 (f46), float 64 bits +- 72: %f48 (f48), float 64 bits +- 73: %f50 (f50), float 64 bits +- 74: %f52 (f52), float 64 bits +- 75: %f54 (f54), float 64 bits +- 76: %f56 (f56), float 64 bits +- 77: %f58 (f58), float 64 bits +- 78: %f60 (f60), float 64 bits +- 79: %f62 (f62), float 64 bits +-control registers: +- 80: %pc (pc), address 64 bits +- 81: %npc (npc), address 64 bits +- 82: %state (state), unsigned 64 bits +- 83: %fsr (fsr), unsigned 64 bits +- 84: %fprs (fprs), unsigned 64 bits +- 85: %y (y), unsigned 64 bits +-EOF +- +-regs_test testfile10 <<\EOF +-integer registers: +- 0: $v0 (v0), signed 64 bits +- 1: $t0 (t0), signed 64 bits +- 2: $t1 (t1), signed 64 bits +- 3: $t2 (t2), signed 64 bits +- 4: $t3 (t3), signed 64 bits +- 5: $t4 (t4), signed 64 bits +- 6: $t5 (t5), signed 64 bits +- 7: $t6 (t6), signed 64 bits +- 8: $t7 (t7), signed 64 bits +- 9: $s0 (s0), signed 64 bits +- 10: $s1 (s1), signed 64 bits +- 11: $s2 (s2), signed 64 bits +- 12: $s3 (s3), signed 64 bits +- 13: $s4 (s4), signed 64 bits +- 14: $s5 (s5), signed 64 bits +- 15: $s6 (s6), signed 64 bits +- 16: $a0 (a0), signed 64 bits +- 17: $a1 (a1), signed 64 bits +- 18: $a2 (a2), signed 64 bits +- 19: $a3 (a3), signed 64 bits +- 20: $a4 (a4), signed 64 bits +- 21: $a5 (a5), signed 64 bits +- 22: $t8 (t8), signed 64 bits +- 23: $t9 (t9), signed 64 bits +- 24: $t10 (t10), signed 64 bits +- 25: $t11 (t11), signed 64 bits +- 26: $ra (ra), address 64 bits +- 27: $t12 (t12), signed 64 bits +- 28: $at (at), signed 64 bits +- 29: $gp (gp), address 64 bits +- 30: $sp (sp), address 64 bits +- 31: $zero (zero), signed 64 bits +- 64: $pc (pc), address 64 bits +- 66: $unique (unique), address 64 bits +-FPU registers: +- 32: $f0 (f0), float 64 bits +- 33: $f1 (f1), float 64 bits +- 34: $f2 (f2), float 64 bits +- 35: $f3 (f3), float 64 bits +- 36: $f4 (f4), float 64 bits +- 37: $f5 (f5), float 64 bits +- 38: $f6 (f6), float 64 bits +- 39: $f7 (f7), float 64 bits +- 40: $f8 (f8), float 64 bits +- 41: $f9 (f9), float 64 bits +- 42: $f10 (f10), float 64 bits +- 43: $f11 (f11), float 64 bits +- 44: $f12 (f12), float 64 bits +- 45: $f13 (f13), float 64 bits +- 46: $f14 (f14), float 64 bits +- 47: $f15 (f15), float 64 bits +- 48: $f16 (f16), float 64 bits +- 49: $f17 (f17), float 64 bits +- 50: $f18 (f18), float 64 bits +- 51: $f19 (f19), float 64 bits +- 52: $f20 (f20), float 64 bits +- 53: $f21 (f21), float 64 bits +- 54: $f22 (f22), float 64 bits +- 55: $f23 (f23), float 64 bits +- 56: $f24 (f24), float 64 bits +- 57: $f25 (f25), float 64 bits +- 58: $f26 (f26), float 64 bits +- 59: $f27 (f27), float 64 bits +- 60: $f28 (f28), float 64 bits +- 61: $f29 (f29), float 64 bits +- 62: $f30 (f30), float 64 bits +- 63: $fpcr (fpcr), unsigned 64 bits +-EOF +- +-regs_test testfile60 <<\EOF +-integer registers: +- 0: r0 (r0), signed 64 bits +- 1: r1 (r1), signed 64 bits +- 2: r2 (r2), signed 64 bits +- 3: r3 (r3), signed 64 bits +- 4: r4 (r4), signed 64 bits +- 5: r5 (r5), signed 64 bits +- 6: r6 (r6), signed 64 bits +- 7: r7 (r7), signed 64 bits +- 8: r8 (r8), signed 64 bits +- 9: r9 (r9), signed 64 bits +- 10: r10 (r10), signed 64 bits +- 11: r11 (r11), signed 64 bits +- 12: r12 (r12), signed 64 bits +- 13: r13 (r13), signed 64 bits +- 14: r14 (r14), signed 64 bits +- 15: r15 (r15), signed 64 bits +- 16: r16 (r16), signed 64 bits +- 17: r17 (r17), signed 64 bits +- 18: r18 (r18), signed 64 bits +- 19: r19 (r19), signed 64 bits +- 20: r20 (r20), signed 64 bits +- 21: r21 (r21), signed 64 bits +- 22: r22 (r22), signed 64 bits +- 23: r23 (r23), signed 64 bits +- 24: r24 (r24), signed 64 bits +- 25: r25 (r25), signed 64 bits +- 26: r26 (r26), signed 64 bits +- 27: r27 (r27), signed 64 bits +- 28: r28 (r28), signed 64 bits +- 29: r29 (r29), signed 64 bits +- 30: r30 (r30), signed 64 bits +- 31: r31 (r31), signed 64 bits +- 32: r32 (r32), signed 64 bits +- 33: r33 (r33), signed 64 bits +- 34: r34 (r34), signed 64 bits +- 35: r35 (r35), signed 64 bits +- 36: r36 (r36), signed 64 bits +- 37: r37 (r37), signed 64 bits +- 38: r38 (r38), signed 64 bits +- 39: r39 (r39), signed 64 bits +- 40: r40 (r40), signed 64 bits +- 41: r41 (r41), signed 64 bits +- 42: r42 (r42), signed 64 bits +- 43: r43 (r43), signed 64 bits +- 44: r44 (r44), signed 64 bits +- 45: r45 (r45), signed 64 bits +- 46: r46 (r46), signed 64 bits +- 47: r47 (r47), signed 64 bits +- 48: r48 (r48), signed 64 bits +- 49: r49 (r49), signed 64 bits +- 50: r50 (r50), signed 64 bits +- 51: r51 (r51), signed 64 bits +- 52: r52 (r52), signed 64 bits +- 53: tp (tp), address 64 bits +- 54: sp (sp), address 64 bits +- 55: lr (lr), address 64 bits +- 56: sn (sn), unsigned 64 bits +- 57: idn0 (idn0), unsigned 64 bits +- 58: idn1 (idn1), unsigned 64 bits +- 59: udn0 (udn0), unsigned 64 bits +- 60: udn1 (udn1), unsigned 64 bits +- 61: udn2 (udn2), unsigned 64 bits +- 62: udn3 (udn3), unsigned 64 bits +- 63: zero (zero), unsigned 64 bits +- 64: pc (pc), address 64 bits +-EOF +- +-regs_test testfile61 <<\EOF +-integer registers: +- 0: r0 (r0), signed 32 bits +- 1: r1 (r1), signed 32 bits +- 2: r2 (r2), signed 32 bits +- 3: r3 (r3), signed 32 bits +- 4: r4 (r4), signed 32 bits +- 5: r5 (r5), signed 32 bits +- 6: r6 (r6), signed 32 bits +- 7: r7 (r7), signed 32 bits +- 8: r8 (r8), signed 32 bits +- 9: r9 (r9), signed 32 bits +- 10: r10 (r10), signed 32 bits +- 11: r11 (r11), signed 32 bits +- 12: r12 (r12), signed 32 bits +- 13: sp (sp), address 32 bits +- 14: lr (lr), address 32 bits +- 15: pc (pc), address 32 bits +- 128: spsr (spsr), unsigned 32 bits +-FPA registers: +- 16: f0 (f0), float 96 bits +- 17: f1 (f1), float 96 bits +- 18: f2 (f2), float 96 bits +- 19: f3 (f3), float 96 bits +- 20: f4 (f4), float 96 bits +- 21: f5 (f5), float 96 bits +- 22: f6 (f6), float 96 bits +- 23: f7 (f7), float 96 bits +- 96: f0 (f0), float 96 bits +- 97: f1 (f1), float 96 bits +- 98: f2 (f2), float 96 bits +- 99: f3 (f3), float 96 bits +- 100: f4 (f4), float 96 bits +- 101: f5 (f5), float 96 bits +- 102: f6 (f6), float 96 bits +- 103: f7 (f7), float 96 bits +-VFP registers: +- 256: d0 (d0), float 64 bits +- 257: d1 (d1), float 64 bits +- 258: d2 (d2), float 64 bits +- 259: d3 (d3), float 64 bits +- 260: d4 (d4), float 64 bits +- 261: d5 (d5), float 64 bits +- 262: d6 (d6), float 64 bits +- 263: d7 (d7), float 64 bits +- 264: d8 (d8), float 64 bits +- 265: d9 (d9), float 64 bits +- 266: d10 (d10), float 64 bits +- 267: d11 (d11), float 64 bits +- 268: d12 (d12), float 64 bits +- 269: d13 (d13), float 64 bits +- 270: d14 (d14), float 64 bits +- 271: d15 (d15), float 64 bits +- 272: d16 (d16), float 64 bits +- 273: d17 (d17), float 64 bits +- 274: d18 (d18), float 64 bits +- 275: d19 (d19), float 64 bits +- 276: d20 (d20), float 64 bits +- 277: d21 (d21), float 64 bits +- 278: d22 (d22), float 64 bits +- 279: d23 (d23), float 64 bits +- 280: d24 (d24), float 64 bits +- 281: d25 (d25), float 64 bits +- 282: d26 (d26), float 64 bits +- 283: d27 (d27), float 64 bits +- 284: d28 (d28), float 64 bits +- 285: d29 (d29), float 64 bits +- 286: d30 (d30), float 64 bits +- 287: d31 (d31), float 64 bits +-EOF +- + # See run-readelf-mixed-corenote.sh for instructions to regenerate + # this core file. + regs_test testfile_aarch64_core <<\EOF +diff --git a/tests/run-arextract.sh b/tests/run-arextract.sh +index 44f4a52..0532952 100755 +--- a/tests/run-arextract.sh ++++ b/tests/run-arextract.sh +@@ -26,7 +26,7 @@ if test -f $archive; then + echo -n "Extracting symbols... $ac_c" + + # The files we are looking at. +- for f in ${abs_top_builddir}/libelf/*.o; do ++ for f in ${abs_top_builddir}/libelf/libelf_a-*.o; do + testrun ${abs_builddir}/arextract $archive `basename $f` arextract.test || exit 1 + cmp $f arextract.test || { + echo "Extraction of $1 failed" +diff --git a/tests/run-elflint-test.sh b/tests/run-elflint-test.sh +index f3bd901..659d3de 100755 +--- a/tests/run-elflint-test.sh ++++ b/tests/run-elflint-test.sh +@@ -30,9 +30,6 @@ testrun ${abs_top_builddir}/src/elflint -q testfile32 + testfiles testfile33 + testrun ${abs_top_builddir}/src/elflint -q testfile33 + +-testfiles testfile42 +-testrun ${abs_top_builddir}/src/elflint -q --gnu-ld testfile42 +- + testfiles testfile46 + testrun ${abs_top_builddir}/src/elflint -q testfile46 + +diff --git a/tests/run-readelf-A.sh b/tests/run-readelf-A.sh +index 6ca9be8..88f87ad 100755 +--- a/tests/run-readelf-A.sh ++++ b/tests/run-readelf-A.sh +@@ -25,32 +25,7 @@ + # + # gcc -m32 -c testfileppc32attrs.s + +-testfiles testfilearm testfileppc32attrs.o +- +-testrun_compare ${abs_top_builddir}/src/readelf -A testfilearm <<\EOF +- +-Object attributes section [27] '.ARM.attributes' of 53 bytes at offset 0x718: +- Owner Size +- aeabi 52 +- File: 42 +- CPU_name: 7-A +- CPU_arch: v7 +- CPU_arch_profile: Application +- ARM_ISA_use: Yes +- THUMB_ISA_use: Thumb-2 +- VFP_arch: VFPv3-D16 +- ABI_PCS_wchar_t: 4 +- ABI_FP_rounding: Needed +- ABI_FP_denormal: Needed +- ABI_FP_exceptions: Needed +- ABI_FP_number_model: IEEE 754 +- ABI_align8_needed: Yes +- ABI_align8_preserved: Yes, except leaf SP +- ABI_enum_size: int +- ABI_HardFP_use: SP and DP +- ABI_VFP_args: VFP registers +- CPU_unaligned_access: v6 +-EOF ++testfiles testfileppc32attrs.o + + testrun_compare ${abs_top_builddir}/src/readelf -A testfileppc32attrs.o <<\EOF + +diff --git a/tests/run-readelf-mixed-corenote.sh b/tests/run-readelf-mixed-corenote.sh +index 69d0c02..382ea14 100755 +--- a/tests/run-readelf-mixed-corenote.sh ++++ b/tests/run-readelf-mixed-corenote.sh +@@ -18,73 +18,6 @@ + + . $srcdir/test-subr.sh + +-testfiles testfile63 +- +-testrun_compare ${abs_top_builddir}/src/readelf -n testfile63 <<\EOF +- +-Note segment of 892 bytes at offset 0x274: +- Owner Data size Type +- CORE 148 PRSTATUS +- info.si_signo: 11, info.si_code: 0, info.si_errno: 0, cursig: 11 +- sigpend: <> +- sighold: <> +- pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 +- utime: 0.000000, stime: 0.010000, cutime: 0.000000, cstime: 0.000000 +- orig_r0: -1, fpvalid: 1 +- r0: 1 r1: -1091672508 r2: -1091672500 +- r3: 0 r4: 0 r5: 0 +- r6: 33728 r7: 0 r8: 0 +- r9: 0 r10: -1225703496 r11: -1091672844 +- r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48 +- pc: 0x00008500 spsr: 0x60000010 +- CORE 124 PRPSINFO +- state: 0, sname: R, zomb: 0, nice: 0, flag: 0x00400500 +- uid: 0, gid: 0, pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 +- fname: a.out, psargs: ./a.out +- CORE 144 AUXV +- HWCAP: 0xe8d7 +- PAGESZ: 4096 +- CLKTCK: 100 +- PHDR: 0x8034 +- PHENT: 32 +- PHNUM: 8 +- BASE: 0xb6eee000 +- FLAGS: 0 +- ENTRY: 0x83c0 +- UID: 0 +- EUID: 0 +- GID: 0 +- EGID: 0 +- SECURE: 0 +- RANDOM: 0xbeee674e +- EXECFN: 0xbeee6ff4 +- PLATFORM: 0xbeee675e +- NULL +- CORE 116 FPREGSET +- f0: 0x000000000000000000000000 f1: 0x000000000000000000000000 +- f2: 0x000000000000000000000000 f3: 0x000000000000000000000000 +- f4: 0x000000000000000000000000 f5: 0x000000000000000000000000 +- f6: 0x000000000000000000000000 f7: 0x000000000000000000000000 +- LINUX 260 ARM_VFP +- fpscr: 0x00000000 +- d0: 0x0000000000000000 d1: 0x0000000000000000 +- d2: 0x0000000000000000 d3: 0x0000000000000000 +- d4: 0x0000000000000000 d5: 0x0000000000000000 +- d6: 0x0000000000000000 d7: 0x0000000000000000 +- d8: 0x0000000000000000 d9: 0x0000000000000000 +- d10: 0x0000000000000000 d11: 0x0000000000000000 +- d12: 0x0000000000000000 d13: 0x0000000000000000 +- d14: 0x0000000000000000 d15: 0x0000000000000000 +- d16: 0x0000000000000000 d17: 0x0000000000000000 +- d18: 0x0000000000000000 d19: 0x0000000000000000 +- d20: 0x0000000000000000 d21: 0x0000000000000000 +- d22: 0x0000000000000000 d23: 0x0000000000000000 +- d24: 0x0000000000000000 d25: 0x0000000000000000 +- d26: 0x0000000000000000 d27: 0x0000000000000000 +- d28: 0x0000000000000000 d29: 0x0000000000000000 +- d30: 0x0000000000000000 d31: 0x0000000000000000 +-EOF +- + testfiles testfile67 + testrun_compare ${abs_top_builddir}/src/readelf -n testfile67 <<\EOF + diff --git a/SOURCES/elfutils-portability-0.163.patch b/SOURCES/elfutils-portability-0.163.patch deleted file mode 100644 index f347ed1..0000000 --- a/SOURCES/elfutils-portability-0.163.patch +++ /dev/null @@ -1,2108 +0,0 @@ -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 -+ -+ * Makefile.am (libebl_%.so): Use $(LD_AS_NEEDED). -+ - 2008-10-04 Ulrich Drepper - - * 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 -+ -+ * 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 - - * 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 . - * 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 - -+ * configure.ac: Wrap AC_COMPILE_IFELSE sources in AC_LANG_SOURCE. -+ - * COPYING: Fix address. Updated version from gnulib. - - 2012-01-23 Mark Wielaard -@@ -276,6 +278,9 @@ - - 2011-10-08 Mike Frysinger - -+ * configure.ac (--disable-werror): Handle it, controlling BUILD_WERROR -+ automake option. -+ - * configure.ac: Fix use of AC_ARG_ENABLE to handle $enableval correctly. - - 2011-10-02 Ulrich Drepper -@@ -297,6 +302,10 @@ - - * configure.ac (LOCALEDIR, DATADIRNAME): Removed. - -+2009-11-22 Roland McGrath -+ -+ * configure.ac: Use sed and expr instead of modern bash extensions. -+ - 2009-09-21 Ulrich Drepper - - * configure.ac: Update for more modern autoconf. -@@ -305,6 +314,10 @@ - - * configure.ac (zip_LIBS): Check for liblzma too. - -+2009-08-17 Roland McGrath -+ -+ * configure.ac: Check for -fgnu89-inline; add it to WEXTRA if it works. -+ - 2009-04-19 Roland McGrath - - * configure.ac (eu_version): Round down here, not in version.h macros. -@@ -316,6 +329,8 @@ - - 2009-01-23 Roland McGrath - -+ * configure.ac: Check for __builtin_popcount. -+ - * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3. - - * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of -@@ -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 -+ -+ * configure.ac: Check for --as-needed linker option. -+ - 2005-11-18 Roland McGrath - - * 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 -+ -+ * configure.ac (WEXTRA): Check for -Wextra and set this substitution. -+ -+ * configure.ac: Check for struct stat st_?tim members. -+ * src/strip.c (process_file): Use st_?time if st_?tim are not there. -+ -+ * configure.ac: Check for futimes function. -+ * src/strip.c (handle_elf) [! HAVE_FUTIMES]: Use utimes instead. -+ (handle_ar) [! HAVE_FUTIMES]: Likewise. -+ - 2005-05-19 Roland McGrath - - * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros. -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 -+ -+ * eu.am [BUILD_WERROR]: Conditionalize -Werror use on this. -+ - 2010-07-02 Ulrich Drepper - - * 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 . - ## - -+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 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 -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 declares $2. -+ For example, HP-UX 11i declares gettimeofday. */ -+#define $2 innocuous_$2 -+ -+/* System header to define __stub macros and hopefully few prototypes, -+ which can conflict with char $2 (); below. -+ Prefer to if __STDC__ is defined, since -+ exists even on freestanding compilers. */ -+ -+#ifdef __STDC__ -+# include -+#else -+# include -+#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 <&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 <&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 - -+ * eu-config.h [! HAVE_BUILTIN_POPCOUNT] -+ (__builtin_popcount): New inline function. -+ - * eu-config.h: Add multiple inclusion protection. - - 2009-01-17 Ulrich Drepper -@@ -129,6 +132,11 @@ - * Makefile.am (libeu_a_SOURCES): Add it. - * system.h: Declare crc32_file. - -+2005-02-07 Roland McGrath -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-04-30 Ulrich Drepper - - * 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) - -+#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 -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-02-15 Ulrich Drepper - - * 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 - -+ * 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 -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it instead of -Wextra. -+ - 2005-02-15 Ulrich Drepper - - * 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.$( -+ -+ * dwarf_begin_elf.c: Add fallback for be64toh if not defined. -+ - 2011-07-14 Mark Wielaard - - * 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 -+ -+ * libdw.h: Disable extern inlines for GCC 4.2. -+ - 2009-08-10 Roland McGrath - - * dwarf_getscopevar.c: Use dwarf_diename. -@@ -2031,6 +2039,11 @@ - - 2005-05-31 Roland McGrath - -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ -+2005-05-31 Roland McGrath -+ - * 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 - # define crc32 loser_crc32 -+# ifndef be64toh -+# include -+# if __BYTE_ORDER == __LITTLE_ENDIAN -+# define be64toh(x) bswap_64 (x) -+# else -+# define be64toh(x) (x) -+# endif -+# endif - # include - # undef crc32 - #endif -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 -+ -+ Older OS compatibility bits. -+ * linux-core-attach.c (be64toh, le64toh, be32toh, le32toh): Provide -+ fallbacks if not defined by system. -+ -+2013-11-09 Jan Kratochvil -+ -+ 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 - Mark Wielaard - -@@ -2478,6 +2493,11 @@ - - 2005-07-21 Roland McGrath - -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ -+2005-07-21 Roland McGrath -+ - * 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 - #include "system.h" -+#include -+#include -+#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 -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-05-21 Ulrich Drepper - - * 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 -+ -+ * gnuhash_xlate.h (elf_cvt_gnuhash): Avoid post-increment in bswap_32 -+ argument, since some implementations are buggy macros. -+ - 2011-02-26 Mark Wielaard - - * 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 -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-05-08 Roland McGrath - - * 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 , 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 -+ -+ * ld.h: Disable extern inlines for GCC 4.2. -+ - 2009-08-14 Roland McGrath - -+ * strings.c (read_block): Conditionalize posix_fadvise use -+ on [POSIX_FADV_SEQUENTIAL]. -+ From Petr Salinger . -+ - * ar.c (do_oper_extract): Use pathconf instead of statfs. - - 2009-08-01 Ulrich Drepper -@@ -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 - - * 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 -+ -+ * readelf.c (dump_archive_index): Tweak portability hack -+ to match [__GNUC__ < 4] too. -+ - 2008-02-29 Roland McGrath - - * 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 - - * make-debug-archive.in: New file. -@@ -2664,6 +2681,10 @@ - * elflint.c (valid_e_machine): Add EM_ALPHA. - Reported by Christian Aichinger . - -+ * 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 - - * 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 -+ -+ * strings.c (MAP_POPULATE): Define to 0 if undefined. -+ - 2006-06-12 Ulrich Drepper - - * 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 -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-05-30 Roland McGrath - - * 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 - -+#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 - #include - #include -+#include - #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 - -+ 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 -+ - * 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 - -+ * 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 -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-05-24 Ulrich Drepper - - * 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/SOURCES/libelf.so b/SOURCES/libelf.so index 1719a8d..ac3ef2c 100644 --- a/SOURCES/libelf.so +++ b/SOURCES/libelf.so @@ -3,3 +3,4 @@ Libraries in Developer Toolset are linked in statically to allow compiled binaries to run even when DTS is not installed. */ INPUT(libelf.ar) +INPUT(-lz) diff --git a/SPECS/elfutils.spec b/SPECS/elfutils.spec index 9095083..57673e3 100644 --- a/SPECS/elfutils.spec +++ b/SPECS/elfutils.spec @@ -2,35 +2,19 @@ Name: %{?scl_prefix}elfutils Summary: A collection of utilities and DSOs to handle compiled objects -Version: 0.163 -%global baserelease 2 +Version: 0.166 +%global baserelease 1 URL: https://fedorahosted.org/elfutils/ %global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/ License: GPLv3+ and (GPLv2+ or LGPLv3+) Group: Development/Tools -%if %{?_with_compat:1}%{!?_with_compat:0} -%global compat 1 -%else -%global compat 0 -%endif +Release: %{baserelease}%{?dist} -%global portability %{compat} -%global scanf_has_m !%{compat} +%global provide_yama_scope 0 -%if 0%{?rhel} -%global portability (%rhel < 6) -%global scanf_has_m (%rhel >= 6) -%endif %if 0%{?fedora} -%global portability (%fedora < 9) -%global scanf_has_m (%fedora >= 8) -%endif - -%if %{compat} || %{!?rhel:6}%{?rhel} < 6 -%global nocheck true -%else -%global nocheck false +%global provide_yama_scope (%fedora >= 22) %endif %global depsuffix %{?_isa}%{!?_isa:-%{_arch}} @@ -47,38 +31,20 @@ Source5: libelf.a Source6: libdw.a Source7: libasm.a -Patch1: %{?source_url}elfutils-portability-%{version}.patch - -Patch2: elfutils-0.163-unstrip-shf_info_link.patch +# Patches # DTS specific patches. -Patch100: elfutils-0.163-dts.patch - -%if !%{compat} -Release: %{baserelease}%{?dist} -%else -Release: 0.%{baserelease} -%endif +Patch100: elfutils-0.166-dts.patch Requires: %{?scl_prefix}elfutils-libelf%{depsuffix} = %{version}-%{release} Requires: %{?scl_prefix}elfutils-libs%{depsuffix} = %{version}-%{release} -%if %{!?rhel:6}%{?rhel} < 6 || %{!?fedora:9}%{?fedora} < 10 -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -%endif - BuildRequires: autoconf automake BuildRequires: gettext BuildRequires: bison >= 1.875 BuildRequires: flex >= 2.5.4a BuildRequires: bzip2 -%if !%{compat} -BuildRequires: gcc >= 3.4 -# Need that gives unsigned bswap_16 etc. -BuildRequires: glibc-headers >= 2.3.4-11 -%else -BuildRequires: gcc >= 3.2 -%endif +BuildRequires: gcc >= 4.4 BuildRequires: zlib-devel >= 1.2.2.3 BuildRequires: bzip2-devel @@ -94,7 +60,8 @@ Elfutils is a collection of utilities, including stack (to show backtraces), nm (for listing symbols from object files), size (for listing the section sizes of an object or archive file), strip (for discarding symbols), readelf (to see the raw ELF file -structures), and elflint (to check for well-formed ELF files). +structures), elflint (to check for well-formed ELF files) and +elfcompress (to compress or decompress ELF sections). %package libs @@ -105,6 +72,9 @@ License: GPLv2+ or LGPLv3+ Provides: %{?scl_prefix}elfutils-libs%{depsuffix} = %{version}-%{release} %endif Requires: %{?scl_prefix}elfutils-libelf%{depsuffix} = %{version}-%{release} +%if %{provide_yama_scope} +Requires: default-yama-scope +%endif %description libs The elfutils-libs package contains libraries which implement DWARF, ELF, @@ -159,26 +129,30 @@ applications for handling compiled objects. libelf allows you to access the internals of the ELF object file format, so you can see the different sections of an ELF file. +%if %{provide_yama_scope} +%package default-yama-scope +Summary: Default yama attach scope sysctl setting +Group: Development/Tools +License: GPLv2+ or LGPLv3+ +Provides: default-yama-scope +BuildArch: noarch +# For the sysctl_apply macro +BuildRequires: systemd >= 215 + +%description default-yama-scope +Yama sysctl setting to enable default attach scope settings +enabling programs to use ptrace attach, access to +/proc/PID/{mem,personality,stack,syscall}, and the syscalls +process_vm_readv and process_vm_writev which are used for +interprocess services, communication and introspection +(like synchronisation, signaling, debugging, tracing and +profiling) of processes. +%endif + %prep %setup -q -n elfutils-%{version} -: 'compat=%compat' -: 'portability=%portability' -: 'scanf_has_m=%scanf_has_m' - -%if %{portability} -%patch1 -p1 -b .portability -sleep 1 -find . \( -name Makefile.in -o -name aclocal.m4 \) -print | xargs touch -sleep 1 -find . \( -name configure -o -name config.h.in \) -print | xargs touch -%else -%if !%{scanf_has_m} -sed -i.scanf-m -e 's/%m/%a/g' src/addr2line.c tests/line2addr.c -%endif -%endif - -%patch2 -p1 -b .shf_info_link +# Apply patches # DTS specific patches %patch100 -p1 -b .dts @@ -194,21 +168,10 @@ find . -name \*.sh ! -perm -0100 -print | xargs chmod +x # But add -Wformat explicitly for use with -Werror=format-security which # doesn't work without -Wformat (enabled by -Wall). RPM_OPT_FLAGS="${RPM_OPT_FLAGS/-Wall/}" -%if !%{compat} RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -Wformat" -%endif - -%if %{compat} -# Some older glibc headers can run afoul of -Werror all by themselves. -# Disabling the fancy inlines avoids those problems. -RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D__NO_INLINE__" -COMPAT_CONFIG_FLAGS="--disable-werror" -%else -COMPAT_CONFIG_FLAGS="" -%endif trap 'cat config.log' EXIT -%configure $COMPAT_CONFIG_FLAGS CFLAGS="$RPM_OPT_FLAGS -fexceptions" +%configure CFLAGS="$RPM_OPT_FLAGS -fexceptions" trap '' EXIT # Due to static bits, our dependencies are more complex than in plain @@ -251,6 +214,10 @@ install -p -m 644 %{SOURCE2} %{SOURCE3} %{SOURCE4} \ %find_lang elfutils +%if %{provide_yama_scope} +install -Dm0644 config/10-default-yama-scope.conf ${RPM_BUILD_ROOT}%{_sysctldir}/10-default-yama-scope.conf +%endif + %check make -s %{?_smp_mflags} check || (cat tests/test-suite.log; %{nocheck}) @@ -265,6 +232,11 @@ rm -rf ${RPM_BUILD_ROOT} %postun libelf -p /sbin/ldconfig +%if %{provide_yama_scope} +%post default-yama-scope +%sysctl_apply 10-default-yama-scope.conf +%endif + %files %defattr(-,root,root) %{!?_licensedir:%global license %%doc} @@ -286,6 +258,7 @@ rm -rf ${RPM_BUILD_ROOT} #%%{_bindir}/eu-ld %{_bindir}/eu-unstrip %{_bindir}/eu-make-debug-archive +%{_bindir}/eu-elfcompress %files libs %defattr(-,root,root) @@ -319,6 +292,7 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/libdw.ar %{_libdir}/libebl_static_pic.ar %{_libdir}/libcpu_static_pic.ar +%{_libdir}/pkgconfig/libdw.pc %files -f elfutils.lang libelf %defattr(-,root,root) @@ -335,8 +309,33 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/libelf.so %{_libdir}/libelf.a %{_libdir}/libelf.ar +%{_libdir}/pkgconfig/libelf.pc + +%if %{provide_yama_scope} +%files default-yama-scope +%defattr(-,root,root) +%config(noreplace) %{_sysctldir}/10-default-yama-scope.conf +%endif %changelog +* Thu Mar 31 2016 Mark Wielaard - 0.166-1 +- Update to elfutils 0.166 (#1322412) + Drop upstreamed patches: + - elfutils-0.165-elf-libelf.patch + - elfutils-0.165-nobitsalign-strip.patch + +* Wed Feb 24 2016 Mark Wielaard - 0.165-7 +- Rebuilt against new buildroot. + +* Thu Feb 04 2016 Mark Wielaard - 0.165-4 +- Add elfutils-0.165-nobitsalign-strip.patch (#1304870) + +* Fri Jan 29 2016 Mark Wielaard - 0.165-3 +- Add INPUT(-lz) to libelf.so linker script. + +* Fri Jan 15 2016 Mark Wielaard - 0.165-2 +- Update to 0.165. + * Mon Aug 03 2015 Mark Wielaard - 0.163-2 - Add elfutils-0.163-unstrip-shf_info_link.patch (#1246390)