2019-04-29 Mao Han * eblopenbackend.c: Add C-SKY. 2019-06-28 Mark Wielaard * eblopenbackend.c (try_dlopen): Remove result->name check. (openbackend): Remove result->name assignment. (struct ebl): Remove name. 2019-05-30 Mark Wielaard * eblopenbackend.c (try_dlopen): New function extracted from openbackend. (openbackend): Replace ORIGINDIR define with BINORIGINDIR and LIBORIGINDIR defines. Use tryopen to open backend in bin origin path, lib origin path and without an explicit path. 2019-04-28 Mark Wielaard * eblsymbolbindingname.c (ebl_symbol_binding_name): Check ebl is not NULL for STB_GNU_UNIQUE. * eblsymboltypename.c (ebl_symbol_type_name): Check ebl is not NULL for STT_GNU_IFUNC. 2019-01-29 Mark Wielaard * eblobjnote.c (ebl_object_note): Check pr_datasz padding doesn't overflow descsz. 2019-01-16 Mark Wielaard * libebl.h (ebl_core_note): Add desc as argument. * eblcorenote.c (ebl_core_note): Take desc as an argument, check it contains a zero terminated string if it is an NT_PLATFORM note. 2019-01-16 Mark Wielaard * eblobjnte.c (ebl_object_note): Check pr_datasz isn't too large. 2018-12-02 Mark Wielaard * eblobjnte.c (ebl_object_note): For GNU_PROPERTY_STACK_SIZE use an Elf32_Addr or Elf64_Addr to read and print the size. 2018-11-15 Mark Wielaard * eblobjnotetypename.c (ebl_object_note_type_name): Don't update w, t and len unnecessarily. 2018-11-12 Mark Wielaard * libebl.h (ebl_object_note): Add new argument namesz. * eblobjnote.c (ebl_object_note): Likewise and handle GNU Build Attribute notes. * eblobjnotetypename.c (ebl_object_note_type_name): Handle GNU Build Attribute notes. 2018-11-11 Mark Wielaard * eblobjnote.c (ebl_object_note): Recognize NT_VERSION with zero descriptor. Add explicit "GNU" name check. * eblobjnotetypename.c (ebl_object_note_type_name): Add extra argument descsz. Recognize NT_VERSION using descsz. With "GNU" name it is NT_GNU_ABI_TAG. * libebl.h (ebl_object_note_type_name): Add extra argument descsz. 2018-10-18 Mark Wielaard * eblobjnote.c (ebl_object_note): Handle NT_GNU_PROPERTY_TYPE_0. * eblobjnotetypename.c (ebl_object_note_type_name): Add GNU_PROPERTY_TYPE_0. 2018-10-02 Andreas Schwab * ebl-hooks.h (EBLHOOK(reloc_simple_type)): Add third parameter. * libebl.h (ebl_reloc_simple_type): Likewise. * eblopenbackend.c (default_reloc_simple_type): Likewise. * eblrelocsimpletype.c (ebl_reloc_simple_type): Pass it down. 2018-09-12 Mark Wielaard * eblsectionstripp.c (ebl_section_strip_p): Drop ehdr argument. Use elf_getshdrstrndx. * libebl.h (ebl_section_strip_p): Drop ehdr argument. 2018-09-12 Mark Wielaard * ebl-hooks.h (check_special_symbol): Drop ehdr argument. * ebl_check_special_symbol.c (ebl_check_special_symbol): Likewise. * eblopenbackend.c (default_check_special_symbol): Likewise. * libebl.h (ebl_check_special_symbol): Likewise. 2018-07-04 Ross Burton * eblopenbackend.c: Remove error.h include. 2018-04-25 Mark Wielaard * eblopenbackend.c (default_debugscn_p): Add new DWARF5 sections .debug_addr, .debug_line_str, .debug_loclists, .debug_names, .debug_rnglists and .debug_str_offsets. 2018-04-19 Andreas Schwab * eblopenbackend.c (machines): Add entries for RISC-V. 2018-03-16 Mark Wielaard * ebldynamictagname.c (ebl_dynamic_tag_name): Add SYMTAB_SHNDX to stdtags. Add a eu_static_assert to make sure stdtags contains all DT_NUM entries. 2018-02-21 Mark Wielaard * eblcheckreloctargettype.c (ebl_check_reloc_target_type): Accept SHT_NOTE. 2018-02-09 Joshua Watt * eblobjnote.c (ebl_object_note): Use FALLTHROUGH macro instead of comment. 2017-04-27 Ulf Hermann * Makefile.am: Use fpic_CFLAGS. 2017-07-19 Gustavo Romero * eblcorenotetypename.c: Add ppc64 HTM SPRs note as known type. 2017-07-20 Mark Wielaard * Makefile.am (gen_SOURCES): Add ebl_data_marker_symbol.c. * ebl-hooks.h (data_marker_symbol): New hook. * ebl_data_marker_symbol.c: New file. * eblopenbackend.c (default_data_marker_symbol): New function. (fill_defaults): Add default_data_marker_symbol. * libebl.h (ebl_data_marker_symbol): New function. 2017-04-20 Ulf Hermann * libebl.h: Use __pure_attribute__. 2017-02-15 Ulf Hermann * eblmachineflagname.c: Include system.h. * eblopenbackend.c: Likewise. 2016-07-08 Mark Wielaard * Makefile.am (gen_SOURCES): Remove eblstrtab.c. * eblstrtab.c: Removed. * libebl.h (Ebl_Strtab): Removed. (Ebl_Strent): Removed. (ebl_strtabinit): Removed. (ebl_strtabfree): Removed. (ebl_strtabadd): Removed. (ebl_strtabfinalize): Removed. (ebl_strtaboffset): Removed. (ebl_string): Removed. 2016-07-06 Mark Wielaard * Makefile.am (gen_SOURCES): Remove eblobjecttypename.c, eblshflagscombine.c, eblwstrtab.c and eblgstrtab.c. * ebl-hooks.h (object_type_name): Removed. (sh_flags_combine): Likewise. * eblgstrtab.c: Removed. * eblobjecttypename.c: Removed. * eblopenbackend.c (default_object_type_name): Removed. (default_sh_flags_combine): Likewise. (fill_defaults): Removed object_type_name and sh_flags_combine. * eblshflagscombine.c: Removed. * eblwstrtab.c: Removed. * libebl.h (ebl_object_type_name): Removed. (ebl_sh_flags_combine): Likewise. (ebl_wstrtab*): Removed. (ebl_gstrtab*): Likewise. 2016-06-28 Richard Henderson * ebl-hooks.h (EBLHOOK(disasm)): Add ebl parameter. * eblopenbackend.c (machines): Add EM_BPF entry. 2016-05-20 Andreas Schwab * eblopenbackend.c (machines) [EM_68K]: Set class and data. 2016-02-12 Mark Wielaard * eblobjnotetypename.c (ebl_object_note_type_name): Check name is "Go" and use new goknowntypes then. Otherwise check name is not "GNU" and return "unknown". 2016-01-09 Mark Wielaard * eblobjnote.c (ebl_object_note): Add brackets around if statement body. 2015-12-18 Mark Wielaard * eblopenbackend.c (default_debugscn_p): Also match .zdebug sections. 2015-12-08 Jose E. Marchesi * libebl.h: Prototype for ebl_ra_offset. * eblabicfi.c (ebl_ra_offset): New function. * libeblP.h (struct ebl): new field ra_offset; 2015-09-24 Jose E. Marchesi * Makefile.am (AM_CFLAGS): Use -fPIC instead of -fpic to avoid relocation overflows in some platforms. 2015-09-22 Mark Wielaard * *.c: Remove old-style function definitions. 2015-09-09 Chih-Hung Hsieh * ebldwarftoregno.c (ebl_dwarf_to_regno): Remove redundant NULL tests on parameters declared with __nonnull_attribute__. * eblinitreg.c (ebl_frame_nregs): Likewise. * eblnormalizepc.c (ebl_normalize_pc): Likewise. * eblunwind.c (ebl_unwind): Likewise. 2015-09-04 Chih-Hung Hsieh * eblopenbackend.c (ebl_openbackend_machine): Replace K&R function definition with ansi-C definitions. * eblstother.c (ebl_check_st_other_bits): Likewise. 2015-06-12 Mark Wielaard * eblcheckreloctargettype.c (ebl_check_reloc_target_type): Allow SHT_INIT_ARRAY, SHT_FINI_ARRAY and SHT_PREINIT_ARRAY. 2015-05-17 Mark Wielaard * eblobjnote.c (ebl_object_note): If allocation buf is large, then allocate it with malloc. 2015-05-17 Mark Wielaard * eblopenbackend.c (MAX_PREFIX_LEN): New define (16). (openbackend): Stack allocate symname array using MAX_PREFIX_LEN. 2015-01-27 Mark Wielaard * libebl.h: Add comment from README that this is completely UNSUPPORTED. 2014-11-22 Mark Wielaard * ebl-hooks.h (bss_plt_p): Remove ehdr argument. * eblbsspltp.c (ebl_bss_plt_p): Likewise. * eblopenbackend.c (default_bss_plt_p): Likewise. * libebl.h (ebl_bss_plt_p): Likewise. 2014-11-17 Mark Wielaard * ebldebugscnp.c (ebl_debugscn_p): Check name is not NULL. 2014-06-17 Mark Wielaard * eblinitreg.c (ebl_func_addr_mask): New function. * libebl.h (ebl_func_addr_mask): Define. * libeblP.h (struct ebl): Add func_addr_mask. 2014-05-19 Mark Wielaard * Makefile.am (gen_SOURCES): Add eblcheckreloctargettype.c. * eblcheckreloctargettype.c: New file. * ebl-hooks.h (check_reloc_target_type): New hook. * eblopenbackend.c (default_check_reloc_target_type): New function. (fill_defaults): Assign default_check_reloc_target_type to check_reloc_target_type. * libebl.h (ebl_check_reloc_target_type): New function definition. 2013-12-18 Mark Wielaard * Makefile.am (gen_SOURCES): Add eblresolvesym.c. * ebl-hooks.h (resolve_sym_value): New entry. * eblresolvesym.c: New file. * libebl.h (ebl_resolve_sym_value): New definition. * libeblP.h (fd_addr): New field. (fd_data): Likewise. 2013-12-18 Jan Kratochvil unwinder: s390 and s390x * Makefile.am (gen_SOURCES): Add eblnormalizepc.c and eblunwind.c. * ebl-hooks.h (normalize_pc, unwind): New. * eblnormalizepc.c: New file. * eblunwind.c: New file. * libebl.h (Ebl_Register_Location): Add field pc_register. (ebl_normalize_pc): New declaration. (ebl_tid_registers_get_t, ebl_pid_memory_read_t): New definitions. (ebl_unwind): New declaration. 2013-12-15 Jan Kratochvil unwinder: ppc and ppc64 * Makefile.am (gen_SOURCES): Add ebldwarftoregno.c. * ebl-hooks.h (dwarf_to_regno): New. * ebldwarftoregno.c: New file. * libebl.h (Ebl_Core_Item): New field pc_register. (ebl_tid_registers_t): Add FIRSTREG -1 to the comment. (ebl_dwarf_to_regno): New. 2013-11-25 Petr Machata * eblopenbackend.c (machines): Add entry for AArch64. 2013-11-14 Jan Kratochvil Code cleanup: Remove const in prototype * libebl.h (ebl_tid_registers_t): Remove const from firstreg. 2013-11-07 Jan Kratochvil Mark Wielaard * Makefile.am (gen_SOURCES): Add eblinitreg.c. * ebl-hooks.h (set_initial_registers_tid): New entry. * eblinitreg.c: New file. * libebl.h (ebl_tid_registers_t): New definition. (ebl_set_initial_registers_tid, ebl_frame_nregs): New declarations. * libeblP.h (struct ebl): New entry frame_nregs. 2013-10-06 Mark Wielaard * libebl.h (ebl_abi_cfi): Document restrictions using register rules. 2013-09-26 Petr Machata * eblcorenotetypename.c: Handle NT_ARM_TLS, NT_ARM_HW_BREAK, NT_ARM_HW_WATCH, NT_SIGINFO, NT_FILE. 2013-09-25 Mark Wielaard * eblsectionstripp.c (ebl_section_strip_p): Check shdr_l is not NULL. 2013-04-24 Mark Wielaard * Makefile.am: Use AM_CPPFLAGS instead of INCLUDES. 2012-10-12 Jan Kratochvil * ebl-hooks.h (abi_cfi): Extend its comment for return value. * eblopenbackend.c (default_abi_cfi): Return -1. * libebl.h (ebl_abi_cfi): Extend its comment for return value. 2012-08-30 Petr Machata * eblcorenotetypename.c: Handle PPC_VSX, X86_XSTATE, S390_HIGH_GPRS, S390_TIMER, S390_TODCMP, S390_TODPREG, S390_CTRS, S390_PREFIX, S390_LAST_BREAK, S390_SYSTEM_CALL, and ARM_VFP. 2012-08-22 Jeff Kenton * eblopenbackend.c (machines): Add tilegx. 2011-06-26 Mark Wielaard * eblopenbackend.c (default_debugscn_p): Add .debug_macro. 2011-04-26 Mark Wielaard * libebl.h (ebl_object_note_type_name): Add const char *name arg. * eblhooks.h (object_note_type_name): Likewise. * eblopenbackend.c (default_object_note_type_name): Likewise. * eblobjnotetypename.c (ebl_object_note_type_name): Likewise. And print version if name is "stapsdt". * eblobjnote.c (ebl_object_note): Add output for "stapsdt" notes. 2011-03-21 Marek Polacek * ebldynamictagname.c: Fix typo in TLSDESC_GOT. 2011-03-10 Mark Wielaard * Makefile.am (gen_SOURCES): Add eblstother.c. * eblstother.c: New file. * ebl-hooks.h: Add check_st_other_bits hook. * eblopenbackend.c (default_check_st_other_bits): New function. (fill_defaults): Hook default_check_st_other_bits. * libebl.h (ebl_check_st_other_bits): New prototype. 2010-07-07 Roland McGrath * eblopenbackend.c (default_debugscn_p): Match .gdb_index section. 2010-02-15 Roland McGrath * Makefile.am: Use config/eu.am for common stuff. 2010-01-04 Roland McGrath * eblcorenote.c (ebl_core_note): Take GElf_Nhdr * and name data pointer instead of only n_type and n_descsz. * libebl.h: Update declaration. * ebl-hooks.h: Update core_note hook signature. * eblopenbackend.c (default_core_note): Likewise. 2009-10-14 Roland McGrath * eblobjnote.c (ebl_object_note): Clean up NT_GNU_GOLD_VERSION printing. 2009-10-05 Roland McGrath * eblopenbackend.c (default_debugscn_p): Match .debug_pubtypes and .debug_types too. 2009-09-02 Petr Machata * libebl/eblstrtab.c (morememory): Allocate memory in multiples of pagesize. 2009-08-06 Petr Machata * libebl/eblstrtab.c (ebl_strtabfinalize): Only call copystrings if we have any strings to copy. 2009-07-26 Mark Wielaard * eblobjnote.c (ebl_object_note): Handle NT_GNU_GOLD_VERSION. * eblobjnotetypename.c (ebl_object_note_type_name): Recognize NT_GNU_GOLD_VERSION. 2009-07-08 Roland McGrath * ebl-hooks.h: Add abi_cfi hook. * eblopenbackend.c (default_abi_cfi): New function. (fill_defaults): Add initializer. * eblabicfi.c: New file. * Makefile.am (gen_SOURCES): Add it. * libebl.h: Declare ebl_abi_cfi. 2009-07-08 Ulrich Drepper * eblsymbolbindingname.c (ebl_symbol_binding_name): Handle STB_GNU_UNIQUE. * eblsymboltypename.c (ebl_symbol_type_name): Only handle STT_GNU_IFUNC if the binary is marked as being for Linux. 2009-04-01 Roland McGrath * eblsymboltypename.c (ebl_symbol_type_name): Add STT_GNU_IFUNC. * eblauxvinfo.c (AUXV_TYPES): Add RANDOM and BASE_PLATFORM. 2009-02-01 Ulrich Drepper * eblreloctypename.c (ebl_reloc_type_name): Return "" instead of "???" for invalid relocations. 2008-08-01 Roland McGrath * eblcorenotetypename.c: Handle NT_386_IOPERM. 2008-07-28 Roland McGrath * eblauxvinfo.c (AUXV_TYPES): Add EXECFN. * eblauxvinfo.c (ebl_auxv_info): Handle missing elements of standard table. 2008-07-04 Roland McGrath * libebl.h: Declare ebl_syscall_abi. * ebl_syscall_abi.c: New file. * Makefile.am (gen_SOURCES): Add it. * ebl-hooks.h: New hook syscall_abi. * eblopenbackend.c (default_syscall_abi): New function. (fill_defaults): Use it. 2008-03-31 Roland McGrath * ebldynamictagname.c (ebl_dynamic_tag_name): Use hex for unknown tag. * ebl-hooks.h: Add check_special_section hook. * eblopenbackend.c (fill_defaults): Set new hook to ... (default_check_special_section): ... this, new function. * ebl_check_special_section.c: New file. * Makefile.am (gen_SOURCES): Add it. * libebl.h: Declare it. 2008-02-20 Roland McGrath * libebl.h: Declare ebl_check_object_attribute. * eblcheckobjattr.c: New file. * Makefile.am (gen_SOURCES): Add it. * ebl-hooks.h: Add check_object_attribute hook. * eblopenbackend.c (default_check_object_attribute): New function. (fill_defaults): Initialize pointer to it. 2008-02-19 Roland McGrath * eblsectiontypename.c (ebl_section_type_name): Handle SHT_GNU_ATTRIBUTES. 2008-02-08 Roland McGrath * eblcorenotetypename.c (ebl_core_note_type_name): Handle NT_PPC_SPE. 2008-01-30 Roland McGrath * eblcorenotetypename.c (ebl_core_note_type_name): Handle NT_386_TLS. 2007-10-18 Roland McGrath * eblcorenotetypename.c (ebl_core_note_type_name): Handle NT_PPC_VMX. 2007-10-11 Roland McGrath * eblobjnote.c (ebl_object_note): Translate target format (byte-swap) for NT_GNU_ABI_TAG contents. 2007-08-22 Roland McGrath * libebl.h (Ebl_Core_Item): New member `group'. 2007-08-19 Roland McGrath * ebl-hooks.h: Add new hook auxv_info. * eblopenbackend.c (default_auxv_info): New function. (fill_defaults): Initialize auxv_info hook. * eblauxvinfo.c : New file. * Makefile.am (gen_SOURCES): Add it. * libebl.h: Declare ebl_auxv_info. * eblcorenote.c: Rewritten with new signature. * Makefile.am (gen_SOURCES): Add it. * libebl.h (Ebl_Register_Location, Ebl_Core_Item): New types. (ebl_core_note_info): Completely revamp signature. * ebl-hooks.h: Update decl. * eblopenbackend.c (default_core_note): Update signature. 2007-07-09 Roland McGrath * eblobjnotetypename.c (ebl_object_note_type_name): Handle NT_GNU_HWCAP, NT_GNU_BUILD_ID. * eblobjnote.c (ebl_object_note): Handle NT_GNU_BUILD_ID. 2007-04-22 Roland McGrath * eblcorenotetypename.c (ebl_core_note_type_name): Handle NT_PRXFPREG. 2007-03-10 Roland McGrath * eblcorenote.c (ebl_core_note): For normally-zero types, print in hex if not zero. 2007-01-11 Roland McGrath * ebl-hooks.h (machine_section_flag_check): New hook. * libebl.h: Declare ebl_machine_section_flag_check. * eblmachinesectionflagcheck.c: New file. * Makefile.am (gen_SOURCES): Add it. * eblopenbackend.c (default_machine_section_flag_check): New function. (fill_defaults): Use it. 2006-09-04 Roland McGrath * ebl-hooks.h: Replace register_name hook with register_info. Also yield natural bit width and base type encoding. * eblopenbackend.c (default_register_name): Renamed default_register_info, new args added. (fill_defaults): Update initialization. * eblregname.c: File renamed ... * eblreginfo.c: ... to this. (ebl_register_name): Renamed to ebl_register_info, new args added. * libebl.h: Update decl. * Makefile.am (gen_SOURCES): Update list. 2006-07-06 Ulrich Drepper * ebldynamictagname.c: Add support for DT_GNU_HASH. * ebldynamictagcheck.c: Likewise. * eblsectiontypename.c: Add support for SHT_GNU_HASH. 2006-07-05 Ulrich Drepper * Makefile.am (gen_SOURCES): Add eblsysvhashentrysize.c. * libeblP.h (struct ebl): Add sysvhash_entrysize element. * eblopenbackend.c (fill_defaults): Initialize sysvhash_entrysize. * eblopenbackend.c (openbackend): If possible, fill machine, class, and data values in from the ELF file. 2006-07-04 Ulrich Drepper * Makefile.am (gen_SOURCES): Add eblrelativerelocp.c. * eblrelativerelocp.c: New file. * ebl-hooks.c: Add relative_reloc_p. * eblopenbackend.c (default_relative_reloc_p): New function. (fill_defaults): Hook it up. * libebl.h: Declare ebl_relative_reloc_p. 2006-06-12 Ulrich Drepper * Makefile.am (gen_SOURCES): Add eblnonerelocp.c. * eblnonerelocp.c: New file. * ebl-hooks.c: Add none_reloc_p. * eblopenbackend.c (default_none_reloc_p): New function. (fill_defaults): Hook it up. * libebl.h: Declare ebl_none_reloc_p. 2006-05-27 Ulrich Drepper * libebl.h: Add extern "C". 2005-11-25 Roland McGrath * eblregname.c: New file. * Makefile.am (gen_SOURCES): Add it. * ebl-hooks.h: Declare register_name hook. * libebl.h: Declare ebl_register_name. * eblopenbackend.c (default_register_name): New function. (fill_defaults): Use it. 2005-11-16 Roland McGrath * libebl.h: Use "" for elf-knowledge.h, not <>. 2005-11-15 Roland McGrath * Makefile.am: Removed everything for building libebl_*.so modules, now in ../backends/Makefile.am instead. * alpha_init.c: Moved to ../backends. * alpha_reloc.def: Likewise. * alpha_retval.c: Likewise. * alpha_symbol.c: Likewise. * arm_init.c: Likewise. * arm_reloc.def: Likewise. * arm_symbol.c: Likewise. * common-reloc.c: Likewise. * i386_corenote.c: Likewise. * i386_init.c: Likewise. * i386_reloc.def: Likewise. * i386_retval.c: Likewise. * i386_symbol.c: Likewise. * ia64_init.c: Likewise. * ia64_reloc.def: Likewise. * ia64_symbol.c: Likewise. * libebl_CPU.h: Likewise. * ppc64_init.c: Likewise. * ppc64_reloc.def: Likewise. * ppc64_retval.c: Likewise. * ppc64_symbol.c: Likewise. * ppc_init.c: Likewise. * ppc_reloc.def: Likewise. * ppc_retval.c: Likewise. * ppc_symbol.c: Likewise. * s390_init.c: Likewise. * s390_reloc.def: Likewise. * s390_symbol.c: Likewise. * sh_init.c: Likewise. * sh_reloc.def: Likewise. * sh_symbol.c: Likewise. * sparc_init.c: Likewise. * sparc_reloc.def: Likewise. * sparc_symbol.c: Likewise. * x86_64_corenote.c: Likewise. * x86_64_init.c: Likewise. * x86_64_reloc.def: Likewise. * x86_64_retval.c: Likewise. * x86_64_symbol.c: Likewise. * libebl.h: Comment fixes. * alpha_retval.c: New file. * Makefile.am (alpha_SRCS): Add it. * alpha_init.c (alpha_init): Initialize return_value_location hook. * ppc64_retval.c: New file. * Makefile.am (ppc64_SRCS): Add it. * ppc64_init.c (ppc64_init): Initialize return_value_location hook. * ppc_retval.c: New file. * Makefile.am (ppc_SRCS): Add it. * ppc_init.c (ppc_init): Initialize return_value_location hook. 2005-11-14 Roland McGrath * ia64_init.c (ia64_init): Initialize EH->reloc_simple_type. * sh_init.c (sh_init): Likewise. * x86_64_init.c (x86_64_init): Likewise. * sparc_symbol.c (sparc_reloc_simple_type): New function. * sparc_init.c (sparc_init): Use it. * arm_symbol.c (arm_reloc_simple_type): New function. * arm_init.c (arm_init): Use it. * alpha_symbol.c (alpha_reloc_simple_type): New function. * alpha_init.c (alpha_init): Use it. * ia64_reloc.def: Update bits per H. J. Lu . * arm_reloc.def: Update bits per Daniel Jacobowitz . * alpha_reloc.def: Update bits per Richard Henderson . 2005-11-13 Roland McGrath * x86_64_retval.c: New file. * Makefile.am (x86_64_SRCS): Add it. * x86_64_init.c (x86_64_init): Use x86_64_return_value_location. * i386_retval.c: New file. * Makefile.am (i386_SRCS): Add it. (libdw): New variable. (libebl_%.so): Use $(libdw) in link; use --as-needed. * i386_init.c (i386_init): Use i386_return_value_location. * eblretval.c: New file. * Makefile.am (gen_SOURCES): Add it. (INCLUDES): Search in libdw. * libebl.h: Include . Declare ebl_return_value_location. * ebl-hooks.h: Declare return_value_location hook. * eblopenbackend.c (default_return_value_location): New function. (fill_defaults): Use it. 2005-11-10 Roland McGrath * s390_init.c: New file. * s390_reloc.def: New file. * s390_symbol.c: New file. * Makefile.am (modules, libebl_pic): Add s390. (s390_SRCS, libebl_s390_pic_a_SOURCES): New variables. (am_libebl_s390_pic_a_OBJECTS): New variable. * ppc64_init.c: Use common-reloc.c. * ppc64_symbol.c (ppc64_backend_name): Removed. (ppc64_reloc_type_check, ppc64_reloc_type_name): Likewise. (ppc64_copy_reloc_p, ppc64_reloc_valid_use): Likewise. * ppc_init.c: Use common-reloc.c. * ppc_symbol.c (ppc_backend_name): Removed. (ppc_reloc_type_name, ppc_reloc_type_check): Likewise. (ppc_reloc_valid_use, ppc_copy_reloc_p): Likewise. * sparc_init.c: Use common-reloc.c. * sparc_symbol.c (sparc_backend_name): Removed. (sparc_reloc_type_name, sparc_reloc_type_check): Likewise. (sparc_copy_reloc_p): Likewise. * arm_init.c: Use common-reloc.c. * arm_symbol.c (arm_backend_name): Removed. (arm_reloc_type_name, arm_reloc_type_check, arm_copy_reloc_p): Removed. * alpha_init.c: Use common-reloc.c. * alpha_symbol.c (alpha_backend_name): Removed. (alpha_reloc_type_name, alpha_reloc_type_check): Likewise. (alpha_copy_reloc_p): Likewise. * ia64_symbol.c (ia64_backend_name): Removed. (ia64_reloc_type_name, ia64_reloc_type_check): Likewise. (ia64_copy_reloc_p): Likewise. * x86_64_init.c: Use common-reloc.c. * x86_64_symbol.c (x86_64_backend_name): Removed. (x86_64_copy_reloc_p, x86_64_reloc_valid_use): Likewise. (x86_64_reloc_type_check, x86_64_reloc_type_name): Likewise. * sh_init.c: Use common-reloc.c. * sh_symbol.c: All functions removed. (sh_reloc_simple_type): New function. (sh_gotpc_reloc_check): New function. * common-reloc.c: New file. * Makefile.am (noinst_HEADERS): Add it. * i386_init.c: Include it. * sh_reloc.def: New file. * i386_reloc.def: New file. * alpha_reloc.def: New file. * arm_reloc.def: New file. * i386_reloc.def: New file. * ia64_reloc.def: New file. * ppc64_reloc.def: New file. * ppc_reloc.def: New file. * sh_reloc.def: New file. * sparc_reloc.def: New file. * x86_64_reloc.def: New file. * Makefile.am (EXTRA_DIST): Add $(modules:=_reloc.def). * libebl_alpha.map: Removed. * libebl_ia64.map: Removed. * libebl_ppc.map: Removed. * libebl_sparc.map: Removed. * libebl_arm.map: Removed. * libebl_i386.map: Removed. * libebl_ppc64.map: Removed. * libebl_sh.map: Removed. * libebl_x86_64.map: Removed. * Makefile.am (EXTRA_DIST): Remove them. (libebl_%.map, libebl_%.so): New pattern rules. * libebl_alpha.h: Removed. * libebl_ia64.h: Removed. * libebl_ppc.h: Removed. * libebl_sparc.h: Removed. * libebl_arm.h: Removed. * libebl_i386.h: Removed. * libebl_ppc64.h: Removed. * libebl_sh.h: Removed. * libebl_x86_64.h: Removed. * Makefile.am (noinst_HEADERS): Remove them. * x86_64_corenote.c: Use libebl_CPU.h instead. * x86_64_symbol.c: Likewise. * i386_corenote.c: Likewise. 2005-11-09 Roland McGrath * ia64_symbol.c (ia64_reloc_simple_type): New function. * ebl-hooks.h (reloc_simple_type): Take the Ebl handle, not Elf handle. * eblrelocsimpletype.c (ebl_reloc_simple_type): Update caller. * eblopenbackend.c (default_reloc_simple_type): Update signature. * i386_symbol.c (i386_reloc_simple_type): Likewise. * ppc64_symbol.c (ppc64_reloc_simple_type): Likewise. * ppc_symbol.c (ppc_reloc_simple_type): Likewise. * x86_64_symbol.c (x86_64_reloc_simple_type): Likewise. * i386_symbol.c (i386_backend_name): Removed. (i386_reloc_type_name, i386_reloc_type_check): Likewise. (i386_reloc_valid_use): Removed. (i386_copy_reloc_p): Removed. * alpha_destr.c: Removed. * arm_destr.c: Removed. * i386_destr.c: Removed. * ia64_destr.c: Removed. * ppc64_destr.c: Removed. * ppc_destr.c: Removed. * sh_destr.c: Removed. * sparc_destr.c: Removed. * x86_64_destr.c: Removed. * ebl-hooks.h: New file, broken out of ... * libeblP.h (struct ebl): ... here. #include that for hook declarations, after defining EBLHOOK macro. * libebl_CPU.h: New file. * Makefile.am (noinst_HEADERS): Add them. * libeblP.h (struct ebl): Use uint_fast16_t for machine, and uint_fast8_t for class and data. 2005-08-14 Roland McGrath * ia64_symbol.c (ia64_section_type_name): New function. (ia64_dynamic_tag_check): New function. (ia64_reloc_valid_use): New function. * libebl_ia64.h: Declare them. * ia64_init.c (ia64_init): Use them. * Makefile.am (libebl_ia64.so): Link with libelf. 2005-08-28 Ulrich Drepper * Makefile.am: Use $(LINK) not $(CC) when creating DSOs. 2005-08-13 Roland McGrath * ia64_symbol.c (ia64_machine_flag_check): New function. * libebl_ia64.h: Declare it. * ia64_init.c (ia64_init): Use it. 2005-08-13 Ulrich Drepper * libebl.h: Add ehdr parameter to ebl_bss_plt_p and ebl_check_special_symbol. * libeblP.h (struct ebl): Adjust callback functions. * eblopenbackend.c: Adjust dummy functions. * ebl_check_special_symbol.c: Add parameter and pass it on. * eblbsspltp.c: Likewise. * ppc_symbol.c (find_dyn_got): With ehdr passed, simplify search for the dynamic section entry. (ppc_check_special_symbol): Add ehdr parameter. (ppc_bss_plt_p): Likewise. * libebl_ppc.h: Adjust prototypes. * ppc64_symbol.c (ppc_check_special_symbol): Add ehdr parameter. (ppc_bss_plt_p): Likewise. * libebl_ppc64.h: Adjust prototypes. 2005-08-12 Roland McGrath * ppc_symbol.c (find_dyn_got): New function, broken out of ... (ppc_bss_plt_p): ... here. Call that. (ppc_check_special_symbol): Use find_dyn_got to fetch value to check against _GLOBAL_OFFSET_TABLE_. * libeblP.h (struct ebl): Add bss_plt_p hook. * eblopenbackend.c (default_bss_plt_p): New function. (fill_defaults): Use it. * eblbsspltp.c: New file. * Makefile.am (gen_SOURCES): Add it. * libebl.h: Declare ebl_bss_plt_p. * ppc_symbol.c (ppc_bss_plt_p): New function. * libebl_ppc.h: Declare it. * ppc_init.c (ppc_init): Use it. * ppc64_symbol.c (ppc64_bss_plt_p): New function. * libebl_ppc64.h: Declare it. * ppc64_init.c (ppc64_init): Use it. * ebl_check_special_symbol.c: New file. * Makefile.am (gen_SOURCES): Add it. * libebl.h: Declare ebl_check_special_symbol. * libeblP.h (struct ebl): Add check_special_symbol hook. * eblopenbackend.c (default_check_special_symbol): New function. (fill_defaults): Use it. * ppc_symbol.c (ppc_check_special_symbol): New function. * libebl_ppc.h: Add prototype. * ppc_init.c (ppc_init): Use it. * ppc64_symbol.c (ppc64_check_special_symbol): New function. * libebl_ppc64.h: Add prototype. * ppc64_init.c (ppc64_init): Use it. 2005-08-07 Ulrich Drepper * ppc_init.c: Add support for new DT_PPC_* and R_PPC_* values. * ppc_symbol.c: Likewise. * libebl_ppc.h: Likewise. * ppc64_init.c: There is now also a dynamic_tag_check functions * ppc64_symbol.c: Add dynamic_tag_check. * libebl_ppc64.h: Add prototype. * alpha_init.c: Add support for new DT_ALPHA_* value. * alpha_symbol.c: Likewise. * libebl_alpha.h: Likewise. 2005-08-03 Ulrich Drepper * libebl_alpha.map: Remove unnecessary exports. * libebl_arm.map: Likewise. * libebl_i386.map: Likewise. * libebl_ia64.map: Likewise. * libebl_ppc.map: Likewise. * libebl_ppc64.map: Likewise. * libebl_sh.map: Likewise. * libebl_sparc.map: Likewise. * libebl_x86_64.map: Likewise. 2005-08-02 Ulrich Drepper * Makefile.am (libebl_a_SOURCES): Add eblelfclass.c, eblelfdata.c, and eblelfmachine.c. * elbopenbackend.c (machines): Add class and data fields. Initialize them. (ebl_openbackend): Initialize machine, class, data fields in result. * libebl.h: Declare Add eblelfclass, eblelfdata, and eblelfmachine. * libeblP.h (Ebl): Add machine, class, data fields. 2005-07-23 Ulrich Drepper * eblsectionstripp.c: New file. * Makefile.am (gen_SOURCES): Add eblsectionstripp.c. * i386_init.c (i386_init): Install specific debugscn_p callback. * i386_symbol.c (i386_debugscn_p): New function. * libebl.h: Declare ebl_section_strip_p. * libebl_i386.h: Declare i386_debugscn_p. * libebl.h: Move Ebl definition to... * libeblP.h: ...here. 2005-07-21 Roland McGrath * Makefile.am (install-ebl-modules): New target, commands from ... (install): ... here. Make this depend on it. (LIBEBL_SUBDIR): New variable, substituted by configure. (install-ebl-modules): Install in $(libdir)/$(LIBEBL_SUBDIR). * eblopenbackend.c (openbackend): Use LIBEBL_SUBDIR in module name. 2005-07-21 Ulrich Drepper * eblcopyrelocp.c: New file. * Makefile.am (gen_SOURCES): Add eblcopyrelocp.c. * libebl.h: Declare ebl_copy_reloc_p. * eblopenbackend.c (fill_defaults): Fill in copy_reloc_p. (default_copy_reloc_p): New function. * alpha_init.c: Define and use arch-specific copy_reloc_p function. * alpha_symbol.c: Likewise. * arm_init.c: Likewise. * arm_symbol.c: Likewise. * i386_init.c: Likewise. * i386_symbol.c: Likewise. * ia64_init.c: Likewise. * ia64_symbol.c: Likewise. * ppc64_init.c: Likewise. * ppc64_symbol.c: Likewise. * ppc_init.c: Likewise. * ppc_symbol.c: Likewise. * sh_init.c: Likewise. * sh_symbol.c: Likewise. * sparc_init.c: Likewise. * sparc_symbol.c: Likewise. * x86_64_init.c: Likewise. * x86_64_symbol.c: Likewise. * libebl_alpha.h: Declare the copy_reloc_p function. * libebl_arm.h: Likewise. * libebl_i386.h: Likewise. * libebl_ia64.h: Likewise. * libebl_ppc.h: Likewise. * libebl_ppc64.h: Likewise. * libebl_sh.h: Likewise. * libebl_sparc.h: Likewise. * libebl_x86_64.h: Likewise. 2005-05-31 Roland McGrath * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency tracking works right. 2005-05-21 Ulrich Drepper * libebl_x86_64.map: Add x86_64_core_note. 2005-05-19 Roland McGrath * libebl_i386.map: Add i386_reloc_valid_use, i386_reloc_simple_type. * libebl_ppc.map: Add ppc_reloc_simple_type. * libebl_ppc64.map: Add ppc64_reloc_simple_type. * libebl_x86_64.map: Add x86_64_reloc_simple_type. 2005-05-11 Ulrich Drepper * eblcorenote.c: Handle new AT_* values and files with different endianess. * Makefile.am (x86_64_SRCS): Add x86_64_corenote.c. * x86-64_corenote.c: New file. * x86_64_init.c: Hook in x86_64_corenote. * i386_corenote.c: Make file usable on 64-bit platforms. * eblopenbackend.c: If modules version comparison fails, reinitialize hooks. 2005-05-10 Ulrich Drepper * eblopenbackend.c: Require the init function to return a string. Compare it with MODVERSION from config.h. * alpha_init.c: Change return type. Return MODVERSION or NULL. * arm_init.c: Likewise. * eblopenbackend.c: Likewise. * i386_init.c: Likewise. * ia64_init.c: Likewise. * ppc64_init.c: Likewise. * ppc_init.c: Likewise. * sh_init.c: Likewise. * sparc_init.c: Likewise. * x86_64_init.c: Likewise. * libeblP.h: Adjust ebl_bhinit_t. * libebl_alpha.h: Adjust init function prototype. * libebl_arm.h: Likewise. * libebl_i386.h: Likewise. * libebl_ia64.h: Likewise. * libebl_ppc.h: Likewise. * libebl_ppc64.h: Likewise. * libebl_sh.h: Likewise. * libebl_sparc.h: Likewise. * libebl_x86_64.h: Likewise. * mips_destr.c: Removed. * mips_init.c: Removed. * mips_symbol.c: Removed. * libebl_mips.h: Removed. * libebl_mips.map: Removed. 2005-05-03 Roland McGrath * libebl.h (Ebl): Add `reloc_simple_type' member. * eblopenbackend.c (default_reloc_simple_type): New function. (openbackend): Use that as default reloc_simple_type callback. * eblrelocsimpletype.c: New file. * Makefile.am (gen_SOURCES): Add it. * i386_symbol.c (i386_reloc_simple_type): New function. * libebl_i386.h: Declare it. * i386_init.c (i386_init): Use it. * x86_64_symbol.c (x86_64_reloc_simple_type): New function. * libebl_x86_64.h: Declare it. * x86_64_init.c (x86_64_init): Use it. * ppc_symbol.c (ppc_reloc_simple_type): New function. * libebl_ppc.h: Declare it. * ppc_init.c (ppc_init): Use it. * ppc64_symbol.c (ppc64_reloc_simple_type): New function. * libebl_ppc64.h: Declare it. * ppc64_init.c (ppc64_init): Use it. 2005-03-17 Ulrich Drepper * eblcorenote.c (ebl_core_note): Add support for AT_SECURE. 2005-02-15 Ulrich Drepper * Makefile.am (AM_CFLAGS): Add -Wformat=2. 2005-02-14 Ulrich Drepper * alpha_destr.c: Add __attribute__((unused)) where needed. * alpha_init.c: Likewise. * alpha_symbol.c: Likewise. * arm_destr.c: Likewise. * arm_init.c: Likewise. * arm_symbol.c: Likewise. * i386_corenote.c: Likewise. * i386_destr.c: Likewise. * i386_init.c: Likewise. * i386_symbol.c: Likewise. * ia64_destr.c: Likewise. * ia64_init.c: Likewise. * ia64_symbol.c: Likewise. * mips_destr.c: Likewise. * mips_init.c: Likewise. * mips_symbol.c: Likewise. * ppc64_destr.c: Likewise. * ppc64_init.c: Likewise. * ppc64_symbol.c: Likewise. * ppc_destr.c: Likewise. * ppc_init.c: Likewise. * ppc_symbol.c: Likewise. * sh_destr.c: Likewise. * sh_init.c: Likewise. * sh_symbol.c: Likewise. * sparc_destr.c: Likewise. * sparc_init.c: Likewise. * sparc_symbol.c: Likewise. * x86_64_destr.c: Likewise. * x86_64_init.c: Likewise. * x86_64_symbol.c: Likewise. * x86_64_symbol.c (reloc_map_table): Fix entries for R_X86_64_64 and R_X86_64_32.. 2005-02-06 Ulrich Drepper * eblstrtab.c: A few cleanups. * eblopenbackend.c: Mark unused parameters. * eblgstrtab.c: Cleanups a few printf format strings. * Makefile.am: Cleanup AM_CFLAGS handling. Add -Wunused -Wextra. 2005-02-05 Ulrich Drepper * Makefile.am: Check for text relocations in constructed DSOs. * eblstrtab.c: Minor cleanups. * Makefile.am (AM_CFLAGS): Add -std=gnu99 and -fmudflap for MUDFLAP. 2004-08-16 Ulrich Drepper * Makefile.am (AM_CFLAGS): Add LIBSTR definition with base name of the lib directory. * eblopenbackend.c (openbackend): Use LIBSTR instead of hardcoded lib in path to ebl modules. 2004-04-01 Ulrich Drepper * Makefile.am: Add rules for ppc and ppc64 ebl module. * ppc_init..c: New file. * ppc_destr.c: New file. * ppc_symbol.c: New file. * libebl_ppc.h: New file. * libebl_ppc.map: New file. * ppc64_init..c: New file. * ppc64_destr.c: New file. * ppc64_symbol.c: New file. * libebl_ppc64.h: New file. * libebl_ppc64.map: New file. 2004-01-20 Ulrich Drepper * Makefile.am: Support building with mudflap. 2004-01-18 Ulrich Drepper * libeblP.h (_): Use elfutils domain. 2004-01-16 Ulrich Drepper * eblsectionname.c: Add support for SHN_BEFORE and SHN_AFTER. 2004-01-13 Ulrich Drepper * eblsegmenttypename.c ((ebl_segment_type_name): Add support for PT_GNU_RELRO. 2004-01-08 Ulrich Drepper * libebl.h: Remove last traces of libtool. 2004-01-05 Ulrich Drepper * elf-knowledge.h: Move to libelf subdir. * Makefile.am (EXTRA_DIST): Remove libebl.map. * libebl.map: Removed. 2003-12-08 Ulrich Drepper * eblsectiontypename.c (ebl_section_type_name): Add support for SHT_SUNW_move, SHT_CHECKSUM, and SHT_GNU_LIBLIST. 2003-11-19 Ulrich Drepper * ia64_symbol.c (ia64_dynamic_tag_name): New function. * libebl_ia64.h (ia64_dynamic_tag_name): Declare. * ia64_init.c (ia64_init): Register i164_dynamic_tag_name. 2003-09-24 Ulrich Drepper * ia64_init.c (ia64_init): Initialize segment_type_name callback. * ia64_symbol.c (ia64_segment_type_name): Define. * libebl_ia64.h (ia64_segment_type_name): Declare. 2003-09-22 Ulrich Drepper * Makefile.am (AM_CFLAGS): Add -fpic. 2003-08-14 Ulrich Drepper * Makefile.am (install): Remove dependency on libebl.so. 2003-08-13 Ulrich Drepper * eblopenbackend.c: Adjust relative path to arch-specific DSOs assuming the code ends up in the application. Add second dlopen() try without any path, just the filename. * Makefile.in: Remove rules to build and install libebl.so. 2003-08-11 Ulrich Drepper * Moved to CVS archive.