(parse_stab): Pass value to push_bincl. Call find_excl for
N_EXCL.
(struct bincl_file): Add hash, file and file_types fields.
(push_bincl): Add hash parameter. Save it in the new hash field.
Save the file number in the new file field.
(pop_bincl): Put the bincl_file on bincl_list, rather than freeing
it. Save the file types in the new file_types field.
(find_excl): New static function.
PR 10980.
(start_stab): Initialize function_end.
(finish_stab): Pass info->function_end to debug_end_function.
(parse_stab): If info->function_end is set, use it as the address
which ends a function.
that are up to 0x1000 bytes apart, not just 64.
(ieee_add_bb11_blocks): Don't bother to emit a BB11 that is less
than 0x100 bytes.
(ieee_lineno): Only emit line numbers that are less than
info->highaddr.
(ieee_pointer_type): Set reflocalp after pushing type.
(ieee_function_type): If reflocalp is set, make this type local.
(ieee_range_type, ieee_array_type, ieee_set_type): Likewise.
(ieee_const_type, ieee_volatile_type): Likewise.
(ieee_struct_field, ieee_class_baseclass): Likewise.
PR 10638.
(parse_ieee_bb): When starting a BB1, initialize the types field
to the global_types field.
(parse_ieee_be): When ending a BB2, copy the types field to the
global_types field.
(struct stab_write_handle): Change strings to a pointer to
string_hash_entry. Add last_strings field. Remove strings_alloc
field.
(string_hash_newfunc): Initialize next field.
(stab_write_symbol): Copy string into hash table rather than into
buffer. Keep a list of hash table entries.
(write_stabs_in_sections_debugging_info): Initialize last_string.
Copy strings from list of hash table entries in memory.
(stab_modify_type): If the entry on the stack is a definition,
make a new definition rather than failing an assert.
(stab_array_type): The size is only zero if high is strictly less
than low.
PR 10377.
* configure.in: Call BFD_NEED_DECLARATION on strstr and sbrk.
* acconfig.h (NEED_DECLARATION_STRSTR): New macro.
(NEED_DECLARATION_SBRK): New macro.
* configure, config.in: Rebuild.
* bucomm.h (strstr): Declare if NEED_DECLARATION_STRSTR.
(sbrk): Declare if HAVE_SBRK and NEED_DECLARATION_SBRK.
(start_stab): Add abfd parameter.
(parse_stab_string): Skip the symbol leading char when searching
for the value of a global symbol.
* budbg.h (start_stab): Update declaration.
* rddbg.c (read_section_stabs_debugging_info): Pass abfd to
start_stab.
(read_symbol_stabs_debugging_info): Likewise.
* objdump.c (disassemble_data): Make sure sym_name is always set.
(dump_section_header): Always put a space after the section name.
(dump_bfd_header): Terminate output with newline.
each stab entry, call stab_context on an error, and call
free_saved_stabs before rturning.
(read_symbol_stabs_debugging_info): Likewise.
(SAVE_STABS_COUNT): Define.
(struct saved_stab): Define.
(saved_stabs, saved_stabs_index): New static variables.
(save_stab, stab_context, free_saved_stabs): New static functios.
* objcopy.c (remove_leading_char): New static variable.
(OPTION_REMOVE_LEADING_CHAR): Define.
(copy_usage): Mention --remove-leading-char.
(filter_symbols): If remove_leading_char, and the first character
of a global symbol matches the symbol leading char of the BFD,
remove the first character.
(copy_object): Filter the symbols if remove_leading_char is set.
(copy_main): Handle --remove-leading-char.
* binutils.texi, objcopy.1: Document --remove-leading-char.
(struct ieee_write_type): Add name field.
(struct ieee_type_class): Remove name field. Change all uses to
use new name field in type instead.
(struct ieee_name_type): Likewise.
(ieee_start_struct_type): Initialize name field of type.
(ieee_start_class_type): Don't initialize classdef entry of tag.
(ieee_class_method_var): Don't adjust voffset.
(ieee_end_class_type): Likewise.
(ieee_tag_type): Initialize new name field of type.
(ieee_typdef): Set name after copying in type information.
anonymous struct, copy the name into memory.
(ieee_tag_type): Likewise.
* debug.c (debug_write_type): Only check and set id field for an
unnamed object.
(debug_write_class_type): Likewise.
field, and define some enum constants for it.
(parse_ieee_ty): Set kind field of variable for 'x' and 'X' types.
(parse_ieee_atn): Make an indirect slot for an external variable,
although we otherwise don't record it. Set kind field rather than
variable field of pvar.
(ieee_read_cxx_class): Try to get the type of a static member.
(ieee_read_reference): Check kind field rather than variable
field.
* objdump.c (show_raw_insn): New global.
(usage): Update.
(long_options): Update.
(disassemble_data): Set disasm_info.flags if --show-raw-insn.
* objdump.c (disassemble_data): Set new arch,mach,endian fields in
disasm_info.
and boolean parameters to function_type. Add boolean parameter to
method_type.
(debug_make_ellipsis_type): Don't declare.
(debug_make_function_type): Add debug_type * and boolean
parameters. Change all callers.
(debug_make_method_type): Add boolean parameter. Change all
callers.
(debug_get_parameter_types): Add boolean * parameter. Change all
callers.
(debug_get_target_type): Declare.
* debug.c (struct debug_function_type): Add fields arg_types and
varargs.
(struct debug_method_type): Add field varargs.
(debug_ellipsis_type, ELLIPSIS_P): Remove.
(debug_make_ellipsis_type): Remove.
(debug_make_function_type): Add arg_types and varargs parameters.
(debug_make_method_type): Add varargs parameter.
(debug_get_parameter_types): Add pvarargs parameter.
(debug_get_target_type): New function.
(debug_write_type): In case DEBUG_KIND_FUNCTION, push argument
types and pass count to function_type. In DEBUG_KIND_METHOD, use
a signed int for the count, don't call ellipsis_type, and pass
varargs to method_type.
* stabs.c (struct stab_demangle_info): Add varargs field.
(stab_demangle_argtypes): Add pvarargs parameter. Change all
callers.
(stab_demangle_args): Likewise.
(stab_demangle_type): In case 'F', pick up argument types.
* prdbg.c (pr_ellipsis_type): Remove.
(pr_function_type): Add argcount and varargs parameters.
(pr_method_type): Add varargs parameter.
* ieee.c (ieee_ellipsis_type): Remove.
(ieee_function_type): Add argcount and varargs parameters.
(ieee_method_type): Add varargs parameter. Remove most of
function body, and just call ieee_function_type.
functions not listed below to demangle argument types; they are
all called via stab_demangle_argtypes.
(finish_stab): If the kind of an undefined tag is
DEBUG_KIND_ILLEGAL, use DEBUG_KIND_STRUCT instead. Warn if there
are any pending variable.
(parse_stab): Don't close the function when the block depth goes
to zero. Pass value to debug_end_function.
(parse_stab_string): In case 'T', pass the name to
parse_stab_type.
(parse_stab_type): In case 'x', use stab_find_tagged_type. In
case '#', handle functions with variable numbers of arguments.
(parse_stab_struct_type): Add tagname parameter. Change all
callers.
(parse_stab_members): Add tagname and typenums parameters. Change
all callers. If the type of a method is a stub, call
parse_stab_argtypes to demangle the argument types and get the
physical name of the function.
(parse_stab_argtypes): New static function.
(stab_record_variable): For a DEBUG_GLOBAL or DEBUG_STATIC
variable, call debug_record_variable immediately.
(stab_find_tagged_type): New static function.
BUILD_DLLTOOL): Put definitions for these into makefile when
configuring, instead of always clearing in mpw-make.sed.
* mpw-make.sed: Edit out any host_alias or target_alias settings,
fix pathname to BFD internal include files, remove dependency
calculation rules.
given a kind of type we can handle.
(debug_write_type): Handle undefined enums and structs.
(debug_write_class_type): Handle undefined classes.
* prdbg.c (pr_enum_type): Handle an undefined enum.
Also comment changes to debug.h.
bunch of static functions and structs used to write out IEEE
debugging information.
* budbg.h (write_ieee_debugging_info): Declare.
* ieee.c (struct ieee_type): Add pslot field.
(enum builtin_types): Define.
(ieee_builtin_type): For a pointer, return a pointer to the named
type. Use enum values rather than numbers.
(ieee_alloc_type): New static function.
(ieee_read_type_index): Use ieee_alloc_type.
(parse_ieee_bb): Likewise.
(parse_ieee_ty): Likewise. Use ieee_builtin_type for array range,
rather than making a new integer type. Store the new type in the
slot, if there is one.
(parse_ieee_atn): Treat ATN10 as defining a register variable.
(ieee_regno_to_genreg): Rename from ieee_regno_to_gen. Change all
callers.
(ieee_genreg_to_regno): New static function.
Manfred Hollstein <manfred@lts.sel.alcatel.de>.
* Makefile.in ($(DEMANGLER_PROG)): Depend upon
$(DEMANGLER_PROG).1.
(install): Don't depend upon $(DEMANGLER_PROG).1. Only install
$(DEMANGLER_PROG).1 if $(DEMANGLER_PROG) is not empty.
(objdump_print_address): Use it. If we need the right section for
the symbol, and we can't find it, print an offset from the section
rather than using a symbol from some other section.
PR 8251.
* nm.c (print_symname): Don't try to demangle an empty name.
* objdump.c (slurp_symtab): Reset symcount if there are no symbols.
(slurp_dynamic_symtab): Likewise, for dynsymcount.
(disassemble_data): Fix memory leak: free sorted_syms when done.
(display_bfd): Likewise, for syms and dynsyms.
(dump_relocs): Don't print header before possibly generating an error message.
(dump_dynamic_relocs): Likewise.
* ar.1, nm.1, objdump.1, size.1, strings.1, strip.1: Fix typos and formatting
bugs.
symbols after other symbols with the same value. Likewise for
symbols which look like file names.
(objdump_print_address): Always chose the first reasonable symbol
with a given value.
PR 8148.
* configure: Rebuild.
* config.in: Rebuild.
* dlltool.c: Include "libiberty.h" and "bucomm.h". Don't include
<stdio.h>, <stdlib.h>, or <string.h>. Don't include <wait.h>.
Include <sys/types.h>. Use HAVE_SYS_WAIT_H to control whether to
include <sys/wait.h> or define the wait macros by hand. Don't
declare xmalloc.
(gen_lib_file): Don't assume that sprintf returns the number of
characters; use strlen instead.